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

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

Почему важно интегрировать IndexNow с импортом контента

IndexNow — это современный протокол, позволяющий моментально уведомлять поисковые системы об изменениях на сайте. Если вы импортируете сотни или тысячи записей, вручную отправлять URL невозможно, а задержка может привести к потере трафика и ухудшению индексации.

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

Для WordPress есть несколько популярных способов импорта: через WP All Import, собственные скрипты на PHP или REST API. Мы рассмотрим универсальный способ, который подойдёт для любых методов.

Отправка URL в IndexNow через REST API: базовый пример

Для отправки URL нужно сделать POST-запрос на эндпоинт поисковой системы (например, Bing или Яндекс поддерживают IndexNow). В теле запроса передаётся JSON с URL.

Пример функции для отправки одного или нескольких URL в IndexNow:

function indexnow_su_send_urls_to_indexnow( array $urls ) {
    $apiKey = 'ВАШ_КЛЮЧ_API_INDEXNOW';
    $endpoint = 'https://api.indexnow.org/indexnow';

    $payload = [
        'host' => parse_url(home_url(), PHP_URL_HOST),
        'key' => $apiKey,
        'keyLocation' => home_url('/indexnow-key.txt'),
        'urlList' => $urls
    ];

    $args = [
        'headers' => [
            'Content-Type' => 'application/json'
        ],
        'body' => wp_json_encode($payload),
        'timeout' => 15
    ];

    $response = wp_remote_post($endpoint, $args);

    if (is_wp_error($response)) {
        error_log('IndexNow error: ' . $response->get_error_message());
        return false;
    }

    $code = wp_remote_retrieve_response_code($response);
    if ($code !== 200) {
        error_log('IndexNow HTTP code: ' . $code);
        return false;
    }

    return true;
}

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

Как интегрировать отправку URL при импорте через WP All Import

WP All Import позволяет запускать PHP-функции после импорта записи через хуки. Можно использовать хук pmxi_after_post_import для отправки URL:

add_action('pmxi_after_post_import', function($post_id, $xml_node, $is_update) {
    $url = get_permalink($post_id);
    indexnow_su_send_urls_to_indexnow([$url]);
}, 10, 3);
<

Такой подход гарантирует, что после каждого импортированного поста его URL моментально отправится в IndexNow.

Если импорт очень большой, разумнее собирать URL в массив и отправлять пакетами по 10-20 штук, чтобы не перегружать сервер и API.

Автоматизация при кастомном импорте: пример на PHP

Если вы пишете собственный скрипт импорта, можно вызывать функцию отправки URL сразу после вставки записи в базу:

foreach ($imported_posts as $post_data) {
    $post_id = wp_insert_post($post_data);
    if ($post_id && !is_wp_error($post_id)) {
        $url = get_permalink($post_id);
        indexnow_su_send_urls_to_indexnow([$url]);
    }
}

Для повышения производительности можно накапливать URL в массив и отправлять пачками, например, после каждых 50 записей.

Использование плагинов для интеграции с IndexNow

Если вы не хотите писать код, рассмотрите плагины с поддержкой IndexNow и импортом:

  • Clearfy Pro — умеет автоматически отправлять URL в IndexNow при изменении контента, в том числе после импорта. Можно настроить частоту и типы записей.
  • Expert Review — позволяет настраивать автоматизацию для разных типов контента, включая импортированные записи.

Преимущество плагинов — удобный интерфейс и меньше рисков ошибок.

Обработка ошибок и логирование отправки URL

Для надёжности важно логировать результаты отправки. Это поможет быстро обнаружить проблемы с API ключом, сетью или форматом URL.

Рекомендуется расширить функцию отправки с записью в отдельный лог-файл или базу данных:

function indexnow_su_send_urls_to_indexnow_with_log(array $urls) {
    $result = indexnow_su_send_urls_to_indexnow($urls);
    $log_entry = date('Y-m-d H:i:s') . ' | URLs: ' . implode(', ', $urls) . ' | Result: ' . ($result ? 'Success' : 'Fail') . "\n";
    file_put_contents(WP_CONTENT_DIR . '/indexnow-send.log', $log_entry, FILE_APPEND);
    return $result;
}

Это позволит отслеживать отправку и анализировать возможные сбои.

Советы по оптимизации отправки URL

Для эффективной работы с IndexNow при импорте учитывайте следующие моменты:

  • Отправляйте URL пачками — так уменьшается число запросов и повышается стабильность.
  • Используйте отложенную отправку через WP Cron, если импорт очень большой, чтобы не перегружать сервер.
  • Проверяйте наличие и актуальность API ключа и файла indexnow-key.txt в корне сайта.
  • Фильтруйте URL, исключая неиндексируемые или временные страницы.

Пример отложенной отправки через Cron

Вы можете накапливать URL в опции и отправлять их периодически:

function indexnow_su_add_url_to_queue($url) {
    $queue = get_option('indexnow_su_url_queue', []);
    if (!in_array($url, $queue)) {
        $queue[] = $url;
        update_option('indexnow_su_url_queue', $queue);
    }
}

function indexnow_su_cron_send_urls() {
    $queue = get_option('indexnow_su_url_queue', []);
    if (empty($queue)) return;

    $batch = array_splice($queue, 0, 20);
    $sent = indexnow_su_send_urls_to_indexnow($batch);

    if ($sent) {
        update_option('indexnow_su_url_queue', $queue);
    }
}

if (!wp_next_scheduled('indexnow_su_cron_send')) {
    wp_schedule_event(time(), 'hourly', 'indexnow_su_cron_send');
}

add_action('indexnow_su_cron_send', 'indexnow_su_cron_send_urls');

Вызов indexnow_su_add_url_to_queue($url) из процесса импорта позволит аккуратно и без нагрузки отправлять URL.

Выводы

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

Для удобства работы с IndexNow рекомендуем изучить плагины на WPSHOP, где есть надёжные инструменты для автоматизации.

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

⭐⭐⭐⭐⭐
Решение проблем с отправкой URL в IndexNow при большом объеме сайта WordPress
20.01.2026
IndexNow и отладка отправки URL в крупных проектах WordPress: практические советы
24.02.2026
Как использовать Cron в WordPress для автоматизации задач
18.11.2025
IndexNow автоматическое отправление изменений в WordPress: практическое руководство
11.12.2025
IndexNow: как автоматически отправлять URL при импорте контента в WordPress
27.04.2026
×
WPShop
честная партнерка!

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

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