Как убрать старые URL из индексации в WordPress после смены структуры постоянных ссылок

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

Ниже — рабочая схема для ситуации, когда вы уже поменяли permalink-структуру, а теперь нужно аккуратно вывести старые адреса из индекса, не потеряв трафик и не устроив цепочки редиректов.

Как выглядит проблема на практике

Типичный сценарий: раньше записи открывались по адресу вида /2023/09/post-name/, потом структуру сменили на /post-name/. Внутренние ссылки уже обновились, но в поиске и в логах ещё встречаются старые URL. Если просто оставить всё как есть, поисковик сам разберётся не сразу. Если же удалить старые страницы без редиректов, вы получите 404, потерю накопленных сигналов и лишний шум в индексации.

Что нужно проверить до правок

  • Какая была старая структура permalink и какая стала сейчас.
  • Есть ли на старых URL 301-редирект на новый адрес или они отдают 404.
  • Не остались ли старые адреса в sitemap.xml.
  • Не генерирует ли тема или плагин внутренние ссылки на старый формат.
  • Есть ли в Search Console страницы со статусом «Просканирована, но не проиндексирована» или «Страница с перенаправлением».

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

Диагностика: что именно мешает старым URL исчезнуть

Проверка начинается не в админке, а с ответа сервера. Возьмите один старый адрес и посмотрите, что он отдаёт.

curl -I https://example.com/2023/09/post-name/

В нормальном варианте вы должны увидеть 301 Moved Permanently и новый адрес в заголовке Location. Если там 200 OK, значит старый URL всё ещё доступен как отдельная страница. Если 404, это не всегда плохо, но при массовой смене структуры лучше сначала закрыть вопрос редиректами, а потом уже чистить индекс.

Ещё один полезный тест — посмотреть, не осталось ли старых ссылок в базе.

wp search-replace 'https://example.com/2023/09/' 'https://example.com/' --dry-run

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

Пошаговое решение

1. Настройте 301-редиректы со старых URL на новые

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

Если у вас Apache, базовое правило может выглядеть так:

RewriteEngine On
RewriteRule ^2023/09/(.+)/?$ /$1/ [R=301,L]

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

2. Уберите старые URL из sitemap

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

Если sitemap генерирует SEO-плагин, убедитесь, что в нём не кэшируется старая версия карты сайта. Иногда после очистки кэша и повторной генерации старые ссылки исчезают только через несколько минут или часов.

3. Закройте неактуальные адреса от повторной индексации

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

Для точечной обработки в теме или мини-плагине можно использовать такой подход:

<?php
add_action('wp_head', function () {
    if (is_singular() && get_query_var('year') && get_query_var('monthnum')) {
        echo '<meta name="robots" content="noindex,follow">' . "\n";
    }
});

Этот пример уместен только если у вас есть чёткий признак старого формата в запросе. В большинстве случаев лучше не городить логику в шаблоне, а решать вопрос редиректом и настройкой SEO-плагина.

4. Уберите внутренние ссылки на старую структуру

Даже идеальный 301 не спасает, если сайт сам продолжает ссылаться на старые адреса. Проверьте:

  • хлебные крошки;
  • блоки «похожие записи»;
  • ручные ссылки в контенте;
  • меню и футер;
  • шаблоны архивов и карточек записей.

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

Сравнение подходов: редирект, noindex или удаление

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

Для смены структуры постоянных ссылок почти всегда базовый вариант — 301. 404 и 410 уместны только там, где контент действительно исчез без замены.

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

После внедрения не ограничивайтесь визуальной проверкой в браузере. Нужны три уровня контроля: сервер, sitemap и Search Console.

  1. Проверьте старый URL через curl -I и убедитесь, что он отдаёт 301 на новый адрес.
  2. Откройте sitemap.xml и проверьте, что там нет старых ссылок.
  3. В Search Console отправьте на переобход несколько старых URL и посмотрите, как меняется статус.
  4. Проверьте логи сервера: старые адреса должны постепенно исчезать из запросов бота.

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

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

Редирект ведёт на главную

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

Сделали 302 вместо 301

Временный редирект не передаёт тот же смысл, что постоянный. Для миграции структуры ссылок нужен именно 301. Если плагин редиректов по умолчанию ставит 302, проверьте настройку типа перенаправления.

Оставили старые URL в sitemap

Это частая причина, почему индексация не очищается. Даже если редирект уже работает, карта сайта продолжает подталкивать бота к старым адресам. После смены структуры sitemap нужно пересобрать и проверить вручную.

Сделали массовую замену без бэкапа

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

Что делать, если старых URL слишком много

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

Если у вас на сайте есть тяжёлые SEO-обвязки, имеет смысл проверить, не создают ли они лишние дубли и не мешают ли чистке индекса. В таких задачах иногда помогает Clearfy Pro, но только если вы точно понимаете, какие функции включаете и зачем. Автоматическая «чистка всего подряд» здесь скорее навредит, чем поможет.

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

  • Перед массовыми заменами и редиректами делайте бэкап базы и файлов.
  • Не ставьте несколько плагинов редиректов одновременно: они могут конфликтовать и создавать цепочки.
  • После правок очистите кэш страницы, объектный кэш и CDN, если он есть.
  • Не закрывайте старые URL через robots.txt раньше времени: если бот не сможет их обойти, он дольше увидит старую версию в индексе.
  • Проверяйте, не генерирует ли тема старые ссылки в хлебных крошках или архивных блоках.

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

Добавь в закладки и поделись с друзьями:

⭐⭐⭐⭐⭐
Как убрать дубли страниц в WordPress через canonical и noindex
05.09.2026
Как запретить индексацию параметров фильтров и сортировки в WordPress
14.09.2026
Как отловить и удалить слабые ссылки в WordPress перед индексацией
08.09.2026
Как убрать старые URL из индексации в WordPress после смены структуры постоянных ссылок
18.09.2026
Как настроить IndexNow в WordPress через robots.txt, sitemap и webhook
11.09.2026
×

AI-плагин от WPShop.ru

анализирует конкурентов

пишет статьи

готовит SEO

генерирует изображения

и еще кое-что...
WPGPT
Плагин, который наполняет ваш сайт WordPress
Узнать больше