Ситуация типовая: сайт уже живёт, контент обновлялся, часть страниц потеряла актуальность, а в поиске всё ещё висят архивы, тестовые записи, страницы с параметрами, вложения медиафайлов и другие URL, которые не должны конкурировать с нормальными страницами. Простого удаления записи часто недостаточно: поисковик может ещё долго держать старый адрес в индексе или продолжать обходить его по внутренним ссылкам.
Ниже разберём, как закрывать такие страницы от индексации без лишней магии: что проверять сначала, какие способы реально работают в WordPress и где чаще всего ошибаются.
Какие страницы обычно нужно закрывать от индексации
Не все URL стоит прятать одинаково. В WordPress чаще всего проблемы создают:
- страницы вложений медиафайлов, если они открываются как отдельные страницы;
- архивы авторов на небольших сайтах, где у автора один-два материала;
- страницы поиска по сайту;
- служебные страницы с параметрами сортировки и фильтрации;
- тестовые, черновые или устаревшие записи, которые ещё доступны по прямой ссылке;
- дубли контента из пагинации и архивов таксономий.
Если задача именно в том, чтобы убрать URL из поиска, важно понимать разницу между noindex, nofollow, запретом в robots.txt и удалением страницы с сайта. Это не взаимозаменяемые методы.
Диагностика: почему страница всё ещё в индексе
Перед правками проверьте, что именно происходит с URL. Частая ошибка — закрыть страницу в robots.txt, а потом удивляться, что она не исчезает из поиска. Если поисковик уже знает адрес, одного запрета на обход может быть мало.
Что смотреть в первую очередь
- Открывается ли страница по прямому URL.
- Есть ли на ней тег
meta name="robots"сnoindex. - Не ведут ли на неё внутренние ссылки из меню, хлебных крошек, архивов или похожих записей.
- Не создаёт ли плагин SEO отдельные правила для архивов, вложений и таксономий.
- Не отдаёт ли страница код ответа
200 OKвместо404или410, если она уже удалена.
Проверить код ответа можно через браузерные инструменты разработчика или командой:
curl -I https://example.com/staryj-url/Если страница удалена, но всё ещё отвечает 200, поисковик будет держать её в индексе дольше. Если URL больше не нужен, лучше не просто скрывать его, а вернуть корректный статус ответа.
Пошаговое решение: как закрыть старые страницы WordPress от индексации
Ниже — рабочая схема, которую можно применять по частям. Начинать лучше с самых безопасных и управляемых вариантов.
1. Закройте конкретную страницу через SEO-плагин
Если у вас установлен плагин уровня Yoast SEO, Rank Math или аналогичный, для отдельных записей и страниц обычно есть настройка индексации. Это самый простой вариант для точечных случаев: устаревшая посадочная, тестовая страница, архив автора, который не нужен в поиске.
Плюс этого подхода в том, что он не ломает шаблоны и не требует правки кода. Минус — для массовой обработки он неудобен, а настройки могут отличаться от плагина к плагину.
2. Добавьте noindex программно для нужных типов страниц
Если нужно закрыть от индексации не одну запись, а целый класс страниц, удобнее сделать это кодом. Например, можно убрать из индекса страницы поиска, вложения и архивы авторов на небольшом сайте.
<?php
add_filter( 'wp_robots', function( array $robots ) {
if ( is_search() || is_attachment() ) {
$robots['noindex'] = true;
$robots['nofollow'] = true;
}
if ( is_author() ) {
$robots['noindex'] = true;
}
return $robots;
} );Этот фильтр появился в WordPress 5.7 и работает с массивом директив robots. Он не заменяет SEO-плагин, если тот уже управляет мета-тегами на странице, поэтому после внедрения проверьте итоговый HTML.
3. Уберите вложения с отдельной страницы
У изображений и других медиафайлов в WordPress часто есть attachment page. Для SEO это обычно лишний слой, особенно если на странице только картинка без полезного текста. В таком случае лучше перенаправлять вложения на сам файл или на родительскую запись.
Если у вас есть SEO-плагин, у него может быть встроенная настройка для редиректа attachment pages. Если нет — можно сделать редирект кодом:
<?php
add_action( 'template_redirect', function() {
if ( is_attachment() ) {
$parent = wp_get_post_parent_id( get_queried_object_id() );
if ( $parent ) {
wp_safe_redirect( get_permalink( $parent ), 301 );
} else {
wp_safe_redirect( home_url( '/' ), 301 );
}
exit;
}
} );Это полезно не только для индексации, но и для чистоты структуры сайта: поисковику проще понять, какая страница основная.
4. Для удалённых URL используйте 410, а не только noindex
Если страница больше не нужна и не должна возвращаться, лучше отдать 410 Gone. Такой ответ явно говорит поисковику, что контент удалён навсегда. Это быстрее и чище, чем держать страницу с noindex месяцами.
<?php
add_action( 'template_redirect', function() {
if ( is_page( 'staryj-landing' ) ) {
status_header( 410 );
nocache_headers();
echo 'Страница удалена.';
exit;
}
} );Используйте этот вариант только для реально удалённых материалов. Если страница ещё нужна пользователям, 410 применять не стоит.
Сравнение подходов: что выбрать в конкретной ситуации
| Способ | Когда подходит | Плюсы | Ограничения |
|---|---|---|---|
| Настройка в SEO-плагине | Одна страница, архив, таксономия | Быстро, без кода | Неудобно для массовых правил |
wp_robots | Группы страниц: поиск, вложения, авторы | Гибко, нативно | Нужно проверять конфликт с SEO-плагином |
| Редирект 301 | Есть замена старой страницы | Сохраняет переходы и вес | Не подходит для полностью удалённого контента |
| Ответ 410 | Контент удалён окончательно | Чёткий сигнал поисковику | Нельзя использовать для живых страниц |
Как проверить, что решение сработало
После правок не ограничивайтесь визуальной проверкой в браузере. Нужно убедиться, что страница реально закрыта для индексации и не отдаёт старые сигналы.
- Откройте исходный код страницы и найдите
meta name="robots". - Проверьте код ответа через
curl -Iили инструменты разработчика. - Убедитесь, что страница не попадает во внутренние ссылки сайта.
- Если используете Search Console, отправьте URL на повторную проверку после изменения.
- Проверьте кеш: иногда старый HTML продолжает отдаваться из кеша даже после правок.
Если страница закрыта через noindex, но в кеше CDN или плагина осталась старая версия без мета-тега, поисковик может увидеть не то, что вы ожидаете. В таких случаях сначала очищают кеш, потом проверяют URL заново.
Частые ошибки и как их исправить
Закрыли URL в robots.txt, но не добавили noindex
Это частая ловушка. Запрет на обход не равен удалению из индекса. Если страница уже известна поисковику, она может оставаться в выдаче без сниппета. Для удаления лучше использовать noindex или вернуть 410.
Поставили noindex, но страница всё ещё доступна из меню
Поисковик продолжает находить URL через внутренние ссылки. Если страница не должна жить, уберите её из меню, блоков, хлебных крошек и связанных материалов.
Использовали 301 вместо 410 для удалённого контента
Редирект на главную или на случайную страницу — плохая замена удалению. Это создаёт путаницу для пользователя и поисковика. Если замены нет, лучше отдать 410 или 404.
Плагин SEO и код задают разные директивы
Иногда SEO-плагин выставляет одно значение robots, а тема или кастомный код — другое. В результате в HTML получается конфликт. После внедрения проверьте итоговый тег в исходнике и оставьте только один источник управления.
Безопасность и производительность: что не стоит ломать ради индексации
Не закрывайте от индексации всё подряд. Если убрать из поиска полезные архивы, категории или страницы с нормальным контентом, можно потерять трафик и ухудшить навигацию. С точки зрения производительности тоже не стоит плодить лишние проверки в каждом шаблоне, если задачу можно решить точечно через фильтр или настройку плагина.
Если у вас много служебных страниц и дублей, имеет смысл сначала навести порядок в структуре сайта, а уже потом закрывать остатки от индексации. Для массовой чистки дублей и служебных URL в WordPress часто удобнее использовать инструменты вроде Clearfy Pro, если вам нужен набор именно для технической оптимизации и удаления лишних дублей, но даже в этом случае правила лучше проверять вручную.
Главный критерий простой: если URL не несёт самостоятельной ценности, он должен либо корректно редиректиться на замену, либо отдавать 410, либо быть закрыт от индексации без конфликтов с кешем и SEO-настройками.