W3 Total Cache: Решение проблем

W3 Total Cache большой и сложный плагин. Когда он работает правильно — все в порядке, страницы загружаются быстро. Но когда что-то начинает работать не так, приходится искать источник проблемы, найти который бывает непросто из-за размера плагина.

В данной статье вы узнаете решения для часто возникающих проблем W3TC:

  • Как вручную минифицировать CSS и JS без нарушения работы веб-сайта
  • Как узнать, работает W3 Total Cache или нет
  • Как использовать W3 Total Cache с PHP 7
  • Как изменить W3 Total Cache для работы с Memcache
  • Как исключить определенные страницы из кеширования
  • Как отключить всплывающее окно в параметрах W3 Total Cache
  • Как в полном объеме удалить W3 Total Cache
Каска и гаечные ключи

Как вручную минифицировать CSS и JS без нарушения работы веб-сайта

Обычно сложно предсказать результат минификации 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.

    1. Включите режим Manual для минификации файлов.В разделе General Settings спуститесь в секцию Minify, выберите режим Manual и сохраните изменения.
    2. Добавьте все JS файлы в ручной список. Performance -> Minify, нажмите кнопку help наверху страницы. В появившемся окне спуститесь вниз списка JS файлов и нажмите кнопку Check / Uncheck All для выделения всех JS файлов и нажмите Apply & close. Не добавляйте CSS файлы на этом этапе. Сделайте изменения в JS файлах, чтобы веб-сайт начал работать нормально, не затрагивая CSS файлы.
    3. Установите такой порядок загрузки JS файлов, который не нарушает работу веб-сайта
      • Поставьте файл jquery.js на первое место загрузки.
      • Поставьте все остальные файлы в той очередности, в которой веб-сайт работает правильно.
      • Переносите файлы из секции <head> в секцию <body> по одному, используя non-blocking способ.
      • После каждого изменения очищайте кеш и проверяйте изменения на веб-сайте.
Ручной порядок загрузки JS файлов

Поставьте после файла jquery.js файлы, которые используют библиотеку jQuery, к примеру, jquery-migrate.js или jquery-ui.js. Постарайтесь поставить остальные файлы в соответствии с порядком, в котором они влияют на вывод содержимого страницы. Например, файл functions.js должен быть выше в приоритете загрузки, чем comment-reply.js, так как functions.js включает основные скрипты / возможности, а загружать comment-reply.js можно позже, когда начнет загружаться часть страницы с комментариями.

Критичные файлы должны быть загружены в начале загрузки страницы, более второстепенные должны загружаться ниже в странице после тега <body> или </body>.

Сохраняйте изменения после каждого шага и проверяйте их на веб-сайте.

Если вы хотели бы начать сначала, удалите все файлы кнопкой Delete и добавляйте их по одному кнопкой help. Тестируйте различное расположение файлов на странице и оставьте лучший результат.

    1. Добавьте все CSS файлы в ручной список.Нажмите кнопку help и добавьте все CSS файлы.
    2. Расположите CSS файлы в порядке важности. Если веб-сайт выводится неправильно, удалите все CSS файлы из ручного и добавляйте их по одному через кнопку help. Проверяйте веб-сайт после каждого изменения и найдите файл, который нарушает внешний вид. Удалите этот файл и не добавляйте его снова.

Следуя данной инструкции вы можете легко добавить все(или почти все) файлы CSS и JS, минифицировать их и расположить в нужной последовательности, чтобы веб-сайт загружался правильно и число предупреждений в тесте Гугл уменьшилось до минимума.

Как узнать, работает W3 Total Cache или нет

В результате работы плагина программный код страницы минифицирован(записан в одну строку), комментарии удалены:

Как выглядит оптимизированная страница

Откройте нужную страницу и посмотрите ее код(В браузере Хром, правой кнопкой на странице и выберите Просмотреть код страницы).

Если вы планируете увидеть служебную информацию о работе плагина, включите режим Debugging в разделе General Settings.

В секции Debug находится 6 чекбоксов, но доступны только те чекбоксы, модули которых включены в разделе General Settings.

Режим debug

