ГлавнаяБлогТехническое SEO

Как закрыть сайт от индексации

10 июля 2026обновлено 4 августа 202614 мин чтенияТехническое SEO

Иногда сайт нужно спрятать от поиска: пока он в разработке, живёт на тестовом домене или содержит разделы, которым в выдаче не место. Способов четыре — robots.txt, meta noindex, HTTP-заголовок X-Robots-Tag и пароль. Они решают разные задачи, и путать их — самая частая причина, почему «закрытый» сайт всё равно висит в поиске. Разберу каждый с кодом и покажу, когда какой применять.

Кратко: что внутри

robots.txt (Disallow) запрещает обход, но не удаляет из индекса. meta noindex — надёжный способ выкинуть страницу из поиска. X-Robots-Tag — то же самое через HTTP-заголовок, удобно для PDF и массово. Пароль (basic auth) полностью прячет dev и staging. Главное правило: noindex и Disallow одновременно на одну страницу ставить нельзя — робот не зайдёт и не увидит тег.

Четыре способа закрыть от индексации: что выбрать
Способы отличаются надёжностью и тем, увидит ли робот содержимое вообще
СпособЧто делаетНадёжностьКогда брать
robots.txtзапрещает обход, но не удаляет из индексанизкаяэкономия краулингового бюджета
Meta noindexвыкидывает страницу из индексавысокаяосновной способ для HTML-страниц
X-Robots-Tagто же, но заголовком ответа серверавысокаяPDF, картинки, файлы без HTML
Пароль (HTTP-авторизация)робот не получает страницу вообщеполнаяdev- и staging-версии сайта
Таблица прокручивается вбок на узком экране.

Зачем закрывать сайт от индексации

Причин спрятать сайт или его часть от поиска несколько, и под каждую подходит свой инструмент:

  • Сайт в разработке. Пока идёт вёрстка и наполнение, страницы с рыбным текстом и битой структурой не должны попасть в выдачу — иначе поисковик запомнит их как основной контент.
  • Тестовый или dev-домен. Копия сайта на поддомене вроде dev.site.ru или test.site.ru — прямой источник дублей. Если она проиндексируется, вы получите две одинаковые версии сайта в поиске.
  • Staging перед релизом. Финальная сборка, которую показывают заказчику. Её нельзя светить в поиске, пока не выкатили на прод.
  • Технические и служебные разделы. Админка, корзина, личный кабинет, страницы результатов внутреннего поиска, фильтры с параметрами — засоряют индекс и создают дубли.
  • Контент раньше времени. Акция, лендинг или раздел, который должен «выстрелить» в конкретную дату, не утечь в поиск заранее.

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

Способ 1. Закрыть через robots.txt

robots.txt — текстовый файл в корне сайта, который управляет обходом. Доступен по адресу https://ваш-сайт.ru/robots.txt. Это первое, что открывает поисковый робот, заходя на сайт. Общий разбор файла — в статье про robots.txt и sitemap.xml.

Чтобы закрыть весь сайт от всех роботов, файл состоит из двух строк:

User-agent: *
Disallow: /

User-agent: * — правило для всех роботов, Disallow: / — запрет на весь сайт целиком. Собрать корректный файл под свои разделы можно в генераторе robots.txt, чтобы не ошибиться в синтаксисе.

Чтобы закрыть отдельные разделы, не весь сайт:

User-agent: *
Disallow: /admin/
Disallow: /cart/
Disallow: /search/
Disallow: /lichnyy-kabinet/

Закрыть сайт только от одного поисковика — указываете его User-agent:

User-agent: Googlebot
Disallow: /

User-agent: Yandex
Disallow: /

Первый блок закроет сайт от Google, второй — от Яндекса. Оставьте только нужный, если закрываете от одной системы.

Важный нюанс. robots.txt запрещает обход, но не гарантирует отсутствие страницы в поиске. Если на закрытую страницу ведут внешние ссылки, Google может показать её URL в выдаче без описания, с пометкой, что содержимое недоступно. И главное: Disallow не удаляет уже проиндексированные страницы — он лишь останавливает дальнейший обход. Для гарантированного удаления из индекса нужен noindex.

Способ 2. Meta-тег noindex — самый надёжный для страницы

Если задача — именно выкинуть страницу из поиска, не просто запретить обход, используют meta-тег robots. Его добавляют в раздел <head> нужной страницы:

<meta name="robots" content="noindex, nofollow">

Что означают значения:

  • noindex — не добавлять страницу в индекс, и если она уже там, убрать при следующем обходе;
  • nofollow — не переходить по ссылкам с этой страницы. Если ссылки должны работать, оставьте только content="noindex".

В отличие от robots.txt, здесь робот заходит на страницу, читает тег и выполняет команду. Поэтому noindex надёжно удаляет страницу из индекса — и Яндекс, и Google понимают его одинаково.

