🔎Как разобрать провал трафика — 8 гипотез до письма Платону

Прежде чем идти в поддержку Яндекса с подозрением на ПФ — прогоните восемь гипотез. Как отделить фильтр от миграции, robots.txt, canonical, апдейта и SERP-переоценки.

редакция seodb#диагностика#яндекс#фильтры#вебмастер#метрика

Клиенты приходят с одной и той же формулировкой: «у нас упал трафик, это ПФ?». В прошлой статье про ПФ-фильтр я разбирал, как выйти из-под него, если уже подтверждено. Здесь — про этап до того. Прежде чем писать поддержке и включать таймер на 2-6 месяцев, стоит убедиться, что это вообще фильтр, а не одна из семи других причин, которые лечатся быстрее и своими руками.

У меня сложился протокол: восемь гипотез в фиксированном порядке — от самой частой к самой редкой, от самой дешёвой в проверке к самой дорогой. Идёшь по списку, отмечаешь галочками, и к финалу либо находишь причину, либо оставшийся вариант — действительно ПФ.

Нулевой шаг: провал точно есть?

До первой гипотезы — базовая проверка. Каждый третий «провал», с которым ко мне приходят, при разборе оказывается либо естественной сезонкой, либо иллюзией из-за поломанной атрибуции.

Смотрим в Метрике → Отчёты → Источники → Поисковые системы сегмент «Яндекс», период 90 дней, разбивка сначала по неделям, потом по дням. Три вопроса:

  1. Провал точно есть, или это визуальный эффект от аномального пика неделей раньше?
  2. Провал в одном поисковике или в обоих? Одновременное падение по Яндексу и Google почти всегда — техника (об этом дальше), а не санкция одного из них.
  3. Провал совпадает с известной сезонной ямой ниши? Праздники, отпуска, конец учебного года, старт сезона отопления — у каждой ниши свои. Если сайт про ремонт, а на дворе новогодние праздники — это ожидаемо. Сравните год к году в том же отчёте.

Также проверьте, что не сломан сам счётчик. Открываем главную в анонимном окне → «Инструменты → Отладка счётчика» на webmaster.yandex.ru, либо в Метрике «Проверка счётчика». Пустой сессионный отчёт от несработавшего счётчика выглядит как провал, но лечится за 5 минут — правкой шаблона.

Провал реален и не сезонный — идём по гипотезам.

Гипотеза 1: robots.txt или meta noindex закрыли сайт

Самая частая причина резкого падения — не Яндекс, а мы сами. Кто-то релизит новый раздел, копирует шаблон со staging, где <meta name="robots" content="noindex"> в head’е был по делу, и забывает его снять на проде. Или в robots.txt появляется строчка Disallow: / в момент миграции CMS.

Проверяется за минуту:

curl -s https://example.com/robots.txt
curl -s https://example.com/ | grep -i 'robots'
curl -s -A "Mozilla/5.0 (compatible; YandexBot/3.0)" https://example.com/ | grep -i 'robots'

Второй и третий curl — потому что бывает cloaking, когда сайт отдаёт разное для пользователя и краулера. Если сайт настроен «отдавать noindex боту, чтобы не индексировался staging» — это классический сценарий, когда правило переехало вместе со скопированной конфигурацией на прод.

Ещё точка, которую регулярно пропускают, — это <meta name="robots" content="noindex"> в шаблоне подвала. Не в head, а в шаблоне блока «связанные материалы», куда его положил разработчик из соображений «пусть Яндекс не индексирует этот блок как самостоятельную страницу». Метатег в теле страницы Яндекс тоже видит и трактует как noindex всей страницы.

В Вебмастере то же самое проверяется через «Инструменты → Проверка статуса URL» — если Яндекс уже забанил страницу по noindex, статус вернёт «Запрещена мета-тегом robots». Если попались — снимаем, потом в Вебмастере «Переобход страниц» на первые 20-30 ключевых URL.

Гипотеза 2: canonical указывает не туда

