Переходите с UptimeRobot? Импортируйте мониторы одним кликом по ключу API только для чтения.Начать бесплатно →
  1. Главная
  2. Блог
  3. WordPress

Пять проверок для каждого сайта на WordPress

Одного кода ответа мало: он не ловит большинство сбоев WordPress. Пять внешних проверок для ошибок базы данных, входа, wp-cron, SSL и срока действия домена.

WordPress

WordPress ломается так, что простая проверка доступности этого не замечает. Классический пример: пропадает база данных, WordPress показывает аккуратную страницу с текстом «Error establishing a database connection» и отдаёт её с кодом HTTP 200. Монитор говорит, что всё в порядке. Клиенты вашего клиента видят ошибку.

Ниже пять внешних проверок, которые мы настраиваем на каждом сайте WordPress: зачем нужна каждая и как её настроить. Вместе они образуют стандартный набор, который можно создать в Tenium вручную или из CSV; готового шаблона в один клик нет.

1. Главная страница: код ответа плюс ключевое слово

Проверка главной страницы должна требовать две вещи: код 2xx и фразу, которая появляется только тогда, когда сайт отобразился правильно.

Фраза не обязана быть видимым текстом. Хорошо подходит wp-content: каждая правильно отображённая страница WordPress ссылается на ресурсы по этому пути, а страница с ошибкой базы данных и большинство страниц с фатальной ошибкой PHP — нет. Для магазинов возьмите фразу с настоящей страницы: название магазина в футере или название первого товара.

Добавьте также правило не должна содержать для Error establishing a database connection и Fatal error. Тогда типичные сбои превратятся в чёткие оповещения с понятным сообщением вместо «ключевого слова нет».

Интервал: 30 или 60 секунд. Именно эта проверка отправляет вам оповещения.

2. Страница входа

/wp-login.php — место, где чаще всего сбоят плагины безопасности и WAF. Wordfence ограничивает частоту запросов, правило Cloudflare требует проверки от всех, обновление плагина меняет адрес входа, а файрвол хостинга блокирует страну, в которой сидит ваш офис. Сайт работает, но войти не может никто, включая вас, и первым об этом узнаёт редактор на стороне клиента.

Отслеживайте https://example.com/wp-login.php и ожидайте ответ 200 с ключевым словом user_login. Если вы изменили адрес входа, отслеживайте новый. Интервал: 5 минут вполне достаточно.

Оговорка: плагин безопасности может блокировать повторные запросы к странице входа. Добавьте IP-адреса или User-Agent монитора в белый список (allow-list) в настройках плагина; схема правила описана в руководстве по Cloudflare.

3. Heartbeat для wp-cron

В WordPress нет настоящего cron. Запланированные публикации, резервные копии, синхронизация остатков в WooCommerce и служебные задачи плагинов запускаются из wp-cron.php, а тот срабатывает при посещении страниц. На сайте с небольшой посещаемостью или там, где разработчик отключил wp-cron и ничего не поставил взамен, запланированные задачи молча останавливаются. Сайт выглядит здоровым. Резервные копии не создавались уже три месяца.

Решение — heartbeat-монитор: уникальный адрес, на который должен приходить пинг не реже чем раз в N минут. Heartbeat-мониторы начинаются со Starter. Создайте такой монитор в Tenium с периодом 15 минут и допуском (grace) 15 минут, а затем положите этот must-use-плагин в wp-content/mu-plugins/tenium-heartbeat.php:

<?php
/* Plugin Name: Tenium heartbeat */
add_action('init', function () {
  if (!wp_next_scheduled('tenium_heartbeat')) {
    wp_schedule_event(time(), 'hourly', 'tenium_heartbeat');
  }
});
add_filter('cron_schedules', function ($s) {
  $s['tenium_15'] = ['interval' => 900, 'display' => 'Every 15 minutes'];
  return $s;
});
add_action('tenium_heartbeat', function () {
  wp_remote_get('https://ping.tenium.app/h/YOUR_HEARTBEAT_ID', ['timeout' => 5, 'blocking' => false]);
});

