Редиректы — это важный инструмент для управления URL и SEO, но иногда в WordPress накапливаются лишние или неправильные перенаправления, которые могут приводить к проблемам с индексацией, циклам редиректов или ухудшению производительности сайта. В этой статье мы подробно разберём, как найти и удалить ненужные редиректы в WordPress, а также приведём примеры кода и полезные плагины для решения этой задачи.
Что такое редиректы в WordPress и зачем их удалять
Редиректы — это автоматические перенаправления с одного URL на другой. Они помогают сохранить посетителей и поисковые системы на актуальных страницах при изменении структуры сайта, удалении контента или миграции. Однако с течением времени в WordPress могут накапливаться «мертвые» или неправильные редиректы, которые:
- Замедляют загрузку страниц из-за лишних переходов.
- Ведут к ошибкам 404 или бесконечным циклам.
- Негативно влияют на SEO, так как поисковые системы не любят длинные цепочки перенаправлений.
Удаление таких редиректов помогает поддерживать здоровье сайта и улучшать пользовательский опыт.
Где в WordPress могут храниться редиректы
Редиректы могут создаваться и храниться в разных местах:
- .htaccess — классический способ на серверах Apache, где прописываются правила перенаправления.
- Файл nginx.conf — для сайтов на Nginx, где редиректы задаются в конфигурации сервера.
- Плагины редиректов — такие как Redirection, Simple 301 Redirects и другие, которые сохраняют правила в базе данных.
- Встроенные функции WordPress — например, wp_redirect() в коде темы или плагинов.
- Хуки и фильтры — которые могут динамически создавать редиректы.
Чтобы корректно удалить редиректы, нужно понимать, где именно они заданы.
Как удалить редиректы из .htaccess и nginx.conf
Если у вас есть доступ к серверу, начните с проверки конфигурационных файлов.
Удаление редиректов из .htaccess
Откройте файл .htaccess в корне сайта и найдите строки с правилами вида:
Redirect 301 /old-page https://example.com/new-page
RewriteRule ^old-page/?$ https://example.com/new-page [R=301,L]
Удалите или закомментируйте эти строки, чтобы убрать редиректы.
Удаление редиректов из nginx.conf
В конфигурации Nginx ищите директивы return 301 или rewrite:
location /old-page {
return 301 https://example.com/new-page;
}
Удалите или измените их при необходимости, затем перезагрузите Nginx командой sudo systemctl reload nginx.
Удаление редиректов, созданных плагинами
Самый популярный плагин для управления редиректами — Redirection. В его настройках можно просмотреть список всех редиректов и удалить ненужные.
Если вы используете другие плагины, ознакомьтесь с их документацией для удаления правил.
Удаление редиректов из кода темы и плагинов
Иногда редиректы создаются программно, например, через функцию wp_redirect(). Чтобы найти такие места, выполните поиск по проекту по коду:
wp_redirect
После нахождения кода можно либо удалить вызов функции, либо добавить дополнительную проверку, чтобы условно отключить перенаправление.
Пример условного отключения редиректа через фильтр:
add_action('template_redirect', 'wplock_disable_specific_redirect', 1);
function wplock_disable_specific_redirect() {
if (is_page('old-page')) {
remove_action('template_redirect', 'function_that_redirects');
}
}
Если функция редиректа не оформлена отдельным хуком, можно заменить её поведение через фильтры или переписать часть кода.
Пример кода для удаления редиректов из базы данных WordPress
Некоторые плагины сохраняют редиректы в таблицах базы данных. Для массового удаления можно использовать SQL-запросы. Ниже пример удаления всех записей с определённым URL из таблицы wp_redirection_items (плагин Redirection):
global $wpdb;
$url_to_delete = 'https://example.com/old-page';
$wpdb->query($wpdb->prepare(
"DELETE FROM {$wpdb->prefix}redirection_items WHERE url = %s",
$url_to_delete
));
Перед выполнением всегда делайте резервные копии базы данных.
Плагины для управления и поиска редиректов в WordPress
- Redirection — удобный плагин для просмотра, добавления и удаления редиректов. Позволяет логировать ошибки 404 и создавать правила без правки серверных файлов.
- Safe Redirect Manager — простой менеджер редиректов с минималистичным интерфейсом.
- Rewrite Rules Inspector — позволяет просматривать и управлять внутренними правилами перезаписи WordPress.
- Clearfy Pro — хотя и не специализирован на редиректах, помогает оптимизировать работу сайта и отключить лишние перенаправления, если они созданы WordPress по умолчанию.
Как отследить и диагностировать редиректы на сайте
Прежде чем удалять редиректы, нужно понять, какие именно существуют и как они работают. Для этого используйте инструменты:
- Расширения браузера — например, Redirect Path или HTTP Headers для Chrome и Firefox показывают цепочки редиректов.
- Онлайн-сервисы — httpstatus.io или redirect-checker.org позволяют проверить статус конкретных URL.
- Логи сервера — при наличии доступа к логам Apache или Nginx можно увидеть, какие перенаправления сработали.
- Плагины WordPress — например, Redirection ведёт лог 404 и редиректов.
Практические советы по работе с редиректами в WordPress
- Регулярно проверяйте сайт на наличие лишних или циклических редиректов.
- Используйте плагины для удобного управления, если вы не хотите править серверные файлы вручную.
- Удаляйте редиректы аккуратно, чтобы не потерять трафик с внешних ссылок.
- При массовых изменениях делайте резервное копирование файлов и базы данных.
- Оптимизируйте количество редиректов — избегайте длинных цепочек.