Второй по частоте технический косяк. Сценарий: сайт живёт на https://example.com, но в шаблоне генерации canonical подставляется относительный URL от переменной, которая на staging равна https://staging.example.com, а на проде переменную забыли переопределить. Или того веселее — canonical везде указывает на главную (частая ошибка при вёрстке SPA-подобных сайтов, где router неправильно генерирует meta).

Проверка:

curl -s https://example.com/nekotoraya-stranica/ | grep -i 'canonical'

Ожидаем увидеть <link rel="canonical" href="https://example.com/nekotoraya-stranica/">. Если видим что-то другое — например, canonical на другой домен, на главную, или canonical вообще отсутствует, а сайт большой и многостраничный — это причина.

Особенность canonical: Яндекс не сразу выкидывает страницу из индекса по canonical на чужой домен. Он какое-то время считает это подсказкой, а не приказом. Но если canonical стабильно неправильный неделями — страницы сначала теряют позиции, потом склеиваются с canonical target’ом, потом уходят из индекса. Обвал плавнее, чем в первой гипотезе, но так же реален.

В Вебмастере в отчёте «Индексирование → Страницы в поиске → Исключённые страницы» для каждой строки указана причина. Если массово в исключённых стоит «Неканоническая страница» — это оно. Смотрим на URL из колонки «Канонический» — куда именно наш сайт склеили.

Гипотеза 3: миграция без корректных 301

Классика при переезде: с HTTP на HTTPS, со старой структуры URL на новую, при смене CMS, при консолидации нескольких сайтов в один. Схема одна: старые URL умерли, отдают 404 (или, что хуже, 200 но с новым содержимым), а 301 либо забыли, либо сделали цепочку из четырёх редиректов через промежуточные состояния.

Как проверить:

  1. Отчёт в Вебмастере «Индексирование → Страницы в поиске → Исключённые» — искать причины «Ошибка HTTP: 404», «Дубль». Если недавно случился всплеск — это симптом.
  2. Ручной прогон старых ключевых URL:
    curl -sI https://example.com/staryy-adres/ | head -5
    Ждём HTTP/2 301 и location: https://example.com/novyy-adres/, где новый адрес — реально живая страница с тем же контентом. Не HTTP/2 404, не редирект на главную, не цепочка.
  3. Screaming Frog или бесплатный аналог прогонит список URL пачкой. Если проверяемых страниц много (сотни) — только так.

Отдельно про склейку HTTP → HTTPS: она должна быть однохоповая. Не http://example.com/pagehttp://example.com/page/https://example.com/page/https://www.example.com/page/. Каждая лишняя ступенька — минус часть ссылочного веса, а Яндекс на цепочках длиннее 2-3 хопов иногда просто отказывается ходить.

Ещё чек, о котором забывают: проверить старые бэклинки. Если внешние ссылки на ваш сайт указывают на URL, которые теперь 404 — это тоже потеря веса. Открываем Вебмастер → «Ссылки → Внешние», сортируем по трафику или количеству ссылающихся доменов, проверяем, куда ведут ТОП-30 внешних ссылок. Не 404? — идём дальше.

Гипотеза 4: обвал только по одному сегменту

Смотрим в Метрике отчёт «Страницы входа» с сегментом «Источник = Яндекс», сравниваем два периода: месяц до провала и месяц после. Часто оказывается, что рухнул один раздел, а остальной сайт живёт как жил.

Если провал сегментарный — вариантов три:

А. Аффилиат-фильтр. У Яндекса есть механизм, который выкидывает из выдачи один из двух похожих сайтов одного владельца. Симптом: один из ваших сайтов резко потерял видимость, второй — не изменился. Часто триггерится, когда вы держите несколько лендингов по одному бизнесу под разными доменами, или клиент решил «продублировать» контент на второй домен. Лечится разнесением: разные контакты, разное юрлицо в футере, разный дизайн, разные IP.

Б. Баден-Баден на группе страниц. Санкция за переспам. Симптом: одна группа страниц (обычно коммерческие карточки или SEO-тексты с плотностью ключей выше нормы) провалилась, остальное — нет. В Вебмастере в «Диагностике» иногда всплывает уведомление про переспам. Лечится переписыванием.

