Tạo Robots.txt
Tạo robots.txt với trình test URL trực tiếp và bộ kiểm tra tuân thủ RFC 9309 (Robots Exclusion Protocol). Có sẵn mẫu WordPress, thương mại điện tử & blog.
Về Công Cụ Tạo Robots.txt
Công cụ tạo robots.txt chuyên nghiệp giúp bạn tạo, validate và test file robots.txt cho website. Kiểm soát cách bot công cụ tìm kiếm truy cập website với giao diện dễ sử dụng. Thiết yếu cho tối ưu SEO và bảo mật web.
Robots.txt là gì?
Robots.txt là file văn bản đặt ở thư mục gốc website để báo cho bot công cụ tìm kiếm biết trang hoặc phần nào của website không nên crawl hoặc index. Nó tuân theo Robots Exclusion Protocol (REP) và là một trong những công cụ cơ bản để quản lý mối quan hệ của website với công cụ tìm kiếm.
Mục đích chính:
• Kiểm soát truy cập crawler để tránh quá tải server
• Giữ các trang trùng lặp hoặc giá trị thấp khỏi kết quả tìm kiếm
• Quản lý crawl budget trên các site lớn
• Chặn truy cập vào khu vực riêng tư hoặc staging
• Ngăn index các trang kết quả tìm kiếm hoặc được lọc
Lưu ý: robots.txt KHÔNG phải cơ chế bảo mật - nó chỉ cung cấp hướng dẫn cho bot có ý tốt. Dùng xác thực thích hợp cho nội dung thực sự riêng tư.
Robots.txt hoạt động như thế nào?
Khi bot công cụ tìm kiếm truy cập website, nó sẽ kiểm tra robots.txt đầu tiên tại:
https://yoursite.com/robots.txt
File chứa các chỉ thị xác định:
• User-agent: Bot nào áp dụng quy tắc (* có nghĩa là tất cả bot)
• Disallow: Đường dẫn KHÔNG nên crawl
• Allow: Đường dẫn CÓ THỂ crawl (ghi đè disallow)
• Sitemap: Vị trí sitemap XML
• Crawl-delay: Delay giữa các request (tính bằng giây)
Ví dụ:
User-agent: *
Disallow: /admin/
Disallow: /private/
Allow: /private/public.html
Sitemap: https://yoursite.com/sitemap.xml
Hầu hết công cụ tìm kiếm uy tín tôn trọng các chỉ thị này, nhưng bot độc hại có thể bỏ qua.
Nên chặn những gì trong robots.txt?
Các mục thường chặn:
**Khu Vực Quản Trị:**
• /admin/, /administrator/, /wp-admin/
• /login/, /signin/, /account/
• Control panel và hệ thống backend
**Thư Mục Kỹ Thuật:**
• /cgi-bin/, /tmp/, /temp/
• /includes/, /scripts/
• Khu vực development và staging
**Nội Dung Trùng Lặp:**
• Trang kết quả tìm kiếm (/search/, /?s=)
• Trang sản phẩm được lọc hoặc sắp xếp
• Phiên bản in
• URL có session ID
**Dữ Liệu Riêng Tư:**
• /private/, /confidential/
• Thư mục dữ liệu khách hàng
• Tài liệu nội bộ
**File Tài Nguyên (Đôi Khi):**
• /wp-content/plugins/ (WordPress)
• /wp-includes/ (WordPress core)
ĐỪNG CHẶN:
• File CSS và JavaScript cần để render
• Trang nội dung quan trọng
• Sitemap của bạn
• Trang sản phẩm/danh mục
User-agent là gì?
User-agent xác định bot hoặc crawler cụ thể. Những cái phổ biến:
**Công Cụ Tìm Kiếm:**
• Googlebot - Bot web của Google
• Bingbot - Crawler của Microsoft Bing
• Slurp - Crawler của Yahoo
• DuckDuckBot - Crawler của DuckDuckGo
• Baiduspider - Baidu (công cụ tìm kiếm Trung Quốc)
• YandexBot - Yandex (công cụ tìm kiếm Nga)
**Mạng Xã Hội:**
• facebookexternalhit - Crawler của Facebook
• Twitterbot - Crawler của Twitter
• LinkedInBot - Crawler của LinkedIn
**Công Cụ SEO:**
• AhrefsBot - Công cụ SEO Ahrefs
• SemrushBot - Công cụ SEO SEMrush
• MJ12bot - Majestic SEO
**Khác:**
• * - Wildcard cho tất cả bot
Bạn có thể đặt quy tắc khác nhau cho các user-agent khác nhau:
User-agent: Googlebot
Disallow: /private/
User-agent: *
Disallow: /admin/
Sự khác biệt giữa Allow và Disallow là gì?
**Disallow:**
• Báo bot KHÔNG crawl các đường dẫn được chỉ định
• Thường được sử dụng hơn
• Ví dụ: Disallow: /admin/ (chặn tất cả trang admin)
**Allow:**
• Cho phép rõ ràng truy cập vào đường dẫn được chỉ định
• Dùng để ghi đè quy tắc Disallow rộng hơn
• Tạo ngoại lệ cho các phần bị chặn
Ví dụ trường hợp sử dụng:
User-agent: *
Disallow: /private/
Allow: /private/blog/
Điều này chặn thư mục /private/ nhưng cho phép /private/blog/ được crawl.
**Lưu ý quan trọng:**
• Allow có ưu tiên hơn Disallow cho cùng đường dẫn
• Đường dẫn cụ thể hơn ghi đè đường dẫn chung
• Disallow rỗng có nghĩa là cho phép tất cả
• Thứ tự quan trọng - quy tắc cụ thể hơn trước
Có nên bao gồm sitemap trong robots.txt không?
Có, hoàn toàn nên! Bao gồm URL sitemap trong robots.txt là thực hành tốt:
Sitemap: https://yoursite.com/sitemap.xml
**Lợi ích:**
• Giúp công cụ tìm kiếm khám phá tất cả trang của bạn
• Cải thiện hiệu quả crawl
• Đảm bảo nội dung mới được tìm thấy nhanh chóng
• Hoạt động cùng với gửi sitemap trong Search Console
• Có thể bao gồm nhiều sitemap nếu cần
**Bạn có thể liệt kê nhiều sitemap:**
Sitemap: https://yoursite.com/sitemap.xml
Sitemap: https://yoursite.com/sitemap-images.xml
Sitemap: https://yoursite.com/sitemap-news.xml
Đây là khuyến nghị - công cụ tìm kiếm vẫn sẽ crawl website ngay cả không có sitemap, nhưng bao gồm nó cải thiện hiệu quả indexing.

