Автоматическое удаление слугов с постоянным редиректом в WordPress и обновление индекса через IndexNow

Почему важно удалять из индекса слуги с 301 редиректами

Постоянные редиректы (HTTP 301) указывают поисковым системам на окончательное перемещение страницы. Если в индексе остаются URL, которые перенаправляют на другие, это снижает качество индексации, увеличивает нагрузку на сервер и может негативно отразиться на SEO. Автоматизация удаления таких URL из индекса с помощью IndexNow позволяет своевременно обновлять поисковый индекс и ускоряет переиндексацию сайта.

Диагностика проблемы: как выявить слуги с 301 редиректами в WordPress

Для начала нужно определить, какие URL на сайте настроены с постоянным редиректом. Чаще всего редиректы добавляются через плагины, в файле .htaccess или в коде темы/плагинов.

  • Используйте wp-cli для получения списка редиректов (если установлен плагин Redirection):
    wp redirection list --status=301
  • Проверьте базу данных в таблице wp_redirection_items (если используется плагин Redirection).
    Запрос для выборки постоянных редиректов:
    SELECT source_url, target_url FROM wp_redirection_items WHERE action_type = 'url' AND status_code = 301;
  • Для редиректов, прописанных в .htaccess, вручную просмотрите файл или автоматизируйте сканирование с помощью скрипта.

Проверка редиректов через PHP

Пример кода, который проверяет, возвращает ли URL 301 редирект:

function is_url_redirect_301($url) {
    $headers = get_headers($url, 1);
    if ($headers && strpos($headers[0], '301') !== false) {
        return true;
    }
    return false;
}

Пошаговое решение: автоматическое удаление 301 редиректов из индекса с IndexNow

Основная идея — при обнаружении слуга с 301 редиректом отправлять запрос в IndexNow для удаления этого URL из индекса поисковых систем.

1. Подключение к хуку WordPress для проверки URL перед отправкой

Лучше всего интегрировать проверку в момент, когда URL меняется или при плановом сканировании.

add_action('init', 'check_and_send_indexnow_for_redirected_urls');

function check_and_send_indexnow_for_redirected_urls() {
    // Например, запускать не чаще раза в сутки с помощью transient
    if (get_transient('indexnow_redirects_checked')) {
        return;
    }

    $redirected_urls = get_redirected_urls(); // Функция для получения списка URL с 301

    foreach ($redirected_urls as $url) {
        send_url_to_indexnow($url, 'delete');
    }

    set_transient('indexnow_redirects_checked', true, 24 * HOUR_IN_SECONDS);
}

2. Функция получения URL с 301 редиректом

function get_redirected_urls() {
    global $wpdb;
    $urls = [];
    // Пример для плагина Redirection
    $table = $wpdb->prefix . 'redirection_items';
    $results = $wpdb->get_results("SELECT source_url FROM {$table} WHERE status_code = 301", ARRAY_A);

    foreach ($results as $row) {
        $urls[] = home_url($row['source_url']);
    }
    return $urls;
}

3. Отправка URL в IndexNow c удалением из индекса

Пример базовой функции отправки URL в IndexNow:

function send_url_to_indexnow($url, $action = 'update') {
    $key = 'ваш_ключ_IndexNow';
    $api_url = 'https://api.indexnow.org/indexnow';

    $payload = [
        'host' => parse_url(home_url(), PHP_URL_HOST),
        'key' => $key,
        'keyLocation' => home_url("{$key}.txt"),
        'urlList' => [$url],
        'action' => $action // 'update' или 'delete'
    ];

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

    $response = wp_remote_post($api_url, $args);
    if (is_wp_error($response)) {
        error_log('IndexNow отправка не удалась: ' . $response->get_error_message());
        return false;
    }
    return true;
}

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

  • Проверьте логи ошибок WordPress на предмет ошибок отправки.
  • Убедитесь, что transient indexnow_redirects_checked создается и обновляется.
  • Через инструменты поисковых систем (Bing Webmaster Tools, Yandex.Webmaster) проверьте статус удаления URL из индекса.
  • С помощью curl -I https://example.com/redirected-url убедитесь, что URL действительно возвращает 301.

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

  • Неверный ключ API IndexNow: Проверьте, что ключ загружен корректно и доступен по URL https://example.com/ваш_ключ.txt.
  • Отсутствие проверки transient: Без контроля частоты вызова скрипт может перегружать сервер и API.
  • Неправильный формат URL: Убедитесь, что URL для отправки начинается с домена сайта и корректно сформирован.
  • Проблемы с правами доступа: Файл ключа IndexNow должен быть доступен для чтения поисковыми ботами.
  • Отсутствие поддержки HTTPS: IndexNow требует HTTPS для ключевого файла и URL.

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

  • Храните ключ IndexNow вне публичных репозиториев и файлов темы. Используйте wp-config.php или системные переменные окружения.
  • Кешируйте результаты проверки редиректов. Используйте transient API, чтобы не нагружать базу и внешний сервер.
  • Отправляйте URL пакетами. Если URL много, разбивайте на группы по 10-20 для уменьшения количества HTTP-запросов.
  • Логируйте ошибки отправки, но не выводите их пользователю.

Сравнение вариантов реализации автоматического удаления слугов с 301 редиректом

МетодПлюсыМинусыКогда использовать
Использование плагина Redirection + WP Cron + IndexNow APIАвтоматизация, интеграция с существующими редиректамиЗависимость от плагина, сложность настройкиЕсть уже Redirection и много редиректов
Ручной скрипт на PHP с wp_remote_post и проверкой .htaccessПолный контроль, подходит для кастомных решенийТребует знаний, может нагружать серверМалый объем редиректов, кастомные редиректы
Плагин с готовой интеграцией IndexNow (если доступен)Простота, поддержка разработчиковМожет быть платным, ограниченная кастомизацияБыстрая интеграция без доработок

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

⭐⭐⭐⭐⭐
Оптимизация базы данных WordPress и ускорение запросов: практические советы
11.11.2025
Как автоматизировать удаление и обновление URL в WordPress с помощью Webhooks и IndexNow
04.04.2026
IndexNow оптимизация отправки URL в WooCommerce: практические решения для больших магазинов
01.04.2026
Отладка отправки URL в IndexNow для WordPress: практические советы и примеры
29.12.2025
IndexNow и WooCommerce: решение проблем индексации товаров и страниц
25.12.2025
×
Оптимизируй свой сайт!

Скидка -15% на премиум плагин Clearfy Pro

Купить плагин сейчас ⋙