Закрыть страницу только для одного поисковика можно, подставив имя робота вместо общего robots:

<meta name="googlebot" content="noindex">
<meta name="yandex" content="noindex">

Чтобы закрыть весь сайт этим способом, тег ставят в шаблон, который подключается ко всем страницам (в WordPress — через SEO-плагин галочкой «Запретить индексацию», в самописном движке — в общий header). Тогда noindex автоматически появится на каждой странице.

Ключевое правило: страницу с meta noindex нельзя закрывать в robots.txt. Если робот не может зайти на страницу (Disallow), он не прочитает тег noindex — и страница так и останется в индексе. Работает одно из двух, не оба сразу.

Способ 3. X-Robots-Tag — заголовок для не-HTML и массового закрытия

Meta-тег можно поставить только в HTML. Для PDF, изображений, XML и других файлов, а также когда нужно закрыть много страниц разом, используют HTTP-заголовок X-Robots-Tag — он несёт ту же команду noindex, но на уровне ответа сервера.

Nginx. В блоке server или location:

add_header X-Robots-Tag "noindex, nofollow";

Чтобы закрыть только PDF-файлы:

location ~* \.pdf$ {
    add_header X-Robots-Tag "noindex";
}

Apache. В .htaccess или конфиге:

Header set X-Robots-Tag "noindex, nofollow"

Закрыть только определённый тип файлов в Apache:

<FilesMatch "\.(pdf|doc|xls)$">
    Header set X-Robots-Tag "noindex"
</FilesMatch>

Проверить, что заголовок реально отдаётся, удобно через проверку ответа сервера — инструмент покажет все HTTP-заголовки ответа, включая X-Robots-Tag, и заодно код ответа. В консоли то же самое даёт curl -I https://ваш-сайт.ru/.

Когда нужен заголовок вместо мета-тега
Заголовок выигрывает там, где мета-тег поставить некуда или файлов слишком много
Что закрываемЧемПочему так
HTML-страницаМета-тег или заголовокОба способа работают одинаково
PDF, DOC, XLSТолько заголовокВнутрь файла мета-тег не поставить
КартинкиТолько заголовокУбирает картинку из поиска по изображениям
Целый каталогЗаголовок по маске путиОдно правило вместо правки сотен файлов
Страница за авторизациейЗаголовок на уровне сервераМета-тег робот может не увидеть
# PHP: строкой раньше любого вывода header("X-Robots-Tag: noindex", true); # проверка ответа — в выводе должна быть строка curl -I https://example.com/private/file.pdf HTTP/2 200 content-type: application/pdf x-robots-tag: noindex
Правило не применится, пока конфигурация сервера не перезагружена
1
Решите, что закрываетеОтдельный файл, каталог или тип файлов. От этого зависит, писать точечное правило или по маске пути.
2
Добавьте правилоNginx, Apache или код приложения — подойдёт любой уровень, лишь бы заголовок дошёл до робота. В приложении удобнее, когда закрывать надо по условию.
3
Перезагрузите конфигурациюПравка файла без перезагрузки ничего не меняет. Легко потерять день, глядя на старое поведение.
4
Проверьте ответ сервераКоманда curl -I по адресу файла: строка X-Robots-Tag: noindex должна быть в ответе. Код ответа при этом остаётся обычным.
5
Оставьте роботу доступЗаголовок работает, только когда робот заходит и читает его. Адрес, запрещённый в robots, робот не откроет — и запрета не увидит.
Главная ловушка. Запрет обхода и запрет индексации — разные вещи. Первое означает «не заходи», второе — «зайди и не добавляй в индекс». Закрыв адрес в robots и повесив на него запрет индексации, вы делаете второе правило невидимым. Чтобы вывести страницу из индекса, доступ роботу нужно оставить.

Способ 4. Парольная защита — для dev и staging

Самый жёсткий вариант: закрыть сайт паролем через HTTP basic auth. Робот не пройдёт авторизацию, не получит контент и просто не сможет ничего проиндексировать. Это идеальный способ для тестовых и staging-серверов, где сайт вообще не должен быть виден публике.

Nginx. Создаёте файл с логином и паролем и подключаете его:

location / {
    auth_basic "Closed";
    auth_basic_user_file /etc/nginx/.htpasswd;
}

Файл .htpasswd генерируют командой:

htpasswd -c /etc/nginx/.htpasswd admin

Apache. В .htaccess:

AuthType Basic
AuthName "Closed"
AuthUserFile /path/.htpasswd
Require valid-user

Плюс пароля перед robots.txt и noindex: он закрывает сайт не только от поисковиков, но и от парсеров, спам-ботов и случайных посетителей. Минус — сайт становится недоступен без логина, поэтому для боевого сайта способ не годится, только для закрытых окружений.

