Поява на сайті сторінок із нерелевантними товарами, азартними іграми, ліками, криптовалютою або сумнівними посиланнями часто свідчить про злам. Зловмисники можуть створювати такі URL для просування власних ресурсів у пошукових системах, приховувати їх від адміністратора або використовувати сайт для перенаправлення відвідувачів.
SEO-спам не завжди видно на головній сторінці. Сторонній код може бути доданий до файлів WordPress, плагінів, теми або бази даних. Тому просте видалення кількох підозрілих записів не гарантує, що доступ зловмисника закрито. Перед будь-якими змінами бажано створити резервні копії файлів і бази даних. Якщо сайт уже працює нестабільно, копію краще зберегти окремо від хостингу.
Як розпізнати SEO-спам
Ознаки зараження можуть відрізнятися залежно від способу злому. Найчастіше власник або пошукова система фіксують такі симптоми:
- у Google з’являються сторінки, яких не створювали адміністратори;
- у звіті Search Console збільшується кількість проіндексованих URL із чужими мовами, товарами або ключовими словами;
- на сайті виникають невідомі категорії, записи, користувачі чи меню;
- частина відвідувачів перенаправляється на сторонні домени, а адміністратор цього не бачить;
- у вихідному коді з’являються приховані посилання, iframe, скрипти або блоки зі стилями, що приховують текст;
- хостинг надсилає повідомлення про шкідливу активність, перевищення навантаження або підозрілі PHP-процеси.
Перевіряти сайт варто не лише візуально. Перегляньте список сторінок, записів, користувачів і встановлених плагінів у панелі керування. Окремо перевірте результати пошуку за запитами site:ваш-домен.ua та за назвами незнайомих сторінок. Для додаткової оцінки стану ресурсу можна ознайомитися з матеріалом Як зрозуміти, що сайт заражений вірусом.
Якщо доступ до адміністративної панелі ще є, не обмежуйтеся видаленням спаму. Наявність сторонніх сторінок означає, що потрібно шукати канал проникнення та перевіряти інші облікові записи.
Пошук прихованих URL
Після первинної фіксації проблеми складіть список підозрілих адрес. Їх можна знайти в Google Search Console, логах вебсерверу, базі даних і файлах сайту. Варто перевірити також XML-карту сайту, файл robots.txt, RSS-стрічки та внутрішні посилання.
У WordPress перегляньте:
- розділи «Записи», «Сторінки», «Медіафайли» та «Коментарі»;
- користувачів із правами адміністратора або редактора;
- таксономії, меню та віджети;
- налаштування плагінів, що створюють сторінки або редиректи;
- параметри сайту в таблицях бази даних, зокрема URL, заголовки та опублікований контент.
У файловій системі зверніть увагу на нещодавно змінені файли, незнайомі PHP-файли в папках завантажень, дублікати системних файлів і конструкції на кшталт eval, base64_decode, gzinflate або динамічної генерації коду. Сам факт наявності таких функцій не завжди означає зараження: їх можуть використовувати легітимні компоненти. Рішення потрібно приймати після порівняння з оригінальною версією файлу та аналізу контексту.
Не видаляйте навмання файли з незрозумілими назвами. Це може зламати сайт або знищити сліди, потрібні для визначення способу проникнення. Якщо доступ до журналів є, перевірте входи до адмінпанелі, FTP, SSH, панелі хостингу та незвичні POST-запити перед появою спаму.
Очищення файлів і бази
Безпечне очищення починається з ізоляції проблеми. За можливості тимчасово обмежте доступ до сайту, увімкніть технічну сторінку або заблокуйте підозрілі облікові записи. Не проводьте масштабні зміни на єдиній копії ресурсу.
- Зробіть резервну копію поточного стану файлів і бази даних. Навіть заражена копія може знадобитися для розслідування.
- Змініть паролі адміністратора, хостингу, FTP або SSH і бази даних із надійного пристрою. Перевірте, чи не додані сторонні ключі доступу.
- Оновіть WordPress, тему та плагіни до сумісних актуальних версій, видаліть невикористовувані компоненти.
- Порівняйте системні файли з чистим дистрибутивом тієї самої версії WordPress, а плагіни та тему — з офіційними пакетами або перевіреним резервним джерелом.
- Видаліть або виправте сторонні записи в базі даних, перевіривши їх у контексті пов’язаних метаданих, статусів публікації та шаблонів виведення.
- Перевірте файл конфігурації, правила перенаправлення, завдання Cron і налаштування вебсервера.
- Очистіть кеші WordPress, сервера, CDN та браузера, а потім протестуйте сайт у режимі без авторизації.
Відновлення з резервної копії може бути кращим варіантом, якщо відома дата, коли сайт ще був чистим. Проте резервну копію також потрібно перевірити: вона могла містити бекдор або вже заражені файли. Не варто замінювати базу даних і файли без узгодження версій, оскільки це може призвести до втрати нових замовлень, заявок чи контенту.
До спеціаліста варто звернутися, якщо спам повертається після очищення, немає доступу до хостингу, пошкоджено базу даних, заражені системні файли або незрозуміло, який компонент став точкою входу. Поверхневе видалення сторінок без усунення причини зазвичай дає лише тимчасовий результат.
Видалення сторінок із Google
Після очищення сайту пошукова система ще певний час може показувати старі URL у результатах. Це нормально: індекс оновлюється не миттєво. Спершу переконайтеся, що підозрілі сторінки справді видалені, повертають коректний статус 404 або 410, а сайт більше не перенаправляє користувачів на сторонні адреси.
У Google Search Console можна:
- перевірити конкретні URL за допомогою інструмента перевірки адрес;
- надіслати запит на повторне сканування важливих сторінок;
- скористатися інструментом тимчасового приховування URL, якщо спам потрібно терміново прибрати з результатів;
- переглянути повідомлення про проблеми безпеки та виконати повторну перевірку після очищення.
Тимчасове приховування в Search Console не видаляє сторінки з сайту і не усуває зараження. Якщо шкідливий URL продовжує повертати код 200, містить спам або генерується знову, після завершення тимчасового обмеження він може з’явитися повторно.
Не перенаправляйте всі неіснуючі адреси на головну сторінку лише для того, щоб приховати проблему. Масові некоректні редиректи можуть ускладнити діагностику та погіршити індексацію. Після очищення оновіть XML-карту сайту, перевірте канонічні URL і стежте за новими сторінками в Search Console.
Захист від повтору
Коли спам видалено, потрібно закрити спосіб, яким зловмисник отримав доступ. Мінімальний набір заходів включає:
- унікальні складні паролі для всіх панелей і облікових записів;
- двофакторну автентифікацію для WordPress, хостингу та пошти адміністратора;
- видалення непотрібних користувачів, ключів, FTP-акаунтів і доступів підрядників;
- регулярне оновлення CMS, плагінів, теми та серверного програмного забезпечення;
- встановлення компонентів лише з перевірених джерел і видалення нелегальних або непотрібних розширень;
- автоматичні резервні копії зберіганням щонайменше однієї копії окремо від основного хостингу;
- обмеження прав на запис для системних файлів і захист конфігураційних файлів;
- моніторинг змін файлів, нових користувачів, редиректів і появи незнайомих URL.
Після ремонту періодично перевіряйте журнал входів, адмінпанель, базу даних і пошукову видачу. Якщо сайт обслуговує замовлення, платежі або персональні дані, додатково оцініть, чи могли бути скомпрометовані пошта, CRM, ключі API та платіжні інтеграції.
SEO-спам — це не лише проблема видимості в пошуку, а й ознака порушення безпеки. Якщо немає впевненості у джерелі зараження або сайт продовжує генерувати чужі сторінки, краще зупинити самостійні експерименти, зберегти резервну копію та передати діагностику фахівцю з відновлення сайтів.