- Robots.txt Là Gì?
- Cú Pháp Robots.txt — Từng Directive Giải Thích
- User-agent
- Disallow
- Allow
- Sitemap Directive
- Robots.txt Chuẩn Cho WordPress
- Các Lỗi Robots.txt Nguy Hiểm Nhất
- Kiểm Tra Robots.txt
- Câu hỏi thường gặp về Robots.txt
- Robots.txt có thể ẩn nội dung khỏi Google hoàn toàn không?
- Có nên disallow category pages và tag pages không?
- Robots.txt và noindex tag khác nhau thế nào?
- Cần cập nhật robots.txt bao lâu một lần?
Nếu sitemap XML là “bản đồ chỉ đường” cho Googlebot — thì robots.txt là “bảo vệ cổng” kiểm soát Googlebot có được phép vào những khu vực nào. Một file robots.txt được cấu hình đúng giúp bảo vệ các trang nhạy cảm và tối ưu crawl budget. Một file robots.txt bị cấu hình sai có thể vô tình block toàn bộ website khỏi Google — đây là một trong những lỗi Technical SEO nghiêm trọng nhất và thực sự đã xảy ra với nhiều website lớn. Bài viết này hướng dẫn toàn diện về robots.txt — từ cú pháp đến các pitfalls (bẫy kỹ thuật) cần tránh.
Robots.txt Là Gì?
Robots.txt (file văn bản đặt tại thư mục gốc của website (ví dụ: https://seonhanh.top/robots.txt, chứa các chỉ thị (directives) cho web crawlers biết trang nào được phép và không được phép crawl, theo chuẩn Robots Exclusion Protocol) là file đơn giản nhưng cực kỳ quyền lực.
Điểm quan trọng cần hiểu ngay:
- Robots.txt kiểm soát crawling, không kiểm soát indexing — Googlebot có thể index trang bị disallowed trong robots.txt nếu có external links trỏ đến trang đó
- Robots.txt là request, không phải enforcement (yêu cầu, không phải bắt buộc) — bots (robot tự động) tuân thủ quy tắc theo thiện chí, không bị ép buộc kỹ thuật. Malicious bots (bot độc hại) thường bỏ qua robots.txt
- Robots.txt không ẩn nội dung khỏi người dùng — chỉ ảnh hưởng đến bots
Cú Pháp Robots.txt — Từng Directive Giải Thích
Cấu trúc cơ bản:
User-agent: *
Disallow: /admin/
Disallow: /checkout/
Allow: /public/
Sitemap: https://seonhanh.top/sitemap.xml
User-agent
User-agent (tác nhân người dùng — identifier của bot) chỉ định quy tắc áp dụng cho bot nào:
User-agent: *— áp dụng cho tất cả botsUser-agent: Googlebot— chỉ áp dụng cho GooglebotUser-agent: Bingbot— chỉ áp dụng cho BingUser-agent: Googlebot-Image— chỉ áp dụng cho bot crawl ảnh của Google
Disallow
Disallow (không cho phép) chỉ định path (đường dẫn) không được crawl:
Disallow: /— block toàn bộ website ⚠️ CỰC KỲ NGUY HIỂMDisallow: /admin/— block thư mục /admin/ và tất cả subpathsDisallow: /wp-admin/— block WordPress admin (phổ biến và đúng)Disallow: /?s=— block search results pages
Allow
Allow (cho phép) được dùng để cho phép một path cụ thể bên trong một path bị disallow:
User-agent: Googlebot
Disallow: /wp-admin/
Allow: /wp-admin/admin-ajax.php
admin-ajax.php (file PHP xử lý AJAX requests của WordPress) cần được Googlebot truy cập để render trang đúng — đây là exception (ngoại lệ) cổ điển trong robots.txt của WordPress.
Sitemap Directive
Khai báo vị trí sitemap XML — Googlebot đọc được ngay mà không cần tìm kiếm:
Sitemap: https://seonhanh.top/sitemap.xml
Sitemap: https://seonhanh.top/sitemap-images.xml
Robots.txt Chuẩn Cho WordPress
Template robots.txt tối ưu cho WordPress:
User-agent: *
Disallow: /wp-admin/
Disallow: /wp-includes/
Disallow: /?s=
Disallow: /search/
Disallow: /trackback/
Disallow: /feed/
Disallow: /comments/feed/
Disallow: /author/
Allow: /wp-admin/admin-ajax.php
User-agent: Googlebot-Image
Allow: /wp-content/uploads/
Sitemap: https://seonhanh.top/sitemap.xml
Giải thích các disallow:
/wp-admin/: Trang quản trị WordPress — không cần index/wp-includes/: Core files WordPress (file lõi WordPress) — không có nội dung cần index/?s=: Search results pages (trang kết quả tìm kiếm nội bộ) — duplicate content risk cao/feed/: RSS feeds (định dạng chuẩn phân phối nội dung) — không cần index thường/author/: Author archive pages (trang lưu trữ bài theo tác giả) — thường là thin content
Các Lỗi Robots.txt Nguy Hiểm Nhất
| Lỗi | Code lỗi | Hậu quả | Cách phát hiện |
|---|---|---|---|
| Block toàn bộ website | Disallow: / |
Toàn bộ website biến mất khỏi Google | GSC Coverage Report báo lỗi hàng loạt |
| Block CSS và JavaScript | Disallow: /wp-content/ |
Googlebot không render được trang đúng, ảnh hưởng rankings | GSC → URL Inspection → xem Googlebot nhìn thấy gì |
| Block staging URL lan vào production | Copy robots.txt từ staging có Disallow: / |
Website production bị block | Kiểm tra robots.txt ngay sau mỗi deployment |
| Block hình ảnh | Disallow: /wp-content/uploads/ |
Ảnh không xuất hiện trong Google Images | Ahrefs → Site Audit → kiểm tra image indexing |
Kiểm Tra Robots.txt
- Google Search Console → Settings → robots.txt: Xem file robots.txt Google đang đọc và test URL cụ thể
- Robots.txt Tester trong GSC: Nhập URL bất kỳ để kiểm tra xem Googlebot có được phép crawl không
- Trực tiếp: Truy cập
yoursite.com/robots.txttrong browser để xem nội dung hiện tại - Screaming Frog: Crawl và report tất cả URLs bị block bởi robots.txt
Đọc thêm về sitemap XML, crawling và indexing và technical SEO audit để nắm toàn cảnh.
Câu hỏi thường gặp về Robots.txt
Robots.txt có thể ẩn nội dung khỏi Google hoàn toàn không?
Không hoàn toàn. Robots.txt block crawling nhưng không block indexing. Nếu có external links trỏ đến trang bị disallow, Google có thể vẫn index URL đó (biết URL tồn tại) dù không đọc được nội dung. Trang sẽ xuất hiện trong index nhưng không có snippet (đoạn trích nội dung). Để ẩn hoàn toàn: dùng thẻ noindex kết hợp password protection (bảo vệ bằng mật khẩu). Robots.txt phù hợp nhất để tiết kiệm crawl budget, không phải để bảo mật nội dung.
Có nên disallow category pages và tag pages không?
Phụ thuộc vào chất lượng nội dung của những trang đó. Nếu category pages có unique description và value — không nên disallow. Nếu là thin pages chỉ liệt kê bài viết không có nội dung riêng — có thể cân nhắc disallow hoặc tốt hơn là thêm noindex tag. Disallow qua robots.txt không lý tưởng cho trường hợp này vì Googlebot vẫn có thể index URL nếu có external links — tốt hơn nên dùng noindex meta tag để kiểm soát indexing rõ ràng hơn.
Robots.txt và noindex tag khác nhau thế nào?
Đây là một trong những điểm nhầm lẫn phổ biến nhất trong Technical SEO: robots.txt kiểm soát crawling (Googlebot có đến trang đó không), trong khi noindex kiểm soát indexing (Google có thêm trang vào index không). Mâu thuẫn nguy hiểm: nếu disallow một trang trong robots.txt, Googlebot không thể crawl trang đó để đọc noindex tag — dẫn đến trang có thể vẫn được index. Quy tắc vàng: không dùng robots.txt disallow cho trang muốn noindex — dùng noindex meta tag thay thế.
Cần cập nhật robots.txt bao lâu một lần?
Không có lịch cố định — cập nhật khi cần: thêm section mới cần block (staging subdirectory, new admin area), khi có tính năng mới tạo ra nhiều URLsparameters cần block, hoặc sau khi thay đổi cấu trúc website. Quan trọng: kiểm tra robots.txt sau mỗi lần update WordPress major version, sau mỗi lần thay theme, và sau mỗi lần deploy code mới lên production — đây là những thời điểm robots.txt dễ bị overwrite.
