Закрыть сайт можно на трёх уровнях: от посторонних людей (пароль или доступ по списку адресов), от поисковых систем (robots.txt, noindex) и от лишнего трафика по географии. Это разные настройки, и путать их дорого: сайт, закрытый только в robots.txt, может остаться в выдаче, а сайт с забытым noindex не попадёт туда никогда. Ниже готовые конфигурации под каждый случай, чек-лист обратного открытия и отдельный блок про то, как ограничить доступ к чужому сайту на своих устройствах.
Три разных запрета, которые часто путают
Прежде чем править конфиг, определите, от кого закрываете сайт. От этого зависит инструмент.
- Запрет для людей: сайт не открывается никому, кроме тех, у кого есть пароль или чей IP-адрес в списке. Работает на уровне веб-сервера, роботы тоже не пройдут.
- Запрет показа в поиске: сайт открыт всем, но не должен появляться в выдаче. За это отвечает метатег
noindexили заголовокX-Robots-Tag. - Запрет обхода: файл
robots.txtпросит роботов не сканировать страницы. Это просьба не ходить, а не запрет показывать. - Фильтр по географии и адресам: правило на сервере или в Cloudflare, когда мешают боты и трафик из ненужных стран.
Как закрыть сайт от посторонних на время разработки
Самый надёжный вариант для сайта в работе: базовая HTTP-авторизация. Браузер спрашивает логин и пароль до того, как отдать хоть одну страницу, поэтому внутрь не попадут ни случайные посетители, ни роботы. На большинстве хостингов это делается в панели («защита директории паролем»), а на своём сервере двумя директивами.
- Создайте файл с паролями утилитой
htpasswd(пакетapache2-utilsв Ubuntu). Флаг-cнужен только при создании первого пользователя, иначе файл перезапишется. - Пропишите в нужном блоке nginx директивы
auth_basicиauth_basic_user_file, как в документации nginx. - Проверьте конфигурацию командой
nginx -tи перечитайте её:systemctl reload nginx. - Откройте сайт в режиме инкогнито и убедитесь, что появляется окно с логином и паролем.
sudo apt install apache2-utils
sudo htpasswd -c /etc/nginx/.htpasswd anna
# /etc/nginx/sites-enabled/example.conf
server {
location / {
auth_basic "Site is closed";
auth_basic_user_file /etc/nginx/.htpasswd;
try_files $uri $uri/ /index.html;
}
}
На хостингах с Apache то же самое делается файлом .htaccess в корне сайта или в закрываемой папке, по официальной инструкции Apache. Путь к файлу паролей должен быть абсолютным, а сам файл лучше держать выше корня сайта, чтобы его нельзя было скачать.
AuthType Basic
AuthName "Site is closed"
AuthUserFile /home/user/.htpasswd
Require valid-user
Если сайт нужен только вам и паре коллег с постоянными адресами, вместо пароля удобнее список IP. В nginx за это отвечает модуль access с директивами allow и deny, правила читаются сверху вниз.
location / {
allow 203.0.113.25; # офис
allow 198.51.100.7; # дом
deny all;
}
Домашний интернет обычно выдаёт динамический адрес, который меняется после перезагрузки роутера, поэтому список IP хорош для офиса и сервера, а для команды на разных устройствах надёжнее пароль. Подробный разбор вариантов с паролем, включая закрытие одной страницы, у нас есть в статье про то, как поставить пароль на сайт.
Закрытый сайт нужен ради того, что на нём появится. На бесплатном эфире показываем, как собрать рабочий сайт с ИИ и довести его до людей.
Занять местоСтраница «идут работы» и код 503
Пароль подходит для сайта, которого ещё нет в поиске. Если сайт уже проиндексирован, а вы закрываете его на несколько часов ради обновления, отдавать поисковым роботам ошибку 404 или пустую страницу нельзя: они решат, что страниц больше нет. Правильный ответ на время работ это код 503 Service Unavailable вместе с заголовком Retry-After, который говорит, когда возвращаться.
server {
location = /robots.txt {
root /var/www/example; # robots.txt должен отдаваться как обычно
}
location / {
return 503;
}
error_page 503 @maintenance;
location @maintenance {
root /var/www/maintenance;
rewrite ^ /index.html break;
add_header Retry-After 3600 always;
}
}
Два правила, которые легко нарушить. Первое: файл robots.txt во время работ должен отдаваться обычным кодом 200, иначе робот перестанет сканировать сайт целиком. Второе: 503 это мера на часы, максимум на пару дней. Google прямо называет полное отключение сайта крайней мерой на очень короткий срок и предупреждает, что закрытие даже на несколько недель бьёт по индексации (справка Google Search Central).
Если работы затягиваются, лучше оставить сайт живым и ограничить функциональность: убрать корзину, повесить баннер с датой возврата, отключить формы. Так страницы остаются в поиске, а люди понимают, что происходит.
По теме: Программа для создания сайта в 2026: что ставить на компьютер
Как закрыть сайт от поисковых систем
Здесь и живёт главная путаница. Файл robots.txt управляет обходом, а не показом. Яндекс формулирует это прямо: ограниченные в robots.txt страницы могут участвовать в поиске, и чтобы удалить их из выдачи, нужна директива noindex в коде страницы или в HTTP-заголовке (Вебмастер, справка про robots.txt). У Google логика та же: если страница закрыта в robots.txt, робот не загрузит её и не увидит noindex, а адрес может показаться в выдаче по внешним ссылкам (Google Search Central).
Отсюда практический вывод: запрет в robots.txt и noindex вместе не работают. Выбирайте одно из двух. Нужно закрыть сайт от сканирования целиком (тестовый домен, копия, черновик): достаточно robots.txt. Нужно, чтобы страницы точно исчезли из выдачи: оставляйте их открытыми для робота и ставьте noindex.
# robots.txt: закрыть весь сайт от обхода
User-agent: *
Disallow: /
Метатег ставится в <head> каждой страницы, которую нужно убрать из выдачи. Значение noindex запрещает показ, nofollow дополнительно просит не переходить по ссылкам.
<meta name="robots" content="noindex">
<meta name="robots" content="noindex, nofollow">
Для файлов без HTML-кода (PDF, картинки, архивы) метатег вставить некуда, там работает заголовок ответа X-Robots-Tag с тем же значением (спецификация Google). В nginx он добавляется для нужного пути одной строкой.
location /docs/ {
add_header X-Robots-Tag "noindex" always;
}
Отдельная тонкость про тестовые копии сайта. Держать их закрытыми только через robots.txt рискованно: файл публичный, а адрес копии всё равно попадает в чужие логи и ссылки. Тестовый домен спокойнее закрывать паролем, тогда вопрос индексации снимается сам собой.
Настройки доступа это техника, а ценность приносит сам сайт. На бесплатном мастер-классе по вайбкодингу разбираем, как собрать свой первый работающий сайт с помощью ИИ и что делать с ним дальше. Участникам достаётся гайд в подарок.
Записаться на эфирЗакрыть отдельные разделы, админку и формы
Целиком сайт закрывают редко, чаще нужно спрятать часть. Разделите задачи так.
- Служебные разделы (админка, кабинет, черновики) закрывайте авторизацией, а не строчкой в
robots.txt: этот файл открыт всем, и перечисленные пути превращаются в подсказку, куда стучаться. - Технические страницы (внутренний поиск, сортировки, версии для печати) уводите из выдачи метатегом
noindex, оставляя их доступными людям. - Служебные файлы (
.env, логи, дампы базы, бэкапы) закрывайте по маске прямо в конфиге сервера. - Формы защищайте скрытым полем-ловушкой и ограничением частоты отправки: капча отпугивает и живых людей, а простые фильтры срезают большую часть спама.
location /admin/ {
auth_basic "Admin area";
auth_basic_user_file /etc/nginx/.htpasswd;
}
location ~* \.(env|log|sql|bak)$ {
deny all;
}
Если админка или личный кабинет пишутся с нуля, доступ разумнее закладывать сразу на уровне приложения: роли, вход по паролю, ограничение на количество попыток. Как это устроено, мы разбирали в материале про то, как сделать регистрацию и вход на сайте. А куда уходят заявки и как не потерять их из-за спам-фильтра, есть в статье про сайт с формой заявки.
По теме: Как загрузить готовый сайт в интернет в 2026: хостинг и домен
Ограничение по географии и по ботам
Иногда сайт должен работать только для одной страны: так режут нагрузку от парсеров и спам из-за рубежа. Проще всего это делается на стороне Cloudflare, куда сайт заводится бесплатно. В разделе правил безопасности создаётся custom rule с полем ip.src.country, пример выражения приводит документация Cloudflare.
(ip.src.country in {"KP" "SY"})
# обратная логика: пускать только Россию и Беларусь
(ip.src.country ne "RU" and ip.src.country ne "BY")
Два предупреждения. Определение страны по IP приблизительное, мобильный интернет и VPN легко ломают картину, поэтому обратную логику («пускать только своих») применяйте осторожно: под запрет попадут и реальные посетители. И не режьте по географии роботов Яндекса и Google: их серверы находятся не там, где ваша аудитория, а сайт после такого выпадает из поиска.
Как открыть сайт обратно и не потерять поиск
Самая частая беда со всей этой темой не в том, что сайт не закрыли, а в том, что забыли открыть. Сайт запустился, реклама идёт, а в поиске его нет, потому что с этапа разработки остался noindex или Disallow: /. Пройдите список сверху вниз.
- Уберите из
robots.txtстрокуDisallow: /и проверьте файл валидатором в Яндекс Вебмастере и в Search Console. - Найдите по коду шаблона все
noindex: и метатеги, и заголовокX-Robots-Tag, и галочку «попросить поисковые системы не индексировать» в конструкторе или в CMS. В WordPress это отдельный чекбокс в настройках чтения. - Снимите пароль и правила
deny, а страницу работ отключите, вернув обычный код 200 вместо 503. - Проверьте одну страницу командой
curl -Iс адресом сайта и посмотрите, что в ответе нет заголовкаX-Robots-Tag, а код именно 200. - Отправьте сайт на переобход: в Яндекс Вебмастере через «Переобход страниц», в Search Console через проверку URL и кнопку запроса индексирования.
Обратная задача, убрать уже проиндексированные страницы побыстрее, решается инструментами вебмастера. Яндекс принимает до 500 адресов одного сайта в сутки и до 20 префиксов, а удаление проходит в течение суток, но страница должна быть закрыта noindex, отдавать 404, 403 или 410 либо быть запрещена в robots.txt (справка Вебмастера). В Google инструмент удаления прячет адрес примерно на шесть месяцев, а чтобы удаление стало постоянным, страницу нужно действительно убрать или закрыть (справка Search Console). Что делать наоборот, когда сайт нужно как можно быстрее показать поиску, мы описали в материале про то, как сделать сайт активным.
По теме: Excel на сайте в 2026: как вывести таблицу и собирать заявки
Как ограничить доступ к чужому сайту на своей стороне
Второй смысл этой задачи бытовой: закрыть ребёнку или себе доступ к конкретным сайтам на домашних устройствах. Речь именно про свои устройства и родительский контроль, а не про обход чьих-либо законных ограничений.
- Роутер. В большинстве домашних роутеров есть раздел родительского контроля или фильтрации URL: правило действует на все устройства в квартире.
- DNS с фильтрацией. Бесплатный Яндекс DNS в семейном режиме (адреса 77.88.8.7 и 77.88.8.3) отсекает сайты для взрослых на уровне сети, адреса прописываются в роутере или в настройках подключения.
- Android и аккаунт Google. Family Link разрешает и блокирует конкретные сайты в Chrome и включает фильтр взрослого контента (справка Google).
- iPhone и iPad. Настройки, «Экранное время», «Ограничения контента и конфиденциальности», «Веб-содержимое»: есть общий фильтр и списки разрешённых и запрещённых адресов (справка Apple).
- Windows. Microsoft Family Safety фильтрует сайты только в Microsoft Edge, а остальные браузеры при включённой фильтрации блокируются целиком (справка Microsoft).
Способ с файлом hosts на компьютере тоже работает, но обходится за минуту любым, кто знает про него, поэтому как родительский контроль он ненадёжен. Фильтр на роутере или через DNS честнее: его сложнее отключить незаметно, и он покрывает все устройства сразу.
Частые вопросы
Как полностью закрыть сайт от индексации?
Если сайт ещё не в поиске, хватит robots.txt с Disallow: /, а надёжнее закрыть его паролем. Если страницы уже в выдаче, оставьте их доступными роботу и поставьте noindex: только так поисковая система узнает о запрете и уберёт страницы.
Почему страницы закрыты в robots.txt, а в поиске они есть?
Потому что robots.txt запрещает обход, а не показ. Робот не заходит на страницу, но знает её адрес по внешним ссылкам и может показать его в выдаче без описания. Уберите запрет из robots.txt и добавьте на страницу noindex.
Можно ли закрыть сайт паролем без программиста?
Да. У большинства хостингов в панели есть пункт «защита директории паролем», где достаточно указать логин и пароль. В конструкторах вроде Тильды или Craftum пароль ставится на страницу или на сайт в настройках доступа, без правки файлов.
Что выбрать на время переделки сайта: пароль или 503?
Пароль, если сайт новый и в поиске его ещё нет. Код 503 с заголовком Retry-After, если сайт уже проиндексирован и закрывается на несколько часов. Затягивать с 503 нельзя, для долгих работ лучше оставить упрощённую рабочую версию.
Как проверить, что запрет действительно сработал?
Откройте сайт в режиме инкогнито и с телефона по мобильному интернету, чтобы не попасть в собственные разрешения. Ответ сервера смотрите командой curl -I с адресом страницы, а индексацию проверяйте инструментами «Проверка URL» в Search Console и «Проверить статус страницы» в Яндекс Вебмастере.
Закрывать и открывать сайт проще, когда понимаешь, как он устроен изнутри. На бесплатном воркшопе по сайтам с ИИ показываем весь путь: собрать страницу, выложить её и настроить доступ так, как нужно вам.
Занять место