Techbear
Сайт для тех, кто хочет использовать Вордпресс по максимуму, но не хочет разбираться в коде.
W3 Total Cache большой и сложный плагин. Когда он работает правильно — все в порядке, страницы загружаются быстро. Но когда что-то начинает работать не так, приходится искать источник проблемы, найти который бывает непросто из-за размера плагина.
В этой статье вы узнаете решения для часто возникающих проблем W3TC:
Обычно сложно предсказать результат минификации CSS и JS, многие сталкиваются с проблемами при минификации этих файлов. Это зависит от установленных плагинов, темы и их скриптов и стилей. Не существует какого-то общего решения этой проблемы, все зависит от конкретного сочетания CSS и JS.
Есть 3 основные причины, по которым минификация нарушает работу сайта.
1. Нарушена очередность загрузки JS файлов, то есть зависимые файлы загружаются перед главными файлами.
Если у какого-то файла есть обращение к библиотеке jQuery, то он должен загрузиться после файла jquery.js. Поставьте файл jquery.js на первое место в очередности загрузки. Если есть другие файлы, зависимые друг от друга, поставьте их в правильной очередности.
2. Содержимое страницы отображается до того, как загружены важные для отображения контента файлы CSS и JS, из-за чего появляется неровный контент.
Файлы jquery.js и style.css должны быть первыми в списке загрузок. Дайте важным для отображения контента файлам CSS или JS вторые места в приоритете загрузки, даже если это вызывает предупреждение Eliminate render-blocking JavaScript and CSS in above-the-fold content в тесте Гугл.
3. При минификации и объединении файлов возникает ошибка синтаксиса.
Если это случается, то не загружаются все файлы, объединенные в минифицированный файл. В этом случае вам понадобится найти файл, вызывающий ошибку, и исключить его из объединяемых файлов.
Приоритет загрузки и исключение из объединения можно установить вручную в разделе Minify.
<head>
в секцию <body>
по одному, используя non-blocking метод.Поставьте после файла jquery.js файлы, которые используют библиотеку jQuery, например, jquery-migrate.js или jquery-ui.js. Постарайтесь поставить остальные файлы в соответствии с порядком, в котором они влияют на отображение содержимого страницы. Например, файл functions.js должен быть выше в приоритете загрузки, чем comment-reply.js, потому что functions.js содержит основные скрипты / функции, а загружать comment-reply.js можно позже, когда начнет загружаться часть страницы с комментариями.
Критичные файлы должны быть загружены в начале загрузки страницы, более второстепенные должны загружаться ниже в странице после тега <body>
или </body>
.
Сохраняйте изменения после каждого шага и проверяйте их на сайте.
Если вы хотите начать сначала, удалите все файлы кнопкой Delete и добавляйте их по одному кнопкой help. Тестируйте разное расположение файлов на странице и оставьте лучший результат.
Следуя этой инструкции вы можете добавить все (или почти все) файлы CSS и JS, минифицировать их и расположить в нужной последовательности, чтобы сайт загружался правильно и количество предупреждений в тесте Гугл уменьшилось до минимума.
В результате работы плагина код страницы минифицирован (записан в одну строку), комментарии удалены:
Откройте нужную страницу и посмотрите ее код (В браузере Хром, правой кнопкой на странице и выберите Просмотреть код страницы).
Если вы хотите увидеть служебную информацию о работе плагина, включите режим Debugging в разделе General Settings.
В секции Debug находится 6 чекбоксов, но доступны только те чекбоксы, модули которых включены в разделе General Settings.
Например, на этой картинке доступны 4 чекбокса, потому что только эти 4 модуля включены в разделе General Settings.
Включите все доступные чекбоксы, нажмите Save all settings и сбросьте кеш, если потребуется. После этого откройте нужную страницу и посмотрите ее код. Спуститесь вниз страницы и вы увидите отладочную информацию для каждого активированного модуля.
Так как в разделе Minify стоит настройка Удалять комментарии в html-коде, чтобы увидеть эту информацию временно отключите эту функцию или весь раздел Minify.
Если у вас есть проблема несовместимости W3 Total Cache и PHP версии 7, то обновите плагин до последней версии.
Вы могли получить такую ошибку:
Warning: Parameter 1 to W3_Plugin_TotalCache::ob_callback() expected to be a reference, value given in my-site.ru/wp-includes/functions.php on line 1234
Или вы не получали ошибку, но W3 Total Cache перестал сохранять изменения и кешировать сайт. Если вы посмотрите в код страницы в режиме Debug, то увидите, что служебные комментарии W3TC не добавляются.
Так или иначе, эта проблема была решена в плагине версии 0.9.5, обновите плагин до последней версии, сейчас это версия 0.9.5.4. На этом сайте работает W3TC этой версии и установлена PHP версии 7.1, никаких проблем нет, все работает нормально.
Если проблема все еще есть, напишите в комментариях, есть инструкция по решению этой проблемы.
Суть решения в том, чтобы либо вернуться на PHP 5.6, либо изменить &$buffer
на $buffer
в нескольких файлах на сервере. В этом случае после обновления плагина эти изменения будут заменены новой версией файлов.
Обычно проблема заключается в том, что модуль Memcached установлен на сервере, но не распознается W3 Total Cache, и тест совместимости W3TC говорит, что Memcached не установлен и не предлагает его в качестве модуля кеширования.
Решение проблемы в том, чтобы установить модуль PECL memcache PHP. Модуль Memcached тоже должен быть установлен на сервере, но для Memcache кеширования также нужен модуль PECL memcache PHP.
Установите оба модуля, — модуль кеширования Memcached и PECL memcache PHP (не PECL memcached PHP). После их установки W3TC распознает этот метод кеширования, и предложит его для работы.
Инструкция по установке обоих модулей находится в разделе Install. Спуститесь ниже для инструкции по установке модуля Memcached (Daemon), после этого установите модуль PECL Memcache PHP.
Если вы хотите исключить какие-то страницы из кеширования, то это можно сделать в разделе Page Cache. Спуститесь в секцию Advanced и найдите поле Never cache the following pages. В этом поле уже есть несколько записей по умолчанию. Укажите адрес страницы, которую вы хотите исключить из кеширования в новой строке без учета домена сайта.
Например, если вы хотите исключить страницу https://techbear.ru/w3-total-cache-reshenie-problem из кеширования, то укажите только w3-total-cache-reshenie-problem*
Сохраните изменения, очистите кеш, включите режим Debug, отключите удаление html-комментариев в коде и загрузите страницу, которую вы исключили из кеширования. Откройте код страницы в браузере, спуститесь вниз страницы и вы увидите комментарий W3TC о том, что кеширование для этой страницы выключено.
Теперь каждому посетителю страницы будет показываться динамическая версия страницы с сервера.
Через 30 дней после первой установки W3 Total Cache начинает появляться всплывающее окно, которое предлагает поставить ссылку на W3TC на вашем сайте, написать сообщение в Твиттер, поставить оценку плагину на WordPress.org и подписаться на рассылку W3 EDGE.
Если вы нажмете на «х» в правом верхнем углу, то вы закроете это окно, но оно будет появляться снова.
Чтобы полностью отключить это окно, вместо «х» нажмите Cancel. После этого окно исчезнет и больше появляться не будет.
Если вы хотите полностью удалить W3 Total Cache, то вам понадобится доступ к серверу, так как этот плагин оставляет некоторые файлы после удаления из Вордпресс.
my-site.ru/wp-content/plugins
, и проверьте, что папка W3 Total Cache удалена.wp-content
удалите папки w3tc-config и cache, и файлы
После этого W3TC будет полностью удален с сервера.
Если плагин действительно ускоряет ваш сайт и вы довольны его работой, хорошая идея написать отзыв на плагин на WordPress.org.
Читайте также:
Сайт для тех, кто хочет использовать Вордпресс по максимуму, но не хочет разбираться в коде.
Добрый день!
Удалил плагин, почистил все файлы через ftp, но осталась проблема: не вносятся изменения на главную страницу, например удаляю полностью блок, а он все также есть на странице, будто страница закеширована, пробовал и через инкогнито смотреть, но нет. В чем может быть проблема?
Здравствуйте,
Перед удалением плагина нужно очистить кеш, потом деактивировать и удалить плагин, потом на сервере через ftp.
Думаю, вы так и сделали.
Может, кеш в браузере?
Очень полезная статья по настройке плагина. Не подскажите что я настроила не так, у меня не стали работать сайты по статистике. Яндекс метрика и Гугл аналитик работают, а LiveInternet, Hit и Рамблер не работают я их уже все в отдельности внесла в файлы, чтобы не кэшировать, но не помогает. Вообще их надо кэшировать или нет или может проблема в чем то другом?
Попробуйте отключить минификацию js в Minify — JS.
Если заработает, то добавьте ваши скрипты в исключения и снова включите.
Добрый день! Есть плагин курса валют, который на сайте выведен с помощью виджета, и по какой то причине он не обновляется. При деактивации плагина курсов валют и новой активации — дата и сами курсы обновляется, поэтому как я понимаю, причина именно в W3 Total Cache. Не подскажите в какую сторону смотреть в настройках плагина, чтобы добавить исключения виджета?
Здравствуйте!
Если вы говорите, что при деактивации плагина курсов валют и новой активации — дата и сами курсы обновляется, то причина может быть и не в W3TC, хотя плагин кеша обычно первый претендент.
Сбросьте весь кеш, деактивируйте W3TC, проверьте как работает ваш плагин без W3TC.
Если причина в W3TC, экспортируйте его настройки в файл, сбросьте все настройки и попробуйте включать настройки по одной.
Сначала выясните, в какой группе проблема (Кеш, Кеш в браузере, Кеш базы данных итд.), потом включайте по одной настройки в группе.
Если причина не в W3TC, то выключите все плагины и включайте по одному.
Думаю проблема именно в W3TC, так как на другом сайте стоит такой же плагин курса валют и обновляется, так как плагин W3TC деактивирован.
Даже на одном сервере на соседних сайтах один и тот же плагин может работать по-разному.
Попробуйте сбросить кеш и деактивировать W3TC, чтобы выяснить, вызывает он проблему или нет.
Если вызывает, то попробуйте отключить минификацию и объединение css и js.
Performance — General Settings — Minify — Disable.
Это было проверено в первую очередь
Похоже вы зубы съели с этим плагином возможно подскажите как быть. Экспериментировал с настройками тотал кеш + редис (установлен на хостинге и плагин к нему в вп) + автооптимайз. В результате пришел к ситуации: на не посещенной странице изменения отображаются сразу, на посещенной ранее отображаются сразу, но только при условии, что прошло 30-40 минут с последних изменений и никакая чистка кеша не помогает. В результате автооптимайз удалил, редис хостер утверждает тоже отключен, остался тотал+Fast Velocity Minify и проблема описанная выше с получасовым кешем. При этом удаляю тотал, руками через фтп все его файлы и все записи с таблицы опций в бд которые он после себя оставляет. Все равно что-то кеширует страницу на пол часа.
В теории может быть кеширование в браузере, которое имеет свои записи в .htaccess.
Больше месяца использую связку:
W3 Total Cache (кэширование) + Fast Velocity Minify (минификация).
Результат:
Google PageSpeed Insights — 95/99, но Имитация загрузки страницы ВСЕ зеленные!!!
GTmetrix (Лондон) — кол-во запросов уменьшилось в 2 раза, время в 2 раза….
И может быть такое счастье?
Добрый день Дмитрий,
прошу Вас подсказать, надо включать HTTP/2 push?
и как проверить результат?
/не где не нашел ответ на этот вопрос/
Заранее благодарен.
Здравствуйте, Сергей,
HTTP/2 push можно включить, если поддерживает сервер (Apache 2.4.17 и nginx 1.9.5).
проверить можно в заголовке страниц, должно быть что-нибудь подобное:
Если в W3TC отключена минификация для авторизованных пользователей, то изменений не будет.
Спасибо за ответ!
Но мне на хостинге ответили: «В рамках виртуального хостинга HTTP/2 PUSH не поддерживается.»
и так бывает…
Хотя Apache 2.4.39 и nginx 1.14.1.
Да, виртуальный хостинг тоже может быть ограничением.
Добрый день!
Огромное Вам спасибо за подробное описание плагина W3 Total Cache.
Подключил на хостинге (SSD, PHP memory_limit 128МБ, OPcache 96МБ) Memcache 128МБ.
В W3 Total Cache включил секции «Page Cache», «Minify», «Database Cache», «Object Cache». Все «Test passed».
У меня у Вам вопрос, какое выставить обновления обновляются (сохранение) в кеше.
Секции:
«Page Cache: Cache Preload»,
«Minify: Advanced»,
«Database Cache: Advanced»,
«Browser Cache: General»
Заранее благодарен.
Здравствуйте, спасибо за отзыв.
Если не ошибаюсь, везде стандартные настройки, кроме browser cache.
«Page Cache: Cache Preload» = 900, 10.
«Minify: Advanced» = 86400
«Database Cache: Advanced» = 180, 3600
«Browser Cache: General» = 691200 (8 дней), 3600, 31536000
После изменений сбросьте весь кеш в Performance -> Purge All Caches, чтобы изменения попали в новый кеш.
Большое спасибо за ответ!
Добрый вечер!
Можно ли удалить плагин W3TC минуя админку?
Если удалить папку с плагином с сервера вручную, а затем проделать все шаги начиная с шага 5, каков будет результат? Нужно ли при этом что-то удалять в Базе данных?
Здравствуйте,
Можно удалить и с сервера, результат будет такой же.
В базе данных вы можете удалить в таблице Options все записи, которые начинаются с w3tc_.
Большое спасибо за ответ. В таблице cron нашла записи с w3_pgcache_prime. Это тоже нужно удалить или не будет влиять. Не могу разобраться с чего начинается и чем заканчивается запись
Да, в расписании тоже можно удалить.
«Не могу разобраться с чего начинается и чем заканчивается запись»
Вы это имеете в виду?