Bạn gõ tên website vào Google và thấy những tiêu đề lạ: casino, cờ bạc, thuốc, tiếng Nhật hay tiếng Trung, trong khi website của bạn bán thiết kế nội thất hoặc dạy tiếng Anh. Đó là dạng tấn công “spam SEO”: kẻ xấu mượn uy tín tên miền của bạn để đẩy trang của chúng lên Google. Bài này chỉ cách xác nhận, tìm nơi giấu nội dung lạ và dọn đúng thứ tự. Nếu bạn muốn giao việc, xem trang xử lý mã độc WordPress.
Website bị chèn link cờ bạc hoặc bài lạ thường do tài khoản admin lạ, plugin lỗi thời hoặc file mã độc. Nội dung lạ có thể chỉ hiện với Google chứ không với bạn (cloaking). Cách xử lý: sao lưu hiện trạng, tìm tài khoản và file lạ, làm sạch database, đổi mật khẩu, vá lỗ hổng, rồi mới yêu cầu Google xem xét lại.
Dấu hiệu website bị chèn nội dung spam
- Kết quả Google cho tên website có tiêu đề không liên quan đến ngành của bạn.
- Search Console báo nhiều URL mới lạ, hoặc lượng trang tăng đột biến.
- Website có nhiều trang tên ngẫu nhiên (chuỗi ký tự) mà bạn không tạo.
- Khách báo bị chuyển sang trang lạ khi bấm từ Google. Xem thêm bài website chỉ chuyển hướng khi vào từ Google.
- Có tài khoản quản trị bạn không tạo, hoặc bài đăng bằng tài khoản lạ.
- Email từ website bị đánh dấu spam hoặc hosting gửi cảnh báo gửi thư bất thường.
Danh sách 10 việc kiểm tra nhanh nằm trong bài dấu hiệu website WordPress bị hack. Bài này đi sâu vào trường hợp spam SEO.
Vì sao bạn không thấy nhưng Google thấy?
Mã độc spam SEO thường dùng kỹ thuật “cloaking”: nhận biết người truy cập là công cụ tìm kiếm hay người thật, rồi trả về nội dung khác nhau. Bạn mở website thấy bình thường, còn Googlebot nhận trang chứa link cờ bạc. Có biến thể chỉ hiện nội dung lạ khi khách đến từ Google hoặc từ điện thoại, nên chủ website kiểm tra bằng máy tính, gõ trực tiếp tên miền sẽ không phát hiện.
Vì vậy “tôi mở website thấy bình thường” không đủ để kết luận an toàn. Bạn cần kiểm tra theo cách công cụ tìm kiếm nhìn website.
5 cách kiểm tra từ bên ngoài
- Tìm trên Google với toán tử site: gõ
site:tenmien.com casino, rồi thử “bet”, “slot”, “thuốc”, “viagra” và vài từ tiếng Nhật. Kết quả lạ là dấu hiệu rõ. - Giả lập Googlebot bằng lệnh:
curl -A "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)" -s https://tenmien.com/ | grep -i -E "casino|slot|bet|viagra". Nếu có kết quả mà mở bằng trình duyệt không thấy, rất có thể có cloaking. Lưu ý: một số mã độc kiểm cả địa chỉ IP, nên kết quả trống chưa chắc là sạch. - Xem sitemap: mở
/sitemap.xmlvà/wp-sitemap.xml, kiểm tra có URL lạ không. - Dùng Search Console: mục Trang (Pages) và mục báo cáo vấn đề bảo mật nếu có. Xem URL được lập chỉ mục có tiêu đề lạ.
- Kiểm tra người dùng quản trị: vào Users, lọc vai trò Administrator, tìm tài khoản không nhận ra.
Nội dung lạ thường nằm ở đâu?
| Vị trí | Cách kiểm tra |
|---|---|
| Database (bảng bài viết, options, widget) | Tìm bài lạ, đoạn script hoặc link ẩn trong nội dung, tùy chọn lạ trong bảng options |
| File PHP trong uploads | Thư mục uploads không nên có file .php; mọi file PHP ở đây đáng ngờ |
| File theme (functions.php, header.php, footer.php) | So với bản gốc của theme, tìm đoạn mã mã hóa dài |
| File cấu hình (.htaccess, wp-config.php, .user.ini) | Tìm quy tắc chuyển hướng hoặc include lạ |
| Plugin hoặc mu-plugins lạ | Xem bài mã độc ẩn trong mu-plugins, .user.ini và cron |
| Tác vụ định kỳ (cron) | Cron tự tạo lại file đã xóa |
Với WP-CLI, hai lệnh nhanh là wp core verify-checksums để so file lõi WordPress với bản chính thức và wp plugin verify-checksums --all cho plugin lấy từ kho WordPress.org. File lạ hoặc file bị sửa sẽ được liệt kê. Lệnh không kiểm tra được theme hoặc plugin trả phí tự cài, nên với các phần đó cần so thủ công.
Không chắc bắt đầu từ đâu? Gửi link website và mô tả dấu hiệu qua Zalo 0332 942 567. Chúng tôi kiểm tra từ bên ngoài, báo hạng mục và chi phí trước khi chạm vào file nào.
Thứ tự dọn dẹp an toàn
- Sao lưu hiện trạng: cả file và database, trước khi xóa bất cứ thứ gì. Bản sao này là bằng chứng để tìm cửa vào, không dùng để khôi phục lại ngay.
- Đổi mật khẩu: hosting, SFTP, database, mọi tài khoản admin WordPress. Đổi khóa bảo mật (salts) trong wp-config.php để vô hiệu hóa phiên đăng nhập cũ.
- Xóa tài khoản admin lạ sau khi ghi lại thông tin.
- Thay lõi WordPress, plugin, theme bằng bản sạch từ nguồn chính thức, thay vì chỉnh tay từng file.
- Làm sạch database: bài lạ, tùy chọn lạ, đoạn script chèn vào nội dung.
- Tìm và gỡ cửa hậu (backdoor): file lạ ở uploads, mu-plugins, cron, .user.ini. Nếu bỏ bước này, mã độc quay lại sau vài ngày.
- Vá nguyên nhân: cập nhật plugin lỗi thời, gỡ plugin không dùng, kiểm tra plugin cài từ nguồn không chính thức. Xem bài plugin, theme nulled và mã độc WordPress.
- Trả lại 404 hoặc 410 cho URL spam và cập nhật sitemap. Sau đó mới nhờ Google xem xét lại. Nếu website vẫn bị gắn cờ, đọc bài gỡ cảnh báo Google xong vẫn bị gắn cờ lại.
Nếu bạn có bản sao lưu sạch từ trước ngày nhiễm, khôi phục là cách nhanh nhất, nhưng phải kèm vá nguyên nhân, nếu không website bị nhiễm lại. Xem bài khôi phục website WordPress từ bản sao lưu.
Làm gì để không bị lại
- Cập nhật WordPress, theme, plugin đều đặn, sau khi sao lưu. Xem cập nhật WordPress an toàn.
- Gỡ plugin, theme không dùng, không giữ bản tắt.
- Tắt chỉnh sửa file trong trang quản trị bằng
define( 'DISALLOW_FILE_EDIT', true );trong wp-config.php, theo hướng dẫn gia cố WordPress. Lưu ý: cấu hình này không ngăn kẻ tấn công đã có quyền tải file lên. - Đặt quyền thư mục 755 và file 644, riêng wp-config.php hạn chế đọc ở mức 400 hoặc 440 như hướng dẫn trên.
- Bật xác thực hai bước cho tài khoản admin và giới hạn số admin.
- Có sao lưu ngoài hosting, và giám sát để biết sớm khi file thay đổi. Gói bảo trì website WordPress gồm các việc này.
Tổng quan 4 nhóm việc bảo mật xem thêm ở bài cách bảo mật website tránh bị hack.
Nguồn tham khảo (kiểm tra tháng 11/2026): WordPress Developer Resources, Hardening WordPress (developer.wordpress.org/advanced-administration/security/hardening); WP-CLI Handbook, lệnh core verify-checksums và plugin verify-checksums (developer.wordpress.org/cli/commands).
Câu hỏi thường gặp
Xóa hết bài lạ là website sạch chưa?
Chưa. Bài lạ chỉ là hậu quả. Nếu cửa hậu còn, nội dung lạ sẽ xuất hiện lại. Cần tìm tài khoản, file và tác vụ định kỳ dùng để quay lại.
Website nhiễm spam có bị Google phạt không?
Trang spam có thể bị đánh dấu và website có thể bị tụt thứ hạng hoặc bị cảnh báo. Mức độ và thời gian phục hồi khác nhau từng trường hợp, không ai cam kết được.
Có nên dùng plugin quét mã độc không?
Có thể dùng như một lớp kiểm tra, nhưng plugin quét thường bỏ sót mã bị mã hóa hoặc cloaking. Xem bài quét mã độc WordPress: 3 lớp kiểm tra.
Bao lâu thì kết quả Google sạch lại?
Phụ thuộc việc Google thu thập lại các URL. Sau khi dọn và trả mã 404 hoặc 410 cho URL spam, hãy theo dõi Search Console. Không có mốc chắc chắn.
Chi phí xử lý khoảng bao nhiêu?
Chi phí phụ thuộc mức độ nhiễm. Xem bài chi phí xử lý mã độc website WordPress để biết khoản nào quyết định giá.
Cần người làm giúp phần này?
Mô tả ngắn nhu cầu hoặc gửi link website. Chúng tôi phản hồi bằng đánh giá cụ thể trước khi báo giá.
