Страницы выпадают из индекса Google из-за ошибки 403: реальный кейс с блокировкой мобильного Googlebot

Взял клиента на SEO-продвижение интернет-магазина, сайт не новый, типичный список проблем и ошибок, но есть один интересный момент, страницы сайта массово выпадают из индекса Google, хотя на первый взгляд все кажется нормально. Причина оказалась не в контенте и не в ссылках, а в одном старом правиле на сервере, которое блокировало мобильного Googlebot по User-Agent.

Как выглядела проблема: выпадение страниц из индекса и просадка трафика из Google

И так, сама суть проблемы:

  • падает органический трафик из Гугла;
  • в отчетах по индексированию растет количество исключенных страниц;
  • технически сайт работает, открывается в браузере, скорость нормальная, явных ошибок нет.

При этом:

  • в Google Search Console часть страниц значилась исключенными, но некоторые все еще были в индексе;
  • все стандартные проверки доступности показывали, что сервер отвечает кодом 200;
  • никакие явные запреты в robots.txt или мета-тегах не были обнаружены.

То есть, вроде бы как все хорошо и все в порядке, но страницы вылетают и трафик падает.

Стремительное исключение страниц из индекса и падение трафика в Google

В чем оказалась причина: блокировка User-Agent с Nexus и мобильного Googlebot

В конфигурации была прописана защита от нежелательных ботов: все запросы с User-Agent, содержащим слово Nexus, блокировались с кодом 403 Forbidden. Там вообще было много блокировок прописано, я сначала подумал на блокировку по IP, был даже подозрительный диапазон, но его удаление вопрос не решило.

Получилось интересно, долгое время это правило никак не мешало Гуглу, сайт клиента крепко сидел в индексе и получал трафик. Но мобильный робот Google (Googlebot для смартфонов), который сейчас используется в системе индексации, User-Agent как раз имеет вид: … Nexus 5X … Googlebot/2.1 …

То есть:

  • обычные пользователи и десктопный Googlebot получали 200 OK;
  • мобильный Googlebot приходил с User-Agent, содержащим Nexus, и получал 403;
  • для Google эта комбинация выглядела как недоступный сайт.

Отсюда и последствия:

  • мобильный Googlebot не мог корректно сканировать страницы;
  • Google постепенно начал исключать страницы из индекса;
  • трафик из поиска пошел вниз.

В общем кто-то когда-то в пылу борьбы с ботами умудрился заложить на сайте бомбу замедленного действия, сам об этом не подозревая.

Сложности с диагностикой проблемы

Ситуация не была очевидна на первый взгляд:

  1. Заходишь как пользователь в браузере — все работает.
    Сайт открывается, код ответа 200, никаких ошибок.
  2. Десктопный Googlebot тоже видит 200 OK.
    Проверка через просмотр как Googlebot в Гугл Вебмастер показывать, что все в порядке.
  3. В Google Search Console часть страниц в индексе и даже как-то индексируется.
    При проверке URL Гугл говорит, что страница доступна. При этом в отчетах по индексированию ошибки.

Возникает очень неприятная плавающая проблема, это как с машиной, когда что-то стучит в подвеске, но как только приезжаешь в сервис этот стук себя никак не проявляет.

Поиск причины: анализ логов и эмуляция Googlebot

Чтобы понять, что именно происходит с Googlebot, пришлось смотреть более детально.

1. Анализ логов сервера

Я выгрузил логи и начал искать:

  • запросы с User-Agent, содержащим Googlebot;
  • коды ответов сервера для этих запросов;
  • разницу между десктопным и мобильным Googlebot.

В логах стала проявляться характерная картина:

  • часть запросов Googlebot получала 200;
  • часть — стабильно 403;
  • при этом у запросов с 403 в User-Agent было слово Nexus.

2. Сверка User-Agent мобильного Googlebot

Дальше я отдельно посмотрел, с какими User-Agent ходит мобильный робот Google. В логах как раз и фигурировали строки с Nexus 5X ... Googlebot/2.1.

Это навело на мысль, что где-то стоит фильтр по User-Agent с ключевым словом Nexus.

3. Эмуляция запросов робота через консоль

