Короткий ответ: с чего начать
Чтобы проверить сайт на вирусы, нужны две вещи: взгляд снаружи и взгляд изнутри. Снаружи работают бесплатные онлайн-сканеры и панели вебмастера — они показывают, видит ли посторонний на ваших страницах вредоносный код и не пометил ли уже поиск сайт как опасный. Изнутри смотрят файлы и базу данных, и вот это ни один онлайн-сервис за вас не сделает.
Если хотя бы один источник ответил «заражён», действовать надо в этот же день. Пока страницы отдают чужой скрипт, посетители видят предупреждение браузера, поиск постепенно убирает сайт из выдачи, а хостинг может просто отключить аккаунт за рассылку спама.
- Прогоните адрес через бесплатный онлайн-сканер — Sucuri SiteCheck, VirusTotal, Quttera. Проверяйте не только главную, но и пару внутренних страниц.
- Зайдите в Яндекс.Вебмастер, раздел «Безопасность и нарушения», и в Google Search Console, раздел «Проблемы безопасности».
- Включите антивирус хостинга. В большинстве панелей (ISPmanager, cPanel) он уже входит в тариф и умеет сканировать файлы по расписанию.
- Откройте сайт с телефона в режиме инкогнито, перейдя по ссылке из поиска. Часть вредоносного кода срабатывает только на мобильных и только для тех, кто пришёл из выдачи — владельцу со своего ноутбука сайт кажется здоровым.
У внешних сканеров есть важное ограничение: они видят только то, что отдаётся браузеру. Бэкдор в PHP-файле, который молча ждёт запроса с секретным параметром, не найдёт ни один из них. Поэтому чистый ответ сканера — хороший знак, но не справка о здоровье.
Признаки взлома сайта, заметные без сканера
Чаще всего владелец узнаёт о заражении не от антивируса, а по косвенным симптомам. Вот те, что встречаются чаще прочих.
- В поисковой выдаче у ваших страниц чужие заголовки и описания — про кредиты, ставки, азартные игры или лекарства.
- Сайт открывается нормально у вас, но перебрасывает на посторонний ресурс, если зайти с телефона или по ссылке из поиска.
- Хостинг прислал письмо о превышении нагрузки или о рассылке спама с вашего аккаунта.
- В админке появились пользователи, которых вы не заводили, или у существующих сменились роли.
- У файлов движка свежие даты изменения, хотя вы месяцами ничего не трогали.
- Страницы стали грузиться заметно дольше, а в исходном коде появились длинные нечитаемые строки или невидимый iframe.
- Письма с домена начали попадать в спам, хотя раньше доходили нормально.
Один симптом — повод проверить. Три подряд — почти диагноз. Особенно показательна связка «свежие даты у файлов плюс новый администратор в панели».
Яндекс пометил сайт как опасный: что это значит
Надпись «Сайт может угрожать безопасности вашего устройства» рядом со ссылкой в выдаче — не предположение робота, а результат проверки ваших страниц. Похожим образом устроен Google Safe Browsing: Chrome, Яндекс.Браузер и другие берут данные оттуда и показывают красный экран перед переходом.
Пока пометка стоит, до сайта доходят единицы — красный экран проходят немногие. Поэтому порядок именно такой: сначала лечим, потом просим перепроверку. Запрос, отправленный до того, как заражение вычищено, обычно только удлиняет всю историю.
Как снять пометку
- Вычистить заражение полностью и убедиться, что оно не возвращается хотя бы сутки.
- В Яндекс.Вебмастере в разделе «Безопасность и нарушения» нажать кнопку перепроверки.
- В Google Search Console в «Проблемах безопасности» запросить проверку, коротко описав, что именно вы исправили.
- Подождать. Как правило, это занимает от нескольких часов до нескольких дней, и ускорить процесс нечем.
Проверка сайта на вредоносный код в файлах
Здесь нужен доступ по FTP или SSH либо файловый менеджер хостинга. Перебирать весь сайт целиком незачем — смотрите туда, куда закладки кладут чаще всего.
- Файлы со свежей датой изменения: отсортируйте каталог сайта по дате и разберитесь со всем, что менялось в дни, когда вы к сайту не подходили.
- PHP-файлы в папках для загрузок — в
wp-content/uploads,upload,filesисполняемым файлам делать нечего в принципе. .htaccessв корне и во вложенных папках: там прячут правила переадресации отдельно для мобильных и отдельно для поисковых роботов.index.php,wp-config.php, файлы темыheader.phpиfooter.php— классическое место для вставки скрипта в самый низ файла.- Длинные бессмысленные строки рядом с
eval,base64_decode,gzinflate,assert. Сами по себе это обычные функции, но в такой связке почти всегда закладка. - Задания cron в панели хостинга: иногда там висит команда, которая возвращает удалённые файлы обратно каждый час.
- База данных: таблица пользователей (чужие администраторы) и таблица настроек, где могут лежать посторонние скрипты и подменённые шаблоны писем.
Если лезть в файлы самому страшно — это ровно та задача, которую отдают инженеру. В кабинете ARTGK Code проверка на вирусы входит в бесплатный набор проверок сайта, а работа руками специалиста считается по 3 500 ₽ за час, по смете, согласованной до начала работ.
Сайт взломали — что делать по шагам
Порядок здесь важнее скорости. Если просто удалить найденный скрипт, через сутки он вернётся: осталась дверь, через которую его положили.
- Сделайте копию сайта и базы прямо в заражённом виде. Именно она потом поможет найти точку входа.
- Смените все пароли: хостинг, FTP, база, админка, почта на домене. Сначала пароли, потом чистка — иначе вас взломают повторно, пока вы работаете.
- Проверьте антивирусом свой компьютер. Пароли к FTP утекают с компьютера владельца не реже, чем с сервера.
- Найдите точку входа по логам сервера: какие запросы приходили в дни, когда изменились файлы. Обычно это старый плагин, форма загрузки без проверки типа файла или украденный доступ.
- Восстановите файлы движка из официального дистрибутива, а не чистите их построчно. Вручную придётся смотреть только тему и загрузки.
- Обновите CMS, плагины и тему. Неиспользуемые плагины удалите, а не отключите: неактивный плагин остаётся файлом на диске и остаётся уязвимым.
- Проверьте базу: пользователи, роли, содержимое виджетов и шаблонов писем.
- Запросите перепроверку в Яндекс.Вебмастере и Google Search Console.
- Через неделю проверьте сайт ещё раз. Возврат заражения — самый частый сценарий из всех.
Взлом сайта малого бизнеса почти никогда не бывает адресным. Как правило, это робот, который перебирает известные дыры на всех сайтах подряд, а ваш просто оказался с необновлённым плагином.
Почему заражение возвращается
Если сайт вычистили, а через несколько дней он снова в вирусах, причина почти всегда в одном из пяти пунктов.
- Не закрыта точка входа: уязвимость на месте, робот приходит по тому же адресу снова.
- Остался бэкдор в файле, который ничего не отдаёт браузеру и потому не виден внешним сканерам.
- Сайт восстановили из резервной копии, сделанной уже после заражения.
- Пароль сменили только у админки, а старый FTP-доступ остался прежним.
- На том же аккаунте хостинга живёт второй сайт, и он тоже заражён — лечить нужно все сразу.
Как перестать проверять сайт вручную
Разовая проверка отвечает на вопрос «что сейчас». Беда в том, что между вашими проверками проходят недели, а между заражением и красной пометкой в поиске — дни. Смысл имеет не разовый прогон, а регулярный: чтобы кто-то смотрел на сайт каждый день и сообщал, когда что-то изменилось.
Так и устроены бесплатные проверки в ARTGK Code: вводите адрес сайта и видите в кабинете его состояние — вирусы, доступность, SSL, скорость, а рядом SEO-аудит, видимость в AI-поиске и юридическую проверку. Первый месяц тарифа «Бизнес» — бесплатно и без карты. А если проверка что-то найдёт, чинить это самому не обязательно: задачу можно отдать инженерам прямо из кабинета по согласованной смете.
Проверьте свой сайт бесплатно
Здоровье, SEO, видимость в AI-поиске и юридические риски — четыре проверки в одном кабинете. Без карты, вход по коду из письма.
Проверить сайт — бесплатно