Проверить сайт на вирусы можно двумя способами: снаружи, онлайн-сервисами, и изнутри, по файлам на сервере. Если нужно понять, безопасно ли заходить на чужой сайт, хватит онлайн-проверки за минуту. Если сайт ваш, внешние сканеры видят только то, что сайт показывает посетителям, а вредоносный код часто прячется. Ниже — оба способа. Для владельцев WordPress — проверка по контрольным суммам и поиск подозрительных файлов. Мы «заразили» тестовый WordPress безвредными строками и прогнали все проверки 26 сентября 2026 года — выводы ниже настоящие.

Как проверить чужой сайт на вирусы онлайн
Если сомневаетесь в ссылке, проверьте адрес в одном-двух сервисах до перехода:
- VirusTotal — вкладка URL: адрес проверяется базами нескольких десятков антивирусов и сервисов репутации.
- Статус сайта в Google Safe Browsing — показывает, считает ли Google сайт опасным. Эти же данные использует Chrome, когда показывает красное предупреждение.
- Sucuri SiteCheck — открывает страницу и ищет на ней вредоносный код и попадание в чёрные списки.
Оговорка: «чисто» в этих сервисах значит только, что сейчас они ничего не нашли. Заражённый сайт часто показывает вредоносный код не всем — например, только посетителям с телефона или пришедшим из поиска. Поэтому для своего сайта внешняя проверка — только первый шаг.
Признаки, что ваш сайт заражён
В документации WordPress перечислены явные признаки взлома. Добавим то, что встречается чаще всего:
- поисковики или браузер предупреждают, что сайт опасен;
- хостинг заблокировал сайт или прислал письмо о вредоносном коде или рассылке спама;
- антивирусы посетителей ругаются на сайт;
- с телефона или из поиска сайт перенаправляет на чужие страницы, хотя у вас всё открывается нормально;
- в поиске появились страницы, которых вы не создавали, — часто казино, аптеки, «займы»;
- в админке появились незнакомые пользователи, особенно с ролью администратора;
- сервер без причины грузит процессор — это может быть майнер, о нём отдельная статья майнер на сервере: как найти и удалить.
Проверить сайт на вирусы в Яндекс Вебмастере и Search Console
Если сайт добавлен в панели поисковиков, они сами сообщат о заражении:
- Яндекс Вебмастер — раздел «Безопасность и нарушения». По справке Яндекса, там показывается нарушение, его описание и как снять ограничение, а в поиске у сайта может появиться предупреждение об опасности. После исправления отметьте «Нарушение исправлено» и отправьте сайт на проверку: она занимает до 30 дней, а если ограничение не сняли, повторно отправить можно только через 30 дней. Поэтому отправляйте, когда уверены, что вычистили всё.
- Google Search Console — отчёт «Проблемы безопасности». По справке Google, он сообщает о взломанном контенте, вредоносном ПО, фишинге и социальной инженерии. Проверка после исправления занимает от нескольких дней до нескольких недель.
Добавить сайт в обе панели стоит заранее — тогда о проблеме вы узнаете от них, а не от посетителей.
Проверка сайта на WordPress: контрольные суммы
Самый надёжный способ найти изменения в WordPress — сравнить файлы с оригиналами. Для каждой версии WordPress и каждой версии плагина из каталога wordpress.org опубликованы контрольные суммы файлов, и WP-CLI сверяет их одной командой (описание команды).
На тестовом сайте мы дописали строку с eval(base64_decode(...)) в файл ядра wp-includes/load.php, положили лишний файл wp-includes/wp-tmp.php, изменили файл плагина Akismet и спрятали PHP-файл в папке загрузок. Так часто выглядит настоящее заражение, только наши строки ничего не делали. Проверяем ядро:
wp core verify-checksums
Warning: File doesn't verify against checksum: wp-includes/load.php Warning: File should not exist: wp-includes/wp-tmp.php Warning: File should not exist: wp-config-docker.php Error: WordPress installation doesn't verify against checksums.
Изменённый файл ядра и лишний файл найдены. Третье предупреждение — ложная тревога: wp-config-docker.php кладёт официальный Docker-образ WordPress. Поэтому каждое предупреждение нужно проверить глазами, а не удалять всё подряд. Теперь плагины:
wp plugin verify-checksums --all
plugin_name file message akismet akismet.php Checksum does not match Error: Only verified 1 of 2 plugins (1 failed).
Плагины не из каталога wordpress.org (платные, самописные) и темы так не проверить — для них нет опубликованных сумм. Их надёжнее переустановить из оригинального архива.
Нет WP-CLI? Многие хостинги дают его в SSH-консоли. Если нет и его, есть плагины-сканеры — документация WordPress называет, например, Wordfence, Sucuri, Quttera и GOTMLS.
Поиск вредоносного кода вручную
Контрольные суммы не видят файлов в wp-content/uploads — там лежат ваши картинки, и сравнивать их не с чем. А именно туда любят класть бэкдоры. Исполняемых PHP-файлов в загрузках быть не должно:
find wp-content/uploads -name '*.php'
wp-content/uploads/2026/09/thumb.php
Спрятанный файл найден. Второй полезный приём — PHP-файлы, изменённые недавно, например за последние два дня:
find . -name '*.php' -mtime -2
./wp-content/uploads/2026/09/thumb.php ./wp-content/languages/continents-cities-ru_RU.l10n.php ./wp-content/languages/admin-ru_RU.l10n.php ./wp-content/languages/admin-network-ru_RU.l10n.php ./wp-content/languages/ru_RU.l10n.php ./wp-content/plugins/akismet/akismet.php ./wp-includes/wp-tmp.php ./wp-includes/load.php ./wp-config.php
Все четыре «заражённых» файла в списке, а рядом — законные изменения: файлы перевода, которые мы установили, и wp-config.php. Если знаете, когда начались проблемы, ищите изменения с этой даты. Злоумышленник может подделать дату файла, так что пустой список ещё не значит «чисто».
Часто советуют искать eval и base64_decode. Мы попробовали:
grep -rlE 'eval\(|base64_decode\(' --include='*.php' . | wc -l19
Девятнадцать файлов, и большинство — законные файлы ядра WordPress: эти функции используются в почтовой библиотеке, архиваторе и других местах. Такой поиск полезен в папках тем и плагинов, но как главный способ проверки он даёт слишком много шума. Сначала — контрольные суммы, потом — ручной разбор того, что они не покрывают.
Ещё проверьте администраторов — нет ли незнакомых:
wp user list --role=administrator --fields=ID,user_login,user_registered
Что делать, если сайт взломали
Порядок по рекомендациям WordPress, коротко:
- Запишите, что видите, когда заметили и что меняли на сайте в последнее время. Это пригодится и вам, и хостингу.
- Сделайте копию заражённого сайта — да, заражённого. Если при чистке что-то сломается, будет с чем сравнить. Как снять копию — в статье резервная копия сайта.
- Смените все пароли: админки WordPress, FTP/SFTP, панели хостинга, базы данных. Разлогиньте всех, заменив секретные ключи в
wp-config.php— новые выдаёт генератор ключей WordPress. - Восстановите сайт из чистой копии, если она есть и вы знаете, когда произошло заражение. Хостинговые копии хранятся около 30 дней, так что при давнем заражении чистой копии может не быть.
- Без чистой копии — вычищайте. Папки
wp-adminиwp-includesзамените целиком из архива той же версии WordPress — через SFTP, а не кнопкой переустановки в админке: она перезаписывает файлы, но не удаляет лишние. Плагины и тему переустановите из оригиналов. Отдельно проверьте.htaccess,index.php,header.php,footer.php,functions.phpтемы. - Обновите всё — WordPress, плагины, тему, версию PHP (как обновить PHP без падения сайта). Удалите заброшенные плагины.
- Смените пароли ещё раз — уже после чистки.
- Проверьте свой компьютер антивирусом. WordPress отдельно предупреждает: доступы к сайту часто крадут трояны на компьютере владельца.
- Отправьте сайт на перепроверку в Вебмастере и Search Console.
Как не заразиться снова
- Обновляйте WordPress, плагины и тему. Старые версии взламывают чаще — это прямо сказано в рекомендациях WordPress.
- Удаляйте плагины, которые не нужны или годами не обновлялись.
- Используйте длинные уникальные пароли и двухфакторный вход в админку.
- Держите резервные копии за разные даты, включая копию вне сервера.
- На своём VPS — вход только по SSH-ключу, файрвол и fail2ban: настройка VPS по шагам.
- Раз в месяц запускайте
wp core verify-checksumsиwp plugin verify-checksums --all— это минута времени. Больше мер — в руководстве по защите WordPress.
Свежий пример, почему важно обновляться: WordPress 7.1.2 закрыл критическую уязвимость.
Откуда на сайтах берётся чужая реклама и кто на ней зарабатывает — в видеоразборе «Пиратские онлайн-кинотеатры и их реклама».
Источники: WordPress: FAQ My site was hacked, wp core verify-checksums, wp plugin verify-checksums, Яндекс Вебмастер: безопасность и нарушения, Search Console: проблемы безопасности, защита WordPress. Проверено 26 сентября 2026 года.