Làm thế nào để test robots.txt?
**Phương Pháp Test:**
1. **Test Thủ Công:**
• Truy cập https://yoursite.com/robots.txt trực tiếp
• Xác minh load đúng
• Kiểm tra lỗi cú pháp
2. **Google Search Console:**
• Điều hướng đến Coverage > robots.txt Tester
• Nhập URL để test với quy tắc
• Xem đường dẫn nào bị chặn/được phép
• Gửi để indexing sau khi xác minh
3. **Bing Webmaster Tools:**
• Chức năng test tương tự
• Xác minh truy cập Bingbot
4. **Validator Online:**
• Dùng validator robots.txt của bên thứ ba
• Kiểm tra cú pháp và logic
5. **Công Cụ Này:**
• Dùng trình test URL tích hợp
• Test đường dẫn cụ thể với quy tắc
• Xác minh hành vi của bot cụ thể
**Thực Hành Test Tốt Nhất:**
• Test trang quan trọng trước
• Xác minh cả đường dẫn bị chặn và được phép
• Test với các user-agent khác nhau
• Giám sát thống kê crawl sau triển khai
• Kiểm tra định kỳ (khuyến nghị hàng quý)
Lỗi robots.txt phổ biến cần tránh?
**Lỗi Nghiêm Trọng:**
1. **Chặn Tài Nguyên Quan Trọng:**
✗ Disallow: /css/
✗ Disallow: /js/
✓ Những thứ này cần cho Google render trang đúng
2. **Chặn Toàn Bộ Site:**
✗ User-agent: *
✗ Disallow: /
✓ Điều này chặn mọi thứ - chỉ dùng tạm thời
3. **Quan Niệm Sai Về Bảo Mật:**
✗ Dùng robots.txt để ẩn dữ liệu nhạy cảm
✓ Robots.txt là CÔNG KHAI - dùng xác thực thay thế
4. **Lỗi Cú Pháp:**
✗ Viết hoa không đúng (user-agent vs User-agent)
✗ Thiếu dấu hai chấm hoặc dấu gạch chéo
✗ Khoảng trắng sai vị trí
5. **Vị Trí Sai:**
✗ Đặt robots.txt trong thư mục con
✓ Phải ở root: https://site.com/robots.txt
6. **Chặn Trang Canonical:**
✗ Chặn trang có thẻ canonical trỏ đến nó
7. **Quy Tắc Xung Đột:**
✗ Có câu lệnh Allow/Disallow mâu thuẫn
8. **Không Cập Nhật:**
✗ Để các block development cũ trong production
**Phòng Ngừa:**
• Luôn test trước triển khai
• Kiểm tra định kỳ
• Ghi chú quy tắc
• Dùng công cụ tạo này!
Robots.txt có ảnh hưởng đến thứ hạng SEO không?
Robots.txt không trực tiếp ảnh hưởng thứ hạng, nhưng nó tác động SEO theo những cách quan trọng:
**Hiệu Ứng SEO Tích Cực:**
• **Tối Ưu Crawl Budget** - Hướng bot đến trang quan trọng
• **Ngăn Nội Dung Trùng Lặp** - Chặn kết quả tìm kiếm, filter, v.v.
• **Cải Thiện Chất Lượng Site** - Giữ trang giá trị thấp khỏi index
• **Phân Bổ Tài Nguyên Tốt Hơn** - Tập trung crawler vào nội dung có giá trị
**Hiệu Ứng SEO Tiêu Cực (nếu cấu hình sai):**
• Chặn trang quan trọng = không xếp hạng
• Chặn CSS/JS = render kém trong kết quả tìm kiếm
• Chặn toàn bộ site = không hiển thị
• Chặn sitemap = indexing chậm hơn
**Lưu Ý Quan Trọng:**
• Trang bị chặn vẫn có thể xuất hiện trong kết quả (không có mô tả)
• Dùng thẻ meta robots hoặc noindex để de-index thực sự
• Robots.txt ảnh hưởng đến cái được crawl, không phải được index
• Kết hợp với công cụ SEO khác để có kết quả tốt nhất
**Thực Hành Tốt Nhất:**
Dùng robots.txt chiến lược như một phần của chiến lược SEO toàn diện, không phải giải pháp độc lập.
Disallow trong robots.txt so với noindex và X-Robots-Tag: cái nào thực sự gỡ trang khỏi chỉ mục?
Chúng giải quyết các vấn đề khác nhau, và nhầm lẫn chúng là lỗi SEO phổ biến nhất.
**Disallow trong robots.txt** chỉ kiểm soát việc THU THẬP (crawl): nó báo bot không tải một URL. Nó KHÔNG gỡ trang khỏi chỉ mục. Thực tế, một URL bị Disallow vẫn có thể xuất hiện trong kết quả Google (không có mô tả) nếu các site khác liên kết tới, vì Google chưa bao giờ crawl để thấy noindex.
**meta noindex** (`<meta name="robots" content="noindex">`) và tiêu đề HTTP **X-Robots-Tag** thì kiểm soát việc LẬP CHỈ MỤC (index): chúng báo Google gỡ trang khỏi chỉ mục.
Điểm mấu chốt: để Google THẤY được noindex, trang KHÔNG được bị chặn trong robots.txt. Nếu bạn Disallow URL đó, crawler không bao giờ tải nó và không đọc được noindex, nên trang có thể vẫn nằm trong chỉ mục.
**Quy tắc thực tế:**
• Muốn một trang biến mất khỏi kết quả? Dùng noindex và ĐỪNG chặn nó trong robots.txt.
• Muốn tiết kiệm crawl budget cho URL vô giá trị (bộ lọc, lịch vô hạn)? Dùng Disallow.
• X-Robots-Tag lý tưởng cho file không phải HTML (PDF, ảnh): gửi `X-Robots-Tag: noindex` trong tiêu đề HTTP.
• robots.txt là CÔNG KHAI và mang tính khuyến nghị - đừng dùng để ẩn dữ liệu nhạy cảm; hãy dùng xác thực.
Giới hạn dung lượng robots.txt là bao nhiêu và quy tắc ưu tiên hoạt động ra sao?
**Giới hạn dung lượng:** Google áp dụng tối đa 500 KiB (khoảng 512.000 byte). Nội dung vượt quá sẽ bị bỏ qua. Hãy giữ file gọn nhẹ; phần kiểm tra tuân thủ hiển thị dung lượng theo byte để bạn xác nhận nằm dưới giới hạn.
**Quy tắc ưu tiên (RFC 9309 - khớp dài nhất thắng):** khi nhiều quy tắc Allow và Disallow cùng khớp một URL, bot KHÔNG dùng quy tắc đầu hay cuối trong file. Nó chọn quy tắc có mẫu khớp NHIỀU ký tự nhất. Thứ tự trong file không quan trọng.
Ví dụ:
User-agent: *
Disallow: /folder/
Allow: /folder/public/
Với URL /folder/public/page.html, "/folder/public/" (14 ký tự) dài hơn "/folder/" (8 ký tự), nên Allow thắng và trang được crawl.
**Phân định khi hòa:** nếu Allow và Disallow khớp cùng độ dài, Allow thắng. Trình test URL của công cụ này áp dụng đúng logic này, kể cả ký tự đại diện '*' và '$', nên kết quả khớp với hành vi thực của Googlebot.
Ký tự đại diện '*' và neo '$' hoạt động thế nào trong đường dẫn robots.txt?
Google và các crawler lớn hỗ trợ hai ký tự mẫu trong giá trị đường dẫn (RFC 9309):
**'*' (dấu sao)** khớp với bất kỳ chuỗi ký tự nào, kể cả rỗng.
• `Disallow: /*?sort=` chặn mọi URL chứa "?sort=", ví dụ /products?sort=asc.
• `Disallow: /private*/` chặn /private/, /private-data/, v.v.
**'$' (dấu đô la)** neo phần khớp vào CUỐI đường dẫn.
• `Disallow: /*.pdf$` chặn mọi URL kết thúc bằng .pdf, nhưng không chặn /file.pdf?download=1.
• `Allow: /$` chỉ cho phép trang chủ.
Vì các mẫu trong công cụ này tạo ra quy tắc có ký tự đại diện như /*?sort= và /*?filter=, trình test tích hợp chuyển các mẫu này thành bộ khớp thực: khi test https://example.com/products?sort=asc nó báo đúng là Bị Chặn.
Crawl-delay là gì và có nên dùng không?
Crawl-delay chỉ định số giây bot nên đợi giữa các request:
User-agent: *
Crawl-delay: 10
**Ưu Điểm:**
• Ngăn quá tải server
• Kiểm soát sử dụng bandwidth
• Hữu ích cho hosting chậm hoặc chia sẻ
• Có thể giới hạn bot aggressive
**Nhược Điểm:**
• Có thể làm chậm indexing đáng kể
• Không được Googlebot hỗ trợ (dùng Search Console thay thế)
• Có thể làm hại SEO nếu đặt quá cao
• Các bot khác nhau hiểu khác nhau
**Khuyến Nghị:**
**Đừng dùng nếu:**
• Có hosting/CDN tốt
• Muốn indexing nhanh
• Site nhỏ-trung bình
**Cân nhắc dùng nếu:**
• Gặp vấn đề server từ bot
• Shared hosting với tài nguyên hạn chế
• Site rất lớn với vấn đề crawl budget
• Nhắm đến bot có vấn đề cụ thể
**Thay Thế:**
• Nâng cấp hosting
• Dùng CDN
• Tối ưu hiệu suất site
• Cấu hình tốc độ crawl Google Search Console
• Dùng rate limiting cấp server
**Giá Trị An Toàn:**
• 1-5 giây: Tác động tối thiểu
• 10-30 giây: Làm chậm vừa phải
• 60+ giây: Delay đáng kể, tránh trừ khi cần thiết
