Постоянные редиректы (HTTP 301) в WordPress могут накапливаться со временем — после смены структуры URL, удаления страниц или неправильной настройки плагинов. Это замедляет работу сайта и ухудшает SEO. В этой статье подробно разберём, как найти и удалить лишние постоянные редиректы, а также как избежать их появления в будущем.
Что такое постоянные редиректы и почему их нужно удалять
Редирект 301 — это HTTP-ответ, который сообщает браузеру и поисковикам, что страница навсегда перемещена на другой URL. Это важно для сохранения SEO-показателей, но при неаккуратной настройке редиректы могут цепляться один за другим, образуя «редиректные петли» и замедляя загрузку сайта.
Если у вас накопилось много ненужных 301 редиректов, они могут привести к следующим проблемам:
- Ухудшение скорости загрузки сайта. Каждый редирект — дополнительный HTTP-запрос.
- Потеря поискового трафика. Неоптимальные редиректы снижают рейтинг страниц.
- Ошибки при индексации. Поисковые системы могут запутаться в цепочках редиректов.
Поэтому важно периодически проверять и удалять устаревшие или лишние редиректы.
Как найти все постоянные редиректы на WordPress-сайте
Сначала нужно выявить, какие редиректы есть на сайте. Сделать это можно разными способами:
1. Использование онлайн-сервисов для проверки редиректов
Сервисы вроде HTTP Status или Redirect Checker позволяют проверить цепочку редиректов по конкретному URL.
2. Плагины для WordPress
Плагин Clearfy Pro имеет инструменты для управления редиректами и их анализа. Другой популярный плагин — Redirection, который ведёт журнал всех редиректов, позволяет их фильтровать и удалять.
3. Использование WP-CLI
Если у вас есть доступ к командной строке сервера, можно использовать WP-CLI для поиска редиректов в базе данных. Например, с помощью запроса SQL:
SELECT * FROM wp_redirection_items WHERE action_code = 301;Это выведет все записи с 301 редиректами, если они сохранены плагином Redirection.
Как удалить постоянные редиректы в WordPress
Удаление зависит от того, где и как настроены редиректы.
Редиректы, настроенные в файле .htaccess
Самый быстрый способ — проверить файл .htaccess в корне сайта. Найдите строки с Redirect 301 или правила RewriteRule, которые создают редиректы, и удалите ненужные.
Пример базового правила редиректа в .htaccess:
Redirect 301 /old-page/ https://example.com/new-page/Удалите или закомментируйте строки, которые больше не нужны.
Редиректы, настроенные через плагины
Если редиректы созданы через плагин, зайдите в настройки плагина и удалите записи редиректов.
В плагине Redirection:
- Перейдите в «Инструменты» > «Redirection».
- В списке редиректов найдите нужные 301 и удалите их.
Удаление редиректов из базы данных программно
Если редиректы записаны в базе данных, например, в таблице плагина, можно создать функцию для их удаления по условию. Например, для удаления всех 301 редиректов в таблице wp_redirection_items:
function wpteam_remove_301_redirects() {
global $wpdb;
$table = $wpdb->prefix . 'redirection_items';
$deleted = $wpdb->query( "DELETE FROM $table WHERE action_code = 301" );
return $deleted;
}Вызовите wpteam_remove_301_redirects() один раз, чтобы очистить таблицу.
Как избежать появления лишних постоянных редиректов в будущем
Чтобы не накапливать ненужные редиректы, придерживайтесь следующих рекомендаций:
1. Продуманная структура URL
С самого начала планируйте структуру URL так, чтобы минимизировать необходимость перенаправлений. Избегайте частой смены постоянных ссылок.
2. Используйте плагины с умом
Плагины для SEO и редиректов удобны, но не забывайте регулярно проверять их настройки и журнал редиректов. Периодически удаляйте устаревшие правила.
3. Автоматизация очистки редиректов
Можно настроить WP-Cron задачу для периодической очистки устаревших редиректов. Пример кода для удаления редиректов старше 30 дней (для плагина Redirection):
function wpteam_cleanup_old_redirects() {
global $wpdb;
$table = $wpdb->prefix . 'redirection_items';
$date = date('Y-m-d H:i:s', strtotime('-30 days'));
$deleted = $wpdb->query( $wpdb->prepare( "DELETE FROM $table WHERE last_access < %s", $date ) );
return $deleted;
}
if ( ! wp_next_scheduled( 'wpteam_cleanup_redirects_hook' ) ) {
wp_schedule_event( time(), 'daily', 'wpteam_cleanup_redirects_hook' );
}
add_action( 'wpteam_cleanup_redirects_hook', 'wpteam_cleanup_old_redirects' );Заключение
Удаление постоянных редиректов в WordPress — важная задача для поддержания производительности и SEO. Используйте описанные методы для поиска, анализа и очистки редиректов. Рекомендуется регулярно проверять настройки плагинов, а для продвинутых пользователей — автоматизировать удаление устаревших правил с помощью WP-Cron и простого кода.
Для удобного управления редиректами и их анализа рекомендуем обратить внимание на плагин Clearfy Pro, который поможет оптимизировать работу сайта и удалить лишние редиректы без лишних усилий.