Четыре способа под четыре задачи — что выбрать:
robots.txt  Disallow: /            # запрет обхода, НЕ удаляет из индекса
meta        content="noindex"     # удаляет страницу из поиска — надёжно
X-Robots    add_header ... noindex # то же для PDF/картинок и массово
basic auth  auth_basic + .htpasswd # полностью прячет dev/staging
Нужно спрятать боевую страницу — noindex. Спрятать тестовый сервер целиком — пароль.

Как закрыть от индексации отдельную ссылку

Соседняя задача, которую часто путают с закрытием страницы целиком: сама страница нужна в индексе, а вот ссылка с неё вести вес никуда не должна. Так поступают с рекламой, ссылками из комментариев и переходами на чужие ресурсы. Способов несколько, и часть из них уже не работает.

Шесть способов закрыть ссылку
Первые три — официальные атрибуты, их одинаково понимают Яндекс и Google
СпособЧто делаетГде применяютРаботает ли сейчас
rel="nofollow"Ссылка видна людям, вес по ней не передаётсяРеклама, чужие сайты, отзывыРаботает
rel="ugc"Помечает ссылку из комментариев и отзывовФорумы, отзывы, обсужденияРаботает
rel="sponsored"Помечает платное размещениеРеклама и партнёрские программыРаботает
Тег <noindex>Скрывал кусок текста от ЯндексаРаньше — фрагменты страницБольше нет
Подгрузка скриптомСсылки нет в исходном коде страницыСлужебные переходы в интерфейсеНенадёжно
Свой редирект, закрытый в robotsПереход идёт через служебный адресМассовые внешние ссылки в каталогахРаботает, сложнее
<!-- реклама и платные размещения --> <a href="https://partner.example" rel="sponsored nofollow">Партнёр</a> <!-- ссылка из комментария пользователя --> <a href="https://user-site.example" rel="ugc nofollow">Мой сайт</a> <!-- просто не передавать вес --> <a href="https://example.com" rel="nofollow">Источник</a> <!-- закрыть сразу все внешние ссылки страницы --> <meta name="robots" content="nofollow">
Атрибуты комбинируются: sponsored и nofollow в одной ссылке допустимы
Про тег <noindex>. Нестандартный тег, которым годами закрывали куски текста от Яндекса, поддерживать перестали, а Google его никогда не понимал. Если он остался в вёрстке, вреда нет, но и толку тоже: содержимое закрывают другими способами.

И про здравый смысл. Закрывать все внешние ссылки подряд когда-то считалось способом «сохранить вес страницы». Практика этого не подтверждает, зато страница, где ни одна ссылка никуда не ведёт, выглядит для поиска странно. Атрибут ставится там, где для него есть причина: реклама, чужой контент, ссылка, за которую вы не отвечаете.

Одна страница, раздел или весь сайт

Способ выбирают не только по типу задачи, но и по масштабу — что именно закрываем.

  • Одна страница. meta noindex в <head> этой страницы. Быстро, точечно, ничего не ломает вокруг.
  • Раздел или группа страниц. Disallow нужного пути в robots.txt (Disallow: /blog/chernoviki/), если страницы ещё не в индексе. Если уже в индексе — noindex на шаблон раздела.
  • Весь боевой сайт временно. noindex на общий шаблон (через плагин или header) плюс, при желании, Disallow: / в robots.txt. Помните про правило: не оба на одну страницу.
  • Тестовый или dev-домен целиком. Парольная защита. Она надёжнее любых тегов и не зависит от того, соблюдает ли робот правила.
  • Только один поисковик. Отдельный User-agent в robots.txt или именной meta-тег (googlebot, yandex).
Каким способом закрывать?
Под каждую задачу свой инструмент: страница — noindex, окружение — пароль.

Как убрать уже проиндексированный сайт из поиска

Если сайт или страницы уже попали в индекс, одного robots.txt мало — Disallow не удаляет, только замораживает. Порядок действий такой:

  1. Поставьте noindex. meta-тег или X-Robots-Tag на страницы, которые нужно убрать. Убедитесь, что эти же страницы не закрыты в robots.txt — иначе робот не зайдёт и не прочитает команду.
  2. Дождитесь переобхода или ускорьте его. Робот должен зайти на страницу, увидеть noindex и убрать её из индекса. Как ускорить обход — в разборе про индексацию сайта.
  3. Ускорьте удаление вручную. В Яндекс.Вебмастере — раздел «Инструменты → Удаление страниц из поиска»: вводите URL, робот выкинет их быстрее. В Google Search Console — «Удаления → Временно удалить URL», но это временная мера на полгода; для постоянного удаления всё равно нужен noindex или 404.

Официальные инструкции — в справке Яндекс.Вебмастера. После того как страницы выпали из поиска, можно закрыть их и в robots.txt, чтобы робот больше не тратил на них обход.

