Meta Crawler Đang Cào Filter URL — Làm Lag Server WooCommerce

Cập nhật lần cuối 26/03/2026 by trong WordPress vào 26/03/2026 có 153 Views

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.

Fix cho Nginx

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

Để duy trì blog nên mình có làm aff cho 1 số bên hosting. Nhưng dù aff mình cũng chọn 1 số nhà cung cấp uy tín về chất lượng và support nên các bạn cứ yên tâm nhé.

Nếu có mua hosting mà có trong list dưới đây các bạn click vào link trước khi mua để ủng hộ mình nhé. Mình cảm ơn nhiều

# 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é!

5/5 - (1 vote)
Sản phẩm nổi bật của Toản
x