Перейти к содержимому
SEO/Опубликовано 23 сентября 2026 г./5 мин1 просмотр

Ошибка 403: доступ запрещён — кому и за что

Вызвали 403 на стенде шестью способами и спросили сайты Екатеринбурга от имени двенадцати разных посетителей. Половина сайтов, открытых человеку, отказывает хотя бы одному роботу, и отказ часто вовсе не выглядит как 403.

Ошибка 403: доступ запрещён — кому и за что
С
Команда NEXFORCE
SEO-эксперт NEXFORCE

Ошибка 403 кажется простой: «доступ запрещён», значит, так задумано. На деле её рисуют очень разные вещи — от забытых прав на файл до правила, которое отказывает всем, кто назвался роботом. Мы вызвали 403 на стенде шестью способами, а потом обошли 260 сайтов Екатеринбурга двенадцатью разными посетителями и посмотрели, кому сайты отказывают на самом деле.

Что говорит определение

Стандарт HTTP (RFC 9110, раздел 15.5.4) описывает 403 так: сервер понял запрос, но отказывается его выполнить. Причину сервер может объяснить в теле ответа, а может и не объяснять. Там же сказано, что сервер, который хочет скрыть сам факт существования ресурса, вправе ответить 404 вместо 403.

В справочнике кодов Яндекса:

403 Доступ к ресурсу запрещен/Forbidden — Доступ к документу запрещен. Если вы хотите, чтобы страница индексировалась, необходимо разрешить доступ к ней.

Главное отличие от соседей: 404 — «такого нет», 401 — «представьтесь», 5xx — «сервер сломался». 403 — «есть, работает, но тебе не дам».

Стенд: шесть способов получить 403

Собрали nginx 1.22.1 с отдельной папкой под каждую поломку и записали, что видит посетитель и что остаётся в журнале ошибок сервера.

Что сделалиОтветСтрока в журнале ошибок
Папка без index.html, листинг выключен403directory index of "…/" is forbidden
Файлу сняли все права (chmod 000)403open() "…/index.html" failed (13: Permission denied)
Папке-родителю сняли право входа403"…/index.html" is forbidden (13: Permission denied)
Правило deny all на папку403access forbidden by rule
Запрет скрытых файлов, запрос /.env403access forbidden by rule
Отказ по имени агента (AhrefsBot)403ничего
Та же папка, обычный браузер200—
Несуществующая папка — для сравнения404is not found (2: No such file or directory)

Посетитель во всех шести случаях видит одну и ту же страницу «403 Forbidden». Различить причины можно только по журналу ошибок, и пять из шести там оставили точную строку.

Шестой случай — самый неприятный. Правило вида «если агент такой-то — вернуть 403» срабатывает до чтения файлов, поэтому журнал ошибок молчит: с точки зрения сервера ошибки не было, он сделал то, что велели. Такой отказ виден только в журнале доступа, где рядом с кодом 403 записан агент. Кто ищет причину 403 в журнале ошибок, эту не найдёт никогда.

Обход: двенадцать посетителей на 260 сайтах

Двенадцать агентов — это двенадцать строк, которыми посетитель себя называет: браузер из России, браузер из Европы, YandexBot, Googlebot, Bingbot, AhrefsBot, SemrushBot, GPTBot, ClaudeBot, curl, python-requests и запрос вовсе без имени. Каждый сайт спрашивали всеми двенадцатью подряд, с паузой полторы секунды между агентами. Обход прошёл 23 сентября.

Браузеру из России ответили 200 на 241 сайте из 260 — от них и считаем. Каждый отказ перепроверили повторным запросом тем же агентом, а браузер спросили ещё раз рядом. В таблицу попали только отказы, которые повторились, а браузер при этом снова получил 200.

Кто спрашивалОтказов из 241403503Обрыв без ответаПрочее
SemrushBot1143723468
AhrefsBot1103323459
GPTBot6889474
ClaudeBot52301165
Bingbot479—362
python-requests139—22
Запрос без имени32——1
curl2——2—
Браузер из Европы1———1
YandexBot0————
Googlebot0————

