Удаление страниц или записей в WordPress без настройки редиректа часто приводит к появлению ошибок 404, что негативно сказывается на пользовательском опыте и SEO-показателях сайта. В этой статье рассмотрим, как реализовать автоматический редирект 301 после удаления страницы, чтобы посетители и поисковые системы перенаправлялись на релевантный URL.
Почему важен автоматический редирект после удаления страницы
При удалении контента в WordPress ссылка на него перестаёт быть доступной, и при переходе по старому URL пользователь увидит ошибку 404 — страница не найдена. Это снижает доверие посетителей и ухудшает позиции сайта в поисковой выдаче. Особенно важно настроить редирект, если страница имела входящие ссылки или трафик.
Ручное создание редиректов после удаления страниц бывает неудобным и трудозатратным, особенно на больших сайтах с постоянным обновлением контента. Автоматизация процесса поможет избежать ошибок и сэкономить время.
Используем плагин для автоматического редиректа после удаления страницы
Одним из удобных решений является плагин Redirect After Delete. Он автоматически создает 301 редирект с удаленной страницы на выбранный URL.
После установки и активации плагина он добавит в админке настройку, где можно задать, куда будет перенаправляться посетитель при удалении записи. Например, на главную страницу, родительскую страницу или любую другую.
Этот плагин можно дополнить плагином Clearfy Pro, который оптимизирует работу сайта и помогает управлять редиректами более гибко.
Настройка Redirect After Delete
- Установите и активируйте плагин через админку WordPress.
- Перейдите в меню «Настройки» > «Redirect After Delete».
- Выберите тип перенаправления: на главную страницу, родительскую, либо ввести конкретный URL.
- Сохраните настройки.
Теперь при удалении записи автоматически будет создаваться редирект 301 с удаленного URL.
Реализация автоматического редиректа через код в functions.php
Если хотите обойтись без плагинов, можно добавить в тему следующий код. Он будет отслеживать удаление страниц и создавать редиректы с помощью функции из плагина Redirection или собственного решения.
function wpma_create_redirect_after_delete($post_id) {
$post = get_post($post_id);
if (!$post || $post->post_type !== 'page') {
return;
}
$old_url = get_permalink($post_id);
$redirect_url = home_url('/'); // Замените на нужный URL перенаправления
// Проверяем, установлен ли плагин Redirection
if (class_exists('Red_Item')) {
// Добавляем редирект в плагин Redirection
$redirect_item = new Red_Item();
$redirect_item->set_url($old_url);
$redirect_item->set_match_url($old_url);
$redirect_item->set_action('url');
$redirect_item->set_action_code(301);
$redirect_item->set_action_data($redirect_url);
$redirect_item->save();
} else {
// Альтернативное решение: сохраняем редиректы в опции или создаем свой механизм
// Пример: сохраняем редиректы в transient
$redirects = get_option('wpma_redirects_after_delete', []);
$redirects[$old_url] = $redirect_url;
update_option('wpma_redirects_after_delete', $redirects);
}
}
add_action('before_delete_post', 'wpma_create_redirect_after_delete');Данный код срабатывает перед удалением страницы и сохраняет старый URL и URL для редиректа. Если установлен плагин Redirection, создается запись редиректа. Иначе можно реализовать собственный механизм регистрации редиректов.
Обработка сохранённых редиректов без плагина
Чтобы редиректы работали, если вы сохраняете данные в опциях, добавьте фильтр в template_redirect:
function wpma_handle_redirects_after_delete() {
$redirects = get_option('wpma_redirects_after_delete', []);
$request_uri = home_url(add_query_arg([], $_SERVER['REQUEST_URI']));
foreach ($redirects as $from => $to) {
if ($from === $request_uri) {
wp_redirect($to, 301);
exit;
}
}
}
add_action('template_redirect', 'wpma_handle_redirects_after_delete');Этот код проверит текущий URL и при совпадении отправит 301 редирект на нужный адрес.
Советы по выбору URL для редиректа после удаления
Оптимально, чтобы перенаправление вело на релевантный контент. Например, если вы удалили страницу товара, редирект лучше сделать на категорию этого товара или на похожий продукт.
Если релевантного контента нет, можно перенаправлять на главную страницу или страницу с сопутствующей информацией. Главное — избегать циклов редиректов и цепочек из нескольких переходов.
Используйте инструменты аналитики и отчёты 404 ошибок (например, в Google Search Console), чтобы выявить удалённые страницы с трафиком и своевременно настроить для них редиректы.
Заключение
Автоматический редирект после удаления страницы — важный элемент поддержания качества сайта и SEO. Используйте готовые плагины, например Redirect After Delete, либо реализуйте собственное решение с помощью кода. Не забывайте выбирать корректный URL для перенаправления, чтобы сохранить пользователей и позиции в поисковых системах.