Как убрать 404 и пустые страницы после удаления записей WordPress

|

После массового удаления записей в WordPress обычно всплывают три проблемы: старые URL начинают отдавать 404, в меню и блоках остаются битые ссылки, а в индексе поисковиков висят пустые или неактуальные страницы. Если это не разгрести сразу, сайт получает лишний шум в логах, а пользователи — тупики вместо нормальной навигации.

Ниже — рабочая схема без выдуманных «магических» настроек: сначала находим источник проблемы, потом выбираем, что делать с каждым типом URL, и только после этого правим код или настройки.

Что именно ломается после удаления записей

Удаление записи в WordPress не всегда означает, что все следы исчезли. Чаще всего остаются:

Если удалённый URL уже получил 404, это не всегда ошибка. Ошибка начинается там, где на него продолжают вести внутренние ссылки, а поисковик регулярно его обходит.

Диагностика: где искать источник 404

Сначала нужно понять, это единичный URL или системная проблема. Для этого проверьте три места: логи сервера, отчёты поисковой консоли и сам сайт.

Проверка на стороне сайта

Откройте удалённый URL напрямую и посмотрите код ответа. Если у вас есть доступ к терминалу, удобно проверить так:

curl -I https://example.com/staryy-url/

В норме удалённая запись должна отдавать 404 или 410, если вы сознательно хотите показать, что страница удалена навсегда. Если вместо этого возвращается 200 с пустым шаблоном, это уже проблема темы или плагина.

Проверка внутренних ссылок

Ищите ссылки на удалённый URL в базе и в контенте. Самый быстрый способ — выгрузить список через плагин поиска по базе или пройтись по контенту вручную, если удалений немного. Обязательно проверьте:

Проверка индексации

Если URL уже попал в индекс, одного удаления записи мало. Поисковик может ещё долго хранить старый адрес в выдаче. Здесь важно понять, есть ли у страницы замена. Если замена есть — нужен редирект. Если замены нет и контент удалён окончательно — можно оставить 404 или отдать 410.

Что делать с удалённым URL: редирект, 404 или 410

Выбор зависит от смысла страницы, а не от удобства. Это важно, потому что неправильный редирект может склеить нерелевантные страницы и ухудшить поведенческие сигналы.

ВариантКогда использоватьКомпромисс
301 редиректЕсть близкая замена: новая статья, обновлённая версия, другой URL с тем же смысломНужно аккуратно подобрать целевую страницу, иначе редирект будет искусственным
404Страница удалена, замены нет, URL не должен жить дальшеПоисковик ещё какое-то время может показывать старый адрес
410Страница удалена окончательно и это нужно явно показатьПоддерживается не всеми сценариями одинаково, но для чистки мусора подходит

Пошаговое решение без лишнего риска

1. Уберите внутренние ссылки на удалённые страницы

Это первый шаг, потому что редирект не должен маскировать плохую структуру сайта. Исправьте ссылки в контенте, меню и блоках. Если удалённых URL много, сначала соберите список, потом заменяйте массово.

Для точечной замены в базе можно использовать wp search-replace, но только после бэкапа:

wp search-replace 'https://example.com/staryy-url/' 'https://example.com/novyy-url/' --skip-columns=guid

Если вы не уверены в масштабе изменений, сначала запустите команду с --dry-run.

2. Настройте редирект для страниц с заменой

Если у удалённой записи есть новая версия, сделайте 301-редирект. В простом случае можно использовать плагин редиректов, но для небольшого числа URL достаточно кода в functions.php дочерней темы или в мини-плагине.

add_action('template_redirect', function () {
    if (is_404()) {
        $request_uri = $_SERVER['REQUEST_URI'] ?? '';

        if ($request_uri === '/staryy-url/' || $request_uri === '/staryy-url') {
            wp_redirect(home_url('/novyy-url/'), 301);
            exit;
        }
    }
});

Такой вариант годится только для нескольких известных адресов. Если редиректов десятки, лучше вынести их в отдельное правило или использовать специализированный плагин, чтобы не раздувать тему.

3. Для окончательно удалённых страниц отдайте 410

Если страницы больше не будет и замены нет, 410 часто честнее, чем 301 на главную. Это помогает поисковику быстрее понять, что URL не нужно держать в индексе.

