Если в индексе всплывают служебные URL WordPress, обычно проблема не в «плохом robots.txt», а в том, что запрет выбран не для той задачи. Одни страницы нужно не сканировать, другие — не индексировать, а третьи — просто убрать из внутренних ссылок и sitemap. На практике это разные инструменты.
Ниже разберём рабочую схему для типового сайта на WordPress: что закрывать через robots.txt, что — через meta robots, где нужен noindex в коде темы или плагина, и как проверить, что поисковик действительно перестал тащить мусор в индекс.
Когда проблема уже видна в поиске
Сигналы обычно одинаковые: в выдаче появляются страницы архивов автора, теги без контента, страницы поиска по сайту, вложения медиафайлов, служебные URL из /wp-admin/ или дубли с параметрами. Иногда сайт выглядит нормально в браузере, но в Search Console растёт число «Просканировано, но не проиндексировано» или «Дубликат, выбранный пользователем не канонический».
Важно не путать индексацию и доступность. Если закрыть URL в robots.txt, поисковик может перестать его обходить, но уже известный URL всё ещё способен оставаться в индексе без описания. Для удаления из индекса чаще нужен noindex на самой странице, а не только запрет в robots.
Что обычно нужно закрывать
- страницы поиска WordPress вида
?s=; - архивы автора на небольших сайтах, где один автор и архив не несёт пользы;
- теги и таксономии без уникального контента;
- вложения медиафайлов, если они открываются как отдельные страницы;
- служебные разделы:
/wp-admin/,/wp-includes/,/wp-json/— только если есть конкретная причина и вы понимаете последствия; - тестовые и технические страницы, которые не должны попадать в поиск.
Диагностика: что именно попало в индекс и почему
Перед правками проверьте, какие URL реально индексируются. Самая частая ошибка — закрыть всё подряд, а потом обнаружить, что поисковик перестал видеть важные страницы категорий или изображения из медиатеки.
- Откройте Search Console и посмотрите отчёты по страницам и исключениям.
- Сравните список URL из индекса с sitemap.xml.
- Проверьте исходный код проблемной страницы: есть ли
<meta name="robots" content="noindex,follow">. - Посмотрите, не создаёт ли тема или SEO-плагин отдельные архивы, которые дублируют основной контент.
Если у вас уже стоит SEO-плагин, сначала проверьте его настройки. Часто нужная опция уже есть, и править код не требуется.
Пошаговое решение: robots.txt, meta robots и каноникал
1. Закройте обход служебных директорий в robots.txt
robots.txt подходит для снижения лишнего краулинга, но не для гарантированного удаления из индекса. Тем не менее для служебных путей это базовая настройка.
User-agent: *
Disallow: /wp-admin/
Disallow: /wp-includes/
Disallow: /wp-login.php
Disallow: /?s=
Disallow: /search/
Allow: /wp-admin/admin-ajax.php
Sitemap: https://example.com/sitemap_index.xmlНе стоит бездумно закрывать /wp-content/uploads/. Для многих сайтов изображения должны индексироваться, особенно если они участвуют в поиске по картинкам или ведут на полезные страницы. Закрывать uploads имеет смысл только если это внутренние документы, приватные файлы или технические медиа без ценности.
2. Поставьте noindex на архивы и служебные страницы
Если страница должна открываться, но не попадать в индекс, используйте noindex. Для WordPress это можно сделать через SEO-плагин или кодом. Ниже пример для темы или небольшого плагина: он добавляет noindex,follow на страницы поиска, архивы автора и вложения.
<?php
add_action('wp_head', function () {
if (is_search() || is_author() || is_attachment()) {
echo '<meta name="robots" content="noindex,follow" />' . "\n";
}
}, 1);Этот вариант рабочий, но его нужно использовать аккуратно. Если у вас уже есть Yoast SEO, Rank Math или другой SEO-плагин, не дублируйте meta robots из двух мест сразу. Иначе получите конфликт директив или непредсказуемый исходный код.
3. Для вложений лучше настроить редирект на файл или родительскую запись
Страницы вложений часто бесполезны сами по себе. Если медиафайл нужен только как часть статьи, лучше отправлять пользователя на родительскую запись или на сам файл, а не оставлять отдельную тонкую страницу.
<?php
add_action('template_redirect', function () {
if (is_attachment()) {
$parent = wp_get_post_parent_id(get_queried_object_id());
if ($parent) {
wp_redirect(get_permalink($parent), 301);
exit;
}
}
});Если у вложения нет родителя, решение зависит от структуры сайта. Иногда логичнее оставить страницу с noindex, чем делать редирект на главную и терять смысл URL.
Что выбрать: плагин, код или настройка темы
| Подход | Когда подходит | Плюсы | Минусы |
|---|---|---|---|
| SEO-плагин | Нужно быстро закрыть архивы, теги, поиск, вложения | Меньше кода, проще поддержка | Зависимость от интерфейса и логики плагина |
| Код в теме/плагине | Нужна точечная логика для конкретных URL | Гибкость, контроль | Нужно тестировать после обновлений |
| robots.txt | Нужно снизить краулинг служебных путей | Быстро и просто | Не гарантирует удаление из индекса |
Если сайт типовой, удобнее закрывать дубли и служебные страницы через SEO-плагин. Если нужна нестандартная логика, например noindex только для архивов с пустыми терминами, тогда лучше код. Для чистки дублей и технических страниц иногда помогает Clearfy Pro, если вы хотите управлять частью SEO-настроек из админки без правок шаблона.
Проверка результата после внедрения
После изменений не ограничивайтесь просмотром страницы в браузере. Проверьте именно то, что видит поисковый робот.
- Откройте проблемный URL и посмотрите исходный код: есть ли
noindex. - Проверьте
robots.txtпо адресу/robots.txtбез редиректов и лишних символов. - В Search Console используйте проверку URL и запрос на переобход.
- Убедитесь, что важные страницы не закрыты случайно.
- Посмотрите, не исчезли ли из sitemap URL, которые должны индексироваться.
Если страница уже была в индексе, удаление может занять время. Быстрее всего изменения обычно видны после повторного обхода, но обещать конкретный срок нельзя: это зависит от частоты краулинга и состояния сайта.
Частые ошибки и как их исправить
Закрыли URL в robots.txt и ждёте мгновенного удаления
Это не работает как полноценное удаление из индекса. Если URL уже известен поисковику, добавьте noindex на саму страницу или используйте инструмент удаления в Search Console, если задача срочная.
Поставили noindex, но страница всё ещё в sitemap
Так делать не стоит. Sitemap должен содержать только те URL, которые вы хотите индексировать. Иначе вы отправляете поисковику противоречивый сигнал.
Закрыли слишком много директорий
Частая ошибка — запретить /wp-content/ целиком. После этого могут пострадать стили, скрипты, изображения и рендеринг страницы. Если нужен запрет, проверяйте, не ломается ли фронтенд и не исчезают ли ресурсы из отчёта по сканированию.
Дублируете meta robots из плагина и темы
Если SEO-плагин уже выводит noindex, не добавляйте второй блок вручную. Сначала найдите источник директивы, потом оставьте один вариант.
Безопасность и производительность: что не стоит делать
Не редактируйте robots.txt через сомнительные плагины, если они подменяют файл и создают лишние права на запись. Для простых сайтов безопаснее править его через сервер или штатный интерфейс SEO-плагина, если он есть.
Не используйте массовый noindex на всё подряд ради «чистого индекса». Если поисковик не видит полезные архивы категорий, внутренние переходы и контентные кластеры, это часто бьёт по видимости сильнее, чем несколько дублей.
Если сайт большой, после правок посмотрите логи обхода и отчёты Search Console: иногда проблема не в индексации, а в том, что бот тратит бюджет на мусорные URL с параметрами. В таком случае полезнее нормализовать ссылки, убрать лишние архивы и настроить каноникал, чем просто закрывать всё robots-файлом.
В рабочем варианте схема обычно выглядит так: служебные пути ограничены в robots.txt, бесполезные страницы получают noindex, а дубли убираются из sitemap и внутренних ссылок. Тогда сайт не теряет важные страницы и перестаёт раздувать индекс техническим мусором.