Редиректы в WordPress — мощный инструмент для управления переходами с устаревших URL на новые страницы. Однако с течением времени в базе могут накапливаться нерабочие или «битые» редиректы, которые негативно влияют на SEO и увеличивают нагрузку на сервер. В этой статье подробно рассмотрим, как автоматизировать процесс поиска и удаления таких нерабочих редиректов, используя практические примеры и плагины.
Почему важно удалять нерабочие редиректы
Нерабочие редиректы — это ссылки, которые ведут на несуществующие страницы (404), вызывают цепочки редиректов или циклы, замедляя загрузку сайта и ухудшая пользовательский опыт. Поисковые системы могут снижать рейтинг сайта из-за большого количества таких ошибок.
Регулярная очистка редиректов помогает:
- Улучшить скорость загрузки сайта;
- Повысить качество SEO;
- Избежать конфликтов между правилами редиректа;
- Облегчить администрирование и поддержку сайта.
Как обнаружить нерабочие редиректы в WordPress
Для поиска нерабочих редиректов можно использовать несколько способов:
1. Плагины для мониторинга редиректов
Плагин Redirection позволяет вести учет всех редиректов и автоматически фиксировать ошибки 404. В интерфейсе плагина можно просмотреть список редиректов с ошибками.
2. Внешние инструменты аудита
Сервисы типа Screaming Frog SEO Spider или онлайн-проверки, например Ahrefs, помогают выявить редиректы с ошибками. Однако для автоматизации лучше использовать внутренние инструменты.
3. Программный подход с помощью WP Cron
Можно написать собственный скрипт, который периодически проверяет редиректы и удаляет те, что ведут на несуществующие страницы.
Пример автоматизации удаления нерабочих редиректов с помощью кода
Рассмотрим пример функции, которая проверяет URL назначения редиректа и удаляет правило, если целевая страница возвращает ошибку 404.
function wpbe_check_and_cleanup_redirects() {
global $wpdb;
// Таблица редиректов плагина Redirection
$table_name = $wpdb->prefix . 'redirection_items';
$redirects = $wpdb->get_results("SELECT id, match_url, action_data FROM $table_name");
foreach ($redirects as $redirect) {
$target_url = maybe_unserialize($redirect->action_data)['url'] ?? '';
if (!$target_url) continue;
$response = wp_remote_head($target_url);
if (is_wp_error($response) || wp_remote_retrieve_response_code($response) == 404) {
// Удаляем редирект
$wpdb->delete($table_name, ['id' => $redirect->id]);
}
}
}
// Планируем запуск проверки раз в неделю
if (!wp_next_scheduled('wpbe_weekly_redirect_cleanup')) {
wp_schedule_event(time(), 'weekly', 'wpbe_weekly_redirect_cleanup');
}
add_action('wpbe_weekly_redirect_cleanup', 'wpbe_check_and_cleanup_redirects');
В этом коде мы подключаемся к таблице плагина Redirection, перебираем все редиректы и проверяем код ответа целевого URL. Если страница не найдена, редирект удаляется. Запуск происходит автоматически раз в неделю через WP Cron.
Использование плагина Clearfy Pro для управления редиректами
Плагин Clearfy Pro предлагает дополнительные инструменты для очистки базы данных и оптимизации редиректов. Он умеет находить и удалять неактивные правила, а также упрощает управление ими через удобный интерфейс.
Настройка Clearfy Pro для оптимизации редиректов включает:
- Автоматическую проверку нерабочих редиректов;
- Отчеты по ошибкам 404 и проблемным правилам;
- Возможность массового удаления и редактирования.
Советы по предотвращению накопления нерабочих редиректов
Чтобы минимизировать появление нерабочих редиректов, следуйте рекомендациям:
- Регулярно проверяйте сайт на ошибки 404 и исправляйте их;
- Избегайте длинных цепочек редиректов — они замедляют сайт и создают риски ошибок;
- Используйте качественные плагины для редиректов с возможностью мониторинга;
- Удаляйте устаревшие редиректы при изменении структуры сайта;
- Внедрите автоматическую проверку через WP Cron, чтобы своевременно выявлять проблемы.
Пример расширения функционала: уведомление администратора о битых редиректах
Для повышения контроля можно добавить отправку email-уведомлений при обнаружении ошибок. Вот пример функции, которая отправляет отчет на почту администратора:
function wpbe_notify_admin_bad_redirects() {
global $wpdb;
$table_name = $wpdb->prefix . 'redirection_items';
$bad_redirects = [];
$redirects = $wpdb->get_results("SELECT id, match_url, action_data FROM $table_name");
foreach ($redirects as $redirect) {
$target_url = maybe_unserialize($redirect->action_data)['url'] ?? '';
if (!$target_url) continue;
$response = wp_remote_head($target_url);
if (is_wp_error($response) || wp_remote_retrieve_response_code($response) == 404) {
$bad_redirects[] = $redirect->match_url . ' -> ' . $target_url;
}
}
if (!empty($bad_redirects)) {
$to = get_option('admin_email');
$subject = 'Отчет: Нерабочие редиректы на сайте';
$message = "Обнаружены нерабочие редиректы:\n" . implode("\n", $bad_redirects);
wp_mail($to, $subject, $message);
}
}
// Запускаем проверку и уведомление раз в неделю
add_action('wpbe_weekly_redirect_cleanup', 'wpbe_notify_admin_bad_redirects');
Так вы будете своевременно получать информацию о проблемах и сможете быстро удалять или исправлять нерабочие редиректы.
Выводы и рекомендации
Автоматизация удаления нерабочих редиректов — важная задача для поддержания здоровья сайта и SEO. Используйте комбинацию проверенных плагинов, собственных скриптов и регулярного мониторинга, чтобы эффективно управлять редиректами.
Для удобства и расширенных возможностей рекомендуем обратить внимание на Clearfy Pro и Redirection. Грамотный подход к управлению редиректами поможет избежать проблем с SEO и улучшить скорость сайта.