
🔐 Как очистить и восстановить взломанный сайт WordPress: пошаговое руководство
Проснулись утром, а ваш сайт WordPress превратился в филиал онлайн-казино или молча ушёл в бан Google. Знакомо? Взлом рушит не только файлы на сервере: трафик обнуляется, позиции в выдаче летят вниз, а бизнес встаёт на дни, иногда на недели.
Хуже всего момент, когда поддержка хостинга разводит руками: «Резервные копии тоже заражены, помочь не можем». Типичная история для тысяч владельцев сайтов, особенно тех, кто сидит на дешёвом shared-тарифе.
Хорошая новость: даже полностью захваченный сайт реально очистить и поднять за вечер. Без армии программистов и дорогих контрактов с security-фирмами. Нужны холодная голова, правильный порядок шагов и понимание, где прячется вредоносный код.
💡 Быстрый обзор:
- Оцените масштаб: есть ли доступ в админку, что говорит хостинг, какие файлы тронуты
- Свяжитесь с хостинг-провайдером и добейтесь списка заражённых файлов
- Удалите или замените скомпрометированные файлы через cPanel, FTP или WP-CLI
- Восстановите чистую версию сайта из резервной копии или переустановите ядро
- Смените ВСЕ пароли, ключи безопасности в wp-config.php и закройте точку входа
- Запросите удаление из чёрных списков Google и хостинга
Шаг 1: Оцените масштаб и не паникуйте

Первым делом проверьте, открывается ли админка. Если wp-admin пускает и вы можете войти, ситуация поправимая, часто всё решается за час. Доступ заблокирован, придётся работать через хостинг-панель или FTP, но это тоже не приговор.
Второе: не удаляйте сайт целиком сгоряча. В 90% случаев заражены конкретные файлы, а не вся установка WordPress. Зайдите в Search Console от Google, вкладка Security, там перечислены URL, которые Google пометил как вредоносные. Это даст первое представление о масштабе.
Третье: сразу напишите хостеру. Не «нас взломали, помогите», а конкретно: «Пришлите список модифицированных файлов с временными метками и логи подозрительной активности за последние 72 часа». У хостинга есть серверные логи, они видят аномалии и могут дать точный перечень заражённых файлов.
Если поддержка тянет время, эскалируйте: звоните, пишите в соцсети компании, открывайте повторный тикет. Большинство хостеров реагируют на публичные обращения всерьёз, репутационный ущерб стоит дороже часа работы инженера.
Шаг 2: Найдите и удалите заражённые файлы

Получив от хостинга список заражённых файлов или обнаружив их через сканер, действуйте методично. Порядок важен: пропустите один бэкдор, и хакер вернётся через сутки.
Сделайте полную копию сайта. Скачайте ВСЕ файлы на локальный компьютер через FTP или SFTP. Даже заражённые, они пригодятся для анализа и как страховка на случай, если что-то пойдёт не так.
Переустановите ядро WordPress. Удалите папки wp-admin и wp-includes полностью, затем скачайте свежий ZIP с wordpress.org и распакуйте поверх. Замените всё, кроме wp-content и wp-config.php. Это гарантирует, что системные файлы чисты.
Проверьте wp-content. Плагины и темы, главная цель злоумышленников. Если плагин заражён, удалите его папку целиком и поставьте заново из официального репозитория. Если заражена тема, а вы используете дочернюю, скорее всего пострадала только родительская, переустановите её.
Ищите сигнатуры вредоносного кода. Классические маркеры PHP-шеллов и бэкдоров: eval и base64_decode, самые частые. Также встречаются gzinflate, str_rot13 и assert. Пройдитесь grep-поиском по всем .php-файлам. Проверьте скрытые файлы: .htaccess, php.ini и .ico с PHP-кодом внутри. Хакеры обожают маскировать бэкдоры под безобидные иконки.
Шаг 3: Восстановите сайт из чистой копии
Если резервная копия есть и она чистая, вам повезло: восстановление займёт 15-20 минут. Зайдите в плагин бэкапа или панель хостинга, выберите точку восстановления ДО даты взлома и запустите процесс. Сразу после восстановления прогоните сканер безопасности: бэкдор могли заложить задолго до активной атаки.
Бэкапа нет? Переустановите WordPress через админку: «Обновления» → «Переустановить». Это обновит ядро, но оставит плагины и темы нетронутыми, их придётся проверять вручную, как описано в шаге 2.
После восстановления убедитесь, что сайт открывается, и немедленно переходите к шагу 4. Злоумышленник может попытаться вернуться через оставленный бэкдор в ближайшие часы.
Шаг 4: Смените все учётные данные и ключи

