IndexNow автоматическая отправка URL для пользовательских таксономий WordPress

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

Почему важно отправлять URL пользовательских таксономий в IndexNow

Пользовательские таксономии часто содержат ценный контент и фильтрующие страницы, которые влияют на SEO. Если поисковики не получают уведомления об их обновлении, индексация таких страниц может задерживаться, что негативно скажется на видимости сайта.

Кроме того, таксономии могут меняться динамически — например, при добавлении новых терминов или изменении описаний. Автоматизация отправки URL по протоколу IndexNow для таких изменений помогает ускорить обновление индекса в поисковых системах, таких как Яндекс и Bing.

В итоге, вы обеспечиваете актуальность поисковой выдачи и улучшаете пользовательский опыт для посетителей.

Как реализовать автоматическую отправку URL пользовательских таксономий в WordPress с IndexNow

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

Основная идея — перехватывать события изменения таксономий (создание/обновление терминов) и отправлять соответствующие URL на сервер IndexNow.

Шаг 1: Получение URL терминов пользовательских таксономий

Для каждой пользовательской таксономии нужно получить URL терминов, используя функцию WordPress get_term_link(). Например:

function indexnow_su_get_custom_taxonomy_term_urls() {
    $urls = [];
    $taxonomies = get_taxonomies(['_builtin' => false], 'names'); // Получаем все кастомные таксономии

    foreach ($taxonomies as $taxonomy) {
        $terms = get_terms(['taxonomy' => $taxonomy, 'hide_empty' => false]);
        if (!empty($terms) && !is_wp_error($terms)) {
            foreach ($terms as $term) {
                $link = get_term_link($term);
                if (!is_wp_error($link)) {
                    $urls[] = $link;
                }
            }
        }
    }
    return $urls;
}

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

Шаг 2: Отправка URL в IndexNow

Далее нужно реализовать функцию отправки URL. Для примера возьмём простой запрос c использованием wp_remote_post:

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

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

    $response = wp_remote_post($endpoint, [
        'headers' => ['Content-Type' => 'application/json'],
        'body' => json_encode($payload)
    ]);

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

    return true;
}

Обратите внимание, что ключ и файл indexnow_key.txt должны быть заранее созданы и размещены в корне сайта согласно требованиям IndexNow.

Шаг 3: Автоматизация отправки при изменении таксономий

Чтобы отправлять URL автоматически, нужно повесить вызов отправки на соответствующие хуки WordPress, например, created_term и edited_term:

add_action('created_term', 'indexnow_su_send_taxonomy_url_on_change', 10, 3);
add_action('edited_term', 'indexnow_su_send_taxonomy_url_on_change', 10, 3);

function indexnow_su_send_taxonomy_url_on_change($term_id, $tt_id, $taxonomy) {
    if (taxonomy_exists($taxonomy) && !is_taxonomy_hierarchical($taxonomy)) {
        $term = get_term($term_id, $taxonomy);
        if (!is_wp_error($term)) {
            $url = get_term_link($term);
            if (!is_wp_error($url)) {
                indexnow_su_send_urls_to_indexnow([$url]);
            }
        }
    }
}

Этот код отлавливает создание и редактирование терминов и отправляет URL изменённой таксономии в IndexNow.

Дополнительные рекомендации по работе с IndexNow и таксономиями

1. Кэширование: Если у вас большой сайт с тысячами терминов, не стоит отправлять все URL при каждом изменении. Лучше реализовать очередь или пакетную отправку через Cron.

2. Отслеживание ошибок: Логируйте ответы сервера IndexNow, чтобы контролировать успешность отправки.

3. Фильтрация таксономий: Иногда полезно исключить из отправки технические или неиндексируемые таксономии, чтобы не расходовать лимиты.

Пример интеграции с плагином Clearfy Pro для управления таксономиями

Плагин Clearfy Pro позволяет тонко настраивать индексацию таксономий, отключая лишние из индекса и оптимизируя SEO. В связке с нашим кодом по отправке URL для IndexNow вы получаете полный контроль над индексацией и быструю реакцию поисковиков на изменения.

Вывод

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

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

⭐⭐⭐⭐⭐
Как использовать IndexNow для удаления старого контента в WordPress
13.03.2026
Как автоматически отправлять Sitemap в IndexNow из WordPress
10.03.2026
Создание кастомных плагинов WordPress с паттернами и namespace для улучшения структуры кода
18.11.2025
IndexNow: как автоматически удалять неактивные ссылки из индекса WordPress
09.01.2026
Как сделать обновление метаданных WordPress без изменения контента
04.12.2025
×
WPShop
честная партнерка!

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

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