Удаление устаревших URL из индекса поисковых систем — важная задача для поддержания актуальности сайта и улучшения SEO. С помощью протокола IndexNow можно существенно ускорить процесс удаления старых страниц из индекса, что особенно актуально для сайтов на WordPress с большим количеством контента. В этой статье мы подробно разберём, как автоматически обнаруживать, формировать список и отправлять запросы на удаление неактуальных URL из индекса при помощи IndexNow.
Что такое IndexNow и зачем удалять старые URL
IndexNow — это открытый протокол, позволяющий веб-мастерам мгновенно уведомлять поисковые системы об изменениях на сайте: добавлении, обновлении или удалении контента. В отличие от классического метода с sitemap, который обновляется периодически, IndexNow позволяет отправлять URL напрямую, экономя время и ресурсы.
При удалении устаревших страниц важно своевременно сообщать поисковым системам, чтобы они не индексировали несуществующий контент, не показывали пользователям 404-ошибки и не ухудшали SEO-показатели сайта. Особенно это критично для магазинов, блогов с большим количеством архивов, сайтов с частыми изменениями структуры.
Автоматическое обнаружение устаревших URL в WordPress
Первый шаг — определить, какие URL стоит удалить из индекса. Чаще всего это страницы, которые были удалены, перемещены или имеют статус «черновик» или «удалён». В WordPress можно получить список таких URL через WP_Query или прямые запросы к базе данных.
Например, чтобы получить URL удалённых постов с типом записи 'post' и статусом 'trash', можно использовать следующий код:
function indexnow_get_trashed_urls() {
$args = [
'post_type' => 'post',
'post_status' => 'trash',
'posts_per_page' => -1,
'fields' => 'ids',
];
$query = new WP_Query($args);
$urls = [];
foreach ($query->posts as $post_id) {
$urls[] = get_permalink($post_id);
}
return $urls;
}Такой подход поможет собрать список URL, которые были удалены и должны быть исключены из индекса.
Ещё один вариант — отслеживать изменения с помощью хуков WordPress, чтобы сразу после удаления поста отправлять URL на удаление в IndexNow.
Отправка запросов на удаление URL через IndexNow API
После того как список устаревших URL сформирован, нужно отправить их в IndexNow. Протокол предполагает POST-запрос с URL в формате JSON на адрес поисковой системы, например, Bing или Яндекса.
Пример функции для отправки URL в IndexNow:
function indexnow_send_urls_to_indexnow(array $urls, string $key, string $host) {
$endpoint = 'https://ssl.bing.com/indexnow';
$data = [
'host' => $host,
'key' => $key,
'keyLocation' => "https://$host/key.txt",
'urlList' => $urls,
];
$args = [
'body' => json_encode($data),
'headers' => [
'Content-Type' => 'application/json',
],
'timeout' => 10,
];
$response = wp_remote_post($endpoint, $args);
if (is_wp_error($response)) {
error_log('IndexNow send error: ' . $response->get_error_message());
return false;
}
return wp_remote_retrieve_response_code($response) === 200;
}Здесь параметр $key — это уникальный ключ IndexNow, а $host — домен сайта. Сначала нужно разместить файл ключа на сайте по адресу https://ваш_домен/key.txt.
Интеграция отправки удалённых URL с WordPress
Для автоматизации процесса удобно привязать отправку URL в IndexNow к событию удаления поста. Это можно сделать через хук wp_trash_post:
add_action('wp_trash_post', 'indexnow_send_deleted_url');
function indexnow_send_deleted_url($post_id) {
$url = get_permalink($post_id);
$key = 'ВАШ_КЛЮЧ_INDEXNOW';
$host = $_SERVER['HTTP_HOST'];
indexnow_send_urls_to_indexnow([$url], $key, $host);
}Так при перемещении поста в корзину его URL автоматически отправится на удаление в индекс поисковой системы.
Если у вас большой сайт и удаляется много контента, лучше собирать URL в очередь и отправлять пакетами, чтобы не перегружать API. Здесь пригодится WP Cron или сторонние очереди задач.
Плагины для расширения возможностей IndexNow в WordPress
Для тех, кто не хочет писать код с нуля, есть плагины, которые помогут работать с IndexNow и удалением URL:
- Clearfy Pro — расширенные настройки SEO и интеграция с IndexNow, включая автоматическое уведомление об удалении URL.
- WPCommunity — плагин для управления сообществом с поддержкой IndexNow, удобно для сайтов с большим пользовательским контентом.
Выбор плагина зависит от специфики сайта и задач по SEO.
Рекомендации по безопасности и отладке
При работе с IndexNow важно:
- Защитить файл ключа
key.txtот несанкционированного изменения. - Логировать ошибки отправки запросов, чтобы вовремя выявлять проблемы.
- Тестировать отправку на тестовых URL перед массовой отправкой.
- Ограничивать частоту запросов, чтобы не получить блокировку от поисковых систем.
Для отладки удобно использовать стандартные функции WordPress error_log или плагины для логирования.
Заключение
Использование IndexNow для удаления старых URL из WordPress — эффективный способ поддерживать чистоту индекса, улучшать SEO и пользовательский опыт. Автоматизация через хуки и WP Cron сокращает ручную работу и ускоряет реакцию поисковых систем на изменения. В сочетании с проверенными плагинами и правильной организацией кода вы получите стабильное и быстрое обновление индекса вашего сайта.