Как работать с IndexNow в WordPress при использовании разных типов контента

IndexNow — современный протокол мгновенной отправки URL в поисковые системы, позволяющий значительно ускорить индексацию изменений на сайте. В WordPress сайты часто содержат разнородный контент: записи, страницы, пользовательские типы записей (Custom Post Types), таксономии и медиафайлы. В этой статье разберём, как грамотно интегрировать отправку URL для всех типов контента через IndexNow, чтобы поисковики оперативно узнавали об обновлениях, новых публикациях и удалениях.

Что такое IndexNow и зачем отправлять URL разных типов контента

IndexNow — это бесплатный протокол, через который вы сообщаете поисковым системам о создании, обновлении или удалении страниц на сайте. Это особенно важно для сайтов с динамическим или разнообразным контентом, когда нужно, чтобы поисковики быстро отражали изменения.

В WordPress контент организован в несколько типов:

  • Стандартные записи (posts)
  • Страницы (pages)
  • Пользовательские типы записей (CPT)
  • Таксономии (категории, метки, кастомные таксономии)
  • Медиафайлы (изображения, документы)

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

Отправка URL стандартных записей и страниц в IndexNow

Для стандартных записей и страниц можно использовать готовые решения, например, плагин Clearfy Pro, который умеет автоматически отправлять URL при публикации или обновлении контента.

Если хотите реализовать отправку вручную, можно использовать следующий пример кода:

function indexnowsu_send_url_on_save_post($post_id) {
    if (wp_is_post_autosave($post_id) || wp_is_post_revision($post_id)) {
        return;
    }
    $post_url = get_permalink($post_id);
    indexnowsu_send_url_to_indexnow([$post_url]);
}
add_action('save_post', 'indexnowsu_send_url_on_save_post');

