Старые черновики и тестовые копии страниц часто остаются в WordPress после редактирования, переноса сайта или работы нескольких авторов. Проблема не только в «мусоре» в админке: если такие URL случайно опубликованы, доступны по прямой ссылке или попали в sitemap, поисковик может начать их обходить и индексировать. В итоге в выдаче появляются устаревшие версии текста, а канонический адрес страницы теряет вес.
Ниже разберем, как найти такие страницы, чем отличается скрытие от удаления, и как безопасно закрыть их от индексации без поломки сайта.
Когда это действительно проблема
Сценарий обычно выглядит одинаково: в админке есть несколько версий одной и той же страницы — draft, тестовая копия, старая публикация после редактирования, страница с временным slug. Иногда их создают для согласования текста, иногда — при переносе контента с другого сайта. Если такая страница когда-то была опубликована, а потом вы ее «спрятали», поисковый робот мог уже сохранить адрес в индексе.
Проверять нужно не только статус записи в админке, но и фактическую доступность URL. Если страница открывается по прямой ссылке, отдает код 200 OK и не закрыта от индексации, поисковик может продолжать ее учитывать.
Что искать в первую очередь
- страницы со статусом
Draft, но с известным публичным URL; - тестовые копии с похожими slug:
-2,-copy,-test; - старые версии после смены структуры URL;
- страницы, которые остались в XML sitemap;
- дубли в архиве, если черновик случайно был опубликован и затем заменен новой версией.
Диагностика: как понять, что именно попало в индекс
Начните не с кода, а с проверки фактов. Самый быстрый путь — посмотреть, какие URL уже известны поисковику и как они отдаются сервером.
- Проверьте запросом
site:example.comили через Search Console, какие старые адреса видны в индексе. - Откройте проблемный URL в браузере и посмотрите, не доступен ли он без авторизации.
- Проверьте ответ сервера через DevTools или
curl -I: важны статус, заголовкиX-Robots-TagиLocation. - Сравните URL в sitemap и фактические опубликованные страницы.
curl -I https://example.com/staryj-slug/Если в ответе видите 200 OK, а страница не должна индексироваться, значит, закрывать нужно не только через robots.txt, но и на уровне самой страницы или заголовков ответа.
Что выбрать: удалить, закрыть или оставить как есть
Не все старые версии нужно удалять. Иногда достаточно перевести их в черновик и убрать из sitemap. Но если URL уже индексировался, лучше явно сообщить поисковику, что страница не предназначена для выдачи.
| Подход | Когда подходит | Минус |
|---|---|---|
| Удалить страницу и отдать 410/404 | Контент больше не нужен | Нужно следить за внутренними ссылками и редиректами |
Оставить страницу, но поставить noindex | Нужна для работы, но не для поиска | Страница остается доступной по прямой ссылке |
| Сделать редирект на актуальную версию | Есть новая каноническая страница | Нужно аккуратно выбрать целевой URL |
Для старых черновиков чаще всего подходит комбинация: убрать из sitemap, закрыть от индексации и, если адрес уже гуляет по сайту, поставить редирект на актуальную страницу.
Пошаговое решение в WordPress
1. Уберите страницу из публикации и sitemap
Если черновик не нужен, переведите его в Draft или удалите. После этого проверьте, не остается ли он в XML sitemap. Если sitemap генерирует SEO-плагин, убедитесь, что черновики и приватные записи туда не попадают. Для обычных страниц это стандартное поведение, но после миграций и кастомных настроек бывают исключения.
2. Добавьте noindex для конкретной страницы
Если страница должна быть доступна сотрудникам или клиентам по прямой ссылке, но не должна индексироваться, можно добавить мета-тег noindex через код. Для отдельного шаблона или конкретного URL это надежнее, чем пытаться закрыть все через robots.txt.
add_action('wp_head', function () {
if (is_page('staryj-slug')) {
echo '<meta name="robots" content="noindex, nofollow">' . "\n";
}
});Такой вариант подходит, если вы точно знаете slug. Если страница может менять адрес, лучше ориентироваться на ID записи или на шаблон страницы.
3. Для уже опубликованной копии сделайте редирект
Если у старой версии есть новая замена, не оставляйте ее просто с noindex. Лучше отправить пользователя и робота на актуальный URL. В WordPress это можно сделать через template_redirect и wp_redirect().
add_action('template_redirect', function () {
if (is_page('staryj-slug')) {
wp_redirect(home_url('/novyj-slug/'), 301);
exit;
}
});Редирект нужен именно тогда, когда старая страница уже получила ссылки, трафик или индекс. Если просто скрыть ее, поисковик может еще долго держать адрес в базе.
4. Если страницу нужно удалить окончательно, отдайте 410
Когда контент больше не актуален и замены нет, лучше вернуть 410 Gone. Это более честный сигнал, чем бесконечно держать страницу с 200 OK или редиректить ее на нерелевантную категорию.
add_action('template_redirect', function () {
if (is_page('staryj-slug')) {
status_header(410);
nocache_headers();
exit;
}
});Этот вариант стоит применять только осознанно: если на страницу ведут внутренние ссылки, сначала замените их в контенте и меню.
Как проверить, что решение сработало
После внедрения не ограничивайтесь визуальной проверкой в браузере. Нужно посмотреть, как страница отдается сервером и что видит поисковый робот.
- Откройте URL через
curl -Iи проверьте статус ответа. - Убедитесь, что в HTML есть
noindex, если вы его добавляли. - Проверьте, исчез ли URL из sitemap.
- В Search Console отправьте проверку URL и посмотрите, как робот видит страницу.
- Если ставили редирект, убедитесь, что он ведет на нужную каноническую страницу без цепочки из нескольких переходов.
Пример быстрой проверки заголовков:
curl -I https://example.com/staryj-slug/ | grep -iE 'HTTP/|location|x-robots-tag'Если страница должна быть закрыта, а в ответе все еще 200 OK без noindex, значит, правило не сработало или срабатывает не на тот шаблон.
Частые ошибки и как их исправить
Закрыли только robots.txt
Это частая ошибка. Запрет в robots.txt мешает обходу, но не гарантирует удаление URL из индекса, если он уже известен поисковику. Для старых черновиков этого обычно недостаточно. Нужен noindex, редирект или удаление с корректным кодом ответа.
Поставили редирект на нерелевантную страницу
Например, старую статью отправили на главную или в категорию «на всякий случай». Для пользователя это выглядит как потеря контекста, а для поисковика — как слабый сигнал замены. Лучше вести на максимально близкую новую версию или отдавать 410, если замены нет.
Оставили страницу в sitemap
Даже если на странице стоит noindex, ее наличие в sitemap создает лишний шум. Поисковик видит противоречие: вы просите не индексировать URL, но сами подаете его как важный. Уберите такие адреса из карты сайта.
Использовали noindex на шаблоне, который нужен для других страниц
Если вы повесили условие слишком широко, можно случайно закрыть от индексации не только черновик, но и нормальные страницы с тем же шаблоном. Проверяйте условие по точному slug, ID или типу записи.
Безопасность и производительность
Если старые версии страниц создаются регулярно, лучше не лечить каждый случай вручную. Уберите причину: ограничьте доступ к тестовым копиям, не публикуйте временные страницы без необходимости и не держите в открытом доступе служебные URL. Для массовой чистки дублей и технических хвостов удобнее использовать проверенные инструменты вроде Clearfy Pro, но только как дополнение к нормальной структуре сайта, а не вместо нее.
С точки зрения производительности важно не плодить лишние правила в functions.php. Если у вас десятки исключений, вынесите их в небольшой mu-plugin или в отдельный файл темы, чтобы не потерять логику при обновлении.
Практический чек-лист перед публикацией исправления
- Проверен точный URL старой версии.
- Понятно, нужен ли редирект или достаточно
noindex. - Страница удалена из sitemap.
- Внутренние ссылки ведут на актуальный адрес.
- Ответ сервера соответствует задаче:
301,410или200сnoindex. - После правки URL проверен через
curl -Iи Search Console.
Если проблема повторяется после каждого редактирования, имеет смысл пересмотреть процесс работы с черновиками: кто создает копии, где они хранятся и как потом переводятся в публикацию. В WordPress техническая чистота сайта почти всегда начинается не с SEO-плагина, а с дисциплины в структуре контента и шаблонах.