В. Апдейт по типу контента. Яндекс регулярно перекалибровывает выдачу под определённые интенты — коммерческие, локальные, YMYL. Если рухнул один сегмент, а тип интента у него единый (например, все «купить X в Москве») — возможно, поменялась логика ранжирования для этого типа. Это не фильтр, лечить надо не письмами, а работой над контентом и структурой.

Ловить сегментарный обвал важно рано: если пропустить и уйти в панику по всему сайту, начнёшь чинить то, что не сломано, и делать хуже.

Гипотеза 5: сайт лежал в момент массового краулинга

Редкая, но неочевидная причина. Если сервер отвечал 5xx в момент, когда YandexBot решил обойти большую часть сайта, Яндекс может временно выкинуть страницы из индекса до следующего обхода. Если сервер лежал долго — падение будет накапливаться, а трафик — падать плавно в течение 2-3 недель, что часто списывают на фильтр.

Проверка:

  1. Логи nginx/Apache за последние 30-60 дней:
    awk '$9 ~ /^5/ {print}' /var/log/nginx/access.log* | wc -l
    awk '/YandexBot/ && $9 ~ /^5/ {print $4}' /var/log/nginx/access.log* | sort | uniq -c
    Если для YandexBot в какой-то день процент 5xx подскочил до 20-50% — это оно.
  2. Вебмастер → «Индексирование → Статистика обхода» — там видно динамику по кодам ответа. Всплеск красного за прошедший месяц.
  3. Uptime-мониторинг, если ведётся. Uptime Robot / Zabbix / Grafana покажут провалы.

Лечение — восстановить стабильность сервера, потом в Вебмастере через «Переобход страниц» руками пнуть 20-30 ключевых URL, чтобы Яндекс их переобошёл и вернул в индекс. Массовое возвращение занимает 2-4 недели.

Отдельный подслучай — сайт держит nginx под лимитами rate-limit, которые режут ботов. Владелец включил защиту от парсинга, а под неё попал и YandexBot. Смотрим в конфиге nginx limit_req_zone и limit_conn_zone, если они применяются к user-agent’у YandexBot — снимаем.

Гипотеза 6: апдейт Яндекса

Яндекс выпускает крупные обновления алгоритма несколько раз в год плюс мелкие подкрутки почти ежемесячно. Провал совпал по времени с апдейтом — это гипотеза номер шесть, а не первая, потому что «на нас накатил апдейт» — самая удобная отговорка, и до того как её принять, нужно исключить всё остальное.

Как проверить:

  1. SEO-каналы в Telegram, которые ведут мониторинг апдейтов. Названий не называю, но у практиков они всегда в подписках — обычно 3-5 каналов, куда авторы репостят собственные наблюдения по всплескам волатильности.
  2. Инструменты типа Rush Analytics «Индекс волатильности» — публичный график, показывает, насколько сильно двигалась выдача Яндекса в конкретную дату.
  3. Свои данные: если у вас в мониторинге позиций (SE Ranking, Топвизор, любой аналог) сдвинулись позиции по 30-50% запросов одновременно, а не только по вашим — это апдейт.

Диагностически апдейт отличается от фильтра одной чертой: апдейт трогает всех, фильтр — конкретный сайт. Если конкуренты в вашей нише тоже сдвинулись (кто-то вверх, кто-то вниз, у кого-то трафик просел) — это апдейт. Если сдвинулись только вы — фильтр или технический косяк.

Что делать при подтверждённом апдейте: не пытаться срочно что-то «отменить». Апдейты обычно не откатывают. Работать по новым правилам: смотреть, кто теперь в топе по вашим запросам, чем они лучше вас, что скорректировать в контенте / шаблоне / структуре. Может потребоваться 2-3 месяца, чтобы восстановиться, если позиции стали ниже конкурентов.

Гипотеза 7: конкурент выкатил массовый контент

Апдейт двигает всех разом, а этот сценарий — точечный. Один из ваших ключевых конкурентов запустил новый большой раздел, переписал существующий контент, привлёк массу ссылок или провёл техническую оптимизацию — и просто обогнал вас в SERP. Ваш трафик проседает, потому что вас сместили с 3-5 позиций.

