IndexNow: автоматическая очистка из индекса URL с редиректами в WordPress

Диагностика проблемы: почему редиректы остаются в индексе

При использовании IndexNow для отправки URL на индексацию может возникнуть ситуация, когда URL, настроенные на постоянные 301 или 302 редиректы, остаются в поисковом индексе вместо удаления или обновления. Это приводит к снижению качества индексации и ухудшению SEO, так как поисковики продолжают показывать старые URL, которые перенаправляют пользователя.

Основные причины такой проблемы:

  • Отсутствие автоматического отслеживания редиректов в WordPress и передачи их в IndexNow.
  • Отправка в IndexNow устаревших URL без учета их текущего статуса (редирект, 404, 200).
  • Некорректная интеграция с плагинами кэширования или SEO, мешающая обновлению индекса.

Как настроить автоматическую отправку IndexNow для URL с редиректами

Шаг 1. Отслеживание редиректов в WordPress

Чтобы автоматически отправлять URL с редиректами для удаления из индекса, нужно перехватывать запросы, которые вызывают редиректы, и сохранять список таких URL.

Пример простого механизма на базе хука template_redirect:

add_action('template_redirect', function() {  $status = http_response_code();  if (in_array($status, [301, 302])) {    $url = home_url($_SERVER['REQUEST_URI']);    // Сохраняем URL в опцию или внешнюю очередь для отправки в IndexNow    $redirects = get_option('indexnow_redirects_to_send', []);    if (!in_array($url, $redirects)) {      $redirects[] = $url;      update_option('indexnow_redirects_to_send', $redirects);    }  }});

Этот код сохраняет URL с редиректом в опцию WordPress для последующей обработки.

Шаг 2. Отправка URL с редиректами в IndexNow для удаления

IndexNow API позволяет отправлять URL для обновления или удаления. Для редиректов нужно отправлять URL с флагом удаления (action=delete), чтобы поисковики перестали индексировать старые адреса.

Пример функции отправки с удалением:

function indexnow_send_delete_request(array $urls, string $key, string $endpoint) {  $payload = [    'host' => parse_url(home_url(), PHP_URL_HOST),    'key' => $key,    'keyLocation' => home_url('indexnow-key.txt'),    'urlList' => $urls,    'action' => 'delete'  ];  $args = [    'body' => json_encode($payload),    'headers' => ['Content-Type' => 'application/json'],    'timeout' => 10  ];  $response = wp_remote_post($endpoint, $args);  if (is_wp_error($response)) {    error_log('IndexNow delete error: ' . $response->get_error_message());    return false;  }  $code = wp_remote_retrieve_response_code($response);  return $code === 200;}

Адрес $endpoint обычно https://api.indexnow.org/indexnow. Ключ $key — ваш API-ключ IndexNow.

Шаг 3. Автоматизация процесса отправки

Чтобы не отправлять каждый URL вручную, настроим WP-Cron для периодической отправки накопленных URL редиректов:

add_action('indexnow_send_redirects_hook', function() {  $key = 'ваш_ключ_indexnow';  $endpoint = 'https://api.indexnow.org/indexnow';  $redirects = get_option('indexnow_redirects_to_send', []);  if (empty($redirects)) {    return;  }  $chunks = array_chunk($redirects, 1000);  foreach ($chunks as $chunk) {    indexnow_send_delete_request($chunk, $key, $endpoint);  }  update_option('indexnow_redirects_to_send', []);});if (!wp_next_scheduled('indexnow_send_redirects_hook')) {  wp_schedule_event(time(), 'hourly', 'indexnow_send_redirects_hook');}

Так мы будем каждый час отправлять пакеты URL с редиректами для удаления из индекса.

Проверка результата после внедрения

Чтобы убедиться, что автоматическая очистка работает:

  • Проверьте, что в базе (опция indexnow_redirects_to_send) не накапливаются старые URL с редиректами.
  • В логах сервера или error_log найдите сообщения об успешных отправках (код 200).
  • Используйте инструменты IndexNow (например, отладчик на https://www.bing.com/webmaster/indexnow) для проверки отправленных URL.
  • Отслеживайте в поисковой консоли Bing или других поддерживающих сервисах, что URL с редиректами постепенно исчезают из индекса.

Частые ошибки и как их исправить

  • Отсутствие ключа API или неправильный ключ: IndexNow не принимает запросы без валидного ключа. Проверьте конфигурацию и наличие файла indexnow-key.txt в корне сайта.
  • Отправка URL без удаления: если не указать action=delete, редиректы не будут удалены. Убедитесь, что в запросе установлен правильный параметр.
  • Переизбыток запросов: слишком частые отправки могут блокироваться. Настройте WP-Cron на разумный интервал (например, 1 час).
  • Кэширование мешает обновлению: если сайт использует кэш, убедитесь, что редиректы отдаются корректно и не кэшируются навсегда.
  • Некорректный формат URL: URL должны быть полными и корректно закодированными, иначе IndexNow отвергнет запрос.

Практические советы по безопасности и производительности

  • Храните ключ IndexNow в wp-config.php как константу, а не в базе, чтобы избежать утечек.
  • Используйте transient API для временного хранения URL, если трафик высокий, чтобы уменьшить нагрузку на базу.
  • Обрабатывайте URL пакетами по 1000 штук, чтобы не превышать лимиты IndexNow и не перегружать сервер.
  • Для надежности интегрируйте логирование ошибок отправки в отдельный файл или через системный лог.
  • Если используете плагины SEO или кэширования, проверьте их настройки, чтобы не блокировать редиректы на уровне сервера или плагина.

Сравнение вариантов реализации автоматической очистки редиректов

Метод Преимущества Недостатки
Ручная отправка через консоль или плагин Простота, быстрота настройки Не автоматизировано, требует постоянного контроля
Автоматизация с WP-Cron и хуком template_redirect Автоматическая обработка, гибкость Нужно контролировать нагрузку, возможны пропуски в редиректах
Интеграция с плагинами редиректов (например, Redirection) Использует существующую логику редиректов Зависимость от сторонних плагинов, сложность настройки

Добавь в закладки и поделись с друзьями:

⭐⭐⭐⭐⭐
IndexNow и WooCommerce: оптимальная очередь и пакетная обработка URL
04.06.2026
IndexNow и WooCommerce: автоматическое удаление товаров с отсутствием в наличии
09.05.2026
IndexNow и WooCommerce: автоматическая отправка URL при изменениях остатков товаров
01.06.2026
Как автоматизировать удаление и обновление URL в WordPress с помощью Webhooks и IndexNow
04.04.2026
IndexNow в WordPress: как использовать Webhook-и для автоматической отправки URL
20.03.2026
×
Обнови свой WordPress!

Держи скидку 15% на премиум тему Reboot

Купить со скидкой ⋙