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

В крупных и даже средних WordPress-проектах со временем накапливаются URL, которые перенаправляют на другие страницы с помощью редиректов 301. Такие адреса не должны оставаться в поисковом индексе, поскольку это ухудшает качество индексации и может негативно повлиять на SEO. В этой статье мы подробно разберём, как автоматически выявлять такие URL, удалять их из индекса через протокол IndexNow и при этом поддерживать актуальность индекса.

Почему важно удалять из индекса URL с 301 редиректом

Поисковые системы рекомендуют исключать из индекса URL, которые постоянно перенаправляют на другие страницы, чтобы избежать дублирования и снизить нагрузку на краулеры. Если оставить такие адреса в индексе, они будут показываться в результатах поиска, но при переходе пользователь попадёт на перенаправленную страницу, что ухудшает пользовательский опыт.

IndexNow — современный протокол, который позволяет моментально уведомлять поисковики об изменениях на сайте: добавлении, обновлении или удалении URL. Использование IndexNow для удаления URL с постоянным редиректом значительно ускоряет обновление индекса.

Как автоматически выявлять URL с 301 редиректом в WordPress

Для автоматизации процесса нам нужно регулярно сканировать базу данных или логи сервера, чтобы определить URL, которые сейчас выдают 301 редирект. В WordPress есть несколько подходов:

  • Использовать класс WP_Http для программной проверки статуса ответа HTTP для каждого URL.
  • Парсить таблицу wp_redirection_logs при использовании плагина Redirection.
  • Если настроены редиректы через .htaccess или серверные правила, можно сгенерировать список редиректов и проверять их.

Пример функции для проверки статуса URL с помощью WP_Http:

function indexnow_check_url_redirect_status($url) {
    $http = new WP_Http();
    $response = $http->head($url);
    if (is_wp_error($response)) {
        return false;
    }
    return isset($response['response']['code']) ? $response['response']['code'] : false;
}

Эту функцию можно использовать для сканирования списка URL и выявления тех, что возвращают 301.

Автоматическое уведомление IndexNow об удалении URL с редиректом

После определения URL, которые перенаправляют и должны быть удалены из индекса, нужно отправить уведомление в IndexNow с указанием этих адресов. Для этого реализуем функцию отправки в IndexNow:

function indexnow_send_url_removal($urls, $key) {
    $endpoint = 'https://api.indexnow.org/indexnow';
    $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'
        ]
    ];

    $response = wp_remote_post($endpoint, $args);
    return !is_wp_error($response) && wp_remote_retrieve_response_code($response) === 200;
}

Здесь $urls — массив URL для удаления, $key — ваш API-ключ IndexNow.

Пример комплексного решения для WordPress

Ниже пример кода, объединяющего проверку URL и отправку в IndexNow. Для упрощения рассмотрим, что у нас есть массив URL для проверки.

function indexnow_su_process_redirected_urls() {
    $indexnow_key = 'ваш_ключ_здесь';
    // Пример массива URL для проверки
    $urls_to_check = [
        home_url('/old-page-1/'),
        home_url('/old-page-2/'),
        home_url('/outdated-url/')
    ];

    $urls_for_deletion = [];

    foreach ($urls_to_check as $url) {
        $status = indexnow_check_url_redirect_status($url);
        if ($status === 301) {
            $urls_for_deletion[] = $url;
        }
    }

    if (!empty($urls_for_deletion)) {
        $result = indexnow_send_url_removal($urls_for_deletion, $indexnow_key);
        if ($result) {
            error_log('IndexNow: успешно отправлены URL для удаления: ' . implode(', ', $urls_for_deletion));
        } else {
            error_log('IndexNow: ошибка отправки URL для удаления');
        }
    }
}

Эту функцию можно запускать по Cron или при сохранении/обновлении контента для актуализации индекса.

Практические советы и рекомендации

  • Для больших сайтов не проверяйте все URL за один раз — используйте пакетную обработку.
  • Храните список URL с редиректами в отдельной таблице или кэше, чтобы не делать лишние HTTP-запросы.
  • Используйте существующие плагины, например, Redirection, для удобного управления редиректами и сбора статистики.
  • Если у вас магазин на WooCommerce, обязательно проверяйте редиректы товаров и категорий.
  • Настройте уведомления об ошибках отправки в IndexNow для быстрого реагирования.

Поддержка решения плагином Clearfy Pro

Плагин Clearfy Pro предоставляет расширенные инструменты оптимизации и может помочь в автоматизации управления редиректами и очистке индекса. В частности, он позволяет интегрировать IndexNow для отправки URL-уведомлений и автоматизировать процессы удаления устаревших или перенаправленных URL.

Выводы

Автоматическое удаление URL с 301 редиректом из индекса — важная задача для поддержания чистоты и актуальности индекса поисковых систем. Использование протокола IndexNow вместе с последовательной проверкой редиректов в WordPress позволит быстро обновлять индекс и улучшить SEO вашего сайта. Приведённые примеры кода и рекомендации помогут реализовать эту задачу даже без глубоких знаний в программировании.

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

⭐⭐⭐⭐⭐
Как удалить редиректы и ошибки 404 из индекса с помощью IndexNow в WordPress
04.12.2025
IndexNow и WooCommerce: решение проблем индексации товаров и страниц
25.12.2025
Решение проблем с отправкой URL в IndexNow при большом объеме сайта WordPress
20.01.2026
Как создать плагин WordPress для автоматической отправки URL в IndexNow
14.11.2025
Оптимизация файла robots.txt для IndexNow и WordPress: практические советы и примеры
21.11.2025
×
WPShop
честная партнерка!

Зарабатывай до 3225₽ с каждой продажи

Подключиться к партнерке