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.
Xem thêm:
https://khowordpress.com/fix-loi-meta-crawler-cao-filter-url-lam-lag-server-woocommerce/