401 Unauthorized: что это и как влияет на SEO

Что такое HTTP-статус 401, как он отличается от 403, как влияет на индексацию Googlebot и что делать при его появлении на публичных страницах.

Кратко

401 Unauthorized — HTTP-код ответа, который сервер возвращает, когда запрос не прошёл аутентификацию: пользователь не предоставил учётные данные или они не прошли проверку. Это не запрет на доступ (как у 403) — это приглашение авторизоваться.

Что такое 401 Unauthorized

401 Unauthorized — это HTTP-статус из группы 4xx (ошибки клиента), который сервер возвращает, когда запрос требует аутентификации, но она не была предоставлена или не прошла проверку. Вместе со статусом сервер обычно отправляет заголовок WWW-Authenticate, указывающий, какой способ аутентификации принять.

Само название «Unauthorized» немного вводит в заблуждение: на самом деле речь идёт об отсутствии аутентификации, а не авторизации. Точнее было бы «Unauthenticated» — именно такое значение закреплено в RFC 9110.

401 — это не приговор, а запрос: «Представьтесь, и мы пустим вас». Сервер допускает, что повторный запрос с корректными учётными данными будет выполнен успешно. Именно поэтому браузер при 401 автоматически показывает диалог входа.

401 vs 403: в чём разница

Оба кода означают отказ в доступе, но по разным причинам:

Параметр401 Unauthorized403 Forbidden
Причина отказаАутентификация не пройдена или не предоставленаДоступ запрещён вне зависимости от авторизации
Что знает сервер о пользователеНичего — пользователь не представилсяПользователь известен, но у него нет прав
Ответ на вопрос «Кто вы?»Вы не ответили или ответили неверноВы известны, но вам сюда нельзя
Повторный запрос с кредамиМожет сработатьНе поможет — нужны другие права
ПримерЗащищённая паролем страница без авторизацииСтраница только для администраторов
Неправильное использование кодов — распространённая ошибка. Если вы точно знаете, что пользователь авторизован, но у него нет прав — возвращайте 403, а не 401. Иначе браузер снова покажет диалог входа, хотя пользователь уже залогинен.

Влияние на SEO и индексацию

Когда Googlebot запрашивает URL и получает в ответ 401, он не может прочитать содержимое страницы. Результат — страница не индексируется или исключается из индекса. Если 401 появляется на публичных страницах, это серьёзная SEO-проблема:

  • Страница теряет позиции и выпадает из индекса в течение нескольких недель.
  • Краулинговый бюджет расходуется впустую: робот обходит URL, но ничего не получает.
  • Ссылочный вес, ведущий на заблокированные страницы, не передаётся дальше.
  • В Google Search Console появятся ошибки в разделе «Покрытие» → «Исключённые страницы».
Google не штрафует за наличие 401 на закрытых разделах сайта (личный кабинет, CMS, API). Проблема возникает только тогда, когда 401 мешает индексации страниц, которые должны быть публичными.
4xx

группа ошибок

Ошибки на стороне клиента

401

код — авторизуйтесь

Запрашивает аутентификацию

403

код — запрещено

Не поможет ни авторизация, ни кредиты

0%

контента Googlebot

Страница не индексируется при 401

Типичные причины появления 401 на публичных страницах

  1. HTTP Basic Auth на всём сайте или разделе. Часто настраивают на стейджинге, а потом забывают убрать перед релизом или случайно применяют к продакшн-среде.
  2. Неверно настроенный CDN или обратный прокси. Промежуточный слой требует токен или подпись, которую Googlebot не знает.
  3. Устаревшие токены API. Страницы, генерируемые через API с истёкшим ключом, возвращают 401 вместо контента.
  4. Ошибка в коде приложения. Middleware или guard случайно требует авторизацию там, где её не должно быть.
  5. WordPress или другой CMS после обновления. Плагины защиты контента могут сменить настройки при обновлении.
Особую опасность представляет HTTP Basic Auth на стейджинге, который открыт для краулеров. Googlebot иногда обходит стейджинговые домены через случайные ссылки. Закрывайте стейджинг через robots.txt или IP-вайтлист — но не через Basic Auth без robots.txt.