Первое и самое срочное: сгенерируйте новые ключи безопасности WordPress. Вставьте их в wp-config.php вместо старых. Это мгновенно разлогинит ВСЕ активные сессии, включая сессию хакера, если он ещё сидит в админке.
Дальше меняйте по списку, ничего не пропуская:
- Пароль администратора WordPress и всех пользователей с ролью «администратор»
- Пароль от хостинг-аккаунта: cPanel, ISPmanager или кастомная панель
- Пароль от базы данных MySQL и обновите его в
wp-config.php - Пароль от FTP или SFTP
- Пароль от почтового ящика, привязанного к админке сайта
- API-ключи: Google Search Console, CDN, почтовые сервисы, платёжные шлюзы
Проверьте таблицу wp_users в базе данных: нет ли незнакомых пользователей с правами администратора. Нашли, удалите немедленно. Это классический след атаки: хакер создаёт скрытую учётную запись и возвращается через неё после вашей «очистки».
Шаг 5: Запросите удаление из чёрных списков
После очистки сайт может ещё несколько дней висеть в чёрных списках Google Safe Browsing. Браузеры при этом показывают красный экран с предупреждением, даже если вредоносный код уже удалён. Зайдите в панель безопасности Search Console, вкладка «Security Issues», и нажмите «Request Review». Обычно Google снимает флаг в течение 24-72 часов.
Параллельно свяжитесь с хостером: он мог добавить ваш IP или домен во внутренний чёрный список, из-за чего сайт не открывается, даже будучи чистым. Объясните, что очистка проведена, и запросите снятие блокировки.
После снятия всех флагов проверьте сайт в режиме инкогнито. Он должен открываться без предупреждений безопасности. Сохраните скриншот, пригодится, если блокировка вернётся.
Шаг 6: Закройте точку входа и усильте защиту

Очистка, это полдела. Если не закрыть дыру, через которую зашли, второй взлом случится в десятки раз быстрее первого. Вы теперь точно знаете вектор атаки, используйте это знание.
Поставьте файрвол. Wordfence даёт эндпоинтовый файрвол и сканер сигнатур, бесплатной версии достаточно для большинства сайтов. Solid Security (бывший iThemes Security) добавляет набор hardening-правил: смена префикса базы данных, отключение редактора файлов из админки, двухфакторная аутентификация. Минимальный набор: один файрвол плюс один сканер.
Подключите облачный WAF. Cloudflare с правилами для WordPress или Sucuri фильтруют трафик до того, как он достигает сервера. После взлома это не роскошь, а необходимость: облачный WAF отсекает вредоносные запросы на уровне DNS и снимает нагрузку с вашего сайта.
Настройте мониторинг целостности файлов. Wordfence и Solid Security умеют оповещать при любом изменении PHP-файлов. Вы узнаете о повторной атаке в ту же минуту, а не через неделю, когда Google пометит сайт как вредоносный.
Пересмотрите список плагинов. Каждый лишний плагин, потенциальная точка входа. Удалите всё, чем не пользуетесь. Оставшиеся обновите до последних версий и по возможности включите автообновления.
Как защитить WordPress от взлома в будущем

Профилактика стоит в сотни раз дешевле восстановления. Вот что нужно сделать прямо сейчас, даже если ваш сайт пока не взломан.
Переезжайте на управляемый хостинг
Четыре доллара в месяц за shared-тариф, цена соблазнительная. Но когда ваш сайт живёт на одном сервере с сотнями других, взлом одного из соседей почти гарантированно добирается до вас. Cross-site contamination на shared-хостинге не теория: по данным Sucuri, около трети заражённых сайтов WordPress размещены именно на shared-площадках.
Управляемый WordPress-хостинг, WP Engine, Kinsta, Cloudways, даёт изолированное окружение, автоматические ежедневные бэкапы и круглосуточную security-команду. Да, это в разы дороже shared-тарифа. Но неделя простоя после взлома стоит дороже годового тарифа хорошего хостинга.
При выборе хоста проверьте три вещи: изолировано ли ваше окружение от соседей, есть ли ежедневные автоматические бэкапы и как быстро поддержка реагирует на инциденты безопасности. Ответы на эти вопросы, лучший предиктор того, переживёте ли вы следующий взлом без потерь.
Держите ядро, темы и плагины обновлёнными

Подавляющее большинство успешных взломов WordPress происходит через известные уязвимости в плагинах и темах, те самые, которые разработчики уже закрыли патчами. Злоумышленники сканируют интернет на предмет сайтов с непропатченными версиями автоматически, часто в течение 48 часов после публикации CVE.
Автообновления ядра WordPress включены по умолчанию с версии 5.5. Для плагинов и тем из официального репозитория WordPress.org включите автообновления выборочно, это безопасно. Премиум-плагины с собственных сайтов обновляйте вручную, но не реже раза в неделю.
И да, перед каждым крупным обновлением делайте бэкап. Всегда.
Настройте резервное копирование