Всего хотя бы одному агенту отказали 120 сайтов из 241 — ровно половина. Отказывают сразу нескольким: одному агенту — 7 сайтов, двум — 17, трём — 34, четырём — 49, пяти и больше — 13.

Порядок запросов не объясняет отказы. curl, python-requests и запрос без имени шли после роботов, то есть в самой «подозрительной» части серии, и получили 200 почти везде. Значит, дело не в частоте запросов, а в том, как посетитель назвался.

Отдельно о двух нулях внизу таблицы. Ни один сайт не отказал поддельным YandexBot и Googlebot — мы только называли себя этими роботами, с чужого адреса. То есть подлинность поисковых роботов эти сайты либо не проверяют, либо проверяют, но поддельного всё равно пускают. Для сравнения: в прошлом замере доступности для роботов на выборке из 75 сайтов один отдавал 403 роботу Яндекса.

Три лица одного отказа

Если судить только по коду 403, отказов в таблице окажется вдвое меньше, чем их есть. Сервер говорит «нет» тремя способами.

403 Forbidden. Честный отказ. Тела ответов в первом проходе: 95 раз стандартная страница nginx, 11 раз страница DDoS-Guard, 3 раза — Qrator.

503 Service Temporarily Unavailable. Выглядит как временная поломка, но поломки нет: тот же сайт в ту же секунду отвечает браузеру 200. Все 23 таких сайта отвечали с одинаковой подписью сервера nginx-reuseport/1.21.1 и одной и той же стандартной страницей — похоже на общее правило у одного хостинга, а не на решение каждого владельца.

Обрыв без ответа. Самый частый вид отказа: сервер принимает соединение и сбрасывает его, не отправив ни кода, ни страницы. Почти всегда это сброс потока HTTP/2, пару раз — пустой ответ. Так отказывали в основном сервера с подписью nginx, реже openresty. Для инструмента проверки такой отказ неотличим от упавшего сайта.

Отказы ходят пачками. Самые частые сочетания: обрыв для Ahrefs, Bing, GPTBot и Semrush сразу — 31 сайт; обрыв для Ahrefs, ClaudeBot, GPTBot и Semrush — 10 сайтов; 403 для Ahrefs, ClaudeBot и Semrush — 15 сайтов. Это похоже на готовые списки «плохих ботов», которые включают целиком, а не на решение про каждого робота.

Что 403 значит для поиска

Для Яндекса 403 — не просто ошибка, а указание. В разделе об удалении страниц из поиска справка называет способ — «HTTP-статус с кодом 404, 403 или 410» — и срок:

Из поисковой базы страница будет удалена в течение недели после того, как робот обнаружит ваши указания.

Там же Яндекс сам советует ставить 403 на личные страницы:

Для страниц с авторизацией, которые содержат личные данные (адрес доставки, телефон, платежная информация), настройте HTTP-код ответа сервера 403 Forbidden.

Отсюда простое правило. 403 на корзине, личном кабинете и /.env — правильно. 403 на обычной странице, пришедший роботу поиска, — это просьба убрать её из выдачи, даже если владелец ничего такого не просил.

С остальными роботами иначе. Отказ Ahrefs и Semrush не влияет на поиск Яндекса, но их базами ссылок пользуются другие владельцы и SEO-специалисты: закрытый от них сайт хуже виден в их отчётах. Отказ GPTBot и ClaudeBot убирает сайт из того, что читают ИИ-помощники — подробнее в разборе ИИ-краулеров. Если закрывать, то осознанно и лучше через robots.txt: его правила видны, а отказ по агенту на сервере не видит никто, включая самого владельца.

