ESPN DeportesEl Atlético se complica y el Alavés le empata con un penaltiRTP Desporto"Foi uma graçola." Varandas responde ao primeiro-ministro com referência à corrupçãoThe Jerusalem PostUS pushed Israel to attack Iran alone in effort to avoid political fallout before midterms - reportInquirer6,000 openings up in Eastern Visayas job fairESPNAnalysis, highlights from sweeps by Valkyries, DreamPunchBayelsa CP urges community leaders to help curb cult violenceZDF heuteAktuelle Pressemitteilungen des ZDFObservador DesportoPepa avisa: Arouca "dificulta" mas foco é o EstrelaBBC عربيخمسة جرحى في انفجار قوي بمطار الملك خالد بالرياضRai NewsLa coalizione dei ricorsi: il melonellum si sposta dal parlamento ai tribunaliESPN CricinfoRenshaw 190 lifts Australia to 390 before Hazlewood strikesSRF NewsErstes Monument geholt – Jungstar Seixas triumphiert erstmals bei der Lombardei-Rundfahrt
The Daily Newsstand · Free, Always
Saturday, October 10, 2026

«Яндекс молча выкатил фильтр»: как я три недели искал санкции, которых не было

Translate

В начале сентября у моего рабочего сайта за двое суток просели 181 запрос из 200, которые я отслеживаю в Топвизоре. Коммерческие запросы стояли на 1–5 местах, а оказались на 15–25. Клики в Яндекс Вебмастере упали с 2 740 до 88 в сутки. В профильных телеграм‑каналах как раз писали, что Яндекс «молча выкатил фильтр, который убил тысячи сайтов».

Я занимаюсь поиском с 2005 года, но первая мысль у меня была та же: санкции. Три недели ушло на то, чтобы доказать себе обратное. Ниже — что именно я проверял, где оказалась ошибка и короткий порядок действий. Надеюсь, кому‑то он сэкономит эти три недели.

Исходные данные

Важная деталь: за три недели до обвала сайт переехал на новый домен. Постраничный 301, переезд оформлен в Вебмастере, старый домен продлён. Всё по инструкции.

Новый домен Яндекс начал индексировать с нуля. Вот как росло число страниц в поиске:

Дата

Страниц в поиске

21.08

0

27.08

25

31.08

214

02.09

1 836

06.09

1 750

10.09

1 911

20.09

1 994

28.09

2 068

Обратите внимание на 6 сентября: минус 86 страниц ровно в дни «обвала». Тогда я этому значения не придал.

Что я проверил и исключил

Сначала прошёлся по очевидному:

  • Индекс цел. 1 864 страницы на 9 сентября против 1 836 на 2-е — сайт не вылетал.

  • Диагностика Вебмастера: 32 проверки из 33 «проблемы нет». Одна в статусе UNDEFINED — это значит «не проверялось», а не «проблема». Я сначала прочитал её как «Яндекс пометил сайт немобильным» и потерял на этом полдня.

  • Склейка зеркал корректна: у старого домена в API Вебмастера поле main_mirror указывает на новый. У нового main_mirror: null — это означает «сам главное зеркало», а не «зеркало не задано». Ещё одна ловушка, в которую я попал.

  • ИКС не изменился — 160.

  • Упали коммерческие запросы, а информационные почти нет. Значит, дело не в недавней правке нескольких сотен статей блога.

Всё чисто, а позиции лежат. Классическая картина «тихого фильтра». Я даже написал в поддержку Яндекса.

Где была ошибка: в цифрах «до»

Пока ждал ответа, выгрузил из API Вебмастера показы и клики по дням и посмотрел не на падение, а на то, что было перед ним.

1–7 сентября сайт получал около 30 000 показов и 3 000 кликов в сутки. CTR 10–18% при средней позиции 7,5. Для коммерческой выдачи с рекламой сверху и колдунщиками это неправдоподобно много. И главное — в Метрике такого количества людей из поиска не было. Клики в Вебмастере были, а визитов не было.

Дальше разбил запросы на две группы: содержащие название домена и все остальные.

Группа

Запросов

Показы

Клики

CTR

С названием домена

274

44 856

12 655

28,2%

Остальные

—

—

—

8,6%

57% всех кликов сайта приходились на запросы вида «название услуги + мой домен». Живые люди так не ищут. Так ищут боты, которые гоняют через выдачу чужие сайты и используют мой как «попутный»: заходят на несколько сайтов из выдачи, чтобы цепочка выглядела естественно. Я никого не заказывал, но статистику мне это нарисовало.

8 сентября Яндекс перестал засчитывать эти клики: 2 740 → 88. Реальный CTR сайта оказался 1,5–2%. Упал не сайт — из статистики исчез мусор, который делал красивый график.

Почему позиции «упали»

Здесь сработали сразу два фактора.

Первый — переклейка. Новый домен ещё набирал индекс, страницы входили и выходили, и выдача по нему болталась.

Второй — сам способ замера. Позже, уже в октябре, я снимал позиции одной и той же семантики два раза с разницей в час. Из 27 запросов 13 разошлись больше чем на 10 мест. «seo продвижение сайта» — 10 и 58. «seo услуги» — 43 и 12. Контрольный прогон подряд: «seo услуги» 43 → 27, «раскрутка сайта» 21 → вне топ-100.

