NỘI DUNG
Gần đây, rất nhiều website WooCommerce gặp tình trạng server bị quá tải (CPU cao, load chậm, thậm chí 503).
Nguyên nhân chính đến từ việc các bot (đặc biệt là crawler của Meta, SEO bot, hoặc bot giả lập trình duyệt) liên tục truy cập các URL dạng filter, ví dụ:
/binh-hut-loc?filter_size=h18-d16,h22-d20,h28-d26
/binh-hut-loc?filter_kich-thuoc=h22,h24,h25
Các URL này:
- Sinh ra vô hạn biến thể
- Không có giá trị SEO thực sự
- Nhưng lại bị bot crawl cực mạnh gây ra: Tăng tải CPU. Tăng query database. Cách bị bypass. Web bị chậm và sập.
Dấu hiệu nhận biết
Trong access log bạn sẽ thấy
- Rất nhiều request chứa
?filter_ - User-Agent giống trình duyệt thật (Chrome, Safari…)
- IP quốc tế
- Tần suất cực cao
👉 Đây chính là bot giả lập người dùng để crawl dữ liệu.

Giải pháp tạm thời cho việc này
Mục tiêu là:
- Không chặn toàn bộ (tránh ảnh hưởng SEO)
- Chỉ chặn bot quốc tế
- Cho phép IP người dùng Việt Nam
- Cho phép bot Google
- Áp dụng captcha hoặc chặn
Cấu hình .htaccess (LiteSpeed) bật verifycaptcha
Với cách này thì máy chủ host phải được trang bị cài đặt sẵn GeoIP và verifycaptcha. Nếu bạn dùng Hosting tại AZDIGI thì 2 tính năng này đã được bật mặc định.
<IfModule LiteSpeed>
# Chỉ áp dụng khi có ?filter_ trong query string
RewriteCond %{QUERY_STRING} filter_ [NC]
# Loại trừ Việt Nam (cần enable GeoIP trong LiteSpeed)
RewriteCond %{ENV:GEOIP_COUNTRY_CODE} !^VN$ [NC]
# Loại trừ Googlebot
RewriteCond %{HTTP_USER_AGENT} !Googlebot [NC]
# Bật verify captcha
RewriteRule .* - [E=verifycaptcha]
</IfModule>
Giải thích rule
| Điều kiện | Ý nghĩa |
|---|---|
filter_ |
Chỉ xử lý URL có chứa các tham số filter (lọc sản phẩm). |
!^VN$ |
Không áp dụng quy tắc này đối với các IP đến từ Việt Nam. |
!Googlebot |
Ngoại lệ cho Googlebot để đảm bảo không ảnh hưởng đến SEO. |
verifycaptcha |
Kích hoạt lớp bảo vệ Captcha nếu phát hiện hành vi nghi vấn. |
Kết quả
- Người dùng thật: Sẽ không bị ảnh hưởng
- Bot quốc tế: bị captcha -> giảm tải server
Cấu hình .htaccess (LiteSpeed) chặn 403
Nếu muốn chặn cứng (không captcha). Nghĩa là cứ có filter_ là chặn thẳng tay luôn thì dùng quy tắc này. Với quy tắc này vẫn bỏ qua Google bot và IP Việt Nam.
<IfModule LiteSpeed>
RewriteCond %{QUERY_STRING} filter_ [NC]
RewriteCond %{ENV:GEOIP_COUNTRY_CODE} !^VN$ [NC]
RewriteCond %{HTTP_USER_AGENT} !Googlebot [NC]
RewriteRule .* - [F,L]
</IfModule>
Cấu hình trên Cloudflare (Khuyến nghị)
Bạn đăng nhập vào Cloudflare. Tìm đến Security => Security Rules => Create Rule. Click vào Edit expression và dán giá trị sau.
Expression
(http.request.uri.query contains "filter_")
and (ip.geoip.country ne "VN")
and (not http.user_agent contains "Googlebot")

Việc chặn bot crawl các URL Filter trong WooCommerce là một bước cần thiết và quan trọng để duy trì sức khỏe SEO và hiệu suất website của bạn. Các URL này, mặc dù hữu ích cho trải nghiệm người dùng, lại thường tạo ra hàng loạt trang có nội dung trùng lặp hoặc chất lượng thấp trong mắt Google, gây lãng phí tài nguyên crawl và ảnh hưởng tiêu cực đến thứ hạng SEO.
Với kinh nghiệm thực chiến từ việc tiếp xúc hàng ngày với vô vàn vấn đề về Website, Hosting, VPS, Server tại Phòng Kỹ thuật AZDIGI, mình luôn ấp ủ niềm đam mê chia sẻ kiến thức.
Mình xây dựng các blog không chỉ để tự trau dồi kỹ năng mà còn để cung cấp những tài liệu, hướng dẫn hữu ích nhất đến cộng đồng. Rất mong nhận được sự quan tâm của các bạn!
Để lại thông tin, mình sẽ phản hồi ngay.
