Инструкция “Кэширование файлов в плагине Ad Inserter” поможет разобраться в работе плагина Ad Inserter (Ad Inserter Pro) в связке с кэширующими плагинами для сайтов на CMS WordPress.
Это дословный перевод страницы-инструкции “Кэширование в плагине Ad Inserter” (AdInserter Caching) на русский язык из FAQ Ad Inserter. Оригинальный текст содержит много полезной, но сложной для восприятия без специальной подготовки, информации на английском языке.
Плагины кэширования можно легко установить, и они будут кэшировать ваши посты и страницы WordPress в виде статических файлов. Эти статические файлы затем передаются пользователям, снижая нагрузку на сервер. Это может значительно повысить производительность.
Следует помнить, что установка плагина кэширования не обязательно сделает ваш сайт быстрее. Проведя небольшую оптимизацию, вы сможете значительно увеличить скорость и без плагинов кэширования. Для дальнейшей борьбы с медлительностью вы можете пересмотреть производительность вашего хостинг-пакета. Возможно, вы уже переросли его. В таком случае перейдите на более качественный хостинг.
Кэширование в WordPress и плагин Ad Inserter. Что необходимо знать?
Кэширование во фронтенде (то, что видят посетители) в некоторых случаях ускоряет загрузку страниц, но может вызвать нежелательные последствия. Так во время использования плагинов для кэширования, при посещении пользователем сайта, автоматически идет создание статической страницы из динамического контента CMS.
Одновременно вызывается плагин Ad Inserter для выполнения работы – размещения блоков рекламы.
По завершению, созданная страница отправляется посетителю. Она также кэшируется (сохраняется с помощью дискового кэша) для более быстрого обслуживания других пользователей. При следующем посещении страницы посетители получают кэшированную (сохраненную статическую) страницу.
Из-за этого некоторые функции Ad Inserter на стороне сервера не могут работать, поскольку Ad Inserter не вызывается (отдается кэш), когда страница кэшируется.
Вот список функций Ad Inserter, которые перестают работать на кэшированных страницах сайта:
- Ad rotation (ротация рекламы).
- Server-side device detection (определение устройства на стороне сервера).
- Server-side referer check (определение реферал-источника на стороне сервера).
- Server-side cookie check (проверка куки на стороне сервера).
- GEO targeting (IP address check) (ГЕО тергетинг)
- Scheduling (расписание).
- User check (проверка пользователя).
- Debugging functions (функции отладки).
Когда вам нужны функции, перечисленные выше, вы должны отключить кэширование (по возможности только на выбранных страницах, где это необходимо). Однако Ad Inserter поддерживает некоторые из вышеперечисленных функций даже при включенном кэшировании:
- Client-side ad rotation (ротация на на стороне клиента в браузере).
- Client-side device detection (определение устройства на стороне клиента).
- Client-side referer check (определение реферал-источника на стороне клиента).
- Client-side cookie check (определение куки на стороне клиента).
- Client-side client check (определение клиента на стороне клиента).
- PRO Client-side GEO targeting (country detection) (определение местоположения клиента GEO на стороне клиента).
- PRO Client-side IP address check (определение IP адреса на стороне клиента).
- PRO Client-side scheduling check (проверка планирования на стороне клиента).
Чтобы перечисленные функции на стороне клиента работали, необходимо установить Dynamic blocks (вкладка ⚙ / вкладка Общие) в положение client-side (код, выполняемый в браузере посетителя). Ad Inserter поддерживает два режима работы динамических блоков на стороне клиента: Client-side show (показ на стороне клиента) и Client-side insert (вставка на стороне клиента).
Оба генерируют код Javascript для выполнения в браузере пользователя. Client-side show использует CSS для скрытия кода, который нужно скрыть. Client-side insert использует Javascript для вставки кода, когда это необходимо или разрешено.
Client-side show хорошо подходит для статических баннеров (картинок и текста), так как они все загружаются и показываются только тогда, когда это необходимо. Но некоторые рекламные блоки (например, Google AdSense) могут работать неправильно или будут нарушать условия программы Adsense. В этом случае следует использовать режим Client-side insert.
Внимание! Крайне важно, чтобы плагин кэширования/оптимизации НЕ ИЗМЕНЯЛ код Javascript, генерируемый Ad Inserter. Если он оптимизирует или изменяет код javascript на странице, он должен обеспечить его целостность, чтобы код оставался функциональным и на странице не появлялись ошибки Javascript. Пожалуйста, обратитесь в службу поддержки вашего плагина кэширования, если у вас возникли проблемы, когда он включен.
Важно! Показ на стороне клиента хорошо подходит для баннеров, поскольку они загружаются и отображаются только тогда, когда это необходимо, но некоторые рекламные объявления (например, AdSense) не могут быть использованы таким образом – в этом случае используйте режим вставки на стороне клиента.
Важно! Некоторые рекламные коды используют старый метод JavaScript document.write, который нельзя использовать асинхронно (после загрузки и создания страницы). Режим вставки на стороне клиента не будет работать с такими рекламными кодами.
Важно! Если вы используете W3 Total Cache для кэширования, то вы можете использовать ротацию объявлений на стороне сервера, проверку ссылок, куки, IP-адресов и стран, даже когда страницы кэшируются, так как Ad Inserter поддерживает специальные функции этого плагина кэширования. Подробнее об этом читайте в разделе W3 Total Cache.
Внимание! Если вы используете кэширование, вставленный код может не сразу появиться на странице. Убедитесь, что вы отключили кэширование при тестировании или отладке. Некоторые плагины кэширования, такие как WP Super Cache, имеют опцию отключения кэширования для известных пользователей.
Также есть возможность отключить кэширование на определенных страницах (disable caching on specific pages (button Misc / tab Insertion). Эта опция предотвратит кэширование страниц, на которых вставлены блоки кода с включенной опцией. Эта опция работает с плагинами кэширования WP Super Cache, W3 Total Cache и WP Rocket. После включения этой опции убедитесь, что вы очистили кэш.
Несколько дополнительных замечаний при использовании определения IP-адреса или страны на стороне клиента:
- Страница с динамическими блоками должна получить доступ к странице
/wp-admin/admin-ajax.php
на вашем веб-сервере, чтобы получить IP-адрес и страну. Убедитесь, что она доступна и не защищена паролем. - Поскольку блок кода (если он разрешен) отображается или вставляется только после загрузки страницы и проверки страны, вы можете заметить очень короткую задержку (несколько 100 мс) перед отображением кода (или объявления).
- Когда Ad Inserter Pro (используя метод определения IP-адреса и/или страны на стороне клиента) делает блок видимым, содержимое ниже смещается вниз. Возникает эффект, который называется смещением макета. Этот эффект отслеживается индексирующим ботом Google. Наличие заметного смещения макета на странице может понизить ее в поисковой выдаче. Наличие смещения макета можно проверить на странице PageSpeed Insights.
- Метод показа на стороне клиента для определения IP-адреса и страны использует элемент div для обертывания кода(ов), даже если вы используете стиль Без обертывания.
Использование плагина Ad Inserter совместно с W3 Total Cache для WordPress
Если вы используете W3 Total Cache для кэширования, то вы можете использовать ротацию рекламы на стороне сервера (server-side ad rotation), проверку ссылок, куки, IP-адресов и стран даже при кэшировании страниц, поскольку Ad Inserter поддерживает специальные функции этого плагина кэширования. Чтобы включить этот режим, перейдите на вкладку настроек плагина Ad Inserter ⚙ / вкладка Общие и установите для параметра Динамические блоки (Dynamic blocks) значение На стороне сервера с W3 Total Cache (Server-side with W3 Total Cache) и настройте W3 Total Cache для динамического контента.
Если для параметра Динамические блоки установлено значение На стороне сервера с W3 Total Cache и вы используете ротацию объявлений, проверку ссылок, cookie, IP-адреса или страны, Ad Inserter вставляет короткий PHP-код со специальными тегами вместо блока кода. Когда плагин W3 Total Cache загружает кэшированную страницу, он выполняет этот код перед тем, как обслужить страницу. Таким образом, страница по-прежнему обслуживается из кэша, но блоки Ad Inserter динамически создаются непосредственно перед обслуживанием страницы. Таким образом, страницы обслуживаются из кэша, а код Ad Inserter по-прежнему генерируется на стороне сервера.
Настройка W3 Total Cache для работы с Ad Inserter
Важно! Полная настройка W3 Total Cache выходит за рамки этой страницы. Обратитесь к руководству по W3 Total Cache или свяжитесь с его разработчиком, если вам нужна помощь. Для работы с Ad Inserter вам необходимо сделать следующее:
- На странице настроек W3 Total Cache General Settings установить Page Cache Method to Disk: Basic.
- В настройках Page Cache под Advanced включить Late Initialization.
- Если используется минификация файлов (Minify option) добавить
mfunc
в Поле Игнорируемых комментариев (Ignored comment stems field).
После внесения этих изменений необходимо очистить кэш.
Обратите также внимание на следующее:
- Смешивание статического кэшированного и динамического содержимого – дело непростое и часто вызывает всевозможные проблемы. Ad Inserter следует рекомендациям W3 Total Cache по этому вопросу. Если это не работает, то, скорее всего, вы неправильно настроили W3 Total Cache.
- В качестве альтернативы вы можете использовать опцию клиент-сайд для динамических блоков – ваши объявления будут отображаться просто отлично, а ротация и GEO-таргетинг по-прежнему будут работать.
- Чтобы использовать динамический контент с W3 Total Cache, необходимо определить PHP-константу W3TC_DYNAMIC_SECURITY. Обычно она находится в файле wp-confing.php. Это строка безопасности, используемая при генерации PHP-кода для динамического контента. Если эта константа не определена, Ad Inserter определит и будет использовать ее.
- Не используйте функции отладки, если активировано кэширование.
- При внесении изменений в настройки W3 Total Cache очистите все кэши перед проверкой страницы.
- Если вы деактивируете плагин W3 Total Cache, Ad Inserter вместо настройки W3 Total Cache для динамических блоков (Server-side with W3 Total Cache) будет использовать кэширование на стороне сервера (Server-side).
- После активации плагина W3 Total Cache перейдите в Общие настройки W3 Total Cache и нажмите на кнопку Сохранить все настройки.