IndexNow в WordPress: как отладить проблему с неотправкой URL

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

Если вы настроили автоматическую отправку URL из WordPress в IndexNow, но видите, что новые или изменённые страницы не появляются в поисковом индексе, важно понять причины сбоя. Основные причины:

  • Неправильная настройка API-ключа или его отсутствие
  • Ошибки в коде отправки запроса (например, неправильный URL или метод)
  • Проблемы с доступом сервера к IndexNow (блокировка или таймауты)
  • Кэширование, мешающее триггеру отправки
  • Отсутствие вызова функции отправки при нужных хуках WordPress

Пошаговое решение проблемы с отправкой URL в IndexNow

1. Проверка и настройка API-ключа

Убедитесь, что ключ IndexNow корректно сохранён и доступен в настройках или в константах. Например, определите ключ в wp-config.php:

define('INDEXNOW_API_KEY', 'ваш_ключ_здесь');

Или сохраните в опциях WordPress, если используете панель настроек.

2. Проверка функции отправки запросов

Вот пример стандартной функции отправки URL в IndexNow через wp_remote_post:

function send_url_to_indexnow( string $url ) {
    $api_key = defined('INDEXNOW_API_KEY') ? INDEXNOW_API_KEY : get_option('indexnow_api_key');
    if ( ! $api_key ) {
        error_log('IndexNow: API ключ не найден');
        return false;
    }
    
    $endpoint = 'https://api.indexnow.org/indexnow?url=' . rawurlencode($url) . '&key=' . $api_key;
    
    $response = wp_remote_post($endpoint, [
        'timeout' => 10,
        'headers' => [
            'Content-Type' => 'application/json'
        ]
    ]);

    if (is_wp_error($response)) {
        error_log('IndexNow: ошибка запроса - ' . $response->get_error_message());
        return false;
    }

    $code = wp_remote_retrieve_response_code($response);
    if ($code !== 200) {
        error_log('IndexNow: ответ сервера - ' . $code);
        return false;
    }

    return true;
}

Проверьте, что URL формируется корректно и отправка происходит именно по HTTPS.

3. Подключение функции к хукам WordPress

Для автоматической отправки URL добавьте вызов функции при сохранении записи:

add_action('save_post', function($post_id) {
    if ( wp_is_post_revision($post_id) ) {
        return;
    }
    $url = get_permalink($post_id);
    send_url_to_indexnow($url);
});

Убедитесь, что этот код загружается в плагине или functions.php темы.

4. Проверка доступности IndexNow с сервера

Проверьте, что сервер не блокирует исходящие запросы к api.indexnow.org. Это можно сделать через curl в SSH:

curl -I "https://api.indexnow.org/indexnow?url=https://example.com&key=ваш_ключ"

Если ответ не приходит, обратитесь к хостинг-провайдеру.

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

Чтобы убедиться, что URL отправлены, проверьте логи ошибок WordPress и логи собственного плагина или темы. Можно также добавить временный лог:

if (send_url_to_indexnow($url)) {
    error_log('IndexNow: URL отправлен успешно - ' . $url);
} else {
    error_log('IndexNow: не удалось отправить URL - ' . $url);
}

Также проверьте динамическую индексацию в панели IndexNow или в поисковиках с поддержкой протокола.

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

  • Ошибка 403 или 401 — неправильный или отсутствующий API-ключ, проверьте его наличие и корректность.
  • Отсутствие вызова функции — убедитесь, что хук save_post добавлен и не конфликтует с другими плагинами.
  • Проблемы с SSL — сервер не поддерживает HTTPS-запросы, обновите библиотеку cURL или OpenSSL на сервере.
  • Кэширование — если используется кеширующий плагин, вызов отправки может блокироваться, добавьте исключения для хуков или отключите кеширование для admin-ajax.php.

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

  • Храните API-ключ в wp-config.php или в защищённых опциях, не в открытом коде.
  • Используйте пакетную отправку URL при массовых изменениях, чтобы снизить нагрузку.
  • Не вызывайте отправку при каждом сохранении, применяйте debounce или очереди (например, через WP-Cron).
  • Обрабатывайте ошибки и логируйте их для своевременного реагирования.

Сравнение вариантов реализации отправки URL в IndexNow

МетодПлюсыМинусыРекомендации
Прямой вызов wp_remote_post в хукахПростота, быстрая интеграцияПовышенная нагрузка при массовых измененияхИспользовать для небольших сайтов
Отправка URL через очередь WP-CronСнижает нагрузку, удобен при большом объёмеЗадержка отправки URLЛучше для крупных проектов
Прокси отправка через внешние сервисыМинимальная нагрузка на сайтЗависимость от сторонних сервисовИспользовать с осторожностью

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

⭐⭐⭐⭐⭐
IndexNow: решение проблем с отправкой массовых URL в WordPress
14.01.2026
Отладка отправки URL в IndexNow для WordPress: практические советы и примеры
29.12.2025
IndexNow автоматическая отправка URL при изменении постов WordPress
07.02.2026
IndexNow в разных PHP-фреймворках: сравнение и практические примеры интеграции
02.03.2026
Оптимизация базы данных WordPress и ускорение запросов: практические советы
11.11.2025
×
Обнови свой WordPress!

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

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