add_action('template_redirect', function () {
    if (is_404()) {
        $request_uri = $_SERVER['REQUEST_URI'] ?? '';

        if ($request_uri === '/udalennaya-stranica/' || $request_uri === '/udalennaya-stranica') {
            status_header(410);
            nocache_headers();
            exit;
        }
    }
});

Важно: не ставьте 410 на страницы, которые ещё могут понадобиться как замена или источник трафика. Это необратимый сигнал для поисковика.

4. Очистите кэш и проверьте шаблоны

После правок сбросьте кэш плагина, серверный кэш и, если есть, CDN. Иначе вы можете проверять уже исправленный URL, но видеть старую версию страницы. Это особенно часто случается на сайтах с page cache и отдельным объектным кэшем.

Как проверить, что всё сработало

Проверка должна быть не на глаз, а по факту ответа сервера и отсутствия битых внутренних ссылок.

Для быстрой проверки редиректа удобно смотреть цепочку ответов:

curl -I -L https://example.com/staryy-url/

Если цепочка длинная или редирект уходит не туда, это повод пересмотреть правило.

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

Редирект на главную вместо релевантной страницы

Это самая частая ошибка. Пользователь попадает на нерелевантный экран, а поисковик получает слабый сигнал. Исправление простое: ищите ближайшую по смыслу страницу, а не самую удобную.

Удалённая запись всё ещё в sitemap

Если URL продолжает попадать в sitemap, поисковик будет тратить обход на несуществующую страницу. Проверьте настройки SEO-плагина и исключите удалённый тип записи или конкретный объект из генерации карты сайта.

Кэш отдаёт старую версию после удаления

Иногда запись уже удалена, но кэш продолжает показывать её как доступную. Решение — очистить кэш плагина, серверный кэш и CDN, а затем повторно проверить заголовки ответа.

Пустой архив вместо 404

Если вы удалили все записи рубрики, но архив рубрики остался доступен и выглядит как пустая страница, это уже отдельная задача. Такой архив нужно либо закрывать от индексации, либо отдавать 404/410, если он больше не нужен. Не путайте это с удалением конкретной записи.

Когда лучше использовать плагин, а когда код

Если у вас несколько десятков старых URL и они регулярно меняются, плагин редиректов удобнее: проще поддерживать список и не лезть в тему. Если же нужно закрыть 3–5 конкретных адресов, код в мини-плагине или дочерней теме будет чище и предсказуемее.

Для сайтов, где одновременно нужно чистить дубли, мусорные архивы и технические хвосты, имеет смысл смотреть в сторону комплексной оптимизации. Например, Clearfy Pro от WPShop закрывает часть типовых задач по чистке WordPress и удалению лишнего технического шума: https://wpshop.ru/plugins/clearfy.

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

Перед массовыми заменами всегда делайте резервную копию базы. wp search-replace — полезная команда, но при ошибке она быстро размножает проблему по всему сайту. На боевом сайте сначала прогоняйте --dry-run, а потом уже применяйте изменения.

Не вешайте сложную логику редиректов на каждый запрос без необходимости. Если список URL большой, лучше использовать отдельный механизм редиректов, чем десятки условий в template_redirect. Иначе вы получите лишнюю нагрузку на фронтенд и усложните поддержку.

Если удаляете много старого контента, проверьте ещё и медиафайлы: иногда записи удалены, а изображения продолжают лежать в библиотеке и занимать место. Это уже отдельная чистка, но её удобно делать в том же окне обслуживания.

Автоматическое изменение стоимости товаров в WooCommerce по условиям
03.10.2026
Как автоматизировать управление виджетами WordPress с примерами кода
04.09.2026
Автоматическое создание и удаление черновиков в WordPress через CRON
03.09.2026
Как закрыть от индексации страницы вложений WordPress без потери трафика из поиска
21.09.2026
Как отключить XML Sitemap для отдельных типов записей в WordPress без потери индексации нужных страниц
08.09.2026
×
-15%
на премиум-тему
Bono

Создай магазин мечты
на WordPress!

↓ ↓ ↓ ↓ ↓
Купить со скидкой »