WordPress автоматическое удаление устаревших страниц из индекса с помощью IndexNow

Если вы владелец сайта на 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 для пользователей.

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

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

⭐⭐⭐⭐⭐
IndexNow и WooCommerce: как правильно отправлять URL при массовых изменениях заказов
13.05.2026
IndexNow отправка URL из WordPress при использовании REST API: практическое руководство
03.02.2026
Как использовать Cron в WordPress для автоматизации задач
18.11.2025
Как удалить из индекса WordPress старые изображения с помощью IndexNow
14.12.2025
Изменение URL в WordPress без потери индексации и позиций
08.12.2025
×
WPShop
честная партнерка!

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

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