Без свежего бэкапа восстановление после взлома превращается в ручную переборку десятков тысяч файлов. С бэкапом, пять кликов и полчаса ожидания.
Jetpack VaultPress Backup делает инкрементальные бэкапы в реальном времени с хранением в облаке Automattic. BlogVault специализируется на WordPress и умеет восстанавливать сайт, даже если админка лежит. BackWPup, бесплатный вариант с календарём и выгрузкой в Dropbox, S3 или Google Drive.
Золотой стандарт: один облачный бэкап плюс один локальный, который вы скачиваете себе на компьютер раз в неделю. Облачный спасёт при отказе хостинга, локальный, если облачный аккаунт тоже скомпрометирован.
Включите двухфакторную аутентификацию
Пароль admin123 или qwerty, открытое приглашение. Брутфорс-атаки на wp-login.php идут круглосуточно, и простые пароли подбираются за секунды. Генерируйте пароли длиной от 20 символов через менеджер, Bitwarden или 1Password, и никогда не используйте один пароль на нескольких сайтах.
Двухфакторная аутентификация через Wordfence Login Security или Two Factor закрывает вектор брутфорса практически полностью: даже зная пароль, злоумышленник не войдёт без TOTP-кода с вашего телефона.
И смените стандартный URL входа с /wp-admin и /wp-login.php на кастомный. Это не панацея, но отсекает подавляющее большинство автоматических ботов, которые долбят стандартные эндпоинты не глядя.
⁉️🤔 Частые вопросы
Можно ли восстановить сайт без резервной копии?
Да, но процесс дольше и сложнее. Переустановите ядро WordPress через админку, вручную проверьте каждый плагин и тему на вредоносный код по сигнатурам
eval,base64_decodeиgzinflateв.php-файлах. Смените все пароли и ключи безопасности. Контент обычно не страдает: он в базе данных, которую хакеры редко трогают. Полная очистка без бэкапа занимает 2-4 часа в зависимости от размера сайта.
Как понять, что сайт взломали?
Сигналы: Google Search Console показывает предупреждение безопасности, браузер блокирует сайт красным экраном, трафик резко упал, в выдаче появились чужие страницы, админка не пускает с правильным паролем, хостинг прислал уведомление о подозрительной активности. Быстрая проверка: запустите бесплатный сканер Sucuri SiteCheck, он показывает известные заражения за минуту.
Что делать, если хостинг не помогает?
Меняйте хостинг. Если провайдер за сутки после инцидента не предоставил список заражённых файлов и логи сервера, его security-команда либо отсутствует, либо перегружена. Для бизнес-сайта это не партнёр. На время восстановления купите минимальный тариф управляемого хостинга, перенесите туда чистую копию сайта и закройте старый аккаунт.
Достаточно ли кнопки «Переустановить» в админке?
Нет. Кнопка «Переустановить» в разделе «Обновления» заменяет только файлы ядра WordPress. Заражённые плагины, темы, скрытые бэкдоры в
wp-contentи вредоносные записи в.htaccessона не трогает. Нужен полный цикл: сканирование, замена заражённых файлов, сброс паролей и ключей, проверка базы данных на скрытых администраторов.
Стоит ли платить за профессиональную очистку?
Если сайт приносит деньги и простой стоит дороже нескольких сотен долларов в день, да, наймите специалиста. Sucuri предлагает разовую очистку сайта, есть фрилансеры на Codeable и профильные WordPress-агентства. Для небольшого блога или лендинга описанного выше руководства достаточно: очистка займёт вечер, а сэкономленные деньги вложите в нормальный хостинг.
Как долго сайт будет восстанавливать позиции в поиске?
После снятия блокировки Google Search Console сайт переиндексируется в течение нескольких дней. Позиции возвращаются не сразу: алгоритмам нужно время, чтобы убедиться, что страницы чисты. Обычно полное восстановление занимает 2-4 недели. Ключевое, закрыть дыру, через которую зашли, иначе второй взлом обнулит весь прогресс.
Сайт восстановлен: что делать, чтобы взлом не повторился
Взлом, это тревожный звонок, который показывает, где ваша защита дала трещину. Отнеситесь к нему как к бесплатному аудиту безопасности: вы теперь точно знаете вектор атаки и можете закрыть его навсегда.
Краткий чек-лист на будущее:
- Перенесите сайт на управляемый хостинг с изолированным окружением
- Настройте ежедневные бэкапы: один облачный, один локальный
- Поставьте файрвол и сканер, включите автообновления для плагинов из репозитория
- Включите двухфакторную аутентификацию для всех администраторов
- Удалите неиспользуемые плагины и темы
Самое опасное после взлома, надежда на «авось». Второй взлом через ту же дыру случается в разы чаще первого: бэкдор уже оставлен, адрес сайта злоумышленнику известен. Пройдите весь чек-лист до конца, закройте точку входа, и спите спокойно.



