В крупных проектах на WordPress с активным наполнением контента часто возникает проблема накопления устаревших или неиспользуемых URL, которые продолжают фигурировать в поисковом индексе. Это негативно влияет на SEO и создает дополнительную нагрузку на серверы поисковых систем. В этой статье рассмотрим, как с помощью протокола IndexNow организовать автоматическую очистку таких URL из индекса поисковиков.
Что такое неиспользуемые URL и почему их важно удалять
Неиспользуемые URL — это страницы, которые удалены или перестали быть актуальными, но продолжают оставаться в индексе поисковых систем. Примеры:
- Удалённые записи или страницы, на которые ведут внутренние ссылки;
- Страницы с ошибками 404 или 410;
- Устаревшие архивы или пагинация;
- Дублированные URL из-за неправильной настройки параметров.
Игнорирование таких страниц приводит к понижению качества индексации, ухудшению ранжирования и увеличению числа ошибок в Search Console.
Возможности IndexNow для удаления URL
IndexNow — протокол, разработанный для мгновенного уведомления поисковиков об изменениях на сайте. Помимо добавления новых URL, он позволяет сообщать о удалении URL, что существенно ускоряет процесс очистки индекса.
Поисковики, поддерживающие IndexNow, как Яндекс и Bing, сразу же получают сигнал удалить URL из индекса.
Как автоматически отслеживать и отправлять удалённые URL в IndexNow
Для организации автоматической очистки нужно настроить механизм отслеживания удалённых или неактивных страниц и отправки их в IndexNow с параметром удаления.
Шаг 1. Отслеживание удаления контента в WordPress
WordPress предоставляет несколько хуков, которые позволяют отследить удаление постов или страниц:
before_delete_post— вызывается перед удалением записи;trashed_post— при помещении записи в корзину;wp_trash_post— аналогично;delete_post— после удаления записи.
Для нашей задачи лучше использовать before_delete_post, чтобы сразу отправлять сигнал об удалении URL.
Шаг 2. Подготовка функции отправки удалённого URL в IndexNow
Создадим функцию indexnow_su_send_delete_url(), которая будет принимать URL и отправлять POST-запрос в API IndexNow с необходимым форматом.
function indexnow_su_send_delete_url($url) {
$key = 'ВАШ_КЛЮЧ_API_INDEXNOW'; // Получите ключ согласно документации IndexNow
$endpoint = 'https://api.indexnow.org/indexnow';
$data = [
'host' => parse_url(home_url(), PHP_URL_HOST),
'key' => $key,
'keyLocation' => home_url('/indexnow-key.txt'),
'urlList' => [$url],
'action' => 'delete' // Специальный параметр для удаления
];
$args = [
'body' => json_encode($data),
'headers' => [
'Content-Type' => 'application/json'
],
'timeout' => 15
];
$response = wp_remote_post($endpoint, $args);
if (is_wp_error($response)) {
error_log('IndexNow delete URL error: ' . $response->get_error_message());
return false;
}
$code = wp_remote_retrieve_response_code($response);
return ($code >= 200 && $code < 300);
}
Обратите внимание, что параметр action не входит в официальную спецификацию IndexNow, так как сейчас удаление URL осуществляется отправкой URL в URL-листе без контента. Если поисковик поддерживает, можно использовать подобный параметр. В противном случае просто отправляйте URL, который нужно удалить.
Шаг 3. Интеграция с хуком удаления записи
Привяжем отправку в IndexNow к удалению записи в WordPress:
add_action('before_delete_post', 'indexnow_su_handle_post_delete', 10, 1);
function indexnow_su_handle_post_delete($post_id) {
$post_url = get_permalink($post_id);
if (!$post_url) {
return;
}
indexnow_su_send_delete_url($post_url);
}
Такой подход позволяет моментально уведомлять поисковики об удалении контента.
Дополнительные рекомендации по очистке неиспользуемых URL
Использование плагинов для автоматизации
Реализовать всё вручную — сложно и рискованно. Для упрощения процессов можно использовать плагины, например:
- Clearfy Pro — оптимизация сайта и управление индексацией;
- ABC Pagination — правильная работа с пагинацией и SEO;
- Плагины для мониторинга 404 ошибок и автоматической отправки удалённых URL в IndexNow.
Например, Clearfy Pro позволяет управлять индексацией страниц, автоматически скрывать неактуальные URL и улучшать SEO.
Обработка 404 ошибок и устаревших ссылок
В дополнение к удалению URL нужно регулярно сканировать сайт на наличие 404 ошибок. Для этого можно использовать плагины типа Redirection или WPRemark, где можно настроить автоматическую отправку таких URL в IndexNow для удаления из индекса.
Автоматическая очистка через Cron и REST API
Для больших сайтов с большим количеством URL рекомендуется запустить периодическую очистку. Это можно сделать через WP-Cron, вызывающий REST API, который будет собирать список удалённых страниц и отправлять их пакетно в IndexNow.
add_action('indexnow_su_cron_cleanup', 'indexnow_su_batch_delete_urls');
function indexnow_su_batch_delete_urls() {
$urls_to_delete = get_option('indexnow_su_urls_to_delete', []);
if (empty($urls_to_delete)) {
return;
}
// Отправка URL пачкой
indexnow_su_send_delete_url_batch($urls_to_delete);
// Очистить список
update_option('indexnow_su_urls_to_delete', []);
}
Это позволит снизить нагрузку и избежать ограничений по частоте запросов.
Заключение по практике автоматической очистки URL
Автоматизация удаления неиспользуемых URL с помощью IndexNow — значимый шаг к поддержанию качественной индексации сайта на WordPress. Реализация требует настройки отслеживания удаления контента, правильной отправки запросов и периодической проверки устаревших URL. Использование дополнительных плагинов из WPShop.ru может существенно упростить и ускорить процесс.