Как оптимизировать скорость плагина Ad Inserter для WordPress

Как оптимизировать скорость загрузки сайта и производительность в плагине Ad Inserter для WordPress в данной инструкции. Это дословный перевод страницы-инструкции «Как оптимизировать настройки плагина Ad Inserter» (How to optimize plugin settings) на русский язык из FAQ Ad Inserter.

Как оптимизировать скорость плагина Ad Inserter для WordPress

Ad Inserter создан для скорости работы. В обычных случаях он не должен значительно увеличивать время загрузки страницы. Конечно, если вы используете много блоков, это может немного увеличить время обработки, но все же это не должно вызвать никаких проблем. В большинстве случаев время, необходимое для вставки блоков, находится в диапазоне нескольких 10 миллисекунд.

Внимание! Обычно причиной долгой загрузки страницы является медленная загрузка и обработка внешних файлов, необходимых для рекламных кодов, которые вы вставили — проверьте, как отображается реклама. Вы можете использовать функции отладки или индивидуально отключить (приостановить) вставку для каждого блока, чтобы увидеть, какие объявления вызывают проблемы. Вы также можете проверить вкладку Сеть в веб-инспекторе в браузере, чтобы узнать, какие файлы замедляют работу страницы.

Что необходимо знать о редиректах (перенаправлениях) при работе с Ad Inserter

Важно! Обратите внимание, что Ad Inserter не делает никаких перенаправлений, он только вставляет рекламные коды в соответствии с настройками. Если вы видите какой-либо отчет (например, от GTmetrix), предлагающий минимизировать перенаправления, вам необходимо сначала проверить, где находятся перенаправления (на какой странице или домене) — если они находятся на других доменах, которые вы не контролируете, то вы ничего не можете сделать (никто, кроме рекламной сети, не может изменить это).

Перенаправление URL — это техника Всемирной паутины для передачи (редиректа) веб-страницы на другой адрес URL. Это используется, когда приложению необходимо перенаправить браузер с одного URL на другой.

Причины использования редиректа в сети Интернет

Существует несколько причин, по которым рекламные сети или веб-приложения создают перенаправления:

  • Для указания нового местоположения ресурса, который был перемещен.
  • Для отслеживания кликов, показов и регистрации ссылающихся страниц.
  • Для резервирования нескольких доменов, создания «удобных для пользователя» или «запоминающихся» доменов и URL-адресов. Также для выявления ошибочных/неправильных URL-адресов.
  • Для связи между различными частями сайта, приложения, доменами верхнего уровня с кодом страны, различными протоколами (HTTP и HTTPS). А также различными политиками безопасности. Например, неаутентифицированные и аутентифицированные страницы и т.д.
  • Добавление косой черты к именам каталогов URL, чтобы сделать их содержимое доступным для браузера.

Независимо от причины, перенаправления вызывают дополнительный цикл HTTP-запросов-ответов и увеличивают время задержки. Поэтому важно минимизировать количество перенаправлений, создаваемых вашим сайтом и плагинами. Однако, когда перенаправление происходит не на вашем домене (сайте), ничего сделать нельзя! Вы можете только перестать использовать рекламу (т.е. перестать вставлять код для рекламы) или сервисы, которые вызывают нежелательные перенаправления.

Как выяснить, что вызывает перенеправление при работе плагина Ad Inserter

Запомните! Чтобы выяснить, какой код (блок), который вы вставляете, отвечает за перенаправления, вы можете выборочно отключить (приостановить) блоки, чтобы увидеть разницу. Приостановите все активные блоки, а затем включайте (отключайте) по одному и проверяйте результаты после каждого изменения.

Важно! Обратите внимание, что отключив плагин, вы также отключите вставку всех блоков (рекламных кодов), которые вы настроили и которые могут использовать перенаправления. Это не означает, что плагин делает перенаправления или замедляет работу вашего сайта. Когда вы приостанавливаете (ставите на паузу) все блоки, Ad Inserter все еще активен и обрабатывает блоки, но не вставляет код на страницы.

Это реальный тест, чтобы увидеть разницу с Ad Inserter и без него. При отключении всех блоков вы не должны увидеть никакой разницы во времени загрузки страницы или в показателях производительности, когда плагин активен или отключен.

Внимание! Обработка вашего PHP-кода, используемого в некоторых блоках кода, также может увеличить время загрузки страницы.

Как определить скорость работы Ad Inserter

Определить, сколько времени Ad Inserter тратит на вставку кода, очень просто. Войдите в систему как администратор и перейдите на страницу, где вы хотите проверить время обработки Ad Inserter. Включите отладочную функцию Log Processing и проверьте исходный код страницы внизу. Среди прочих отладочных данных вы должны увидеть следующие строки:

PLUGIN CODE PROCESSING:  81.55 ms
PLUGIN HOOKS PROCESSING: 0.00 ms
BLOCK CODE PROCESSING:   210.08 ms
TOTAL PROCESSING TIME:   291.63 ms

Время обработки кода плагина (PLUGIN CODE PROCESSING) — это время, используемое плагином для вставки блоков кода — это время, которое сам Ad Inserter фактически добавляет к времени загрузки страницы (когда страница не кэшируется).

ВРЕМЯ ХУК-ПРОЦЕССОВ ПЛЮГИНА (PLUGIN HOOKS PROCESSING) — это время, используемое для обработки вашего пользовательского кода с помощью пользовательских крючков Ad Inserter.

