«Проверить сайт на вирусы» владелец обычно понимает буквально: прогнать антивирусом и успокоиться. У поиска определение шире, и в списке нарушений, за которые Яндекс ограничивает ресурс, вредоносный код — один пункт из восьми. Разбираем, что именно проверяет поиск, где это видно, и почему самая очевидная самостоятельная проверка ничего не находит даже на чистом сайте.
Что мы посчитали
Первое. Наша диагностика в Яндекс Вебмастере, 22.09.2026. Поиск прогоняет 33 автоматические проверки; они разложены по четырём уровням.
| Уровень | Проверок | Что в них, например |
|---|---|---|
| Фатальная | 5 | угрозы безопасности, ошибка главной страницы, ошибка DNS, закрытие в robots.txt, не удалось подключиться |
| Критичная | 2 | страницы отвечают пятисотой ошибкой, медленный средний ответ сервера |
| Возможная проблема | 18 | дубли страниц, ошибки в robots.txt и карте сайта, отсутствие title и description |
| Рекомендация | 8 | нет региона, нет счётчика Метрики, проблемы с фавиконкой |
Проверка на угрозы — в первой строке: уровень «фатальная». У нас её состояние — «отсутствует», и это весь ответ поиска на вопрос «опасен ли я».
Тридцать две проверки из тридцати трёх у нас в состоянии «отсутствует». Тридцать третья — мобилопригодность — в состоянии «не определено»: поиск её не проводил. Это тоже стоит знать: «нет ошибки» и «не проверяли» в диагностике выглядят одинаково спокойно, а означают разное.
Второе, и оно интереснее. Мы проверили свою же главную самым
распространённым способом: выгрузили HTML и поискали сторонние домены в
атрибутах src и href у тегов script, iframe и link.
| Адрес | Размер HTML | Сторонних источников найдено |
|---|---|---|
| Главная | 124 003 байта | 0 |
| Список блога | 597 977 байт | 0 |
| Страница проверок | 97 475 байт | 0 |
Ноль — и это неправда. На главной 18 инлайновых блоков <script>, и из
одного из них подключается счётчик Метрики с домена mc.yandex.ru. Поиск по
всему тексту страницы, а не по атрибутам, находит шесть сторонних доменов
вместо нуля.
Вывод простой и неприятный: осмотр тегов script пропускает ровно тот способ
внедрения, которым пользуются чаще всего. Вредоносный код
редко приходит отдельным тегом с чужим адресом — он приходит несколькими
строками внутри существующего скрипта.
Что поиск считает нарушением
Справка Яндекса описывает восемь типов, и «вирусы» — только один из них:
| Нарушение | Формулировка справки |
|---|---|
| Нежелательное ПО | «обнаружены ссылки на опасные или нежелательные программы, которые могут нанести вред устройству пользователя» |
| Социальная инженерия | «информация вводит в заблуждение пользователей, чтобы украсть деньги или конфиденциальную информацию» |
| Неожиданное перенаправление | «пользователь неожиданно попадает на сторонний ресурс» |
| Мимикрия | «копирует внешний вид или функциональные возможности другого популярного или официального ресурса» |
| Клоакинг | «посетителям и поисковым роботам отображается разная информация» |
| Недобросовестные действия | «указана неточная или искаженная информация, например о товаре или услуге» |
| SEO-тексты | «бесполезный для пользователя текст, который ориентирован на поискового робота» |
| Малополезный контент | «не решает его задачу и не вызывает доверия» |
Обратите внимание, что происходит при нарушении. Справка: ограничения могут влиять на ранжирование «всего сайта — если нарушение относится к родительскому домену, ограничения действуют на все поддомены сайта» либо «некоторых разделов». И отдельно: «в поисковой выдаче могут отображаться предупреждения об опасности сайта».
То есть взломанный ресурс теряет не только позиции. Он получает в выдаче подпись, из-за которой на него не пойдут и с первого места.
Что входит в «нежелательное ПО»
Это ближайший к бытовому слову «вирусы» пункт, и справка расписывает его подробно. Нарушением считается, если:
- при переходе на страницу запускается вредоносный скрипт;
- на устройство неожиданно загружается программа;
- при скачивании файла загружается исполняемый файл другого типа;
- есть вирусы и программы-шпионы;
- размещённые программы незаметно ставят дополнительное ПО, навязчивое ПО или «скрытые майнеры, которые используют вычислительные мощности устройства для майнинга криптовалют».
Последний пункт стоит прочитать дважды владельцу популярной CMS с десятком плагинов. Майнер не портит страницу и не выводит рекламу — он просто греет процессор посетителю. Визуально сайт при этом в полном порядке.
Как проверить себя
1. Вебмастер — первым делом. «Оптимизация сайта» → «Безопасность и нарушения». Справка: если список нарушений там не отображается, ограничений нет. Там же в «Диагностике сайта» видна отдельная проверка на угрозы. Заодно стоит подписаться на уведомления, чтобы узнать о нарушении не через месяц.
2. Вкладка «Сеть» в инструментах разработчика. Открыть страницу, обновить её с открытой вкладкой и посмотреть список фактических запросов. Здесь видно всё, что реально загрузилось, включая подключённое из инлайнового кода. Это та проверка, которую не обманешь разметкой.
3. Поиск по всему HTML, а не по тегам. Если делаете проверку сами,
ищите вхождения http по всему тексту страницы и выписывайте домены. На
нашей главной этот способ дал шесть доменов против нуля у проверки по
атрибутам.
4. Знать свой список. Проверка имеет смысл, только если вы знаете, какие чужие домены у вас быть ДОЛЖНЫ: счётчик, шрифты, чат, карта. Всё остальное — повод разбираться. Без такого списка любая выгрузка доменов бесполезна: непонятно, что в ней лишнее.
5. Антивирусные сервисы. Справка Яндекса прямо советует «проверьте сайт на наличие опасных файлов с помощью сторонних сервисов и антивирусов» — это отдельный шаг, а не замена первым четырём.
Что делать, если нашли
Порядок из справки: убрать со страниц фрагменты вредоносного кода и ссылки на нежелательное ПО, прогнать антивирусами, и только потом просить перепроверку в Вебмастере.
К этому добавим очевидное, чего в справке нет: смена паролей и ключей доступа до того, как чистить файлы. Если код внедрили через украденный доступ, вычищенные страницы заразятся снова за сутки.
Границы замера
Мы измерили один ресурс — свой. Тридцать три проверки в состоянии «отсутствует» означают только, что у нас нет нарушений; набор проверок у вас будет тот же, а результат другим.
Вторая цифра — сравнение двух способов поиска сторонних доменов — проверена на трёх своих страницах. Разрыв «ноль против шести» повторится везде, где счётчик подключается инлайном, то есть практически везде.
Чего мы не измеряли: как быстро Яндекс замечает заражение и как долго снимает ограничение после исправления. Своего опыта нарушений у нас нет, а чужие сроки из статей мы не пересказываем.
Коротко
- «Вирусы» для поиска — один пункт из восьми; остальные семь про обман посетителя, а не про код.
- Проверка на угрозы — фатального уровня; смотреть в Вебмастере на странице «Безопасность и нарушения» и в диагностике.
- Ограничение может лечь на весь домен вместе с поддоменами, а в выдаче появляется предупреждение об опасности.
- Проверка по тегам
scriptпропускает инлайновое внедрение: у нас она дала ноль сторонних доменов там, где их шесть. - Проверять надо по фактическим сетевым запросам и по всему тексту страницы, зная заранее, какие чужие домены у вас быть должны.
