После редизайна в WordPress часто остаются старые URL: изменились слаги, структура рубрик, шаблоны архивов или типы записей. Если такие страницы продолжают отдавать 200 OK, поисковик видит дубли, а в индексе живут устаревшие версии. Проблема обычно не в одном месте: часть URL нужно перенаправить, часть — оставить доступной, но убрать из индекса, а часть — удалить совсем.
Ниже разберём рабочую схему для типичного сайта на WordPress: как найти старые версии страниц, чем закрывать их от индексации, когда ставить 301, а когда noindex, и как проверить, что всё действительно сработало.
Когда старые страницы нужно закрывать, а когда редиректить
Это ключевой вопрос. Если страница переехала на новый адрес и у неё есть очевидный новый аналог, почти всегда нужен 301. Если же старый URL больше не должен существовать как отдельная страница, но его нельзя удалить без последствий для пользователей или внешних ссылок, тогда имеет смысл оставить ответ сервера 200, но убрать страницу из индекса через noindex.
Типовые сценарии после редизайна
- изменили структуру постоянных ссылок и старые URL стали дублями новых;
- оставили старые архивы категорий, тегов или кастомных таксономий, но они больше не нужны в поиске;
- создали новые посадочные страницы, а старые версии продолжают открываться по старым адресам;
- перенесли контент в другой тип записи, но старые записи ещё доступны;
- на сайте появились служебные страницы, которые не должны индексироваться, но должны открываться для пользователей.
Диагностика: что именно сейчас индексируется
Перед правками нужно понять, какие URL реально живут в индексе и как они отвечают. Не стоит закрывать всё подряд через robots.txt: если страница уже в индексе, запрет на обход не всегда поможет убрать её оттуда быстро. Сначала проверьте ответы сервера и мета-теги.
Что смотреть вручную
- код ответа:
200,301,404,410; - наличие тега
<meta name="robots" content="noindex,follow">; - канонический URL в
<link rel="canonical">; - есть ли цепочки редиректов;
- не закрыта ли страница в
robots.txtраньше, чем вы поставилиnoindex.
Если есть доступ к серверу, удобно быстро проверить несколько URL через curl:
curl -I https://example.com/staryj-url/
curl -s https://example.com/staryj-url/ | grep -iE 'robots|canonical'Для массовой проверки можно выгрузить список старых адресов из Search Console, логов сервера или карты сайта до редизайна и пройтись по ним скриптом. Важно не гадать, а увидеть фактическое поведение каждого URL.
Пошаговое решение: как убрать старые версии из индекса
Шаг 1. Настройте 301 для страниц с новым аналогом
Если у старой страницы есть новая версия, редирект должен вести именно туда. Это лучший вариант для SEO и для пользователей. В WordPress редирект можно сделать через плагин, но если список URL небольшой и фиксированный, проще и надёжнее добавить правило в код темы или в mu-plugin.
<?php
add_action('template_redirect', function () {
$map = [
'/staryj-usluga/' => '/usluga/',
'/old-about/' => '/o-kompanii/',
];
$request_uri = parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH);
if (isset($map[$request_uri])) {
wp_redirect(home_url($map[$request_uri]), 301);
exit;
}
});Такой вариант подходит только для небольшого и стабильного набора адресов. Если редиректов десятки или сотни, лучше управлять ими отдельно: через сервер, плагин редиректов или таблицу соответствий в базе, чтобы не раздувать тему.
Шаг 2. Для страниц без замены используйте noindex
Если страница должна открываться, но не должна попадать в индекс, добавьте noindex,follow. Для WordPress это можно сделать через фильтр wp_robots, который работает с современным механизмом вывода robots-мета.
<?php
add_filter('wp_robots', function ($robots) {
if (is_page('staryj-landing') || is_singular('old_case')) {
$robots['noindex'] = true;
$robots['follow'] = true;
}
return $robots;
});Если нужно закрыть архивы таксономии, условие можно завязать на is_category(), is_tag() или is_tax(). Но не делайте это вслепую: сначала проверьте, не приносит ли архив трафик и не используется ли он во внутренней перелинковке.
Шаг 3. Уберите старые URL из sitemap
Если старые страницы всё ещё попадают в XML-карту сайта, поисковик будет продолжать их обходить. После редизайна карта сайта должна содержать только актуальные адреса. Если вы используете встроенный sitemap WordPress, проверьте, не остались ли в нём старые записи, таксономии или пользовательские типы записей. Если sitemap генерирует SEO-плагин, исключите из него ненужные типы контента и архивы через настройки плагина.
Шаг 4. Проверьте canonical
На старых страницах canonical должен указывать либо на новую версию, либо на саму страницу, если она остаётся индексируемой по вашей логике. Ошибка здесь частая: страница уже закрыта через noindex, но canonical всё ещё ведёт на старый URL или на несуществующую страницу. Это создаёт лишний шум для поисковика.
Сравнение подходов
| Подход | Когда применять | Плюс | Минус |
|---|---|---|---|
| 301 редирект | Есть новый аналог страницы | Передаёт пользователей и часть сигналов на новый URL | Нужна точная карта соответствий |
| noindex,follow | Страница должна открываться, но не индексироваться | Можно сохранить доступ и ссылки | Страница всё ещё тратит обход |
| 410 Gone | Страница удалена окончательно | Быстро сигнализирует об удалении | Подходит не для всех сценариев |
Как проверить, что решение сработало
После внедрения не ограничивайтесь визуальной проверкой. Нужны три уровня контроля: ответ сервера, HTML на странице и данные из поисковой системы.
- проверьте, что старый URL отдаёт
301на нужный адрес или содержитnoindex; - убедитесь, что в sitemap остались только актуальные URL;
- проверьте canonical на старых и новых страницах;
- посмотрите отчёт об индексировании в Google Search Console;
- сравните количество старых URL в логах до и после изменений.
Быстрая проверка через командную строку:
curl -I https://example.com/staryj-url/
# ожидаете 301 и Location: https://example.com/novyj-url/
curl -s https://example.com/staryj-url/ | grep -i robots
# ожидаете noindex,follow для страниц без редиректаЕсли страница закрыта правильно, она не должна оставаться в индексе как основная версия. Но даже при корректной настройке поисковику нужно время на переобход и переоценку URL.
Частые ошибки и как их исправить
Закрыли URL в robots.txt раньше, чем поставили noindex
Это частая ошибка. Если поисковик не может зайти на страницу, он может не увидеть мета-тег noindex. В результате URL может висеть в индексе дольше, чем ожидалось. Сначала убирайте из индекса через noindex или 301, и только потом при необходимости ограничивайте обход.
Сделали редирект на главную вместо релевантной страницы
Редирект на главную — плохая замена удалённой странице. Для поисковика это слабый сигнал, а для пользователя — тупик. Если релевантной замены нет, лучше использовать 410 или noindex в зависимости от сценария.
Оставили цепочки редиректов
После редизайна часто получается схема вида: старый URL → промежуточный URL → новый URL. Это лишняя задержка и риск ошибок. Сведите всё к одному переходу.
Не обновили внутренние ссылки
Даже при правильных редиректах старые ссылки внутри сайта создают лишнюю нагрузку и мешают чистой индексации. После миграции пройдитесь по меню, блокам, шаблонам, хлебным крошкам и контенту.
Чек-лист перед публикацией изменений
- для каждого старого URL определён сценарий: 301, noindex или 410;
- нет редиректов на главную без причины;
- canonical указывает на актуальную версию;
- старые URL исключены из sitemap;
- внутренние ссылки обновлены;
- проверка через
curlпоказывает ожидаемый код ответа; - в Search Console нет массовых ошибок обхода или странных дублей.
Что делать, если сайт большой и URL слишком много
На больших проектах ручная правка быстро превращается в хаос. В таком случае лучше разделить работу на слои: сначала собрать список старых URL, затем сгруппировать их по типам, после этого применить массовые правила редиректов и отдельно настроить noindex для архивов и служебных страниц. Если редизайн затронул структуру контента, полезно сначала сделать карту соответствий URL, а уже потом вносить изменения в код или настройки плагинов.
Если нужен более широкий набор инструментов для технической чистки WordPress, в таких задачах обычно смотрят в сторону плагинов вроде Clearfy Pro: он помогает закрывать дубли, убирать лишнее и наводить порядок в технических настройках. Но даже с плагином логику редиректов и индексации всё равно нужно проверять вручную, а не полагаться на автоматические галочки.