ВРЕМЯ ПРОЦЕССИРОВАНИЯ БЛОКА КОДА (BLOCK CODE PROCESSING) — это время, затрачиваемое на обработку вашего PHP-кода в блоках кода Ad Inserter. Если вы не используете PHP-код, то это время должно быть равно 0.

ОБЩЕЕ ВРЕМЯ ПРОЦЕССА (TOTAL PROCESSING TIME) — это общее время, используемое плагином Ad Inserter для обработки вашего PHP-кода и вставки всех кодов на страницу.

Замедление обработки в основном связано со сложными настройками вставки абзацев в сочетании с функциями PHP для обработки строк. Это может стать заметным, если вы используете функции Multibyte для подсчета абзацев.

Однако медленная загрузка страницы может быть вызвана не только обработкой плагина. Код, который вы вставляете, также может увеличивать время загрузки страницы. Проверьте журнал обработки Ad Inserter, как описано выше. Используйте функции отладки браузера, чтобы определить природу проблемы. Ищите также скрипты, блокирующие рендеринг (ресурсы, блокирующие рендеринг).

Важно! Обратите внимание, что при отключении Ad Inserter вы также отключаете вставку всех настроенных вами кодов и блоков. Поэтому, если ваши проблемы исчезают, когда вы отключаете плагин, это НЕ свидетельствует о проблемах с плагином! Вам нужно попробовать отключить отдельные коды, чтобы понять, какой из них вызывает проблемы.

Важно! Используйте отладку бэкенда для отключения вставки различных кодов, чтобы увидеть, какой код замедляет работу вашей страницы.

PRO Если вы используете внутреннее отслеживание Ad Impression and Click Tracking (аналитику в плагине Ad Inserter) и на сайте много посетителей, сайт может начать работать медленно. Особенно, если для сайта используется дешевый хостинг. В таком случае необходимо отключить внутреннее отслеживание и использовать внешнее отслеживание (Яндекс и Google Аналитику).

Несколько советов

Проверьте, сколько времени Ad Inserter потратил на обработку кода. Включите отладочную функцию Log Processing и проверьте исходный код страницы внизу. Среди прочих отладочных данных вы должны увидеть время обработки плагина (как описано выше).

Используйте функции отладки браузера, чтобы определить характер проблемы.

Внимание! Проверьте наличие блокирующих рендеринг скриптов — поищите их в Google, это выходит за рамки документации по плагину.

Важно! Многобайтовые PHP-функции для подсчета абзацев (Multibyte PHP functions for paragraph counting) работают намного медленнее стандартных. Используйте их только тогда, когда вставка между абзацами не работает должным образом на неанглоязычных страницах.

Запомните! Если вы вставляете одно и то же объявление с одинаковыми настройками абзацев (кроме номера абзаца) более одного раза, вам следует объединить их в один блок. Вы можете перечислить все номера абзацев для одного блока кода. Это ускорит обработку, так как параграфы будут учитываться только один раз.

Сократите количество установленных плагинов

Каждый плагин замедляет скорость работы вашего сайта. Попробуйте уменьшить количество установленных плагинов. Если вы используете отдельный плагин для следующей функции, вы можете удалить его и использовать вместо него Ad Inserter:

  • Для создания или редактирования файла ads.txt.
  • Чтобы вставить код верхнего и нижнего колонтитулов.
  • Чтобы вставить объявления AMP на страницах AMP.
  • Для вставки PHP-кода.
  • Для липких (фиксированных) виджетов — в некоторых случаях вам может понадобиться специальный плагин.
  • Для логики ограничения виджетов — для каждого блока вы можете определить условия.
  • Для обнаружения блокировки рекламы и отображения сообщения.
  • Для вставки кодов отслеживания, включая Google Analytics.
  • Для вставки рекламы в пользовательские хуки действий.

Оптимизация кода страницы и скриптов на странице

Вы можете использовать кэширующие или оптимизирующие плагины (например, Autoptimize) для оптимизации кода страницы и используемых скриптов, чтобы сократить время загрузки страницы.

Обратите внимание, что Ad Inserter поддерживает множество функций на стороне клиента — функций, которые выполняются в браузере посетителя. Эти функции используют код Javascript, который использует библиотеку jQuery. Она уже предустановлена в WordPress.

jQuery — это библиотека JavaScript с открытым исходным кодом, разработанная для обеспечения простого выполнения сценариев на стороне клиента для HTML. Она работает во всех основных браузерах. jQuery широко используется для выполнения различных задач в браузере клиента, экономя пропускную способность и обеспечивая лучший пользовательский опыт. Обычно код jQuery загружается из раздела head и готов для исполнения любого Javascript.

Однако некоторые кэширующие или оптимизирующие плагины (например, Autoptimize) могут переместить его в нижний колонтитул страницы footer или пометить атрибутом defer, чтобы браузер не ждал его загрузки. Это может привести к ошибкам Javascript, так как некоторый код может не найти jQuery, поскольку он еще не загружен.

Для решения этой проблемы в Ad Inserter есть опция Wait for jQuery (вкладка ⚙, вкладка General), которая при включении добавляет дополнительный код, который будет ждать загрузки и готовности jQuery, прежде чем запустить собственный Javascript код для функций на стороне клиента. По умолчанию опция Wait for jQuery отключена. Включите ее, только если вы видите ошибку jQuery не определен (jQuery is not defined).