Cách chặn kẻ xấu spam vào thanh tìm kiếm tạo Search Results tiêu cực

Thật ra lúc đặt cái tiêu đề bài viết này mình cũng không biết nên đặt nó ra sao cho người đọc dễ hiểu, tuy nhiên tình huống website bị kẻ xấu spam vào thành tìm kiếm hiện nay diễn ra rất phổ biến, đặc biệt đối với website WordPress lại càng dính nhiều.

Kẻ xấu spam vào thanh tìm kiếm tạo Search Results tiêu cực

Nhìn một số hình ảnh sau đây bạn sẽ dễ hình dung vấn đề hơn (những ai đã từng bị dính thì chắc chắn không còn lạ gì)

Hình ảnh kết quả Google Search Console báo về:

search spam

Với lượng Url bị dính quả chừng dính lên tới cả 100.000 URL

spam

Và đây là kết quả xuất hiện trên website sau khi bạn click vào Url bị spam kết quả tìm kiếm:

giaiphapseo

Mặc dù bạn hoàn toàn có thể cài chặn ở file robots.txt như sau:

Disallow: /?s=
Disallow: /search/
Disallow: /?search?keyword&s=

Nhưng như hình trên là do chủ website đã quên không chặn sớm, nên Google Search Console cào về. Ngoài ra việc chặn ở file robots.txt chỉ ngăn không cho Google bot cào về chứ không ngăn được kẻ xấu tạo ra Url bằng kết quả search (Search Results).

Mặc dù việc này nhiều ý kiến cho rằng không ảnh hưởng đến việc SEO, chưa bàn đến đúng sai nhưng dù sao chúng ta cũng không mong muôn những vấn đề này tiếp diễn hoặc xảy ra và hiển thị trong Google Search Console của mình. Và cách sau đây mình sẽ hướng dẫn bạn chặn triệt để việc sinh ra Url như hình.

Hướng dẫn chặn kẻ xấu spam vào thanh tìm kiếm với từ khóa tiêu cực

Lúc đầu mình có thử 2 cách:

  • Cách 1: thêm đoạn code vào .htaccess để chặn những từ khóa không phải là chữ Latin, và không nằm trong Alphabet (chỉ cho tìm từ a-z, A-Z và 0-9).
  • Cách 2: thêm đoạn code vào function.php để chặn những query search với những từ khóa nhất định như: game, bet, casino,…

Nhưng cả 2 cách trên khi chặn thì Google vẫn sẽ crawl ra Url và báo lỗi 403, chưa kể cách 2 nếu chặn từ khóa thì nhỡ như website đó bán hàng liên quan đến game, khách sẽ không search được. Do đó mình đã chọn cách sau đây để chặn triệt để luôn.

Đầu tiên bạn hãy cài Plugin: Ajax Search Pro được bán trên Plugins.com.vn hoặc mua trực tiếp trên Codecayon: TẠI ĐÂY

ajax-search-pro

Sau khi cài xong, bạn thay thế công cụ search hiện tại (mặc định của WordPress hoặc của Theme mà bạn đang dùng) bằng plugin: Ajax Search Pro

search spam

Sau đó, bạn có thể bấm vào hình bánh răng màu đen góc bên trái của hình trên để cài đặt các tùy chọn cũng như mẫu giao diện của thanh search (có hàng trăm mẫu cho bạn lựa chọn). Vì đây là bài chủ yếu hướng dẫn chặn kẻ xấu spam vào thanh tìm kiếm tạo Search Results tiêu cực nên mình không đi sâu vào hướng dẫn sử dụng plugin này, mà chủ yếu tập trung vào nội dung chính (nếu có thời gian mình sẽ lên bài viết hoặc video hướng dẫn chi tiết cách sử dụng plugin này sau.

Phần cài đặt chú ý chỗ khung đỏ như hình dưới, có 2 phần bạn sẽ chọn 1 trong 2:

  • Redirect to: First matching result: phần này nghĩa là khi người dùng bấm vào button tìm kiếm nó sẽ hiển thị lên trang kết quả gần khớp nhất
  • Do nothing: chặn luôn không cho khách bấm vào button tìm kiếm (khách chỉ có thể chọn những kết quả hiển thị thông qua Ajax Search.

search

Bạn không nên chọn vào những phần còn lại, vì như thế sẽ tạo ra URL dạng: domain/?s= hoặc domain/?search?keyword&s= (trong khi chúng ta đang cố gắng chặn không cho tạo ra Url như vậy)

Sau khi bạn cài xong thanh tìm kiếm, dĩ nhiên về phía người dùng thông thường họ sẽ không thể nào tạo ra được những đường dẫn có dạng domain/?s= hoặc domain/?search?keyword&s=, tuy nhiên kẻ xấu thường sử dụng tool tạo tự động hàng ngàn Url trong thời gian ngắn chứ không có phải tự lên search như người bình thường, nên bạn cần thêm một việc, đó là chặn việc tool tạo hàng loạt Url có dạng domain/?s= hoặc domain/?search?keyword&s= 

Code chặn kẻ xấu tạo hàng loạt URL kết quả tìm kiếm

Để ngăn kẻ xấu dùng tool tạo hàng loạt Url có dạng domain/?s= hoặc domain/?search?keyword&s=, các bạn thêm đoạn code sau đây vào function.php


function prevent_search_links() {
if ( is_search() ) {
wp_redirect( home_url() ); // Chuyển hướng về trang chủ hoặc trang tùy chỉnh khác
exit;
}
}
add_action( 'template_redirect', 'prevent_search_links' );

Như vậy là xong, mã này sẽ kiểm tra nếu trang đang hiển thị là một trang kết quả tìm kiếm (is_search()), nếu có, nó sẽ chuyển hướng người dùng trở lại trang chủ hoặc một trang khác tuỳ chỉnh.