Частые ошибки

  1. Закрыли только в robots.txt при уже проиндексированном сайте. Disallow не удаляет страницы из поиска — они остаются в индексе, просто перестают обновляться. Нужен noindex.
  2. Поставили noindex и Disallow на одну страницу. Робот не может зайти на страницу, закрытую в robots.txt, а значит не видит тег noindex. Команда на удаление не срабатывает. Выбирайте что-то одно.
  3. Забыли снять запрет при переносе на прод. Классика после разработки: сайт выкатили в бой, а на нём остался Disallow: / или noindex со времён верстки. Сайт не индексируется, трафика нет. Проверяйте robots.txt и код страниц сразу после релиза.
  4. Понадеялись на robots.txt как на защиту приватных данных. Файл публичный, его видят все. Пути к админке в нём — подсказка злоумышленнику. Для скрытия окружений используйте пароль.
  5. Закрыли dev-домен только тегами. Тестовый сервер надёжнее прятать паролем: noindex и Disallow полагаются на добросовестность робота, а basic auth просто не пускает никого.

Главное

Если коротко

robots.txt (Disallow) запрещает обход, но не удаляет из индекса — для этого он не годится. meta noindex — надёжный способ выкинуть страницу из поиска: робот заходит, читает тег и убирает страницу. X-Robots-Tag делает то же через HTTP-заголовок, удобен для PDF, картинок и массового закрытия.

Тестовые и staging-серверы прячьте паролем через basic auth — это надёжнее любых тегов. Никогда не ставьте noindex и Disallow на одну страницу: закрытую в robots.txt страницу робот не откроет и тег не увидит.

Проверяйте результат: robots.txt — в браузере, noindex — в исходном коде, X-Robots-Tag — через проверку ответа сервера. Если после разработки сайт не хочет заходить в поиск, смотрите обратную задачу — почему сайт не индексируется.

Частые вопросы

Как закрыть весь сайт от индексации?

Самый надёжный способ — meta-тег noindex в разделе head каждой страницы: <meta name="robots" content="noindex, nofollow">. Для запрета обхода добавляют в robots.txt строки User-agent: * и Disallow: /. Для dev- и staging-серверов лучше поставить парольную защиту через basic auth — тогда робот вообще не получит доступ к страницам. robots.txt в одиночку не гарантирует удаление из индекса, только запрещает обход.

В чём разница между robots.txt и meta noindex?

Disallow в robots.txt запрещает роботу заходить на страницу, но не гарантирует, что её не будет в поиске: если на неё есть внешние ссылки, Google может показать URL без описания. Meta noindex разрешает роботу зайти и прямо говорит убрать страницу из индекса — это надёжный способ выкинуть страницу из поиска. Ключевой нюанс: если страница закрыта в robots.txt, робот не зайдёт на неё и не увидит noindex. Эти два способа нельзя применять к одной странице одновременно.

Как закрыть от индексации одну страницу?

Добавьте в раздел head этой страницы meta-тег <meta name="robots" content="noindex, nofollow">. Страница останется доступной пользователям, но выпадет из поиска после следующего обхода роботом. Это работает и для Яндекса, и для Google. Для не-HTML файлов (PDF, изображения) вместо meta-тега используют HTTP-заголовок X-Robots-Tag: noindex.

Закрыл сайт в robots.txt, но он всё равно в поиске. Почему?

robots.txt запрещает обход, но не удаляет уже проиндексированные страницы. Если сайт попал в индекс раньше, Disallow его оттуда не выкинет — робот просто перестанет обновлять данные. Чтобы убрать страницы, поставьте meta noindex (и не закрывайте их при этом в robots.txt, иначе робот не увидит тег), затем ускорьте удаление через инструмент удаления URL в Яндекс.Вебмастере или Google Search Console.

Как закрыть сайт только от Google или только от Яндекса?

В robots.txt задайте правило для конкретного робота: User-agent: Googlebot и Disallow: / закроет сайт только от Google, User-agent: Yandex и Disallow: / — только от Яндекса. В meta-теге можно указать имя робота: <meta name="googlebot" content="noindex"> закроет страницу только для Google. Остальные поисковики продолжат индексировать сайт.

Как проверить, что сайт закрыт от индексации?

Откройте ваш-сайт.ru/robots.txt в браузере и проверьте директивы. Meta noindex видно в исходном коде страницы (Ctrl+U, ищите тег robots). HTTP-заголовок X-Robots-Tag проверяют инструментом проверки ответа сервера — он покажет все заголовки ответа. В Яндекс.Вебмастере есть раздел «Анализ robots.txt», где можно ввести URL и увидеть, разрешён ли обход.

Под рукой: генератор robots.txt и проверка ответа сервера — собрать файл и убедиться, что noindex-заголовок реально отдаётся.

Читать дальше

Все статьи