Lộ trình “giải cứu” website bị nhiễm mã độc
Dưới đây là lộ trình “giải cứu” website khi bị nhiễm mã độc (đặc biệt là hack chèn ký tự tiếng Nhật). Mình chia toàn bộ quy trình thành 4 giai đoạn, với tư duy: Phát hiện → Làm sạch server → Làm sạch index → Tăng cường nội dung. Mỗi giai đoạn kèm checklist chi tiết để bạn có thể tự triển khai hoặc giao team thực hiện.

1. Phát hiện & Xác nhận sự cố
Kiểm tra thông báo trong Google Search Console (GSC):
- Vào Bảo mật và tác vụ thủ công ➜ Vấn đề bảo mật, nếu Google phát hiện phần mềm độc hại/hack, bạn sẽ thấy cảnh báo ngay
- Đây là tín hiệu “chính thức” nhanh nhất.
Quét nhanh index rác:
- Tìm site:yourdomain.com kèm vài ký tự Nhật (例: カジノ, 購入)
- Xuất danh sách sang Google Sheets/CSV. Bạn có thể dùng SEOQuake hoặc Mozbar để tải về.
Dò back-door & mã độc:
- Chạy WPScan, Sucuri,… đồng thời xem log server để phát hiện file/SQL lạ, (nếu mã nguồn là WP)
- Ưu tiên log 24 – 48h trước khi traffic tụt.
Safe Browsing Transparency:
- Kiểm tra https://transparencyreport.google.com/safe-browsing/search?url=yourdomain.com
- Nếu hiển thị “Dangerous”, Google đã gắn cờ.
Kết quả: Bạn có 2 file:
- Danh sách URL nhiễm (có index
- Danh sách file/mã độc (thường nằm ở /cache/, /uploads/, hoặc trong DB)
2. Khóa cửa & Làm sạch
- Thay toàn bộ thông tin đăng nhập, update CMS & plugin
- Đổi user/pass SSH, DB, FTP, admin.
- Cập nhật core & plugin lên bản mới nhất; xóa plugin/theme không dùng .
- Sao lưu song song
- Backup full mã nguồn + DB vào nơi an toàn trước khi can thiệp, đề phòng lỗi.
- Gỡ mã độc
- Tự tay xóa file/row SQL lạ.
- Kiểm tra wp_options, functions.php, crontab, .htaccess, wp-config.php – đây là nơi hacker hay chèn redirect/base64.
- Đóng lỗ hổng
- Vô hiệu hoá XML-RPC, limit login attempts, chặn /wp-admin theo IP, cài WAF (Cloudflare, Imunify360).
3. Làm sạch Index & Giao tiếp với Google
3.1 Xử lý URL nhiễm mã độc
- Nếu trùng slug với URL hợp lệ: khôi phục nội dung sạch, sau đó ép index lại. Hoặc tạo URL mới chuyển nội dung nếu URL mãi ko khôi phục TOP sau 1-2 tuần.
- Nếu là URL sinh ra 100 % rác: Xoá và để hiển thị mã phản hồi 404, sau đó vào Google Search console xoá tiếp
- Chỉ dùng 301 về homepage khi không thể 404, trường hợp này lỗi do lúc code website không có làm mã phản hồi 404.
3.2 Submit lại trang quan trọng
- Dùng công cụ ép index trong Search Consile+ submit XML Sitemap để Google thu thập nhanh và nhiều.
3.3 Giám sát re-crawl
- Theo dõi tab Page Indexed/Not Indexed trong GSC.
- Log Googlebot (user-agent) trong access log để chắc Google đã thu thập phiên bản sạch.
3.4 Gửi “Reconsideration Request”(nếu có Manual Action)
- Trình bày ngắn gọn: nguyên nhân → biện pháp → kết quả; đính kèm bằng chứng (ảnh log, diff code).
Kinh nghiệm thực tế: Nếu 100 % URL rác trả 404/410 & sitemap mới chỉ chứa trang sạch, Google thường xoá hết dấu vết trong 7-14 ngày (có case 3-4 ngày). Trường hợp redirect 301 về homepage thời gian có thể lâu hơn vì Google phải chạy thêm chu trình canonical. webmasters.stackexchange.com
4. Khôi phục tối đa kết quả SEO
4.1 Audit nội dung “lõi”
- Đánh giá E.E.A.T – xoá/merge bài trùng lặp, bổ sung tác giả, nguồn, ngày cập nhật. Các trang mỏng nội dung phải viết lại – nếu không, noindex tạm thời. (Google Quality Guidelines yêu cầu nội dung kém, bị hack phải xếp Lowest ).
- Tối ưu on-page: thẻ <title>, <meta description>, heading, alt ảnh, Schema FAQ/Product.
- Liên kết nội bộ: trải lại topical map, bảo đảm mọi trang quan trọng ≤3 click từ trang chủ.
4.2 Mở rộng chủ đề & khôi phục authority
- Nghiên cứu key mở rộng bằng Keyword tool/Ahrefs/Semrush (chủ đề ngang).
- Bổ sung thêm các bài giải pháp: viết bài trả lời intent phụ → trỏ về trang chính, giống mô hình “topic cluster”.
4.3 Kỹ thuật & Tốc độ
- Sửa Core Web Vitals, HTTPS, HTTP/2, lazy-load,…
- Thiết lập auto-backup hàng ngày + quét malware theo lịch, định kỳ hàng tuần.
4.4 Theo dõi & Báo cáo
|
Chỉ số |
Mốc theo dõi |
Công cụ |
|
% URL sạch trong sitemap vs. index |
Hàng ngày 2 tuần đầu |
GSC, Screaming Frog |
|
Traffic organic |
Hàng tuần |
GA4, Looker Studio |
|
Biến động thứ hạng hot-key |
Hàng ngày tuần đầu, sau đó hàng tuần |
Serprobot |
|
Cảnh báo bảo mật |
Realtime |
WP Security Audit Log |
5. Tại sao làm đủ 4 bước trên lại quan trọng?
- Google phạt trang bị hack không phải do ý đồ xấu, mà vì rủi ro cho người dùng; xử lý nhanh, minh bạch → Google dỡ cảnh báo nhanh hơn .
- 404 dứt khoát giúp Google “quên” URL rác nhanh – tránh loãng crawl budget.
- Cập nhật CMS & plugin là biện pháp phòng ngừa số 1; 46 % site tái nhiễm vì quên bước này comodosslstore.com.
- Audit content bảo đảm E.E.A.T & loại bỏ nội dung rác, giúp Google “tin” website là chính chủ, không còn spam, nó chỉ là 1 sự cố .
6. Biện pháp phòng tránh.
Nếu bạn làm đúng thứ tự Phát hiện → Làm sạch server → Làm sạch index → Tăng cường nội dung thì trong thực tế thứ hạng có thể phục hồi 60 % sau 7 ngày và cán mốc 90-95 % trong 3-4 tuần.
- Google sẽ cảnh báo trên Search Console và dán nhãn “Suspected malicious behavior”; những URL bị chèn mã độc thường bị đánh giá Lowest trong Quality Guidelines, dẫn tới rớt hạng và mất tín nhiệm .
- Hơn 9 000 trang web bị Google chặn mỗi ngày vì malware; nếu không xử lý kịp, bạn có nguy cơ mất 100 % traffic organic và dữ liệu khách hàng wpbeginner.com.
|
Hạng mục |
Việc phải làm |
Công cụ/ghi chú |
|
1. Cập nhật & vá lỗi |
Luôn update CMS, theme, plugin ngay khi có bản mới; theo dõi bulletin vá lỗi hàng tháng blog.sucuri.net |
Enable auto-update, Dev > Staging > Live |
|
2. Kiểm soát truy cập |
– Mật khẩu mạnh, đổi định kỳ 90 ngày – Bật 2FA cho SSH/FTP, WP-Admin, cPanel jetpack.comwp-rocket.me |
Sử dụng Google Authenticator / Authy |
|
3. Tường lửa & WAF |
Cài Cloudflare Pro hoặc Imunify360 để lọc traffic xấu, chặn SQLi/XSS |
Bật “Under Attack Mode” khi phát hiện DDOS |
|
4. Sao lưu & rollback |
Lịch backup tự động: file mỗi ngày, DB mỗi 6 giờ; giữ 30 bản gần nhất, lưu tại S3 + off-site |
Test khôi phục => < 15 phút |
|
5. Giám sát & cảnh báo |
– Bật Security Issues email trong Search Console – Thiết lập Health check (UptimeRobot) & quét file thay đổi (Wordfence, WP File Monitor) |
Cảnh báo qua Slack/Telegram |
|
6. Quản lý nội dung người dùng |
Bật kiểm duyệt bình luận, giới hạn upload, nofollow external link do user tạo |
Akismet/Antispam Bee |
|
7. HTTPS & header bảo mật |
Bật HSTS, X-Content-Type-Options, CSP; dùng chứng chỉ Let’s Encrypt tự gia hạn |
Kiểm tra với securityheaders.com |
|
8. Kiểm tra định kỳ |
Mỗi tuần search site:domain.com + ký tự Nhật/Viagra; xem Safe Browsing Transparency Report để phát hiện sớm |
Lưu log so sánh qua Compare Sheets |
7. Checklist xử lý khẩn cấp khi phát hiện mã độc
Mục tiêu: cô lập – làm sạch – khôi phục thứ hạng trong ≤ 14 ngày.
0–2 giờ đầu
- Đóng cửa: đổi tất cả password & token API; tạm khóa đăng nhập quản trị theo IP.
- Backup forensics: sao lưu mã nguồn + DB gốc để phân tích.
2–12 giờ
- Quét & xoá mã độc
- Dùng WP-CLI, Sucuri, ImunifyAV để liệt kê file lạ; kiểm tra .htaccess, wp-config.php, cron jobs sucuri.net.
- Xoá hoặc khôi phục file sạch từ bản backup.
- Cập nhật lõi & plugin lên bản mới nhất; vô hiệu hoá/ghi log plugin không dùng.
12–24 giờ
- Làm sạch index
- Tạo danh sách URL rác (thường chứa ký tự Nhật) bằng site:.
- Cho URL rác trả 404/410 hoặc remove thủ công trong GSC; chỉ 301 về trang chủ khi buộc phải giữ link ngoài developers.google.com.
- Submit lại URL quan trọng + sitemap mới trong Search Console để Google crawl bản sạch nhanh hơn developers.google.com.
Ngày 2–7
- Giám sát Googlebot: kiểm tra log “200 clean” cho URL đã xử lý.
- Gửi Reconsideration Request (nếu có Manual Action) kèm mô tả nguyên nhân → biện pháp → bằng chứng (ảnh diff code).
Ngày 7–14
- Audit nội dung & liên kết: xoá/viết lại bài mỏng, loại bỏ link ẩn; bổ sung E.E.A.T để lấy lại tín nhiệm .
- Kiểm thử bảo mật: chạy lại quét toàn diện, benchmark PageSpeed & Core Web Vitals để chắc site sạch + nhanh.
Kết luận
Thực hiện “phòng vẫn hơn chữa” bằng 8 biện pháp bảo vệ chủ động, bạn giảm > 90 % nguy cơ bị chèn mã độc. Nếu sự cố vẫn xảy ra, bám sát checklist 10 bước trên sẽ giúp bạn cô lập và phục hồi thứ hạng chỉ trong 1–2 tuần.