function indexnowsu_send_url_to_indexnow(array $urls) {
    $key = 'your_indexnow_key_here'; // Замените на свой ключ
    $endpoint = 'https://api.indexnow.org/indexnow?url=' . urlencode($urls[0]) . '&key=' . $key;

    $response = wp_remote_get($endpoint);

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

Этот код отправит URL записи или страницы при каждом сохранении.

Как отправлять URL пользовательских типов записей (CPT)

Custom Post Types в WordPress часто используются для уникального контента: портфолио, отзывы, товары и т.д. Важно, чтобы изменения в таких записях тоже мгновенно попадали в индекс.

Для этого нужно убедиться, что хук save_post срабатывает и для CPT. В примере выше функция будет работать и для них, но иногда полезно ограничить список типов:

function indexnowsu_send_url_on_save_cpt($post_id, $post, $update) {
    $allowed_post_types = ['post', 'page', 'portfolio', 'review']; // Добавьте свои CPT
    if (!in_array($post->post_type, $allowed_post_types)) {
        return;
    }
    if (wp_is_post_autosave($post_id) || wp_is_post_revision($post_id)) {
        return;
    }
    $post_url = get_permalink($post_id);
    indexnowsu_send_url_to_indexnow([$post_url]);
}
add_action('save_post', 'indexnowsu_send_url_on_save_cpt', 10, 3);

Так вы минимизируете лишние обращения и будете отправлять только важные URL.

Обработка удаления пользовательских записей

Чтобы удалённые записи и страницы удалялись из индекса, нужно посылать URL со статусом удаления. В WordPress для этого удобно использовать хук before_delete_post:

function indexnowsu_send_url_on_delete_post($post_id) {
    $post_url = get_permalink($post_id);
    if (!$post_url) {
        return;
    }
    indexnowsu_send_url_to_indexnow([$post_url]);
}
add_action('before_delete_post', 'indexnowsu_send_url_on_delete_post');

По протоколу IndexNow достаточно отправить URL — поисковик поймёт, что его нужно удалить из индекса.

Отправка URL таксономий и их архивов

Таксономии — категории, метки и кастомные таксономии — тоже имеют публичные страницы с архивами. Иногда изменения в таксономиях (например, добавление новой категории) влияют на контент сайта и должны обновляться в индексе.

Для отправки URL архивов таксономий можно использовать хук edited_term и create_term:

function indexnowsu_send_url_on_term_change($term_id, $tt_id, $taxonomy) {
    $term_link = get_term_link($term_id, $taxonomy);
    if (!is_wp_error($term_link)) {
        indexnowsu_send_url_to_indexnow([$term_link]);
    }
}
add_action('edited_term', 'indexnowsu_send_url_on_term_change', 10, 3);
add_action('create_term', 'indexnowsu_send_url_on_term_change', 10, 3);

Это гарантирует, что поисковики быстро узнают об изменениях в категориях и метках.

Отправка URL медиафайлов и изображений

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

Для отправки URL медиафайлов при их загрузке можно использовать хук add_attachment и при обновлении — edit_attachment:

function indexnowsu_send_url_on_attachment_save($post_id) {
    $post = get_post($post_id);
    if ($post->post_type !== 'attachment') {
        return;
    }
    $attachment_url = wp_get_attachment_url($post_id);
    if ($attachment_url) {
        indexnowsu_send_url_to_indexnow([$attachment_url]);
    }
}
add_action('add_attachment', 'indexnowsu_send_url_on_attachment_save');
add_action('edit_attachment', 'indexnowsu_send_url_on_attachment_save');

Это помогает поддерживать актуальность индекса по медиафайлам.

Практические советы по оптимизации отправки URL в IndexNow

При большом объёме контента важно не перегружать протокол множеством запросов. Вот несколько советов:

  • Пакетная отправка URL: собирайте URL за промежуток времени и отправляйте их массивом, чтобы снизить количество запросов.
  • Фильтрация по типу контента: отправляйте только те URL, которые действительно важны для поисковиков.
  • Логирование ошибок: записывайте ошибки отправки в лог, чтобы вовремя выявлять проблемы.
  • Использование CRON задач: если у вас много обновлений, можно настроить периодическую отправку URL с помощью WP-Cron.

Пример пакетной отправки URL с WP-Cron

function indexnowsu_schedule_batch_send() {
    if (!wp_next_scheduled('indexnowsu_batch_send_event')) {
        wp_schedule_event(time(), 'hourly', 'indexnowsu_batch_send_event');
    }
}
add_action('wp', 'indexnowsu_schedule_batch_send');

add_action('indexnowsu_batch_send_event', 'indexnowsu_batch_send_urls');

function indexnowsu_batch_send_urls() {
    $urls = get_option('indexnowsu_url_queue', []);
    if (empty($urls)) {
        return;
    }
    indexnowsu_send_url_to_indexnow($urls);
    update_option('indexnowsu_url_queue', []);
}

function indexnowsu_queue_url_for_indexnow($url) {
    $urls = get_option('indexnowsu_url_queue', []);
    if (!in_array($url, $urls)) {
        $urls[] = $url;
        update_option('indexnowsu_url_queue', $urls);
    }
}

В этом примере URL накапливаются в опции и отправляются раз в час одним запросом.

Заключение

Правильная отправка URL разных типов контента в IndexNow помогает поддерживать актуальность индекса поисковых систем и улучшает видимость сайта. Используйте хук save_post для стандартных и кастомных записей, edited_term для таксономий и add_attachment для медиа. Не забывайте об оптимизации — пакетной отправке и фильтрации URL.

Если хотите готовые расширенные возможности, рекомендую посмотреть Clearfy Pro, который умеет автоматически интегрироваться с IndexNow и оптимизировать отправку URL.

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

⭐⭐⭐⭐⭐
IndexNow: как автоматически удалять слуги с постоянным редиректом в WordPress и обновлять индекс
14.04.2026
IndexNow и SSL в WordPress: практические советы по устранению проблем с индексацией
17.01.2026
IndexNow и кэширование в WordPress: практические советы и решения
21.12.2025
Как добавить IndexNow в WordPress без плагинов: ручная интеграция и примеры кода
29.11.2025
IndexNow: как отправлять URL из пользовательских типов записей WordPress
06.01.2026
×
WPShop
честная партнерка!

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

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