Fix lỗi Meta Crawler Cào Filter URL khi dùng YITH Product Filter— Làm Lag Server WooCommerce

Hiện nay nhiều web đang dùng plugin YITH WooCommerce Ajax Product Filter bị lỗi Meta Crawler Cào Filter URL — Làm Lag Server WooCommerce

Meta crawler (meta-webindexer) đang crawl các trang filter của WooCommerce cực kỳ hung hãng. Dù đã noindex, khai báo trong robots.txt, thậm chí chặn qua Cloudflare vẫn không ăn thua.

Vấn đề là WooCommerce filter tạo ra hàng triệu tổ hợp URL (?filter_kich-thuoc=6mm&filter_tuoi-tram=25-nam...), bot Facebook crawl tất cả để lấy preview khi ai đó share link — kết quả là server lag nặng, PHP-FPM hết worker, load average vọt lên 17 trên VPS 3 CPU.

Cách Fix cho Nginx

thêm vào file cấu hình /etc/nginx/sites-enabled/xxx trong block server {}:

# Block meta-webindexer chỉ khi crawl filter URLs

set $is_meta_crawler 0;

set $has_filter 0;

if ($http_user_agent ~* "meta-webindexer") {
set $is_meta_crawler 1;
}
if ($query_string ~* "filter_|min_price|max_price") {
set $has_filter 1;
}
set $block_crawler "${is_meta_crawler}${has_filter}";
if ($block_crawler = "11") {
return 403;
}

Logic ở đây là chỉ block khi có cả 2 điều kiện: đúng là meta-webindexer VÀ URL có filter params. Trang thường như /vong-tay-tram-huong vẫn cho bot qua để lấy preview bình thường khi share Facebook.

Sau khi apply, load giảm từ 17 xuống còn 0.28, response time từ 5s về 62ms.


Dành cho Apache

Nếu server bạn dùng Apache thay vì Nginx, thêm vào file .htaccess trong thư mục root:

RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} meta-webindexer [NC]
RewriteCond %{QUERY_STRING} filter_|min_price|max_price [NC]
RewriteRule ^ - [F,L]

Hoặc nếu có quyền chỉnh httpd.conf / VirtualHost, dùng cú pháp gọn hơn:

<If "%{HTTP_USER_AGENT} =~ /meta-webindexer/ && %{QUERY_STRING} =~ /filter_|min_price|max_price/">
Require all denied
</If>

Logic tương tự Nginx — chỉ block khi có cả 2 điều kiện: đúng là meta-webindexer VÀ URL có filter params. Share link Facebook bình thường vẫn lấy được preview.


Bạn nào gặp vấn đề tương tự có thể thử, hoặc hỏi AI để gen rule phù hợp với server của mình (Apache, LiteSpeed…).

Cùng thảo luận thêm nhé!

 

Để lại một bình luận