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 в месяц.