
🔐 Як очистити та відновити зламаний сайт 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) додає набір правил харденінгу: зміна префікса бази даних, вимкнення редактора файлів з адмінки, двофакторна автентифікація. Мінімальний набір: один файрвол плюс один сканер.
Підключіть хмарний 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 тижні. Ключове, закрити діру, через яку зайшли, інакше другий злам обнулить увесь прогрес.
Сайт відновлено: що робити, щоб злам не повторився
Злам — це тривожний дзвінок, який показує, де ваш захист дав тріщину. Поставтеся до нього як до безкоштовного аудиту безпеки: ви тепер точно знаєте вектор атаки й можете закрити його назавжди.
Короткий чек-лист на майбутнє:
- Перенесіть сайт на керований хостинг з ізольованим оточенням
- Налаштуйте щоденні бекапи: один хмарний, один локальний
- Встановіть файрвол і сканер, увімкніть автооновлення для плагінів із репозиторію
- Увімкніть двофакторну аутентифікацію для всіх адміністраторів
- Видаліть невикористовувані плагіни та теми
Найнебезпечніше після зламу, надія на «авось». Другий злам через ту саму діру трапляється в рази частіше за перший: бекдор уже залишено, адреса сайту зловмиснику відома. Пройдіть увесь чек-лист до кінця, закрийте точку входу, і спіть спокійно.