То есть разброс внутри одного часа больше, чем суточная динамика. Одиночный съём в такой период — это не позиция, а шум. Сейчас я снимаю три прогона и беру медиану, а все три значения храню рядом, чтобы видеть разброс:

from statistics import median

def pozitsiya(zapros, prohody=3):
    zamery = [snyat(zapros) for _ in range(prohody)]   # None = не нашли в топ-100
    najdeno = [z for z in zamery if z is not None]
    if len(najdeno) < (prohody // 2 + 1):            # не нашли в большинстве прогонов
        return None, zamery
    return median(najdeno), zamery

Средние позиции из самого Вебмастера за сентябрь, кстати, были спокойными: «seo продвижение» 8,8, «раскрутка сайта» 7,6, «продвижение сайтов» 9,8. Это реальные показы, а не разовый замер, и они просто не совпадали с тем, что рисовал съём позиций.

Ответ поддержки и что было дальше

27 сентября пришёл ответ: никаких ограничений на сайт не наложено. К этому моменту показы уже вернулись сами: 19.09 — 3 871 в сутки, 26.09 — 24 546. Визиты из Метрики выросли с 185 до 404 в день, и это уже были люди.

Если бы я в первую неделю начал «лечить фильтр» — переписывать тексты, снимать ссылки, перекраивать структуру, — я бы наложил свои правки поверх переклейки и уже никогда не понял, что помогло, а что навредило. Единственное, что я сделал правильно, — поставил на паузу массовые изменения на сайте на 2–3 недели.

Ещё два «фильтра», которые фильтрами не были

Код OTHER в истории обхода. 27–28 сентября Вебмастер показал 180 и 110 страниц с кодом OTHER — до и после стабильно ноль. OTHER — это не 4xx и не 5xx, а «ответа не было вовсе»: таймаут или обрыв. Совпало с тем, что я заливал на сервер с двумя ядрами 100 видеофайлов на 5,9 ГБ. Сервер был занят, робот получал таймауты. Такие страницы не переобходятся и могут выпасть из индекса — снаружи это выглядит как «Яндекс выкидывает страницы без причины».

Волна ботов в октябре. 2 октября с 19:00 на сайт пошло 450–490 визитов в час круглосуточно вместо обычных 20–40. Медиана визита — 5 секунд, одна страница, 100% прямые заходы, 100% Chrome Mobile на Android. При этом 96% трафика шло из четырёх подсетей дата‑центров. Мобильный Android не выходит в сеть с адресов хостинга — это видно сразу.

Поддержка Яндекса на вопрос об этом ответила, что такие переходы на положение сайта в поиске не влияют. То есть блокировка нужна не ради позиций, а ради чистой Метрики и нагрузки на сервер. Блокировал в .htaccess, и тут тоже была ловушка: на моём сервере связка <RequireAll> + Require not ip не срабатывала вообще, страница отдавала 200. Работает только mod_rewrite:

RewriteEngine On
RewriteCond %{REMOTE_ADDR} ^91\.142\.85\. [OR]
RewriteCond %{REMOTE_ADDR} ^178\.250\.154\. [OR]
RewriteCond %{REMOTE_ADDR} ^109\.248\.57\. [OR]
RewriteCond %{REMOTE_ADDR} ^2a00:f2a0:0:f450:
RewriteRule ^ - [F,L]

Перед этим я сверил диапазоны с адресами роботов Яндекса и Googlebot — пересечений ноль. Блокировать по стране или городу не стоит: отрежете живых людей. И проверьте, что X-Forwarded-For у вас не пустой, прежде чем на него опираться, — у меня он был пустой, а правильный адрес лежал в REMOTE_ADDR.

Порядок проверки, прежде чем говорить «фильтр»

  1. Был ли переезд, смена зеркала или HTTPS за последние два месяца? Смотрите историю числа страниц в поиске, а не текущую цифру. Провал на 5–10% в дни «обвала» — это переклейка.

  2. Сравните клики Вебмастера с визитами из поиска в Метрике. Если кликов заметно больше, чем визитов, часть кликов делают не люди. Их исчезновение — это не падение.

  3. Посчитайте долю запросов с названием домена или бренда и их CTR. CTR под 30% на «услуга + домен» при 8% у остальных — признак чужой накрутки через ваш сайт.

  4. Не верьте одному замеру позиций. Минимум три прогона и медиана. Сравнивайте со средней позицией в Вебмастере.

  5. Посмотрите историю обхода на коды OTHER и 5xx. Если они совпали с тяжёлыми работами на сервере — это таймауты, а не санкции.

  6. Откройте «Безопасность и нарушения» в интерфейсе. Санкции за поведенческие факторы в API Вебмастера не отдаются, «чистая диагностика» их не исключает.

  7. Напишите в поддержку с цифрами — даты, показы, клики, примеры запросов. Отвечают дольше, чем хочется, но по существу.

  8. До ответа ничего массово не меняйте на сайте. Иначе потом не отделите причину от следствия.

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

View the original on Хабр →

KioskNews shows a cleaned-up reading view extracted from the publisher’s page — the original always lives on their site, not ours.