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

Диагностика проблемы с отправкой URL при импорте в WordPress

Импорт большого объема контента в WordPress — частая задача, особенно при миграции или массовом обновлении данных. При этом важна своевременная отправка URL в IndexNow для быстрого обновления индекса поисковых систем. Однако стандартные интеграции IndexNow часто срабатывают на события сохранения записи, а массовый импорт через инструменты типа WP All Import или собственные скрипты не всегда активирует эти хуки.

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

  • URL новых импортированных страниц не появляются в отчетах отправки IndexNow;
  • Отсутствие уведомлений об ошибках, но данные не индексируются;
  • Отправка происходит только после ручного обновления записи в админке.

Пошаговое решение: автоматическая отправка URL при импорте

1. Подключение действий в процессе импорта

Большинство плагинов импорта позволяют запускать кастомные функции после импорта каждой записи. Если вы используете WP All Import, можно использовать хук pmxi_saved_post. Для кастомных скриптов — вызывать функцию отправки IndexNow вручную после сохранения записи.

2. Функция отправки URL в IndexNow

Пример функции для отправки одного URL, которую можно вызывать из импорта:

function send_url_to_indexnow( $url ) {
    $indexnow_key = 'ваш_ключ_IndexNow';
    $endpoint = 'https://api.indexnow.org/indexnow?url=' . urlencode( $url ) . '&key=' . $indexnow_key;

    $response = wp_remote_get( $endpoint, [
        'timeout' => 5,
        'sslverify' => true,
    ]);

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

    $code = wp_remote_retrieve_response_code( $response );
    return $code === 200;
}

3. Интеграция с WP All Import

Добавьте следующий код в functions.php вашей темы или в кастомный плагин. Он автоматически отправит URL после каждого импортированного поста:

add_action( 'pmxi_saved_post', 'indexnow_send_url_after_import', 10, 1 );
function indexnow_send_url_after_import( $post_id ) {
    $url = get_permalink( $post_id );
    if ( $url ) {
        send_url_to_indexnow( $url );
    }
}

4. Автоматизация для собственных скриптов импорта

Если импорт реализован вручную, вставьте вызов send_url_to_indexnow() после успешного сохранения записи в БД:

// После wp_insert_post или wp_update_post
$post_id = wp_insert_post( $post_data );
if ( ! is_wp_error( $post_id ) ) {
    $url = get_permalink( $post_id );
    send_url_to_indexnow( $url );
}

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

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

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

  • Отсутствие ключа IndexNow или неправильный ключ: Убедитесь, что ключ в коде совпадает с зарегистрированным в системе поисковика.
  • Неправильный формат URL: Используйте get_permalink() для получения правильного абсолютного URL.
  • Отсутствие SSL или проблемы с валидацией сертификатов: В wp_remote_get параметр sslverify должен быть true, если сервер правильно настроен.
  • Превышение лимита запросов IndexNow: Обрабатывайте отправку пакетами или с задержкой, если импорт очень большой.

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

  • Кэширование ключа: Храните ключ IndexNow как постоянную опцию update_option('indexnow_key', 'ваш_ключ'), не захардкоживайте в коде.
  • Обработка ошибок: Логируйте ошибки отправки для последующего анализа, но не останавливайте процесс импорта из-за них.
  • Пакетная отправка URL: При импорте более 100 URL лучше отправлять их пачками, используя API IndexNow для массовой отправки.
  • Использование WP-Cron: Для снижения нагрузки запускайте отправку URL из очереди по расписанию.

Сравнение вариантов интеграции IndexNow при импорте контента

МетодПлюсыМинусыКомпромисс
Хук WP All Import (pmxi_saved_post)Простая интеграция, автоматическая отправка после каждой записиПри большом объеме может создавать много запросовДобавить очередь и пакетную отправку URL
Встроенный вызов в кастомных скриптахПолный контроль, можно оптимизировать под логику импортаТребует доработки и тестированияИспользовать WP-Cron для отложенной отправки
Плагины для IndexNow (готовые решения)Упрощают настройку, поддерживают массовую отправкуМогут не покрывать все сценарии импортаКомбинировать с кастомными вызовами при необходимости

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

⭐⭐⭐⭐⭐
IndexNow автоматическое отправление изменений в WordPress: практическое руководство
11.12.2025
IndexNow и канонические URL в WordPress: решение проблем с дублированием
18.12.2025
IndexNow и отладка отправки URL в крупных проектах WordPress: практические советы
24.02.2026
IndexNow: как автоматически отправлять URL при импорте контента в WordPress
27.04.2026
Создание кастомных плагинов WordPress с паттернами и namespace для улучшения структуры кода
18.11.2025
×
WPShop
честная партнерка!

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

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