Как Яндекс.Дзен, плагин кэширования для WordPress и хостинг повысили мое давление / Хабр
Это статья, скорее, из серии «хозяйке на заметку». Ну и еще немного о личных переживаниях и раздолбайстве.
Если вам приходится сталкиваться с сайтами на WordPress, на которых установлен плагин кэширования WP Super Cache, то статья может быть для вас небесполезна. В остальном, это просто небольшая история.
Вкратце, начало истории таково: жил был сайт. Тематический информационно-новостной. Сделанный неведомым мастером на CMS WordPress. И сделанный ровно так, как того позволяли в тот момент средства его владельца. Со временем сайт набирал популярность, количество посетителей росло. Сам сайт «зарабатывал» на рекламе. Т.е. чем больше посетителей — тем лучше. В какой-то момент, при пиковых нагрузках, сайт начал сдавать: страницы загружались медленно и все такое. Но, конечно, пока петух не клюнул, никто особо не шевелился. Петух появился в момент, когда сайт должен был освещать некоторое привлекающее внимание публики событие. Посетители набежали, сайт лег, а все предполагаемые доходы таяли на глазах. В силу обстоятельств в качестве реаниматора пришлось выступать мне. Об этом я написал тогда статью. Мое решение было жутковатым (не повторяйте), но главная цель была выполнена — мечты были спасены. В основном.
Разумеется, никто не был заинтересован в повторении подобной ситуации и над сайтом поработали. В первую очередь — выяснили причины падения и высокой нагрузки на сервер. Они были банальны: отсутствие на сайте кэширования как такого и скверно реализованный механизм учета и показа количества просмотров статей. Последний сам по себе создавал приличную нагрузку: при каждом запросе страницы статьи он брал из базы данных количество просмотров этой статьи, выводил его, а затем прибавлял единицу и записывал обратно в БД. При этом для хранения использовалась таблица
Проблему кэширования решили просто: в спокойной обстановке нормально установили плагин WP Super Cache. Что, многие, если я правильно помню, советовали мне сделать вместо жутковатого костыля, который я соорудил, в комментариях к той моей статье. Честно говоря, я и тогда и сейчас плохо ориентировался в экосистеме WordPress и поэтому и появился тот костыль. Плагин кэширования ставили и настраивали уже знающие люди и он хорошо встал прямо «из коробки». Таким образом была решена проблема кэширования. Почему был выбран именно этот плагин — я точно не знаю. Насколько я понимаю, это один из самых популярных плагинов такого типа для WP.
С учетом просмотров поступили несколько иначе. Понятно, что от изначального механизма нужно было отказаться. От самого учета просмотров отказываться не хотелось: на него, как минимум, был завязан показ блоков вроде «самые популярные статьи за неделю». Все плагины для учета просмотров, даже если они и «дружили» с плагином кэширования, оказались весьма прожорливыми и, чаще всего, реализовывали тот же механизм с записью и извлечением данных из wp_postmeta.
И вот, проходит довольно продолжительное время. Опять ночь и опять старая история. На сайт идет довольно мощный трафик и сайт начинает падать. И опять я оказываюсь единственным бодрствующим условным специалистом в округе. Я, конечно, удивлен повторению событий. Первая мысль — кто-то случайно отключил кэширование. Но нет, в исходном коде страницы сайта, который отдает мне падающий сервер я вижу признаки работы плагина кэширования. Все должно быть ok. Но в панели управления сервером я вижу, что оперативной памяти не осталось, количество запросов к БД неимоверное и все плохо. Первым делом, я открываю страницу с описанием плагина, быстро пробегаю ее глазами, ничего не обнаруживаю и оставляю это занятие. Следующий шаг — посмотреть статистику. Я вижу, что основной поток трафика льется на сайт с Яндекс.Дзен. И запрос, который приводит пользователя на сайт, выглядит так:
https://example.com?utm_referrer=https:%2F%2Fzen.yandex.comТ.е. Яндекс.Дзен добавляет свою utm-метку к адресу. Поскольку сервер уже окончательно лежит и отдает мне только 500, то проверить теорию о том, что страницы с таким «довеском» почему-то не кэшируются, я толком не могу. Поэтому рождается очередной «костыль» (впоследствии был заменен): в .htaccess добавляется редирект, который преобразует запрос с utm-метками в запрос без них до того, как в дело вступит WordPress и все его могучие плагины.
Тут я расслабился и полез спокойно смотреть настройки плагина кэширования. В первую очередь — галочку «Не кэшировать страницы с параметрами GET», которая там есть. Все нормально, она не стоит. Плюс, как показал эксперимент, плагин отлично справляется с кэшированием запросов с любым набором произвольных параметров. Если это не utm-метки (на самом деле, я срезал редиректом только запросы определенного вида, а не все, где есть utm-метки).
Вот тут я внимательнее (с помощью CTRL+F) пригляделся к странице плагина. И нашел там в FAQ славный пункт “How should I best use the utm_source tracking tools in Google Analytics with this plugin?”. Понятно, что при первом беглом осмотре я его благополучно проигнорировал: вроде бы ничего общего с проблемой. При этом, кстати, он не то чтобы очень содержательный и не предлагает какой-то конкретный путь решения.
Единственный возможно полезный вывод в статье: если у вас сайт на WP с плагином WP Super Cache, то проверьте, что он делает (или не делает), если ему на вход подать запрос со параметрами «?utm_referrer=https:%2F%2Fzen.yandex.com» и т.п. Я не уверен, что при установке этого плагина все так уж внимательно читают его FAQ. Конкретная реализация, судя по всему, остаются за владельцами сайта: когда я в последний раз смотрел на обновление этого плагина, никаких изменений по поводу его странной реакции на utm-метки я не увидел.
Но история была бы неполной (и я не стал бы ее рассказывать), если бы не случилось очередного подтверждения закона Мерфи. Пока мы мирно переписывались со владельцем сайта и наблюдали, как сайт спокойно работает около часа … сайт упал. Неожиданно и окончательно. Нет доступа к панели управления сервером, не работает FTP, SSH и все прочее. Ничего не работает. Если до этого мое давление было лишь слегка поднято решением задачи, которую подкинули Я.Дзен и плагин кэширования (ведь это отдельное удовольствие — быстро понять и починить что-то в условиях легкой нервотрепки), то тут со мной приключилась целая мини-паническая атака.
Вот такая история.
RSS for Yandex Zen — WP Hive
Version: 1.28
Создание RSS-ленты для сервиса Яндекс.Дзен.
Overall Rating
WordPress Rating
Want to write review?
Are you an author of this plugin? Want to write a more detailed review?
Submit Review
The plugin has some issues
Tests done by WP Hive test script Results
Minimal impact on memory usage The memory usage of this plugin is less than the average memory usage of other plugins on WordPress.org + 200KB. Check FAQ for more.
Minimal impact on pagespeed The impact of this plugin on PageSpeed is less than the average impact of other plugins on WordPress.org + 1000 milliseconds
No PHP errors, warning, notices WP Hive automated test found no PHP error while activating this plugin on our server
No Javascript issues WP Hive automated test found no JavaScrip error while activating this plugin on our server
Latest PHP 7.4.8 compatible WP Hive automated test found the plugin fully compatible with the latest version of PHP
Latest WordPress 5.9 compatible WP Hive automated test found the plugin fully compatible with the latest version of WordPress
Optimized database footprint The plugin creates less than 50 database tables
No activation errors WP Hive automated test found no activation error while activating this plugin on our server
No resource errors WP Hive automated test found no resource error/s while trying this plugin on our server
Frequently updated The plugin was not updated at least once in the last 90 days
About RSS for Yandex Zen
Performance
Page Speed
- Average page loading time is increased by 0. 02 s
- This is faster than99%plugins
Speed Test Benchmark Learn more how we collect the data
- Before plugin activation
- After plugin activation
Pages
Benchmark
Change
Average Change
— 0.02s
/(front page)
— 0.05s
/wp-admin/edit-comments.php
— 0s
/wp-admin/edit-tags.php?taxonomy=category
— 0.01s
/wp-admin/edit.php
+ 0.01s
/wp-admin/index.php
— 0.07s
/wp-admin/media-new.php
— 0.04s
/wp-admin/options-discussion.php
+ 0.09s
/wp-admin/options-writing.php
— 0.24s
/wp-admin/post-new.php
+ 0.17s
/wp-admin/post-new.php?post_type=page
+ 0.02s
/wp-admin/upload.php
— 0.07s
MoreLess
Memory Usage Benchmark Learn more how we collect the data
- Before plugin activation
- After plugin activation
Pages
Benchmark
Change
Average Change
+ 13. 53KB
/ (front page)
— 4.2KB
/wp-admin/edit-comments.php
+ 1.79KB
/wp-admin/edit-tags.php?taxonomy=category
+ 2.93KB
/wp-admin/edit.php
+ 1.95KB
/wp-admin/index.php
+ 1.93KB
/wp-admin/media-new.php
+ 2.81KB
/wp-admin/options-discussion.php
+ 2.89KB
/wp-admin/options-writing.php
+ 0.77KB
/wp-admin/post-new.php
+ 2.68KB
/wp-admin/post-new.php?post_type=page
+ 2.25KB
/wp-admin/upload.php
+ 2.79KB
MoreLess
User Rating of RSS for Yandex Zen from WP Hive Users
Rate Now
Stats
More
Database Tables
The plugin has added 0 additional options to your WordPress.
WP-Options
The plugin has added 1 additional options to your WordPress website.
- yzen_options
Errors
Read more how WP Hive determines this data.
Show Off Your Plugin
PHP 7.
4.8Powered by WP Hive
WP 5.9
Powered by WP Hive
PHP 7.4.8 WP 5.9
Love using this plugin?
Why don’t you compare the plugin side by side
with another plugin
Start Comparing
Ratings & Reviews
Overall Quality
5
Ease of Use
5
Quality of Support
5
Value for Money
5
Features
5
Like what you see?
Subscribe to get more quality reviews and articles.
Social Reviews and Recommendations Widgets Review Write a Review
5
5 stars 4 stars 3 stars 2 stars 1 star
4
5 stars 4 stars 3 stars 2 stars 1 star
3
5 stars 4 stars 3 stars 2 stars 1 star
2
5 stars 4 stars 3 stars 2 stars 1 star
1
5 stars 4 stars 3 stars 2 stars 1 star
Are you an author
of this plugin? Write a Review
Overall Quality
5 stars 4 stars 3 stars 2 stars 1 star
Ease of Use
5 stars 4 stars 3 stars 2 stars 1 star
Quality of Support
5 stars 4 stars 3 stars 2 stars 1 star
Value for Money
5 stars 4 stars 3 stars 2 stars 1 star
Features
5 stars 4 stars 3 stars 2 stars 1 star
Pros & ConsOverallChangelog
First Name
Last Name *
E-mail *
Password *
Confirm Password *
Strength indicator
Business Email
Profession
Plugin Name
RSS для Яндекс Дзен для WordPress
RSS для Яндекс Дзен для WordPress Discover/
WordPress/
RSS для Яндекс ДзенQuick & Easy
Найти лучшее Плагины WordPress для вас
Common Ninja имеет большой выбор мощных подключаемых модулей WordPress, которые просты в использовании, полностью настраиваются, подходят для мобильных устройств и имеют множество функций — так что обязательно ознакомьтесь с ними!
Testimonial
Testimonial плагины для WordPress
Галереи
Плагины галерей для WordPress
SEO
SEO плагины для WordPress
Контактная форма
Плагины контактных форм для WordPress
Формы
Плагины Forms для WordPress
Social Feeds
Плагины Social Feeds для WordPress
Social Sharing
Плагины Social Sharing для WordPress
Календарь событий
Плагины календаря событий для WordPress
Sliders
Плагины Sliders для WordPress
Аналитика
Аналитика плагинов для WordPress
Обзоры
Обзоры плагинов для WordPress
Комментарии
Комментарии плагины для WordPress
90 018 ПортфолиоПлагины портфолио для WordPress
Карты
Плагины карт для WordPress
Безопасность
Плагины безопасности для WordPress
Перевод
Плагины перевода для WordPress
Ads
Плагины Ads для WordPress
Video Player
Плагины Video Player для WordPress
Music Player
Плагины Music Player для WordPress
Backup
9000 4 Плагины резервного копирования для WordPressКонфиденциальность
Плагины конфиденциальности для WordPress
Оптимизация
Плагины оптимизации для WordPress
Чат
Плагины чата для WordPress
Обратный отсчет
Плагины обратного отсчета для WordPress
Email-маркетинг
Плагины Email-маркетинга для WordPress
Вкладки
Плагины вкладок для WordPress
Членство
Плагины членства для WordPress
всплывающее окно
900 04 плагина всплывающих окон для WordPressSiteMap
плагины SiteMap для WordPress
Оплата
Платежные плагины для WordPress
Скоро
Скоро появятся плагины для WordPress
Электронная торговля
Электронные торговые модули для WordPress
Служба поддержки клиентов
Плагины поддержки клиентов для WordPress
Инвентаризация
Плагины инвентаризации для WordPress
Видеоплеер
Плагины видеоплеера для WordPress
Отзывы
Плагины отзывов для WordPress
Вкладки
Плагины вкладок для WordPress
Social Sharing
Плагины Social Sharing для WordPress
Social Feeds
Social Feed плагины для WordPress
Slider
Плагины слайдера для WordPress
Отзывы
Обзоры плагинов для WordPress
Портфолио
Плагины портфолио для WordPress
Членство
9 0004 Плагины членства для WordPressФормы
Плагины форм для WordPress
Календарь событий
Плагины календаря событий для WordPress
Контакты
Плагины контактов для WordPress
Комментарии
Плагины комментариев для WordPress
Аналитика
Плагины аналитики для WordPress
Приложения Common Ninja
Одни из лучших плагинов Common Ninja для WordPress коммерческая платформа или конструктор сайтов.
Лента Twitch
Создавайте потрясающие ленты Twitch и улучшайте взаимодействие с пользователем
Прокрутите до кнопки элемента
Улучшите навигацию, улучшите взаимодействие с пользователем и повысите вовлеченность
Маркетинговая кнопка
Повышение конверсии и увеличение продаж
Кнопка «Вверх»
Улучшение навигации, улучшение пользовательского опыта и повышение вовлеченности
Процесс
Представление информации в организованном, визуально привлекательном виде
90 018 Лента TumblrСоздать Красивые каналы Tumblr и улучшение взаимодействия с пользователем
Список филиалов компании
Улучшение качества обслуживания клиентов с помощью приложения «Список филиалов компании»
Кнопка подписки
Упростите процесс подписки, чтобы повысить вовлеченность и конверсию
Чат WhatsApp
Используйте чат WhatsApp для общения, поддержки и улучшения пользовательского опыта
Обратный отсчет съели посетителей
Карусель карт
Визуально улучшите свой веб-сайт и привлеките внимание к потрясающей карусели карт
Всплывающее уведомление
Доставьте важные сообщения пользователям и улучшите их опыт
Другие плагины
Плагины, которые могут вам понравиться
Откройте для себя приложения по платформам
Откройте для себя лучшие приложения для вашего сайта плагины, инструменты, надстройки и расширения! Наша поисковая система совместима со всеми основными платформами для создания веб-сайтов, большими и малыми, и регулярно обновляется.
Она предоставляет вам бизнес-инструменты, необходимые вашему сайту!Yandex.Zen PostGrid — WP Hive
Версия: 0.5
Плагин позволяет отображать последнюю запись с вашего канала ZEN
Общий рейтинг
Рейтинг WordPress
Хотите написать отзыв?
Вы автор этого плагина? Хотите написать более подробный отзыв?
Отправить отзыв
У плагина есть проблемы
Извините, приятель! Плагин не смог пройти все наши тесты. Никаких обид, верно?
Тесты, выполненные тестовым скриптом WP Hive Результаты
Минимальное влияние на использование памяти Использование памяти этим плагином меньше, чем среднее использование памяти другими плагинами на WordPress.org + 200 КБ. Проверьте часто задаваемые вопросы для получения дополнительной информации.
Минимальное влияние на скорость страницы Влияние этого плагина на PageSpeed меньше, чем среднее влияние других плагинов на WordPress.org + 1000 миллисекунд
Нет ошибок PHP, предупреждений, уведомлений Автоматический тест WP Hive обнаружил ошибки PHP при активации этого плагина на нашем сервере
Нет проблем с Javascript Автоматический тест WP Hive не обнаружил ошибок JavaScrip при активации этого плагина на нашем сервере
.Последняя версия PHP 8.1.12, совместимая Автоматический тест WP Hive обнаружил несколько предупреждений/ошибок при тестировании с последней версией PHP. Они могут/не могут вызывать никаких проблем. Вам рекомендуется проверить себя
Последний совместимый с WordPress 6.1.1 Автоматический тест WP Hive обнаружил, что плагин может быть не полностью совместим из-за предупреждений PHP, последней версии совместимости PHP. Однако это автоматический тест, и плагин может быть полностью совместим. Вам рекомендуется проверить себя
Оптимизированный размер базы данных Плагин создает менее 50 таблиц базы данных
Нет ошибок активации Автоматический тест WP Hive не обнаружил ошибки активации при активации этого плагина на нашем сервере
Нет ошибок ресурсов Автоматический тест WP Hive не обнаружил ошибок ресурсов при проверке этого плагина на нашем сервере
.Часто обновляется Плагин не обновлялся хотя бы раз за последние 90 дней
О Яндекс.
Дзен PostGridПроизводительность
Скорость страницы
- Среднее время загрузки страницы увеличилось на 0,01 с
- Это быстрее, чем 99% плагинов
Эталонный тест скорости Узнайте больше о том, как мы собираем данные
- Перед активацией плагина
- После активации плагина
Страниц
Контрольный показатель
Изменение
Среднее изменение
— 0,01 с
/(главная страница)
— 0,05 с
/wp-admin/edit-comments.php
— 0. 01s
/wp-admin/edit- tags.php?taxonomy=category
— 0 с
/wp-admin/edit.php
— 0,01 с
/wp-admin/index.php
— 0,02 с
9000 4 /wp-admin/медиа- new.php— 0,07 с
/wp-admin/options-discussion.php
+ 0,01 с
/wp-admin/options-writing.php
— 0,01 с
/wp-admin/post-new.php
+ 0,17 с
/wp-admin/ постновый. php?post_type=page
+ 0,12 с
/wp-admin/upload.php
— 0,24 с
Больше Меньше
Тест использования памяти Узнайте больше о том, как мы собираем данные
- Перед активацией плагина
- После активации плагина
Страниц
Контрольный показатель
0 18 КБ/wp-admin/edit- tags.php?taxonomy=category
+ 1,99 КБ
/wp-admin/edit.php
+ 1,99 КБ
/wp-admin/index.php
+ 1,99 КБ
9 0004 /wp-admin/медиа -new.php+ 1,34 КБ
/wp-admin/options-discussion.php
— 0,13 КБ
/wp-admin/options-writing.php
— 1,86 КБ
/wp-admin/post-new.php
+ 2,45 КБ
/wp-admin/ постновый. php?post_type=page
+ 1,9 КБ
/wp-admin/upload.php
— 0,18 КБ
Больше Меньше
Рейтинг пользователей Яндекс.Дзен PostGrid от пользователей WP Hive
Оценить сейчас
Статистика
Подробнее
Таблицы базы данных
Плагин добавил 0 дополнительных опций в ваш WordPress.
WP-Options
Плагин добавил 0 дополнительных опций на ваш сайт WordPress.
Ошибки
Подробнее о том, как WP Hive определяет эти данные.
Журнал ошибок
Мы обнаружили следующие ошибки при активации плагина. Узнайте больше о том, как WP Hive генерирует эти данные.
- [23 ноября 2022 г. 06:52:24 UTC] Предупреждение PHP: попытка доступа к смещению массива по значению типа bool в /wp-content/plugins/display-yandex-zen-postgrid/yandex-zen- postgrid.php в строке 38
- [23 ноября 2022 06:52:24 UTC] Предупреждение PHP: попытка доступа к смещению массива для значения типа bool в /wp-content/plugins/display-yandex-zen-postgrid/yandex-zen-postgrid .php в строке 38
- [23 ноября 2022 г. 06:52:24 UTC] Предупреждение PHP: попытка доступа к смещению массива по значению типа bool в /wp-content/plugins/display-yandex-zen-postgrid/ yandex-zen-postgrid.php на линии 43