Как проверить у себя

  1. Откройте страницу обычным браузером и запросите её от имени робота. Достаточно curl -I -A "YandexBot/3.0" https://ваш-сайт/. Разный код для человека и робота — отказ по агенту.
  2. Обрыв тоже считайте отказом. Если curl завершился ошибкой без кода, а браузер страницу получил — это он.
  3. Смотрите журнал ошибок сервера. Строки forbidden, Permission denied, access forbidden by rule называют причину сразу.
  4. Журнал ошибок пуст — смотрите журнал доступа. Найдите строку с 403 и прочитайте агента в её конце.
  5. Проверьте защиту от атак и хостинг. Страница DDoS-Guard или Qrator вместо сайта, одинаковый 503 на соседних сайтах — правило не ваше, его меняют в настройках сервиса или через поддержку.

Наш сайт на тех же агентах отвечает 200 всем, включая запрос без имени и ИИ-краулеры: закрывать нам нечего, а кто читает — тот и находит.

Чего мы проверить не смогли

  • Настоящих роботов. Мы только называли себя YandexBot и Googlebot. Сайт, который проверяет робота по обратному DNS, настоящему ответит иначе, чем нам.
  • Совпадает ли отказ с robots.txt. Закрывают ли эти же сайты Ahrefs и GPTBot ещё и в robots.txt, мы не сверяли.
  • Кто ставит правило. Владелец, хостинг или защита от атак — видно по подписи ответа лишь частично; одинаковый 503 на 23 сайтах указывает на хостинг, но подтверждения от него у нас нет.
  • Содержимое ответов 200. Мы сравнивали коды, а не страницы. Сайт, который отдаёт роботу 200 с пустой или другой страницей, в эту таблицу не попал.

Границы замера

Выборка — 260 сайтов компаний Екатеринбурга, считали по 241, открытых браузеру. Один обход 23 сентября, каждый отказ подтверждён одним повтором; из первичных расхождений 14 при повторе не подтвердились и выброшены. Запросы шли с одного адреса в России, «браузер из Европы» — с одного адреса в Германии. Стенд — nginx 1.22.1 с настройками по умолчанию; Apache и другие серверы пишут в журнал иначе.

Коротко

  • 403 — «страница есть, но тебе не дам». Посетитель видит одну и ту же страницу при шести разных причинах.
  • Пять причин из шести оставляют строку в журнале ошибок. Отказ по имени агента не оставляет ничего — ищите его в журнале доступа.
  • Половина сайтов, открытых браузеру, отказывает хотя бы одному роботу: Semrush и Ahrefs — почти каждый второй сайт, GPTBot — больше чем каждый четвёртый.
  • Отказ часто выглядит не как 403, а как 503 или обрыв без ответа.
  • Для Яндекса 403 — просьба убрать страницу из поиска в течение недели. Ставить её стоит на личные страницы, а не на всё подряд.
Вопросы и ответы

FAQ по теме

Что означает ошибка 403 Forbidden?+
Сервер понял запрос и отказался его выполнить. Это не «страницы нет» (404) и не «сервер сломан» (5xx): страница или папка существует, но этому посетителю её не отдают. Причина — права на файлы, запрет в настройках сервера, защита от атак или правило для определённых посетителей.
Почему сайт отдаёт 403 роботу, а человеку открывается?+
Потому что сервер решает по строке агента — по тому, как посетитель себя назвал. В нашем обходе 120 из 241 сайта, открытых браузеру, отказали хотя бы одному роботу: чаще всего сервисам SEO-аналитики Ahrefs и Semrush, затем GPTBot, ClaudeBot и Bingbot.
Опасна ли ошибка 403 для индексации в Яндексе?+
Да, если её получает робот поиска. Яндекс в справке прямо называет 403 одним из способов удалить страницу из поиска: страница выпадет в течение недели после того, как робот увидит ответ. Для страниц с личными данными это правильно, для обычных — потеря страницы.
Как найти причину 403 на своём сайте?+
Открыть журнал ошибок сервера. На стенде пять причин из шести оставили там понятную строку: запрет листинга папки, нет прав на файл, нет прав на папку, правило deny. Шестая — отказ по имени агента — не оставила в журнале ошибок ничего, её видно только в журнале доступа.