Как убрать содержимое из старых URL в WordPress без потери SEO

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

Ниже разберём именно практическую задачу: как убрать содержимое из старых URL в WordPress так, чтобы не ломать SEO и не оставлять мусорные страницы в индексе.

Когда удалять, а когда не трогать URL

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

Диагностика проблемы

Проверьте четыре вещи:

  • есть ли у URL органический трафик в Search Console или аналитике;
  • есть ли внешние ссылки на страницу;
  • есть ли на неё внутренние ссылки из меню, архивов, похожих материалов;
  • что сейчас отдаёт сервер: 200, 301, 404 или 410.

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

Какие варианты решения использовать

Для старых URL обычно есть три рабочих сценария. Выбор зависит от того, есть ли замена и насколько страница ценна для поиска.

СценарийЧто делатьКогда подходит
Есть точная замена301 редирект на новый URLСтарая страница переехала или была заменена аналогом
Страница удалена навсегдаОтдать 410 GoneКонтент больше не нужен и аналога нет
Страница ещё нужна, но устарелаОбновить и оставить URLЕсть поисковый спрос и можно сохранить адрес

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

Пошаговое решение: убрать старый URL корректно

Шаг 1. Определите целевой сценарий для каждого URL

Не делайте массовое удаление «вслепую». Сначала составьте короткий список:

  • URL с трафиком — редирект или обновление;
  • URL без трафика, без ссылок и без замены — 410;
  • URL с похожей новой страницей — 301;
  • URL, который должен остаться, но изменить содержимое — обновление без удаления.

Это можно сделать даже вручную по выгрузке из Search Console и списку записей в админке. Для небольшого сайта этого достаточно.

Шаг 2. Настройте редирект, если есть замена

Самый безопасный вариант — 301 редирект. Его можно сделать через сервер, плагин редиректов или код. Если нужен именно код на уровне WordPress, используйте template_redirect и проверку текущего URL.

<?php
add_action('template_redirect', function () {
    if (!is_singular()) {
        return;
    }

    $path = trim(parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH), '/');

    if ($path === 'staryj-url') {
        wp_redirect(home_url('/novyj-url/'), 301);
        exit;
    }
});

Этот вариант подходит для точечных случаев. Если редиректов много, лучше хранить их в плагине или на уровне сервера, чтобы не раздувать тему или mu-plugin.

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

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

<?php
add_action('template_redirect', function () {
    if (is_admin()) {
        return;
    }

    $path = trim(parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH), '/');

    if ($path === 'arhivnyj-material') {
        status_header(410);
        nocache_headers();
        echo 'Страница удалена';
        exit;
    }
});

Важно: не используйте этот подход для URL, у которых есть живой трафик и релевантная замена. В таких случаях 410 может просто обрубить полезный переход.

Шаг 4. Уберите внутренние ссылки на старый адрес

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

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

Шаг 5. Обновите карту сайта и отправьте переобход

После удаления или редиректа проверьте, что старый URL исчез из sitemap. Если карта сайта генерируется плагином, иногда запись пропадает не сразу из-за кэша. Очистите кэш плагина, серверный кэш и, если нужно, кэш CDN.

Затем отправьте обновлённую карту сайта в Search Console и вручную проверьте несколько URL через инструмент проверки страницы.

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

Проверка должна быть технической, а не «страница вроде не открывается». Смотрите именно HTTP-ответ и конечный адрес.

  • для редиректа: старый URL должен отдавать 301 и вести на новый адрес;
  • для удалённой страницы: должен быть 410 или осознанный 404;
  • в sitemap старый URL не должен оставаться после очистки кэша;
  • внутренние ссылки должны указывать на новый адрес или быть удалены;
  • в Search Console страница должна начать выпадать из индекса после переобхода.

Проверить ответ можно через curl:

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

В ответе смотрите строку HTTP/2 301 или HTTP/2 410. Если вместо этого приходит 200, значит правило не сработало или его перекрывает другой плагин, тема или серверная настройка.

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

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

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

Удаление записи без проверки вложенных ссылок

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

Конфликт плагинов кэша и редиректов

Иногда старый ответ остаётся в кэше, и кажется, что правило не работает. В таком случае очистите кэш плагина, серверный кэш и CDN. Если есть object cache, проверьте и его тоже.

Использование 410 для страниц с трафиком

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

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

Удалили запись в WordPress — это ещё не значит, что поисковик увидит правильный статус. Проверяйте именно HTTP-ответ, а не только внешний вид страницы.

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

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

Не храните десятки одноразовых правил в functions.php активной темы. Лучше вынести их в небольшой mu-plugin или использовать специализированный инструмент для редиректов. Так меньше риск потерять логику при обновлении темы.

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

Короткий чек-лист перед удалением URL

  • Проверил, есть ли трафик и внешние ссылки.
  • Определил, есть ли релевантная замена.
  • Выбрал сценарий: 301, 410 или обновление контента.
  • Удалил внутренние ссылки на старый адрес.
  • Очистил кэш сайта и CDN.
  • Проверил HTTP-ответ через curl -I или DevTools.
  • Обновил sitemap и отправил его на переобход.

Если после всех правок старый URL всё ещё отдаёт 200, ищите конфликт в правилах редиректа, кэше или шаблоне темы. В WordPress такие проблемы чаще всего решаются не «ещё одним плагином», а точной проверкой цепочки ответа от сервера до шаблона.

Как отключить Emoji в WordPress для улучшения производительности
11.09.2026
Как удалить кэш в WordPress: практическое руководство
11.09.2026
Оптимизация базы данных WordPress при больших объемах данных
28.09.2026
Как создать и использовать собственные REST API эндпоинты в WordPress
03.10.2026
Как отключить Gutenberg для отдельных типов записей в WordPress
22.09.2026