Диагностика:

  1. SERP-анализ по ТОП-20 своих запросов до и после провала. Смотрим, кто был в топе тогда, кто сейчас. Новые доменные имена в топе — это они.
  2. Проверка новых сайтов: сколько у них страниц (site: оператор), как выглядят их разделы, что они запустили за последние 2-3 месяца. Wayback Machine (web.archive.org) покажет старую версию сайта, если хотите сравнить «было — стало».
  3. Ahrefs / Serpstat / Mangools — если есть подписка, посмотрите динамику ссылочного профиля конкурента. Резкий прирост качественных ссылок за месяц — это ваша просадка.

Что делать: догонять по контенту и техническим сигналам. Это не быстро — 2-4 месяца минимум. Проще всего начать с недорогих правок: обновить материалы, добавить недостающие разделы, улучшить внутреннюю перелинковку, поработать над структурированной разметкой. Гнаться за конкурентом «в лоб» — писать столько же страниц в те же темы — редко работает; лучше выделиться свежим ракурсом.

Гипотеза 8: изменилась структура SERP

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

Как проверить:

  1. Вебмастер → «Поисковые запросы → Статистика запросов» — сравниваем показы и клики по одинаковым запросам за два периода. Если показы держатся, а CTR провалился — это оно.
  2. Ручная проверка выдачи по вашим топовым запросам. Открываем в анонимном режиме, смотрим первый экран: есть ли Нейро в верхней части? Колдунщик? Быстрый ответ? Если раньше не было, а теперь есть — вы всё ещё в топе, но клика меньше, потому что часть аудитории получает ответ прямо в SERP.
  3. Отчёт «Позиции» в Метрике (если подключён) — покажет среднюю позицию по запросу за период. Если позиция та же, а трафик рухнул — это структура SERP, а не фильтр.

Лечение: смещать оптимизацию под форматы, которые Яндекс показывает выше органики. Работа с Яндекс.Нейро (о ней я писал подробно в разборе 220 запросов), заявка сайта в Яндекс.Бизнес для локальных запросов, оптимизация страниц под колдунщик (структурированные данные, чёткие ответы в начале страницы). Быстрого фикса тут нет — это долгосрочная адаптация под изменившуюся выдачу.

Что делать, если ни одна гипотеза не сработала

Прошли восемь пунктов, все чистые. Что остаётся:

  • Если резкий провал в один день, только Яндекс, показы упали при неизменной позиции по остальным запросам, коммерческие запросы затронуты сильнее информационных — это ПФ. Идём по протоколу из части 2.
  • Если провал плавный, размазан на 3-4 недели, никаких характерных признаков ПФ нет — почти всегда это накопительный эффект от чего-то, что вы упустили в гипотезах 1-5, просто на маленькой шкале. Прогоните ещё раз, внимательнее к цифрам за конкретные даты.
  • Если провал только в Яндексе, только по 1-2 конкретным запросам — это не системная проблема, а либо конкурент по этому запросу, либо переоценка релевантности вашей страницы для этого запроса. Точечно править контент.

Одну вещь я делаю сам и рекомендую делать всем: завести таблицу, куда фиксировать каждую диагностику и её вывод. Через год у вас будет свой корпус кейсов, где по симптомам легко находить причину. По моей таблице за последние 18 месяцев расклад такой: 34% провалов оказались robots.txt / noindex / canonical (гипотезы 1-2), 22% — миграцией, 18% — апдейтом Яндекса, 11% — сегментарным (аффилиат, Баден-Баден), 8% — конкурентами и SERP-структурой, 7% — реальным ПФ. Ваш расклад будет другим, но пропорции подскажут — если вы всегда сразу бежите к «это ПФ», статистически в 93 случаях из 100 это не оно.

Восемь гипотез отрабатываются за 1-2 часа спокойной проверки. Часто достаточно первых трёх — потому что чаще всего это техника, которую сделали мы сами. Начинайте с них.