Следующий шаг — проверить догадку:

  • через консоль отправил запросы к сайту с тем же User-Agent, что используется мобильным Googlebot;
  • сервер стабильно возвращал 403 Forbidden;
  • при любом другом User-Agent (включая «обычный» Googlebot без Nexus) — 200 OK.

После этого стало понятно, что проблема не в Google, не в контенте и не в robots.txt, а в конкретном правиле на стороне сервера, которое отсекает мобильного робота Googlebot.

Из-за ошибки 403 большая часть страниц оказалась заблокирована в Гугле

Старое правило в .htaccess, которое дождалось своего часа

Забавно, что это правило блокировки по Nexus существовало в конфигурации давно, но никак не мешало индексации. Вот эта самая строка вредитель в моем случае: SetEnvIfNoCase User-Agent «Nexus» bad_bot

Почему оно не работало раньше?

  • Похоже, изначально оно добавлялось для защиты от какого-то конкретного спам-бота с User-Agent, где встречалось слово Nexus.
  • Долгое время Google мог использовать другие варианты User-Agent, которые под это правило не попадали.
  • После использования Гуглом мобильного робота с User-Agent, содержащим Nexus, правило внезапно стало критичным.

То есть, старое правило внезапно превратилось в источник серьезных проблем с индексацией из-за того, что изменился сам бот.

Что было сделано, чтобы вернуть страницы в индекс Google

После того как я определил источник проблемы, алгоритм дальнейших действий был стандартным:

  1. Аккуратно отключил проблемное правило.
    Убрал условие, которое блокировало User-Agent с Nexus.
  2. Повторно проверил поведение сервера.
    С тем же User-Agent, что у мобильного Googlebot, отправил тестовые запросы к сайту:
    • до изменения сервер отдавал 403 Forbidden;
    • после изменения — корректный ответ 200 OK.
  3. Отправил страницы сайта на переиндексацию через Гугл Вебмастер

Дальше остается только ждать, пока Гугл обойдет все страницы и вернет их в индекс.

Чек-лист: что проверить, если страницы выпадают из индекса Google и падает трафик

Если у вас похожая ситуация — просадка трафика, страницы пропадают из индекса, а с контентом и ссылками все нормально — имеет смысл пройтись по такому чек-листу:

  1. Проверить коды ответов сервера для Googlebot.
    • Посмотреть в логах, какие коды отдает сервер на запросы с User-Agent Googlebot (включая мобильный).
    • Убедиться, что там нет постоянных ошибок 403, 404, 500.
  2. Обратить внимание на фильтры по User-Agent.
    • Проверить конфиги сервера, файрволы, модули защиты (возможно подключены какие-то сервисы борьбы с ботами).
    • Ищете правила блокировким.
  3. Отдельно протестировать Googlebot для мобильных.
    • Воспроизвести запросы с тем же User-Agent, который реально использует робот.
    • Проверить, не отвечает ли сервер 403, другими ошибками или редиректами, которых не видно с десктопа.
  4. Сравнить ситуацию в Google Search Console.
    • Посмотреть отчеты по ошибкам индексирования.
    • Проверить, нет ли там массовых пометок страница возвращает 403 или страница недоступна.
  5. Не полагаться только на браузерные проверки.
    • То, что сайт открывается у вас в браузере и все ОК в обычных тестах, еще не гарантия, что мобильный Googlebot видит те же ответы.

Рекомендации для вебмастера или владельца сайта

Мой пример наглядно показывает:

  • Причина выпадения страниц из индекса поисковой системы, в данном случает Гугла, не всегда очевидна.
  • Мобильный поиск логично имеет все большее значение и доступ мобильного Googlebot к сайту критически важен. Если мобильный робот получает 403, то для Google ваш сайт фактически недоступен.
  • Различные блокировки и защита от ботов могут неожиданно начать вредить через пару лет.
  • При серьезной просадке трафика важно смотреть логи. Без анализа логов и эмуляции запросов Googlebot такие вещи на первый взгляд не видны.

Если у вас падает трафик, страницы постепенно вылетаюь из поиска Google, возможно, дело именно в технических ограничениях на уровне сервера, о которых вы давно забыли.

Михаил (haveshop.ru) - создание и продвижение сайтов и интернет-магазинов
Михаил
Частный специалист, опыт работы с 2007 г.

Занимаюсь разработкой и продвижением сайтов.