Một file thường nhỏ hơn 1 KB, nhưng chỉ cần một dòng sai là có thể xóa sổ toàn bộ traffic của bạn:
User-agent: *
Disallow: /
Bốn ký tự Disallow: / vô tình còn sót lại khi deploy từ staging lên production — và toàn bộ website biến mất khỏi Google. Đây là sức mạnh và cũng là sự nguy hiểm của robots.txt.
Bài viết này giải mã toàn bộ về robots.txt — từ cơ bản đến nâng cao. Bài dành cho: developer quản lý website, technical SEO chuyên về crawl/index, DevOps deploy production, và chủ website muốn hiểu để tránh rủi ro.
Phần 1: Robots.txt là gì?
Theo Google, robots.txt cho crawler biết những URL nào chúng có thể truy cập trên site của bạn. Mục đích chính là tránh làm quá tải server bằng quá nhiều request — nó KHÔNG phải là cơ chế để giấu một trang khỏi Google.
Hiểu lầm lớn nhất
Đây là điều hầu hết mọi người hiểu sai: robots.txt KHÔNG dùng để ẩn trang khỏi Google.
Google cảnh báo rõ: đừng dùng robots.txt như một cách để giấu trang khỏi kết quả tìm kiếm. Lý do: nếu các trang khác trỏ link tới trang đó kèm văn bản mô tả, Google vẫn có thể index URL đó mà không cần truy cập trang. Kết quả: trang vẫn xuất hiện trong search, chỉ là không có snippet/mô tả.
Muốn thật sự chặn một trang khỏi Google, hãy dùng:
<!-- Cách 1: meta noindex -->
<meta name="robots" content="noindex">
# Cách 2: HTTP header
X-Robots-Tag: noindex
# Cách 3: bảo vệ bằng mật khẩu
AuthType Basic
AuthName "Restricted"
AuthUserFile /path/.htpasswd
Require valid-user
Hoặc dùng công cụ Removals trong Search Console.
Phần 2: Robots.txt dùng cho gì?
Loại file | Dùng robots.txt để | Lưu ý |
|---|---|---|
Trang web (HTML, PDF) | Quản lý lưu lượng crawl, tránh crawl trang không quan trọng hoặc trang trùng lặp | KHÔNG dùng để ẩn trang, không thay thế |
File media (ảnh, video, audio) | Quản lý crawl và có thể ngăn ảnh/video xuất hiện trong Google Search | Không ngăn được người khác link tới file |
File tài nguyên (CSS, JS) | Hầu như không nên chặn | Nếu thiếu tài nguyên khiến Google khó hiểu trang, đừng chặn chúng |
Cảnh báo quan trọng: đừng chặn CSS/JS. Nếu chặn, Google sẽ render ra một trang "trần trụi" và đánh giá kém — đây là lỗi kinh điển được nêu trong checklist Technical SEO.
# SAI — Google không render được trang đúng cách
User-agent: Googlebot
Disallow: /css/
Disallow: /js/
Phần 3: Cú pháp
Cấu trúc cơ bản gồm User-agent (chỉ định crawler) và các directive (Disallow, Allow, Sitemap).
Bot của Google | Mục đích |
|---|---|
| Crawler web chính |
| Hình ảnh |
| Video |
| Tin tức |
| Google Ads |
| AdSense |
User-agent: * # áp dụng cho MỌI crawler
Disallow: /admin/ # chặn thư mục
Disallow: /private.html # chặn file cụ thể
Disallow: /*?sort= # chặn URL chứa ?sort=
Allow: /admin/public/ # Allow ghi đè Disallow
Sitemap: https://example.com/sitemap.xml
Wildcard:
*khớp bất kỳ chuỗi ký tự nào:Disallow: /*?utm_source=chặn mọi URL có tham số UTM.$khớp phần cuối URL:Disallow: /*.pdf$chỉ chặn URL kết thúc bằng.pdf—/page.pdfbị chặn, nhưng/page.pdf?ref=fbthì không.#bắt đầu một comment.
Phần 4: Các template thường dùng
Cho phép tất cả (an toàn nhất cho hầu hết website):
User-agent: *
Allow: /
Sitemap: https://example.com/sitemap.xml
WordPress:
User-agent: *
Disallow: /wp-admin/
Disallow: /wp-includes/
Disallow: /readme.html
Disallow: /xmlrpc.php
Disallow: /*?replytocom=
Allow: /wp-admin/admin-ajax.php
Sitemap: https://example.com/sitemap_index.xml
Ecommerce (chặn tổ hợp filter vô tận để tiết kiệm crawl budget):
User-agent: *
# Chặn khu vực admin và tài khoản
Disallow: /admin/
Disallow: /account/
Disallow: /checkout/
Disallow: /cart/
# Chặn tổ hợp tìm kiếm/lọc vô tận
Disallow: /search?
Disallow: /*?sort=
Disallow: /*?filter=
# Chặn tham số tracking
Disallow: /*?utm_
Disallow: /*?fbclid=
Disallow: /*?gclid=
# Cho phép trang quan trọng
Allow: /san-pham/
Allow: /danh-muc/
Sitemap: https://shop.com/sitemap.xml
Sitemap: https://shop.com/sitemap-products.xml
Chặn AI scraper (xu hướng 2024–2026):
User-agent: *
Allow: /
# Chặn các crawler thu thập dữ liệu huấn luyện AI
User-agent: GPTBot
Disallow: /
User-agent: CCBot
Disallow: /
User-agent: Bytespider
Disallow: /
User-agent: Google-Extended
Disallow: /
Sitemap: https://example.com/sitemap.xml
Cân nhắc kỹ trước khi chặn: việc chặn các bot AI không ảnh hưởng thứ hạng trên Google Search (
Google-Extendedchỉ liên quan tới việc dùng nội dung cho các sản phẩm AI của Google, không phải xếp hạng Search). Tuy nhiên, trong bối cảnh AI Search ngày càng quan trọng, việc chặn hoàn toàn các AI crawler có thể làm giảm cơ hội thương hiệu bạn được AI trích dẫn. Hãy cân nhắc giữa bảo vệ nội dung và độ phủ thương hiệu.
Phần 5: Best practices
Vị trí: robots.txt phải nằm ở root của domain (
https://example.com/robots.txt), không phải trong thư mục con.Encoding: UTF-8, không có BOM.
Phân biệt hoa/thường: URL trong robots.txt case-sensitive —
Disallow: /Admin/không chặn/admin/. Nên dùng lowercase nhất quán.Rule cụ thể hơn sẽ thắng khi có xung đột.
Luôn khai báo Sitemap — có thể có nhiều dòng
Sitemap:.Giữ đơn giản: một file robots.txt tối thiểu, rõ ràng, có comment tốt hơn một file 200 dòng rối rắm.
Test trước khi deploy bằng robots.txt tester hoặc công cụ online.
Phần 6: 10 sai lầm chết người
Sai lầm | Hậu quả | Cách đúng |
|---|---|---|
| Toàn bộ site bị chặn crawl | Checklist deploy + test ngay sau deploy |
Chặn CSS/JS | Google render sai → tụt hạng | Cho phép Googlebot crawl CSS/JS |
Dùng robots.txt để giấu nội dung | URL vẫn xuất hiện trong search; người khác đọc robots.txt là biết bạn có | Dùng mật khẩu + |
Quên directive | Google khó tìm sitemap | Luôn thêm |
Đặt file sai vị trí | Google không tìm thấy | Luôn để ở root |
Chặn chính file sitemap | Google không crawl được sitemap | Đừng chặn |
Rule mâu thuẫn nhau | Hành vi khó đoán | Rule rõ ràng, nhất quán |
Chặn | Mất traffic từ Google Images | Chỉ chặn ảnh không muốn hiển thị |
Chặn tham số quá rộng ( | Chặn mọi URL có query string, kể cả URL hợp lệ | Chặn tham số cụ thể: |
Không test sau deploy | Không phát hiện lỗi kịp thời | Test ngay sau mỗi thay đổi |
Phần 7: Giới hạn của robots.txt
Google nêu ba giới hạn quan trọng:
Không phải crawler nào cũng tuân thủ. Chỉ thị trong robots.txt không thể cưỡng chế hành vi của crawler — việc tuân theo là tùy ở crawler. Googlebot, Bingbot tuân thủ; nhưng spam bot và scraping bot có thể phớt lờ. Robots.txt không bảo vệ nội dung khỏi bot xấu.
Mỗi crawler diễn giải rule khác nhau — cần test với từng công cụ tìm kiếm quan trọng.
Trang bị disallow vẫn có thể được index nếu được link từ site khác — như đã nói ở Phần 1.
Phần 8: Robots.txt theo nền tảng
WordPress có robots.txt ảo mặc định; có thể tùy chỉnh qua plugin (Yoast, Rank Math → Tools → File editor) hoặc tạo file vật lý ở root.
Shopify cho phép chỉnh qua robots.txt.liquid:
{% for group in robots.default_groups %}
{{- group.user_agent }}
{%- for rule in group.rules -%}
{{ rule }}
{%- endfor -%}
{%- if group.sitemap != blank -%}
{{ group.sitemap }}
{%- endif -%}
{% endfor %}
# Custom rules
User-agent: GPTBot
Disallow: /
Next.js: tạo file public/robots.txt.
Nginx (phục vụ trực tiếp từ server):
location = /robots.txt {
add_header Content-Type text/plain;
return 200 "User-agent: *\nAllow: /\n\nSitemap: https://example.com/sitemap.xml\n";
}
Phần 9: Giám sát
Search Console: dùng robots.txt tester để validate cú pháp và test URL cụ thể; xem Crawl Stats (Settings → Crawl Stats) để biết Google fetch robots.txt khi nào và phát hiện vấn đề.
Server log: kiểm tra request tới robots.txt — Google thường fetch file này khoảng mỗi 24 giờ.
grep "robots.txt" /var/log/nginx/access.log | tail -20
Công cụ ngoài: Screaming Frog (test tác động của robots.txt), Sitebulb (audit toàn diện).
Phần 10: Checklist
Giai đoạn | Cần kiểm tra |
|---|---|
Trước deploy | File ở root domain; UTF-8, không BOM; URL lowercase nhất quán; không lỗi cú pháp; có directive |
Kiểm thử | Test bằng robots.txt tester; test nhiều URL (cả allowed lẫn disallowed); xác nhận CSS/JS không bị chặn; xác nhận trang quan trọng không bị chặn |
Production | Deploy cẩn thận; test ngay sau deploy; theo dõi Search Console trong 24h; kiểm tra crawl stats |
Kết luận
Robots.txt là file nhỏ nhưng sức mạnh khổng lồ: một dòng sai có thể phá hủy toàn bộ SEO, một setup đúng giúp tối ưu crawl budget hiệu quả. Năm thông điệp cốt lõi: (1) KHÔNG dùng robots.txt để giấu trang — hãy dùng noindex hoặc mật khẩu; (2) KHÔNG chặn CSS/JS; (3) LUÔN khai báo Sitemap; (4) TEST ngay sau khi deploy; và (5) giữ đơn giản.
Robots.txt là nền tảng của chiến lược Technical SEO và quản lý crawl hiệu quả. Nếu bạn muốn tối ưu Technical SEO và xây dựng website chuẩn Google, hãy tham khảo dịch vụ SEO website hoặc liên hệ Tấn Phát Digital để được tư vấn.
Biên soạn và Việt hóa từ tài liệu Google Search Central về robots.txt. Code sample và best practice thuộc về Tấn Phát Digital.







