Chúng tôi làm một việc rất đơn giản nhưng ít ai thực sự làm: gõ cửa cùng một địa chỉ web bằng nhiều danh tính khác nhau.
Với danh tính trình duyệt, vào được. Đổi sang chuỗi User-Agent chính thức của bốn bot AI — GPTBot, OAI-SearchBot, PerplexityBot, ClaudeBot — cùng URL, cùng phút, cùng máy chủ, trả về 403.
Trong khi đó robots.txt của chúng không ghi một chữ nào về việc cấm. Bạn mở bản đồ site ra kiểm tra, mở robots.txt ra kiểm tra, bảo đồng nghiệp kỹ thuật "xác nhận là cho phép crawl" — tất cả đều xanh. Cửa đã bị hàn, nhưng tấm biển vẫn ghi "hoan nghênh".
Đây không phải cá biệt. Từ hai node (Quảng Châu và Singapore), chúng tôi lấy trang chủ của 48 website thương hiệu Việt Nam thuộc 8 ngành, mỗi site thử bằng 6 danh tính. Kết luận trước: robots.txt không phải cánh cửa đó, WAF mới là.
1. Bốn câu kết luận
- Gần như không ai ra lệnh cấm crawl.Trong 30 site đọc được robots.txt, 0 site chặn bốn bot AI mà chúng tôi kiểm tra; chỉ 3 site có nhắc tên bất kỳ bot AI nào (trong đó 1 site nhắc tên nhưng lại đóng cửa ở tầng WAF).
- Nhưng cửa thì có thật.Trong 31 site đo được từ ít nhất một node, 5 site (16,1%) trả 403 cho ít nhất một bot AI; 4 trong số đó trả 403 cho từ ba danh tính AI trở lên. Cùng thời điểm, danh tính trình duyệt nhận 200.
- 403 có ba bộ mặt, cách xử lý hoàn toàn khác nhau."Chỉ chặn bot AI" – "chặn mọi bot chưa xác thực" – "chặn cả site theo vùng địa lý": ba tình huống, ba cách sửa mâu thuẫn nhau. Gộp lại nói chung là nói suông.
- Site làm tài liệu tốt nhất lại đóng cửa chặt nhất.Trong 48 site chỉ có 3 nơi có
llms.txtthật, một trong đó nặng 101 KB và viết rất nghiêm túc — nhưng trang chủ của nó trả 403 từ cả Quảng Châu và Singapore.
2. Thiết kế đo: khóa mọi biến có thể khóa
| Biến | Thiết lập | Vì sao phải khóa |
|---|---|---|
| Mẫu | 48 tên miền Việt Nam, 8 ngành × 6 đơn vị (bán lẻ – TMĐT / ngân hàng / bảo hiểm / logistics / sản xuất – vật liệu / ô tô – xe hai bánh / dược – chuỗi nhà thuốc / F&B – tiêu dùng) | Chỉ một ngành sẽ dính cùng một nhà cung cấp WAF, kết luận bị nhà cung cấp dắt mũi |
| Node | Quảng Châu (ECS Alibaba Cloud) và Singapore (lightweight Alibaba Cloud), chạy trong cùng một giờ | Chỉ để trả một câu: đây là "cửa của máy" hay "cửa của vùng" |
| Danh tính | Chrome (mốc chuẩn), GPTBot/1.2, OAI-SearchBot/1.0, PerplexityBot/1.0, ClaudeBot/1.0; vòng hai thêm Googlebot/2.1 và bingbot/2.0 | UA là thứ duy nhất WAF đọc được một cách ổn định để biết "bạn là ai", phải đo từng cái riêng |
| Request | Mỗi danh tính lấy trang chủ một lần, GET, timeout 15 giây, không retry, không Cookie, không thực thi JS | Có retry sẽ làm phẳng 429; chạy JS sẽ biến trang thử thách thành trang bình thường |
| Phán định | Trình duyệt 2xx mới tính là "site còn sống"; cả bốn danh tính AI đều 200 mới tính là "mở cả bốn cửa" | Tránh ghi nhầm "site sập" thành "WAF chặn AI" |
3. Cửa thứ nhất: robots.txt — 30 tệp, 0 tệp cấm
Tin tốt trước. Trong robots.txt của các thương hiệu Việt, gần như không ai chủ động cấm bot AI:
Kết quả này ngược với trực giác của nhiều người. Nỗi lo thường gặp là "khách hàng của tôi lỡ tay tắt AI mất rồi" — đo ra thì thị trường Việt Nam chưa đi tới bước đó: chưa nhắc tới, nói gì tới chuyện tắt. Vấn đề thật nằm ở hai mục sau.
4. Cửa thứ hai: WAF — 5 trong 31 site, máy không vào được
Lấy tiêu chí "ít nhất một node mở được bằng trình duyệt" làm căn cứ sống còn, trong 48 tên miền có 31 site đo được, 17 site không mở được từ cả hai node (lý do ở mục 6). Trong 31 site đó:
5 site "có cửa" đều thuộc đúng những nhóm ngành đáng được AI trích dẫn nhất:
| Site | Ngành | Trình duyệt | GPTBot | OAI-SearchBot | PerplexityBot | ClaudeBot |
|---|---|---|---|---|---|---|
| highlandscoffee.com.vn | Chuỗi F&B | 200 | 403 | 403 | 403 | 403 |
| pharmacity.vn | Chuỗi nhà thuốc | 200 | 403 | 403 | 403 | 403 |
| techcombank.com.vn | Ngân hàng (node Singapore) | 200 | 403 | 403 | 403 | 403 |
| nhathuoclongchau.com.vn | Chuỗi nhà thuốc (node Quảng Châu) | 200 | 403 | 403 | timeout | 403 |
| bic.vn | Bảo hiểm (node Singapore) | 200 | 403 | 200 | 200 | 403 |
Xin để ý dòng cuối. Cấu hình của BIC là "chặn huấn luyện, mở truy xuất": GPTBot (thu thập cho huấn luyện mô hình) và ClaudeBot bị từ chối, nhưng OAI-SearchBot (chỉ mục tìm kiếm của OpenAI) và PerplexityBot được cho qua. Đây là một lựa chọn rất hợp lý — không nộp nội dung của mình cho tập huấn luyện, nhưng sẵn sàng được trích dẫn trong tìm kiếm.
Chi tiết này cho thấy: chính sách AI ở tầng WAF không phải "một công tắc", mà phân tầng được theo mục đích sử dụng. Vấn đề thật nằm ở chỗ phần lớn site đang dùng tầng mặc định, và tầng mặc định trong mắt nhà cung cấp thường là "đừng tới hết".
5. Cùng một chuỗi 403, ba ý nghĩa, ba cách sửa
Đây là mục thực dụng nhất của bài. Cùng một mã 403, nếu thêm bước đo phân biệt ở vòng hai (thêm danh tính Googlebot và bingbot) thì chia thành ba loại, cách xử lý ngược nhau hoàn toàn:
| Loại | Dấu vân tay | Diễn giải | Cách sửa |
|---|---|---|---|
| A · Chỉ chặn AI | Trình duyệt 200 · Googlebot 200 · GPTBot 403 | Site phân tầng rõ theo mục đích: tìm kiếm truyền thống giữ nguyên, AI đóng cửa. Trong mẫu, bic.vn thuộc loại này | Sửa chính sách bot AI của WAF: giữ lệnh cấm thu thập huấn luyện là quyền của bạn, nhưng phải mở cho nhóm truy xuất (OAI-SearchBot, PerplexityBot) |
| B · Chặn mọi bot chưa xác thực | Trình duyệt 200 · Googlebot 403 · GPTBot 403 | Chính sách mặc định "xác thực danh tính bot bằng IP": Googlebot thật đi từ dải IP của Google nên qua được; bot AI không có trong danh sách trắng nên bị chặn hết. 4 site trong mẫu thuộc loại này | Thêm bot AI vào Verified Bots / danh sách trắng, hoặc tạo rule cho phép riêng cho chúng trong WAF |
| C · Cả site từ chối theo vùng | Trình duyệt 403 · mọi danh tính 403 | Không nhắm vào AI mà nhắm vào IP nguồn: cơ sở dữ liệu threat intelligence, chặn theo địa lý, chặn dải IP datacenter. 5 site trong mẫu thuộc loại này (2 site CloudFront "Request blocked", 1 site Akamai "Access Denied") | Không liên quan GEO nhưng liên quan chuyện ra biển: nếu proxy thu thập của AI đi từ vùng bị chặn, nội dung của bạn mãi mãi không vào được tập dữ liệu |
6. Cửa thứ ba: cửa theo vùng — cùng URL, Quảng Châu 403, Singapore 200
Tầng này dễ bị bỏ qua nhất, nhưng lại chí mạng nhất với doanh nghiệp Trung Quốc đi ra nước ngoài.
Cùng phút, cùng tên miền, cùng UA:
- bic.vn: node Quảng Châu 403, node Singapore 200 (và mở cho hai bot AI nhóm truy xuất)
- techcombank.com.vn: node Quảng Châu không kết nối được (connection reset), node Singapore 200
- prudential.com.vn: node Quảng Châu không tới được, node Singapore 200, và có một llms.txt thật 19,9 KB
- Chiều ngược lại có 1 ca: nhathuoclongchau.com.vn Quảng Châu 200, Singapore 403
Trong 48 tên miền, 17 site (35,4%) không mở được từ cả Quảng Châu và Singapore: 5 site trả trang chặn của Cloudflare / CloudFront / Akamai, phần còn lại là connection reset, timeout, DNS không phản hồi. Trong đó có cả site lớn nội địa Việt Nam (bán lẻ, bán lẻ điện tử) lẫn website doanh nghiệp công nghiệp nặng.
Ý nghĩa rất trực tiếp: "tôi mở được website của tôi" không phải là bằng chứng gì cả. Bạn mở ở Hà Nội thấy 200, nhưng node thu thập của OpenAI ở Frankfurt, của Perplexity ở Virginia, của Google ở California. Bạn đang đo chính bạn, không phải đo chúng.
7. Ba kiểu llms.txt giả: 3 tệp thật, 9 tệp giả
Chúng tôi tiện thể kiểm luôn llms.txt — "bản hướng dẫn site" cho bot AI. Rắc rối là HTTP 200 không có nghĩa là có tệp này.
| Biểu hiện | Sự thật | Mẫu |
|---|---|---|
200, text/plain, nội dung bắt đầu bằng # | ✅ llms.txt thật | prudential.com.vn (19,9 KB), ahamove.com (1,5 KB), vinfastauto.com (101 KB) |
200, 177 byte, nội dung là một đoạn script document.cookie=... | ❌ Trang thử thách của WAF giả dạng 200 — kiểu khó chịu nhất, phía thu thập sẽ hiểu thành "tệp có nhưng rỗng" | 2 site (một ngân hàng và một đơn vị chuyển phát, đều là site lớn) |
200, nhưng text/html, trả về trang chủ | ❌ Fallback định tuyến của SPA: mọi đường dẫn không tồn tại đều trả trang chủ | 6 site trở lên (gồm nhiều ngân hàng và thương hiệu tiêu dùng) |
Vậy: trong 48 site, chỉ 3 có llms.txt thật, chiếm 6,25%. Con số này còn là "cách tính lạc quan" — nếu chỉ tính các site có định tuyến frontend bình thường thì trong 9 "llms.txt giả" không có tệp nào thật.
Đáng chú ý nhất là tệp 101 KB kia: viết khá công phu, liệt kê đủ thương hiệu, dòng xe, chính sách, kênh phân phối. Nhưng trang chủ của nó trả 403 từ cả Quảng Châu và Singapore. Bản hướng dẫn dán ở ngoài cửa, cửa thì khóa.
8. Vì sao lại như vậy: ba nguyên nhân thật
1. Cấu hình mặc định là "đừng tới"
Các CDN/WAF lớn từ sau 2024 lần lượt ra mắt công tắc một chạm "chặn thu thập AI", và giá trị mặc định ở một số nhà cung cấp thiên về thận trọng. Quản trị site không làm gì cả, cửa đã đóng một nửa. Bạn hỏi đội vận hành "mình có chặn AI không", họ mở robots.txt ra xem rồi trả lời "không" — chỗ họ xem và chỗ cánh cửa nằm không phải cùng một chỗ.
2. KPI của đội an ninh và đội tăng trưởng ngược nhau
An ninh nhìn "số request bất thường, băng thông, số lần bị crawl" — bot AI trên báo cáo chỉ là một con bot, chặn thêm một con là bớt một phần rủi ro. Tăng trưởng nhìn "AI có nhắc tới mình không". Cả hai đều không sai, chỉ là không ai chịu trách nhiệm cho chỉ số "được trích dẫn", nên nó về 0.
3. Coi "thu thập huấn luyện" và "trích dẫn tìm kiếm" là một
GPTBot (huấn luyện), OAI-SearchBot (chỉ mục tìm kiếm), PerplexityBot (truy xuất thời gian thực), ClaudeBot (huấn luyện + trích dẫn) — hậu quả kinh doanh của bốn cái này hoàn toàn khác nhau: cấm huấn luyện là tư thế bản quyền, cấm truy xuất là tự cắt nguồn khách. Phần lớn site cắt một nhát, tức là dùng tư thế bản quyền để đổi lấy thiệt hại kinh doanh.
9. Tự kiểm trong 60 giây: chạy lại thí nghiệm trên site của bạn
Không cần cài gì, một máy có mạng và ba lệnh:
# 1) Mốc chuẩn: danh tính trình duyệt
curl -s -o /dev/null -w "browser %{http_code}\n" https://ten-mien-cua-ban/
# 2) Bot AI nhóm truy xuất (hai cái này quyết định bạn có được AI trích dẫn)
curl -s -o /dev/null -w "GPTBot %{http_code}\n" \
-A "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko); compatible; GPTBot/1.2; +https://openai.com/gptbot" \
https://ten-mien-cua-ban/
curl -s -o /dev/null -w "PerplexityBot %{http_code}\n" \
-A "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko); compatible; PerplexityBot/1.0; +https://perplexity.ai/perplexitybot" \
https://ten-mien-cua-ban/
# 3) Bản hướng dẫn có thật không
curl -sI https://ten-mien-cua-ban/llms.txt | head -3
Cách đọc: trình duyệt 200 mà danh tính AI 403 → cửa ở WAF, sửa chính sách WAF, đừng sửa robots; đến trình duyệt cũng 403 → bạn đang đo vùng địa lý chứ không phải đo AI, đổi node rồi đo lại; llms.txt trả text/html → coi như không có.
10. Danh mục sửa: xếp theo 30 phút
- (5 phút) Đo trước, lưu bằng chứng.Lưu output ba lệnh trên thành một bản ghi có ngày. Mỗi lần sửa WAF sau này đều đối chiếu được.
- (10 phút) Mở cho bot AI nhóm truy xuất trong WAF.Trên Cloudflare và tương đương, tìm bảng "AI Crawlers / Verified Bots", đặt
OAI-SearchBot,PerplexityBot,Claude-SearchBotthành Allow; nhóm huấn luyện (GPTBot,CCBot,Google-Extended) giữ nguyên tư thế bản quyền của bạn. Đây là cách cắt duy nhất đúng cho "muốn được trích dẫn, không muốn bị huấn luyện". - (5 phút) Viết Allow tường minh trong robots.txt.Đừng chỉ dựa vào "không ghi cấm", ghi rõ:
User-agent: OAI-SearchBot Allow: / User-agent: PerplexityBot Allow: / User-agent: Claude-SearchBot Allow: / - (10 phút) Đặt một llms.txt thật.Văn bản thuần, mở đầu bằng
# Tên thương hiệu, ghi rõ: bạn là ai, làm gì, phủ vùng nào, URL tuyệt đối của các trang dữ kiện then chốt, ngày cập nhật. Đặt ở thư mục gốc, trả vềtext/plain, đừng để định tuyến frontend nuốt mất. - (mỗi tháng 1 lần) Đo lại.Rule WAF sẽ bị "gia cố an ninh" đưa về như cũ; chính sách mặc định thay đổi theo bản nâng cấp nền tảng. Cổng chặn là thứ sống, không phải công trình một lần.
11. Việc này nằm ở đâu trong GEO
GEO thường bị hiểu thành "viết nhiều nội dung hơn". Nhưng chuỗi này có thứ tự:
Đó cũng là lý do chúng tôi đặt nó ở vị trí đầu tiên trong phương pháp luận: Gartner (02/2024) dự báo lượng tìm kiếm truyền thống năm 2026 giảm 25%, Bain đo 80% người tiêu dùng đã dùng AI cho ít nhất 40% nhu cầu tìm kiếm, iiMedia (02/2026) tính thị trường GEO Trung Quốc từ 34,93 tỷ CNY năm 2025 lên dự báo 94,2 tỷ CNY năm 2026 — những con số này mô tả dòng lưu lượng đang dịch chuyển. Technode (08/2025) đo độ phủ ChatGPT tại Việt Nam 81%, cho thấy dịch chuyển này đã xảy ra ở Việt Nam.
Lưu lượng chảy về đâu thì cửa phải mở về đó. Khi 35,4% site đến việc "để máy tới lấy một lần" còn không làm được, thì bàn chuyện "viết nội dung AIGC thế nào" là xây trên không.
12. Biên giới và miễn trừ
Phải nói cho đủ, nếu không bài này thành bài quảng cáo:
- Một thời điểm.Trong một giờ ngày 31/10/2026, mỗi danh tính lấy trang chủ một lần, không lấy mẫu lặp. Rule WAF sẽ đổi; 403 hôm nay có thể thành 200 ngày mai và ngược lại.
- Đo trang chủ.Trang chủ 403 không có nghĩa cả site 403 (trang trong có thể được mở), và trang chủ 200 cũng không có nghĩa trang trong không bị chặn.
- Danh tính UA ≠ bot thật.Xem mục 5: 403 với Googlebot ở nhóm B là hệ quả của việc xác thực bằng IP, không phải chặn Google.
- Không xếp hạng, không cho điểm trừ.Bài chỉ dùng tên miền để mô tả hiện tượng kỹ thuật, không xếp thứ tự tốt xấu, không nhận tiền để ảnh hưởng kết quả. Các site được nêu ở đây là mẫu kỹ thuật, không phải "học sinh kém".
- Cả hai node đều không phải lối ra thật của bot AI.Quảng Châu và Singapore chỉ dùng để đối chiếu xem "cửa theo vùng" có tồn tại hay không, không đại diện cho đường thu thập thực tế của OpenAI / Perplexity.
Mở cửa rẻ hơn viết nội dung hay rất nhiều, và nhanh hơn rất nhiều. Mà phần lớn thời gian, không ai biết cửa đang khép.