Как устранить 401 на публичных страницах

Алгоритм диагностики и устранения:

  1. Найдите проблемные URL через Google Search Console → «Покрытие» или через краулер (Screaming Frog).
  2. Проверьте код ответа через curl — убедитесь, что проблема воспроизводится.
  3. Определите, где настроена аутентификация: сервер (Apache/Nginx), CDN, middleware приложения.
  4. Снимите требование аутентификации с публичных URL или добавьте исключение для них.
  5. Если стейджинг нужно защитить — добавьте robots.txt с Disallow: / или ограничьте доступ по IP.
BASH
# Проверка кода ответа
curl -o /dev/null -s -w "%{http_code}\n" https://example.com/page
# Ожидаемый результат: 200 (или 301/302)
# Если видите 401 — есть проблема

# Проверка с Basic Auth
curl -u login:password -o /dev/null -s -w "%{http_code}\n" https://example.com/page
APACHE
# Apache — защита директории с исключением для публичных страниц
<Directory /var/www/html/admin>
    AuthType Basic
    AuthName "Admin Area"
    AuthUserFile /etc/.htpasswd
    Require valid-user
</Directory>

# Публичные страницы НЕ трогаем — они доступны без авторизации
NGINX
# Nginx — Basic Auth только для /admin, публичные страницы открыты
server {
    # Открытый раздел
    location / {
        try_files $uri $uri/ =404;
    }

    # Закрытый раздел
    location /admin/ {
        auth_basic "Admin Area";
        auth_basic_user_file /etc/nginx/.htpasswd;
    }
}
TYPESCRIPT
// Next.js — API route с правильным 401
import { NextRequest, NextResponse } from 'next/server';

export async function GET(request: NextRequest) {
  const token = request.headers.get('authorization');

  if (!token || !isValidToken(token)) {
    return NextResponse.json(
      { error: 'Authentication required' },
      {
        status: 401,
        headers: { 'WWW-Authenticate': 'Bearer realm="API"' },
      }
    );
  }

  return NextResponse.json({ data: 'protected content' });
}

Нашли 401 на публичных страницах?

Расскажите о проекте — проведём технический SEO-аудит и найдём все точки блокировки краулера.

Написать

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

Да, постепенно. Если Googlebot систематически получает 401 на URL, который раньше был доступен, он начнёт снижать приоритет обхода, а затем исключит страницу из индекса. Процесс может занять несколько недель. Чем авторитетнее страница, тем дольше Google будет ждать и перепроверять.
Это работает, но есть надёжнее: добавьте robots.txt с Disallow: / или заблокируйте стейджинг по IP. 401 не гарантирует полной защиты — Googlebot иногда игнорирует Basic Auth и пробует перейти по ссылкам. Лучшая практика: robots.txt + Basic Auth вместе.
С точки зрения индексации эффект одинаковый: Googlebot не получает контент и не может проиндексировать страницу. Разница в семантике: 401 означает «авторизуйтесь», 403 — «у вас нет прав, даже если авторизуетесь». Для SEO важно, что оба кода блокируют индексацию публичного контента.
При следующем обходе URL краулером. Если страница важная и раньше имела трафик, Google перепроверит её в течение нескольких дней. Можно ускорить через «Проверка URL» в Google Search Console → «Запросить индексирование».
По стандарту RFC 9110 — да. Без него 401 технически некорректен. Браузеры и клиенты ожидают этот заголовок, чтобы понять, какой способ аутентификации поддерживается. На практике многие API возвращают 401 без него, и это не ломает поведение — но лучше соблюдать стандарт.
Нет. Disavow — инструмент для ссылочного спама, а не для HTTP-кодов. Если 401 устранена, Google сам обновит статус при следующем краулинге. Удалять URL вручную из Search Console не нужно.
Прямые контакты

Обсудим ваш проект?

Расскажите о целях и сайте — предложу формат работы и следующий шаг.