К примеру, на данной картинке доступны 4 чекбокса, так как только данные 4 модуля включены в разделе General Settings.

Включите все доступные чекбоксы, нажмите Save all settings и сбросьте кеш, если потребуется. После этого откройте нужную страницу и посмотрите ее программный код. Спуститесь вниз страницы и вы увидите отладочную информацию для каждого активированного модуля.

Отладочная информация W3TC

Поскольку в разделе Minify следует параметр Удалять комментарии в html-коде, чтобы увидеть эту информацию временно отключите эту возможность или весь раздел Minify.

Как использовать W3 Total Cache с PHP 7

Если у вас есть проблема несовместимости 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 в нескольких файлах на сервере. В этом случае после обновления плагина данные изменения будут заменены новой версией файлов.

Как изменить W3 Total Cache для работы с Memcache

Обычно проблема заключается в том, что модуль Memcached установлен на сервере, но не распознается W3 Total Cache, и тест совместимости W3TC говорит, что Memcached не установлен и не предоставляет его в виде модуля кеширования.

Решение проблемы в том, чтобы установить модуль PECL memcache PHP. Модуль Memcached тоже должен быть установлен на сервере, но для Memcache кеширования также нужен модуль PECL memcache PHP.

Установите оба модуля, — модуль кеширования Memcached и PECL memcache PHP(не PECL memcache d 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 о том, что кеширование для данной страницы выключено.

Сейчас каждому пользователю страницы будет показываться динамическая версия страницы с сервера.

Как отключить всплывающее окно в параметрах W3 Total Cache

Через 30 дней после первой установки W3 Total Cache начинает появляться всплывающее окно, которое предоставляет поставить ссылку на W3TC на веб-сайте, написать сообщение в Твиттер, поставить оценку плагину на WordPress.org и подписаться на рассылку W3 EDGE.

Маркетинговое всплывающее окно W3TC

Если вы нажмете на «х» в правом верхнем углу, то вы закроете это окно, но оно будет появляться снова.

Чтобы в полном объеме отключить это окно, вместо «х» нажмите Cancel . После этого окно исчезнет и больше появляться не будет.

Как в полном объеме удалить W3 Total Cache

Если вы хотели бы в полном объеме удалить W3 Total Cache, то вам понадобится доступ к серверу, поскольку этот плагин оставляет некоторые файлы после удаления из WordPress.

  1. Удалите весь кеш плагина кнопкой Purge All Caches в админ баре или в разделе Dashboard .
  2. В разделе General Settings выключите все модули плагина и нажмите Save all settings .
  3. В разделе Плагины деактивируйте W3TC, после этого удалите плагин и все связанные с ним файлы.
  4. Через FTP-клиент или файл менеджер на веб-хостинге откройте папку my-site.ru/wp-content/plugins , и проверьте, что папка W3 Total Cache удалена.
  5. В папке wp-content удалите папки w3tc-config и cache , и файлы
    • advanced-cache.php ,
    • db.php ,
    • w3-total-cache-config.php ,
    • object-cache.php (если модуль object cache был включен).
  6. В корневой папке веб-сайта откройте файл wp-config.php .Удалите строку “ define (WP_CACHE’, true); ” или замените « true » на « false » и сохраните файл.
  7. В корневой папке веб-сайта откройте файл .htaccess .W3 Total Cache добавил ваши параметра, которые начинаются с комментария « # BEGIN W3TC [тип кеширования] ” и заканчиваются комментарием» # END W3TC [тип кеширования] ”.Комментариев пару, можно без проблем воспользоваться поиском по документу Ctrl +
    F
    .Удалите комментарии и сохраните файл.

После этого W3TC будет в полном объеме удален с сервера.

Если плагин действительно ускоряет веб-сайт и вы довольны его работой, хорошая идея написать отзыв на плагин на WordPress.org .

Читайте также:

  1. Полный гид по W3 Total Cache. Введение в кеширование

  2. Как изменить W3 Total Cache: подробное описание

  3. W3 Total Cache: Решение проблем

  4. W3 Total Cache: Параметра для виртуальных веб-хостингов

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *