RFC 9309 là tài liệu tiêu chuẩn kỹ thuật do Tổ chức Tiêu chuẩn Kỹ thuật Internet (IETF) ban hành vào tháng 9/2022, quy định chính thức cách viết và diễn giải file robots.txt trên toàn bộ web. Đây là lần đầu tiên trong lịch sử 28 năm, robots.txt có văn bản chuẩn hóa từ một tổ chức quốc tế thay vì chỉ tồn tại như một quy ước không chính thức giữa các công cụ tìm kiếm.
Với người làm SEO, RFC 9309 quan trọng vì nó định nghĩa chính xác những gì được phép, không được phép và cách trình thu thập dữ liệu (bot) phải xử lý từng tình huống, từ wildcard cho đến hành vi khi server trả lỗi HTTP. Nếu bạn cấu hình robots.txt mà không hiểu RFC 9309, nguy cơ block nhầm hoặc để bot đi sai đường là rất cao.
RFC 9309 là gì? #
RFC 9309 là tên viết tắt của “Request for Comments 9309”, tiêu đề đầy đủ là Robots Exclusion Protocol. Tài liệu này được IETF công bố chính thức vào ngày 2 tháng 9 năm 2022, sau quá trình soạn thảo từ năm 2019 với sự tham gia của Martijn Koster (tác giả robots.txt gốc năm 1994) và các kỹ sư của Google.
Trước khi có RFC 9309, robots.txt vận hành theo quy ước không chính thức suốt gần 3 thập kỷ. Các công cụ tìm kiếm khác nhau hiểu và áp dụng các chỉ thị theo cách riêng, dẫn đến nhiều sự không nhất quán. RFC 9309 giải quyết điều đó bằng cách đặt ra một bộ quy tắc pháp lý rõ ràng mà bất kỳ bot tuân thủ nào đều phải theo.
Internet Engineering Task Force (IETF) là tổ chức tiêu chuẩn hóa internet mở, quốc tế, có nhiệm vụ xây dựng và thúc đẩy các tiêu chuẩn kỹ thuật internet tự nguyện, đặc biệt là các tiêu chuẩn tạo thành bộ giao thức TCP/IP.Wikipedia, Internet Engineering Task Force
Lịch sử hình thành: từ quy ước 1994 đến tiêu chuẩn 2022 #
Hiểu lịch sử robots.txt giúp bạn hiểu tại sao RFC 9309 ra đời và tại sao một số bot cũ vẫn có hành vi không nhất quán dù tiêu chuẩn đã có.
- 1994: Martijn Koster đề xuất robots.txt như một cơ chế tự nguyện giúp web crawlers biết nơi không được truy cập. Không có tổ chức nào phê duyệt, chỉ là thoả thuận ngầm giữa các công cụ tìm kiếm.
- 1994 – 2019: Robots.txt tồn tại như “de facto standard” (tiêu chuẩn thực tế), không có văn bản pháp lý. Mỗi công cụ tìm kiếm diễn giải theo cách riêng, đặc biệt là các ký tự đại diện và trường hợp edge case.
- 2019: Google, cùng với Martijn Koster và các bên liên quan, đệ trình bản thảo lên IETF để chuẩn hóa. Bản thảo đi qua nhiều vòng góp ý công khai.
- Tháng 9/2022: IETF công bố RFC 9309 chính thức. Tài liệu mã hóa các thực tiễn đã tồn tại, làm rõ các trường hợp mơ hồ và đặt ra yêu cầu bắt buộc cho bot tuân thủ.
Các chỉ thị được chuẩn hóa trong RFC 9309 #
RFC 9309 xác nhận và làm rõ các chỉ thị sau. Đây là những gì Google Search Central cũng ghi nhận là được hỗ trợ chính thức.
| Chỉ thị | Chức năng | Google hỗ trợ | Lưu ý RFC 9309 |
|---|---|---|---|
User-agent | Xác định bot nào áp dụng rule bên dưới. Dùng * để áp dụng cho tất cả. | Có | Tên User-agent không phân biệt chữ hoa/thường |
Disallow | Cấm bot thu thập URL khớp với pattern chỉ định | Có | Disallow rỗng = cho phép tất cả. Rule cụ thể nhất được ưu tiên. |
Allow | Cho phép bot thu thập URL dù thư mục cha bị Disallow | Có | Khi Allow và Disallow cùng độ dài, Allow được ưu tiên |
Sitemap | Khai báo vị trí sitemap XML để bot tìm thêm URL | Có | Không bắt buộc đặt trong block User-agent cụ thể nào |
Ngoài 4 chỉ thị trên, RFC 9309 xác nhận rằng các chỉ thị như Crawl-delay, Noindex, Nofollow trong robots.txt không nằm trong tiêu chuẩn và Google chính thức không hỗ trợ từ ngày 1/9/2019.
Ký tự đại diện trong RFC 9309 #
RFC 9309 chính thức công nhận 2 ký tự đại diện trong pattern matching của robots.txt. Trước đó, việc dùng wildcard là “không chính thức” dù các bot lớn đều hiểu.
- Dấu
*(asterisk): Đại diện cho bất kỳ chuỗi ký tự nào, kể cả chuỗi rỗng. Ví dụ:Disallow: /san-pham/*?chặn mọi URL trong/san-pham/có chứa dấu chấm hỏi (URL tham số). - Dấu
$(dollar): Ký hiệu kết thúc URL. Ví dụ:Disallow: /*.pdf$chặn mọi URL kết thúc bằng.pdf, nhưng không chặn/tai-lieu.pdf?id=123vì URL đó không kết thúc bằng.pdf.
Việc dùng đúng wildcard giúp viết rules gọn hơn nhiều, thay vì phải liệt kê từng URL riêng lẻ. Đây là lý do tại sao trong khóa học SEO Master, phần Technical Clinic có riêng một buổi về kiểm soát crawl và parameter strategy.
RFC 9309 quy định gì về HTTP status code? #
Đây là phần nhiều SEO không biết, và đây cũng là nguồn gốc của nhiều lỗi crawl nghiêm trọng. RFC 9309 quy định rõ cách bot phải xử lý robots.txt dựa trên HTTP response code khi nó truy cập URL /robots.txt.
| HTTP Status | Ý nghĩa | Hành vi bot theo RFC 9309 |
|---|---|---|
| 2xx (thành công) | File tồn tại và tải được | Bot đọc và tuân theo toàn bộ rules trong file |
| 3xx (redirect) | File bị chuyển hướng | Bot theo tối đa 5 lần redirect để tìm file |
| 4xx (client error) | File không tồn tại hoặc bị cấm truy cập | Bot coi như không có hạn chế nào, được phép crawl toàn bộ site |
| 5xx (server error) | Server lỗi tạm thời | Bot không crawl site, thử lại sau. Coi như toàn site bị block tạm thời. |
Hành vi với HTTP 4xx là điều đáng chú ý nhất: nếu /robots.txt của bạn trả về 404 (không tìm thấy), Googlebot hoàn toàn có quyền crawl mọi thứ trên site. Đây không phải lỗi của bot, đây là đúng theo tiêu chuẩn RFC 9309. Ngược lại, nếu server trả 500, toàn site sẽ không được crawl cho đến khi server phục hồi.
Giới hạn kỹ thuật của file robots.txt theo RFC 9309 #
RFC 9309 cũng đặt ra một số giới hạn kỹ thuật mà người quản trị cần biết:
- Kích thước tối đa: 500 kilobyte (KB). Bot có thể bỏ qua phần nội dung vượt quá giới hạn này. Với site lớn có nhiều rules, cần tối ưu để không vượt ngưỡng.
- Thời gian cache: Nếu server không gửi header cache cụ thể, bot được phép cache robots.txt trong tối đa 24 giờ. Tối thiểu 15 phút. Nghĩa là khi bạn sửa robots.txt, bot có thể mất đến 24 giờ mới áp dụng thay đổi.
- Mã hóa ký tự: File phải sử dụng UTF-8. Ký tự đặc biệt trong URL phải được percent-encode.
- Độ ưu tiên rule: Khi có nhiều rule cùng áp dụng cho một URL, rule có path dài nhất được ưu tiên. Nếu bằng nhau,
AllowthắngDisallow.
RFC 9309 và AI crawlers năm 2025-2026 #
Kể từ năm 2023, hàng loạt AI chatbot và search engine dựa trên AI đã triển khai các bot thu thập dữ liệu riêng. RFC 9309 là tiêu chuẩn mà các bot này về mặt lý thuyết phải tuân theo, tuy nhiên mức độ tuân thủ trên thực tế vẫn khác nhau.
Đây là một trong những lý do tại sao trong dịch vụ SEO cho AI Overviews, việc kiểm soát quyền truy cập của từng bot là một bước riêng biệt trong quy trình triển khai.
| Bot AI | User-agent | Tuân thủ RFC 9309 | Mục đích |
|---|---|---|---|
| Googlebot | Googlebot | Có (đồng tác giả RFC 9309) | Google Search + AI Overviews |
| GPTBot | GPTBot | Có (tuyên bố tuân thủ) | OpenAI / ChatGPT training + search |
| ClaudeBot | anthropic-ai, ClaudeBot | Có (tuyên bố tuân thủ) | Anthropic / Claude training |
| PerplexityBot | PerplexityBot | Có | Perplexity AI search |
| Bingbot | Bingbot | Có | Microsoft Bing + Copilot |
Nếu bạn muốn cho phép Google nhưng chặn GPTBot để bảo vệ nội dung chống dùng cho training AI, cú pháp đúng theo RFC 9309 là:
User-agent: Googlebot
Allow: /
User-agent: GPTBot
Disallow: /
User-agent: *
Allow: /
Sitemap: https://www.domain.com/sitemap.xml
Lưu ý quan trọng: Chặn bot trong robots.txt không ngăn nội dung của bạn được AI trích dẫn nếu nội dung đó đã bị thu thập trước đó hoặc qua nguồn khác. Robots.txt chỉ kiểm soát crawl, không kiểm soát những gì đã tồn tại trong cơ sở dữ liệu của AI.
Sai lầm phổ biến khi cấu hình robots.txt không đúng RFC 9309 #
Robots.txt: chặn crawl pattern vô hạn, dùng cho URL không muốn bot vào. Rule cứng: robots Disallow không giống noindex. URL bị Disallow vẫn có thể index nếu có link trỏ về. Không chặn CSS/JS quan trọng vì gây render fail.Văn Hùng Danh, File Robots.txt là gì? – VLINK ASIA
Dưới đây là 7 lỗi hay gặp nhất khi cấu hình robots.txt mà RFC 9309 giúp làm rõ:
- Nhầm Disallow với noindex: Disallow ngăn bot crawl, nhưng URL vẫn có thể xuất hiện trong kết quả tìm kiếm nếu có link từ nơi khác trỏ về. Muốn không index, phải dùng thẻ
meta robots noindex. - Chặn CSS và JavaScript: Nếu Disallow file CSS/JS, Googlebot không render được trang, dẫn đến nội dung không accessible và có thể bị đánh giá thấp.
- Thêm URL noindex vào sitemap: Một URL vừa bị noindex vừa có trong sitemap là mâu thuẫn. Google Search Console sẽ báo cảnh báo.
- Dùng Noindex trong robots.txt: Google đã bỏ hỗ trợ chỉ thị này từ tháng 9/2019. RFC 9309 cũng không công nhận. Dùng
meta robotstrong thẻ HTML thay thế. - Không kiểm tra robots.txt sau khi sửa theme/plugin: Một số plugin WordPress có thể tự ghi đè robots.txt. Kiểm tra định kỳ bằng Google Search Console.
- Thiếu đường dẫn sitemap: Không khai báo
Sitemap:trong robots.txt khiến các bot không phải Google (Bing, PerplexityBot…) khó tìm sitemap hơn. - Dùng Disallow: / trên môi trường production: Thao tác này block toàn bộ site. Thường xảy ra khi copy robots.txt từ môi trường staging sang production mà không kiểm tra.
robots.txt chuẩn RFC 9309 cho WordPress với RankMath #
Với WordPress dùng SEO Master và RankMath Pro, bạn cấu hình robots.txt tại: Dashboard > RankMath SEO > General Settings > Edit robots.txt.
Mẫu robots.txt chuẩn RFC 9309 cho WordPress thông thường:
User-agent: *
Allow: /wp-content/uploads/
Disallow: /wp-admin/
Disallow: /?s=
Disallow: /search/
Disallow: /wp-content/plugins/
Disallow: /*?replytocom=
Disallow: /*?
User-agent: AhrefsBot
Disallow: /
User-agent: SemrushBot
Disallow: /
Sitemap: https://www.domain.com/sitemap_index.xml
Giải thích các dòng quan trọng:
Allow: /wp-content/uploads/: cho phép bot crawl hình ảnh (cần thiết cho Google Images).Disallow: /wp-admin/: chặn khu vực quản trị, bảo mật cơ bản.Disallow: /?s=: chặn trang kết quả tìm kiếm nội bộ. Đây là nguồn URL rác rất lớn.Disallow: /*?: chặn toàn bộ URL tham số. Cần kiểm tra kỹ trước khi dùng nếu site có trang lọc sản phẩm cần index.- Khai báo Sitemap theo RFC 9309: không cần lặp trong từng block User-agent riêng.
Sau khi sửa robots.txt, kiểm tra lại bằng GSC URL Inspection trước khi coi là xong. Đây là bước bắt buộc trong SEO Launchpad và là phần của Technical Clinic trong SEO Master.
RFC 9309 và quyết định triển khai dịch vụ SEO #
Khi đánh giá một website để triển khai dịch vụ SEO Website, một trong những bước đầu tiên là kiểm tra robots.txt theo 3 tiêu chí:
- File có trả đúng HTTP 200 không? (Nếu 404, toàn site không có hạn chế crawl theo RFC 9309.)
- Có rule nào block nhầm CSS/JS, hình ảnh hoặc URL quan trọng không?
- Sitemap đã được khai báo đúng chưa?
Ba tiêu chí này nằm trong bộ 178 tiêu chí QA Website SEO/AEO do VLINK ASIA xây dựng, dùng để nghiệm thu và audit website trước khi triển khai SEO tổng thể.
Nếu bạn muốn hiểu cách cấu hình robots.txt nằm trong tổng thể chiến lược thu thập dữ liệu và phân bổ Decision Ladder Navigation của website, đó là nội dung thuộc phần Technical SEO chuyên sâu trong khóa học SEO Master.
FAQ: RFC 9309 và robots.txt #
RFC 9309 có bắt buộc không hay chỉ là khuyến nghị? #
RFC 9309 là tiêu chuẩn tự nguyện (voluntary standard). Bot không bắt buộc về mặt pháp lý phải tuân theo, nhưng Googlebot và các bot lớn đều tuyên bố tuân thủ. Nghĩa là với Google Search, bạn có thể tin vào các quy tắc trong RFC 9309 hoạt động đúng.
Nếu robots.txt trả về 404 thì chuyện gì xảy ra? #
Theo RFC 9309, HTTP 4xx (bao gồm 404) được hiểu là không có hạn chế crawl. Googlebot sẽ crawl toàn bộ site như thể không có robots.txt. Đây không phải lỗi của Google, đây là hành vi được định nghĩa trong tiêu chuẩn.
Disallow trong robots.txt có ngăn Google index trang không? #
Không. Disallow chỉ ngăn bot crawl. Google vẫn có thể biết URL đó tồn tại qua các link từ trang khác và có thể hiển thị URL đó trong kết quả tìm kiếm (dưới dạng không có mô tả). Muốn không index, phải dùng thẻ meta robots noindex.
Crawl-delay có được RFC 9309 hỗ trợ không? #
Không. RFC 9309 không đưa Crawl-delay vào tiêu chuẩn. Google chính thức không hỗ trợ chỉ thị này. Nếu bạn cần giới hạn tốc độ crawl của Googlebot, cần cấu hình trong Google Search Console.
Noindex trong robots.txt có hoạt động với Google không? #
Không. Google đã ngừng hỗ trợ noindex trong robots.txt từ ngày 1/9/2019 và RFC 9309 cũng không công nhận chỉ thị này. Dùng thẻ meta robots content=”noindex” trong HTML hoặc X-Robots-Tag trong HTTP header.
Có nên dùng Disallow: / trên staging site không? #
Có, nhưng bắt buộc phải xóa hoặc thay thế trước khi chuyển sang môi trường production. Đây là một trong những lỗi phổ biến nhất gây site bị block crawl hoàn toàn ngay sau khi ra mắt.
Bot AI có phải tuân theo robots.txt theo RFC 9309 không? #
Về mặt kỹ thuật thì có, các bot AI lớn như GPTBot (OpenAI), ClaudeBot (Anthropic), PerplexityBot đều tuyên bố tuân thủ RFC 9309. Tuy nhiên một số scraper nhỏ không tuân thủ. Robots.txt không phải biện pháp bảo mật tuyệt đối.
Cách kiểm tra robots.txt có đúng RFC 9309 không? #
Dùng công cụ Robots Testing Tool trong Google Search Console. Paste URL cần kiểm tra, chọn User-agent và công cụ sẽ cho biết URL đó bị Allow hay Disallow. Đây là cách chính xác nhất vì Google diễn giải theo đúng RFC 9309.
File robots.txt ảnh hưởng thế nào đến crawl budget? #
Robots.txt là công cụ quản lý crawl budget quan trọng nhất. Bằng cách Disallow các URL rác (trang tìm kiếm nội bộ, URL tham số, pagination không cần index), bạn giúp Googlebot tập trung ngân sách crawl vào các trang có giá trị thực sự, đặc biệt quan trọng với site có hàng nghìn URL trở lên.
Kích thước file robots.txt tối đa là bao nhiêu? #
RFC 9309 quy định tối đa 500 kilobyte. Bot có thể bỏ qua phần nội dung vượt quá giới hạn này. Với phần lớn website WordPress thông thường, file robots.txt chỉ vài kilobyte nên không đáng lo ngại. Chỉ cần chú ý với site có quá nhiều rules.
Nên học RFC 9309 và Technical SEO ở đâu để ứng dụng thực tế? #
Phần robots.txt, canonical, crawl budget và các tình huống indexing thực tế được giảng dạy trong buổi 12 (Technical Clinic) của khóa học SEO Master tại VLINK ASIA. Nếu bạn muốn bắt đầu từ nền tảng trước, SEO Launchpad có phần tổng quan kỹ thuật phù hợp cho người mới.
RFC 9309 có liên quan đến AEO và GEO không? #
Có liên quan trực tiếp. Để nội dung được AI trích dẫn (AEO) hoặc xuất hiện trong kết quả của các AI search engine (GEO), bot của các hệ thống đó phải crawl được trang của bạn. Nếu robots.txt block nhầm các bot AI, dù nội dung tốt đến đâu cũng không được AI đọc và trích dẫn.
