Если вы владелец сайта на WordPress, то, скорее всего, сталкивались с проблемой устаревших или удалённых страниц, которые всё ещё остаются в индексе поисковых систем. Это негативно сказывается на SEO и пользовательском опыте. К счастью, протокол IndexNow позволяет быстро уведомлять поисковики об изменениях на сайте, включая удаление страниц. В этой статье мы подробно разберём, как автоматизировать процесс удаления устаревшего контента из индекса с помощью IndexNow и WordPress.
Что такое IndexNow и зачем нужен быстрый удаляющий запрос
IndexNow — это открытый протокол, разработанный для быстрой передачи информации о созданных, обновлённых и удалённых URL напрямую в поисковые системы, поддерживающие этот протокол (например, Bing, Yandex). Основная цель — ускорить индексацию и актуализацию данных поисковыми системами.
Особенно важен момент удаления страниц: когда страница удалена с сайта, поисковику нужно как можно быстрее об этом узнать, чтобы убрать страницу из индекса и не показывать пользователю 404 или устаревший контент.
Традиционно поисковики узнают об удалении через регулярные сканирования, которые могут занимать недели. IndexNow позволяет уведомить поисковики моментально, что существенно улучшает качество индекса и SEO-показатели.
Автоматизация отправки удаляющих запросов IndexNow в WordPress
Для реализации автоматического уведомления поисковиков об удалении страниц в WordPress можно использовать хуки удаления постов и кастомного кода для отправки запросов по протоколу IndexNow.
Примерный алгоритм:
- Отслеживаем удаление постов или страниц с помощью
wp_trash_postилиbefore_delete_post. - Формируем JSON с URL удаляемой страницы и ключом API IndexNow.
- Отправляем POST-запрос на endpoint поисковой системы.
- Регистрируем результат для логирования и отладки.
Пример кода для автоматического отправления запроса об удалении
function indexnow_su_send_delete_url($post_id) {
// Проверяем, что это страница или пост
if (get_post_type($post_id) !== 'post' && get_post_type($post_id) !== 'page') {
return;
}
$url = get_permalink($post_id);
if (!$url) {
return;
}
$api_key = 'ваш_ключ_indexnow'; // Замените на ваш ключ
$host = parse_url(home_url(), PHP_URL_HOST);
$data = [
'host' => $host,
'key' => $api_key,
'keyLocation' => home_url("$api_key.txt"),
'urlList' => [$url],
];
$endpoint = 'https://api.indexnow.org/indexnow';
$args = [
'headers' => ['Content-Type' => 'application/json'],
'body' => json_encode($data),
'timeout' => 10,
];
$response = wp_remote_post($endpoint, $args);
if (is_wp_error($response)) {
error_log('IndexNow delete URL error: '.$response->get_error_message());
} else {
$code = wp_remote_retrieve_response_code($response);
if ($code !== 200) {
error_log("IndexNow returned status $code for URL $url");
}
}
}
add_action('before_delete_post', 'indexnow_su_send_delete_url');
В этом примере, когда пост или страница удаляется, вызывается функция, которая отправляет уведомление в IndexNow. Обратите внимание, что ключ API нужно сохранить в корне сайта в виде файла ваш_ключ_indexnow.txt с содержимым ключа.
Создание и размещение файла ключа IndexNow
Для подтверждения владения сайтом поисковики требуют разместить файл с ключом в корне вашего сайта. Это простой текстовый файл с именем ваш_ключ_indexnow.txt, в котором содержится только ключ API.
Пример создания файла ключа:
- Создайте текстовый файл с названием, соответствующим вашему ключу, например:
abcdef1234567890.txt. - Внутрь файла поместите только ключ без пробелов и лишних символов.
- Загрузите файл в корневую директорию сайта (где лежит
wp-config.php).
Проверить доступность файла можно, открыв URL https://ваш-сайт.ru/abcdef1234567890.txt. Если файл доступен, значит поисковики смогут подтвердить право на отправку запросов.
Дополнительные советы по интеграции IndexNow для удаления устаревших страниц
Чтобы максимально эффективно использовать IndexNow для удаления страниц, стоит учесть следующие моменты:
- Отправляйте запросы не только при удалении, но и при перемещении в корзину. Иногда страницы в корзине доступны и лучше сразу уведомлять поисковики.
- Ограничьте частоту отправки запросов, чтобы не превысить лимиты и не получить блокировку. Можно реализовать очередь запросов или пакетную отправку.
- Логируйте ответы от API, чтобы отслеживать успешность отправки и выявлять возможные ошибки.
- Дополнительно можно реализовать уведомление об обновлении страниц, чтобы поисковики быстрее индексировали новые данные.
Пример расширения: пакетная отправка URL для удаления
Если вы удаляете много страниц одновременно, лучше отправлять их группами. Вот упрощённый пример функции, которая принимает массив URL и отправляет их одним запросом:
function indexnow_su_send_delete_urls_batch(array $urls) {
if (empty($urls)) {
return;
}
$api_key = 'ваш_ключ_indexnow';
$host = parse_url(home_url(), PHP_URL_HOST);
$data = [
'host' => $host,
'key' => $api_key,
'keyLocation' => home_url("$api_key.txt"),
'urlList' => $urls,
];
$endpoint = 'https://api.indexnow.org/indexnow';
$args = [
'headers' => ['Content-Type' => 'application/json'],
'body' => json_encode($data),
'timeout' => 10,
];
$response = wp_remote_post($endpoint, $args);
if (is_wp_error($response)) {
error_log('IndexNow batch delete error: '.$response->get_error_message());
} else {
$code = wp_remote_retrieve_response_code($response);
if ($code !== 200) {
error_log("IndexNow batch returned status $code");
}
}
}
Такую функцию можно вызвать из админ-панели, например, при массовом удалении страниц, или через планировщик задач WP-Cron.
Популярные плагины для работы с IndexNow и удалением страниц
Если не хотите писать код самостоятельно, рекомендуем рассмотреть следующие плагины с поддержкой IndexNow и возможностями автоматизации:
- IndexNow Official Plugin — официальный плагин от разработчиков протокола, упрощает интеграцию.
- Rank Math SEO — популярный SEO-плагин с поддержкой IndexNow и удобными инструментами для управления индексацией.
- WP IndexNow — лёгкий плагин, который автоматически отправляет URL при публикации, обновлении или удалении.
Большинство из них позволяют настраивать, какие типы контента и события приводят к отправке уведомлений, включая удаление страниц.
Заключение по автоматическому удалению страниц через IndexNow в WordPress
Автоматизация удаления устаревших страниц из индекса поисковых систем — важный этап в поддержании актуальности сайта и улучшении SEO. Использование протокола IndexNow в WordPress позволяет быстро и эффективно уведомлять поисковики об удалённых URL, что сокращает время их пребывания в индексе и снижает количество ошибок 404 для пользователей.
В статье показаны конкретные примеры кода, которые можно внедрить сразу, а также даны рекомендации по работе с файлами ключей и популярным плагинам. При грамотной настройке вы значительно повысите качество индексации и ускорите реакцию поисковых систем на изменения на вашем сайте.