Когда расписание зарегистрировано, замените 'hourly' на 'tenium_15' или оставьте ежечасный запуск и задайте период 90 минут. Если wp-cron остановится, heartbeat замолчит, а вы получите оповещение, которое говорит именно об этом.

Бонус: если вы заменили wp-cron настоящим системным cron (*/5 * * * * wp cron event run --due-now), добавьте в конец этой строки && curl -fsS https://ping.tenium.app/h/YOUR_ID.

4. Срок действия SSL-сертификата

Let’s Encrypt обновляет сертификаты автоматически — вплоть до того дня, когда перестаёт: изменилась DNS-запись, закрыт порт 80, сработало ограничение частоты запросов или сайт переехал на другой хостинг. Внешний SSL-монитор читает сертификат, который действительно видят посетители, и оповещает за 30, 14 и 3 дня до окончания срока действия, а также сразу, если сломалась цепочка сертификатов или не совпадает имя хоста.

Каждый https-монитор в Tenium заодно записывает срок действия, так что проверка главной страницы это уже делает. Отдельный SSL-монитор добавляет проверку цепочки и издателя и показывает чёткое «осталось 61 день» на странице статуса клиента и в месячном отчёте. Если вам приходилось в понедельник утром восстанавливать просроченный сертификат, эту проверку вы не пропустите.

5. Срок действия домена

Домен обычно зарегистрирован на клиента, к карте, срок действия которой истёк два года назад, а письма о продлении уходят бывшему сотруднику. Вы узнаёте об этом, когда вместо главной страницы открывается парковочная страница с рекламой. Это 100% простоя, к которому добавляется ущерб репутации.

Монитор домена раз в неделю проверяет реестр через RDAP или WHOIS и оповещает за 60, 30, 14 и 7 дней до окончания срока действия. Он также замечает смену серверов имён и статусы clientHold. Если у агентства сорок клиентских доменов, список мониторов становится календарём продлений, а дата окончания попадает в отчёт каждого клиента, что обычно подталкивает к разговору о продлении вовремя.

Плагин, который этого не умеет

Плагины и сервисы для управления сайтами (ManageWP, MainWP, WP Umbrella и подобные) отлично справляются с обновлениями, резервными копиями и сканированием безопасности изнутри WordPress. Но сообщить, что сайт не работает, они не могут: когда лежит сайт, лежит и плагин. Внешний мониторинг и управление изнутри дополняют друг друга; пользуйтесь обоими и включите оба в план сопровождения сайта.

Настройка для сорока сайтов

В Tenium вставьте адреса сайтов по одному на строку или загрузите CSV: каждый URL станет HTTP-монитором, а проверки ключевого слова, сертификата и домена вы добавляете для каждого сайта отдельно (или указываете их дополнительными строками CSV с типом и ключевым словом). Сорок сайтов — это около 200 мониторов, что укладывается в тариф Pro за $29 в месяц. Если вы хотите, чтобы у каждого сайта было собственное пространство клиента с отдельным входом и отчётом под вашим брендом, который приходит первого числа, вам нужен тариф Agency за $59, где есть место для 1000 мониторов.

Подробнее о каждой проверке читайте на странице мониторинга WordPress.

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

У каждой из пяти проверок есть отдельная страница: мониторинг сайта, мониторинг по ключевому слову, мониторинг cron-задач, мониторинг SSL и мониторинг срока действия домена. Обзор для этой аудитории — мониторинг сайтов на WordPress, а любой адрес можно проверить инструментом для HTTP-заголовков. Как это масштабируется для агентств, смотрите на странице для агентств.


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

Связанные страницы Tenium

Начните следить за первым сайтом бесплатно

30 мониторов бесплатно, проверки из 2 регионов, без банковской карты. Проверка SSL и срока действия домена — от $7 в месяц.