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

Диагностика проблемы: почему изменения цен в WooCommerce не всегда индексируются быстро

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

Проверить проблему можно так:

  • Измените цену товара в админке WooCommerce.
  • Подождите несколько дней и проверьте, обновилась ли цена в выдаче поисковиков, используя оператор site: и точный URL товара.
  • Если цена не обновилась — скорее всего, URL не был отправлен в IndexNow после изменения.

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

1. Подключение хука на обновление цены

WooCommerce хранит цену товара в метаданных _price, _regular_price и _sale_price. Для отслеживания изменений используем хук updated_post_meta, который срабатывает при обновлении метаданных.

add_action('updated_post_meta', 'indexnow_send_url_on_price_change', 10, 4);

function indexnow_send_url_on_price_change($meta_id, $post_id, $meta_key, $meta_value) {
    // Отслеживаем только ключи, связанные с ценой
    $price_keys = [ '_price', '_regular_price', '_sale_price' ];
    if (!in_array($meta_key, $price_keys)) {
        return;
    }

    // Проверяем, что пост - товар
    if (get_post_type($post_id) !== 'product') {
        return;
    }

    // Формируем URL товара
    $permalink = get_permalink($post_id);
    if (!$permalink) {
        return;
    }

    // Отправляем URL в IndexNow
    indexnow_send_url($permalink);
}

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

Реализуем отправку POST-запроса к API IndexNow. Замените YOUR_API_KEY на ваш ключ.

function indexnow_send_url($url) {
    $api_key = 'YOUR_API_KEY';
    $endpoint = 'https://api.indexnow.org/indexnow';

    $payload = [
        'host' => parse_url(home_url(), PHP_URL_HOST),
        'key' => $api_key,
        'keyLocation' => home_url('/'. $api_key .'.txt'),
        'urlList' => [$url],
    ];

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

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

    if (is_wp_error($response)) {
        error_log('IndexNow send error: '. $response->get_error_message());
    } elseif (wp_remote_retrieve_response_code($response) !== 200) {
        error_log('IndexNow send failed, response code: '. wp_remote_retrieve_response_code($response));
    }
}

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

  • Измените цену товара в WooCommerce. Убедитесь, что в логах ошибок WordPress (error_log) нет сообщений об ошибках IndexNow.
  • Используйте инструменты поисковых систем (например, Bing Webmaster Tools) для проверки отправленных URL.
  • Через 24-48 часов проверьте, обновилась ли цена в поисковой выдаче.

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

  • Отсутствие ключа API или неверный ключ. Проверьте наличие файла YOUR_API_KEY.txt в корне сайта и корректность ключа в коде.
  • Некорректный URL в отправке. Используйте get_permalink() для получения правильного URL товара.
  • Проблемы с правами доступа. Убедитесь, что сервер может делать исходящие HTTPS-запросы.
  • Отправка urlList более одного URL без пакетной обработки. Для массовых изменений реализуйте очередь и пакетную отправку, чтобы избежать ограничения API.

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

  • Добавьте кэширование отправленных URL, чтобы не отправлять повторно один и тот же URL за короткий период.
  • Используйте WP Cron для пакетной обработки и отправки URL при массовых изменениях цен.
  • Храните ключ API вне публичного доступа и не выводите его в HTML.
  • Контролируйте частоту запросов к API IndexNow, чтобы не превысить лимиты.

Сравнение способов интеграции IndexNow с WooCommerce по отправке URL при изменении цен

МетодПлюсыМинусы
Прямой вызов API в хуке updated_post_metaМгновенная отправка, простая реализацияПри массовых обновлениях может привести к нагрузке и превышению лимита
Использование очереди и WP Cron для пакетной отправкиОптимизация нагрузки, контроль частоты запросовЗадержка между изменением и отправкой URL
Плагины (например, Clearfy Pro с поддержкой IndexNow)Готовые решения, минимум кода, дополнительные функции оптимизацииСтоимость, возможные ограничения конфигурации

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

⭐⭐⭐⭐⭐
Отладка отправки URL в IndexNow для WordPress: практические советы и примеры
29.12.2025
IndexNow и автоматизация отправки URL в WordPress с помощью Cron и REST API
27.02.2026
Изменение URL в WordPress без потери индексации и позиций
08.12.2025
IndexNow и кэширование в WordPress: практические советы и решения
21.12.2025
IndexNow автоматическая очистка кеша в WordPress: практическое руководство
24.01.2026
×

AI-плагин

WPGPT
Сам создает статьи для вашего сайта WordPress

SEO и мета-теги

Парсинг конкурентов

Изображения

Комментарии

Подробнее