Robots.txt Là Gì?
Robots.txt là một tệp tin văn bản đơn giản nằm ở thư mục gốc của website, có chức năng báo cho các bộ máy tìm kiếm và crawler biết được phần nào của website được phép crawl và phần nào bị cấm. Đây là thành phần đầu tiên mà Googlebot, Bingbot hay bất kỳ crawler nào khác kiểm tra trước khi bắt đầu quét trang web của bạn.
Về bản chất, robots.txt hoạt động dựa trên Robots Exclusion Protocol (REP) — một chuẩn quốc tế được công nhận tới RFC 9309. Nghĩa là tất cả các bộ máy tìm kiếm lớn đều tuân theo quy tắc này, từ Google, Bing cho tới các AI crawler như GPTBot hay ClaudeBot.
Một ví dụ đơn giản:
User-agent: *
Disallow: /admin/
Sitemap: https://example.com/sitemap.xmlĐoạn mã trên báo cho tất cả crawler rằng thư mục /admin/ bị cấm crawl, đồng thời chỉ đến vị trí sitemap. Ngắn gọn, dễ hiểu, nhưng sức mạnh không phải nhỏ.
Vai Trò Của Robots.txt Trong SEO
Nhiều người làm SEO coi thường robots.txt vì nghĩ rằng chỉ cần viết content và xây backlink là đủ. Đây là sai lầm nghiêm trọng. Robots.txt ảnh hưởng trực tiếp đến khả năng crawl và index của website — hai yếu tố nền tảng trong mọi chiến lược SEO.
1. Điều Khiển Hiệu Suất Crawl (Crawl Budget)
Googlebot có hạn ngân sách crawl (crawl budget) cho mỗi website — nghĩa là chỉ crawl một số lượng URL nhất định trong mỗi lần ghé thăm. Nếu robots.txt để các trang không quan trọng như trang tìm kiếm, tag archive, parameter URL được crawl, bạn làm phung phí crawl budget cho những trang thực sự cần được index.
2. Ngăn Chặn Index Nội Dung Không Mong Muốn
Bạn có trang thanh toán, trang cảm ơn, trang admin, bản preview bài viết? Tất cả những trang này không nên xuất hiện trên kết quả tìm kiếm. Robots.txt giúp chặn crawl ngay từ đầu, trước khi Google kịp phát hiện và index chúng.
3. Bảo Vệ Tài Nguyên Server
Một số bot crawl aggressive có thể gây tải cho server của bạn. Robots.txt với chỉ thị Crawl-delay giúp điều khiển tốc độ crawl, giảm tải cho hệ thống.
4. Hỗ Trợ Quá Trình Index
Khi bạn liên kết đến Sitemap trong robots.txt, Googlebot tìm thấy sitemap nhanh hơn, đẩy quá trình phát hiện và index URL mới nhanh hơn. Đây là cách hiệu quả nhất để báo cho Google biết về tất cả trang quan trọng trên site của bạn.
Cú Pháp Robots.txt — Tất Cả Chỉ Thị Và Cách Sử Dụng
1. User-agent
Chỉ định crawler nào sẽ bị ảnh hưởng bởi các luật cho bên dưới. Dấu * nghĩa là tất cả crawler.
User-agent: * # Áp dụng cho tất cả crawler
User-agent: Googlebot # Chỉ áp dụng cho Googlebot
User-agent: GPTBot # Chỉ áp dụng cho GPTBot của OpenAI2. Disallow
Cấm crawler truy cập một đường dẫn cụ thể. Để trống nghĩa là cấm toàn bộ site.
Disallow: /admin/ # Cấm crawl thư mục admin
Disallow: /search? # Cấm crawl các trang tìm kiếm có parameter
Disallow: / # Cấm crawl toàn bộ site (CẨN THẬN!)3. Allow
Cho phép crawl một đường dẫn cụ thể, ngay cả khi nằm trong một thư mục bị Disallow.
User-agent: *
Disallow: /private/
Allow: /private/public-info.htmlTrong ví dụ trên, toàn bộ thư mục /private/ bị cấm, nhưng file public-info.html vẫn được phép crawl.
4. Sitemap
Chỉ ra vị trí sitemap XML. Đây là chỉ thị duy nhất không thuộc về bất kỳ User-agent nào — nó toàn cục. Bạn có thể khai báo nhiều sitemap.
Sitemap: https://example.com/sitemap.xml
Sitemap: https://example.com/sitemap-images.xml5. Crawl-delay
Yêu cầu crawler đợi một số giây nhất định giữa các request. Chú ý rằng Google không tuân theo chỉ thị này — Googlebot tự điều chỉnh tốc độ crawl. Nhưng một số bot khác như Bingbot vẫn tôn trọng Crawl-delay.
User-agent: *
Crawl-delay: 10Các Ví Dụ Robots.txt Phổ Biến
Ví Dụ 1: Website Blog Đơn Giản
User-agent: *
Disallow: /wp-admin/
Disallow: /wp-includes/
Disallow: /?s=
Disallow: /search
Sitemap: https://example.com/sitemap_index.xmlVí Dụ 2: Website Thương Mại Điện Tử
User-agent: *
Disallow: /cart/
Disallow: /checkout/
Disallow: /my-account/
Disallow: /search?
Disallow: /*?sort=
Disallow: /*?filter=
Sitemap: https://example.com/sitemap.xmlVí Dụ 3: Chặn Tất Cả Crawler
User-agent: *
Disallow: /Lưu ý: Chỉ sử dụng cấu hình này trên môi trường staging hoặc development. Đừng bao giờ dùng cho site production trừ khi bạn muốn ẩn toàn bộ site khỏi kết quả tìm kiếm.
Ví Dụ 4: Cho Phép Googlebot, Chặn Bot Khác
User-agent: Googlebot
Allow: /
User-agent: Bingbot
Allow: /
User-agent: *
Disallow: /
Sitemap: https://example.com/sitemap.xmlCách Kiểm Tra Robots.txt Với Google Search Console
Kiểm tra robots.txt không phải là việc đọc lại file để xem nó có lỗi cú pháp không. Google cung cấp công cụ chính thức để kiểm tra và debug robots.txt ngay trong Google Search Console.
Các Bước Thực Hiện
- Đăng nhập Google Search Console — Chọn property của website bạn.
- Vào mục “robots.txt Tester” — Nằm trong phần “Settings” hoặc tìm trong search bar.
- Kiểm tra cú pháp — Công cụ sẽ tự động highlight lỗi cú pháp nếu có. Lưu ý các ký tự đặc biệt, khoảng trắng thừa.
- Test URL — Nhập một URL bất kỳ và chọn User-agent để xem URL đó bị chặn hay được phép. Đây là cách tốt nhất để kiểm tra xem một trang cụ thể có được Google crawl hay không.
- Submit nếu cần — Sau khi sửa, nhấn “Submit” để yêu cầu Google lấy robots.txt mới.
Ngoài ra, bạn cũng nên thực hiện SEO Audit toàn diện định kỳ để đảm bảo robots.txt và các yếu tố SEO kỹ thuật khác đều ổn định.
Robots.txt Và AI Crawlers — Block Hay Cho Phép?
Đây là câu hỏi nóng của năm 2024–2026. Sự xuất hiện của các AI chatbot như ChatGPT, Claude, Perplexity đã tạo ra một lượng crawler mới. Các công ty AI crawl nội dung web để huấn luyện mô hình ngôn ngữ lớn (LLM) và cung cấp câu trả lời cho người dùng.
Vấn đề là: Bạn có muốn nội dung của mình được sử dụng để huấn luyện AI không? Và bạn có muốn website xuất hiện trong kết quả của các AI search engine không?
Danh Sách Các AI Crawler Phổ Biến
- GPTBot — Crawler của OpenAI, dùng để huấn luyện mô hình GPT. User-agent:
GPTBot - OAI-SearchBot — Crawler của OpenAI cho tính năng search trong ChatGPT. User-agent:
OAI-SearchBot - ClaudeBot — Crawler của Anthropic cho Claude. User-agent:
ClaudeBot - PerplexityBot — Crawler của Perplexity AI. User-agent:
PerplexityBot - Google-Extended — User-agent đặc biệt của Google, dùng để đánh dấu nội dung cho phép/không cho phép dùng trong huấn luyện AI (Gemini, Vertex AI).
- Bytespider — Crawler của ByteDance (TikTok). User-agent:
Bytespider - CCBot — Crawler của Common Crawl, nguồn dữ liệu mà nhiều mô hình AI mở dùng để huấn luyện.
3 Hướng Đi Phổ Biến
Chọn 1: Chặn Tất Cả AI Crawler (Bảo Vệ Nội Dung)
User-agent: GPTBot
Disallow: /
User-agent: ClaudeBot
Disallow: /
User-agent: PerplexityBot
Disallow: /
User-agent: Google-Extended
Disallow: /
User-agent: Bytespider
Disallow: /
User-agent: CCBot
Disallow: /Phù hợp với: Website bản quyền, bảo vệ IP, không muốn AI dùng nội dung để huấn luyện. Nhiều site báo chí lớn như New York Times, CNN đã chọn hướng này.
Chọn 2: Cho Phép Tất Cả (Tối Ưu Hóa Khả Năng Hiển Thị)
# Không cần cấu hình gì thêm
# Mặc định robots.txt cho phép tất cả crawler
# Hoặc tỏ minh:
User-agent: GPTBot
Allow: /
User-agent: ClaudeBot
Allow: /
User-agent: PerplexityBot
Allow: /
User-agent: Google-Extended
Allow: /Phù hợp với: Blog cá nhân, website muốn tăng lượng traffic từ AI search, muốn nội dung được nhiều người (và AI) tham khảo nhất.
Chọn 3: Chọn Lọc — Cho Search Bot, Chặn Training Bot
# Cho phép AI search engine để xuất hiện trong kết quả
User-agent: OAI-SearchBot
Allow: /
User-agent: PerplexityBot
Allow: /
# Chặn training bot
User-agent: GPTBot
Disallow: /
User-agent: CCBot
Disallow: /
User-agent: Google-Extended
Disallow: /Đây là hướng đi thông minh nhất hiện nay. Bạn vẫn xuất hiện trong ChatGPT Search và Perplexity, nhưng nội dung của bạn không bị dùng để huấn luyện mô hình AI miễn phí cho các công ty công nghệ.
Lưu Ý Về OAI-SearchBot Vs GPTBot
OpenAI phân biệt rõ ràng giữa hai bot này. OAI-SearchBot dùng để hiển thị website trong kết quả tìm kiếm của ChatGPT — tương tự như Googlebot. GPTBot dùng để crawl nội dung huấn luyện mô hình. Bạn có thể cho phép OAI-SearchBot (để xuất hiện trong search) nhưng chặn GPTBot (để không bị dùng huấn luyện) — đây là lập luận độc lập hơn so với Google, vì Google-Extended là một user-agent riêng để điều khiển việc training.
Các Lỗi Thường Gặp Khi Cấu Hình Robots.txt
Lỗi 1: Chặn Nhầm Toàn Bộ Site
Đây là lỗi nguy hiểm nhất. Chỉ một dòng Disallow: / là ẩn toàn bộ website khỏi Google. Nhiều lần webmaster dùng thử nghiệm staging, rồi quên đổi sang production.
Cách khắc phục: Luôn kiểm tra robots.txt sau khi deploy. Dùng Google Search Console để test trước khi đưa lên live.
Lỗi 2: Quên Khai Báo Sitemap
Khai báo sitemap trong robots.txt là best practice. Nhiều webmaster chỉ tích hợp sitemap qua Google Search Console mà quên rằng khai báo trong robots.txt giúp tất cả các search engine khác cũng tìm thấy.
Cách khắc phục: Luôn thêm dòng Sitemap: ở cuối file robots.txt.
Lỗi 3: Cú Pháp Sai
Một số lỗi cú pháp phổ biến:
- Thiếu dấu
/ở đầu đường dẫn:Disallow: adminthay vìDisallow: /admin/ - Khoảng trắng thừa giữa
User-agent:và giá trị - Dùng hoa thường nhầm:
User-agent: googlebotthay vìUser-agent: Googlebot - Dùng regular expression — robots.txt không hỗ trợ regex, chỉ hỗ trợ
*và$
Lỗi 4: Chặn CSS/JS Không Cần Thiết
Googlebot cần crawl CSS và JavaScript để render trang đúng. Nếu bạn chặn /wp-includes/ hoặc /assets/, Google không thể render trang đúng và có thể đánh giá sai trải nghiệm của người dùng.
Cách khắc phục: Chỉ chặn những thư mục thực sự không cần thiết. Đảm bảo CSS, JS, và hình ảnh được phép crawl.
Lỗi 5: Không Phân Biệt Robots.txt Và Meta Robots
Nhiều người hiểu nhầm rằng robots.txt có thể ngăn index. Nó không thể. Robots.txt chỉ ngăn crawl. Nếu Google đã index một trang trước đó và bạn thêm nó vào Disallow, URL vẫn sẽ xuất hiện trong kết quả tìm kiếm (chỉ không có mô tả). Để ngăn index, bạn cần dùng meta robots tag hoặc Canonical URL.
Robots.txt Vs Meta Robots Tag Vs X-Robots-Tag
Bạn cần phân biệt rõ ba phương thức điều khiển crawl/index này:
| Tiêu chí | Robots.txt | Meta Robots Tag | X-Robots-Tag |
|---|---|---|---|
| Mục đích | Điều khiển crawl (có quét hay không) | Điều khiển index (có lên SERP hay không) | Điều khiển index ở cấp HTTP header |
| Vị trí | File robots.txt ở thư mục gốc | Trong thẻ <head> của HTML | Trong HTTP response header |
| Phạm vi | Toàn bộ site hoặc theo thư mục | Theo từng trang | Theo từng URL, cả file non-HTML |
| Ví dụ | Disallow: /private/ | <meta name="robots" content="noindex"> | X-Robots-Tag: noindex |
| Ưu tiên | Crawl trước, index sau | Sau khi đã crawl | Sau khi đã crawl |
Nói cách khác: Robots.txt quyết định Google có vào nhà bạn hay không. Meta robots quyết định Google có được phép nói cho người khác rằng nhà bạn tồn tại hay không. X-Robots-Tag giống Meta robots nhưng áp dụng được cả cho file non-HTML như PDF, hình ảnh.
Một số trang cần phải để noindex nhưng không được Disallow trong robots.txt. Vì nếu bạn Disallow, Google không thể crawl trang để đọc thẻ meta robots, và nó vẫn có thể xuất hiện trong SERP như “URL thuộc tính chấp nhận nội dung”.
Kết Luận
Robots.txt là tệp tin nhỏ nhưng ảnh hưởng lớn. Chỉ với vài dòng text, bạn có thể điều khiển toàn bộ cách Google, Bing, và các AI crawler tiếp cận website của mình. Trong trải nghiệm SEO, đây là thành phần kỹ thuật cơ bản nhưng không thể bỏ qua.
Để tóm tắt, đây là checklist bạn cần làm cho website của mình:
- Kiểm tra robots.txt đã tồn tại ở
https://yourdomain.com/robots.txt - Chỉ Disallow những thư mục thực sự không cần — admin, search, cart, checkout
- Khai báo Sitemap ở cuối file
- Cho phép CSS/JS để Google render trang đúng
- Quyết định chính sách AI crawler — block, allow, hay chọn lọc
- Test với Google Search Console trước khi đưa lên production
- Kiểm tra định kỳ — ít nhất mỗi tháng, đặc biệt sau mỗi lần thay đổi cấu trúc website
Robots.txt không phải là chiến lược SEO hoàn chỉnh, nhưng nó là nền tảng. Nếu nền tảng có vấn đề, mọi thứ bên trên sẽ bị ảnh hưởng. Hãy đảm bảo bạn bắt đầu đúng từ ngày hôm nay.