robots.txt là gì? User-agent và Disallow cơ bản cho SEO kỹ thuật

(Cập nhật: 19 tháng 7, 2026 ) robots.txt User-agent Disallow SEO crawler Sitemap Allow
Kết luận

robots.txt là “bản đồ gợi ý” cho crawler tại gốc site — không phải khóa bảo mật và không thay noindex. Nắm vững hai dòng: User-agent (bot nào) và Disallow (path nào bỏ qua). Staging: Disallow: /. Production: cho crawl trang quan trọng, chặn admin/API nội bộ, khai báo Sitemap. Tạo nhanh bằng robots.txt generator, copy vào root.

Sinh viên deploy Vercel/Netlify lần đầu, freelancer bàn giao landing SME, hay team outsourcing nhận domain client — câu hỏi lặp lại: “robots.txt là gì, mình cần viết gì?” Nhiều bài dài về AI crawler và llms.txt, nhưng phần User-agent + Disallow cơ bản vẫn là chỗ sai nhiều nhất (chặn nhầm cả site, hoặc tưởng Disallow = xóa khỏi Google).

Bài này đi đúng phần nền: cú pháp tối thiểu, mẫu hay dùng, khác noindex, checklist trước khi merge.

Ai cần bài này

  • Dev frontend tự host blog / portfolio Astro, Next, WordPress
  • Freelancer Việt Nam giao site cho khách SME — tránh index staging
  • QA / tech lead review PR có thay đổi crawl
  • Người mới SEO kỹ thuật muốn hiểu file trước khi đụng Search Console nâng cao

robots.txt là gì?

robots.txt là file văn bản công khai tại:

https://ten-mien-cua-ban.com/robots.txt

Crawler “tử tế” (Googlebot, Bingbot…) đọc file này trước khi quyết định fetch URL nào. Nội dung là lời đề nghị (advisory), không phải ACL server.

ĐượcKhông được
Giảm crawl vào /admin/, trang tìm kiếm nội bộ, bản nhápGiấu secret, PDF lương, API key
Gợi ý vị trí SitemapÉp bot xấu / scraper tuân thủ
Tách rule theo User-agentXóa URL đã index chỉ bằng Disallow

Muốn bảo mật → đăng nhập, firewall, không public path. robots.txt chỉ giúp bot lớn tiết kiệm crawl budget và tránh index nhầm khu vực kỹ thuật.


Hai khối nền: User-agent và Disallow

Cú pháp tối thiểu:

User-agent: *
Disallow: /admin/
Allow: /admin/login
Sitemap: https://example.com/sitemap.xml

User-agent — “bot nào?”

Giá trịÝ nghĩa
*Mọi crawler chưa bị rule riêng ghi đè
GooglebotChỉ Google Search
BingbotChỉ Bing
GPTBot / bot AI khácRule riêng nếu bạn muốn hạn chế AI crawl (nâng cao; bài này chỉ nhắc)

Bot đọc nhóm rule khớp tên mình; nếu không có nhóm riêng thì dùng nhóm *.

Disallow — “đừng vào path này”

DòngHiệu ứng thực tế
Disallow: (trống)Cho phép crawl rộng
Disallow: /Chặn gần như mọi path — staging / preprod
Disallow: /admin/Không crawl dưới /admin/
Disallow: /api/Thường dùng cho API nội bộ không cần SERP

Allow là ngoại lệ trong vùng đã Disallow (ví dụ cho phép một URL cụ thể). Độ ưu tiên phụ thuộc độ dài/path cụ thể hơn — khi nghi ngờ, test bằng công cụ Google thay vì đoán.


Ba mẫu copy được ngay

Mẫu robots.txt theo môi trường
Tình huống Nội dung gợi ý Lưu ý
Staging / preview User-agent: * + Disallow: / Tránh index bản nháp; kết hợp auth nếu có data thật
Production mở User-agent: * + Disallow: trống + Sitemap: Site marketing/blog muốn được khám phá tối đa
Production có admin Disallow /admin/, /cgi-bin/, có thể /search Đừng Disallow CSS/JS cần để Google render

Mẫu A — staging (an toàn mặc định)

User-agent: *
Disallow: /

Mẫu B — production blog / landing

User-agent: *
Disallow:

Sitemap: https://example.com/sitemap.xml

Mẫu C — site có khu vực kỹ thuật

User-agent: *
Disallow: /admin/
Disallow: /api/internal/
Disallow: /draft/
Allow: /admin/login

Sitemap: https://example.com/sitemap.xml

Comment # được nhiều parser chấp nhận nhưng không phải mọi bot hiểu giống nhau — giữ file gọn, comment ngắn.


Disallow ≠ noindex (hay nhầm nhất)

robots.txt vs noindex
Cơ chế Kết quả tìm kiếm
Disallow trong robots.txt Bot có thể không fetch HTML → khó đọc meta; URL đã index có thể còn trên SERP dạng “mỏng”
meta robots noindex / header Bot được phép vào trang, rồi bỏ khỏi index theo chỉ thị
Muốn gỡ khỏi Google Cho crawl + noindex (hoặc xóa + 404/410), dùng Removals trên Search Console khi cần gấp

Case thất bại phổ biến: Dev thấy URL nhạy cảm trên Google → thêm Disallow: /secret/ → URL vẫn nằm đó vì Google không vào được để đọc noindex. Đúng thứ tự: bỏ Disallow (tạm), thêm noindex, đợi crawl, rồi mới siết Disallow nếu vẫn muốn giảm crawl.


Checklist deploy (freelancer / outsourcing)

  1. File nằm đúng gốc host (/robots.txt), không phải /blog/robots.txt
  2. Staging ≠ production: preview Vercel có Disallow: / hoặc bảo vệ bằng auth
  3. Không chặn /_next/static, /assets, CSS/JS cần render
  4. Sitemap: dùng HTTPS + domain thật, không localhost
  5. Sau khi sửa: curl -I https://domain/robots.txt và kiểm tra URL Inspection
  6. Trang pháp lý / chính sách cần index thì không Disallow nhầm

Case study: index nhầm subdomain preview

Team giao SME tại TP.HCM dùng *.vercel.app. Một lần merge nhầm robots production (Disallow trống) lên branch preview → Google index bản tiếng Việt chưa proofread. Sửa: mọi preview mặc định Disallow: /, production mới mở; thêm X-Robots-Tag: noindex trên header staging. Hai lớp — robots.txt không đủ một mình khi CDN cache header.


Tạo file bằng generator (không đoán cú pháp)

Thay vì gõ tay dễ thiếu dòng, mở robots.txt generator:

  1. Điền User-agent (* hoặc Googlebot)
  2. Thêm từng dòng Disallow / Allow
  3. Gắn Sitemap URL nếu production
  4. Bấm tạo → sao chép toàn bộ → commit thành public/robots.txt (hoặc cấu hình host)

Công cụ chạy trên trình duyệt — phù hợp khi bạn đang ngồi quán cafe với laptop client, không cần upload config lên service lạ. Sau khi deploy, đối chiếu lại bằng trình duyệt mở đúng URL gốc.


Lỗi thường gặp (và cách tránh)

LỗiHệ quảCách tránh
Disallow: / lên productionMất organic gần như toàn bộReview env trước merge
Disallow toàn bộ rồi kỳ vọng noindexURL “ma” còn trên SERPDùng noindex đúng nghĩa
Sitemap relative (/sitemap.xml)Một số bot bỏ quaURL tuyệt đối https://…
Chặn / nhưng Allow trang quan trọng sai thứ tựHành vi khó đoánGiữ rule đơn giản; test
Copy file mẫu nước ngoài có Disallow: /wp-admin vào Next.jsKhông hại nhưng tạo ảo giác an toànViết path đúng stack của bạn

Tóm tắt

  • robots.txt = gợi ý crawl tại gốc domain, không phải bảo mật
  • Nhớ hai từ khóa: User-agent (ai) và Disallow (path nào bỏ)
  • Staging: Disallow: / · Production: mở trang cần SEO + chặn admin
  • Disallow không xóa index — noindex mới là chỉ thị “đừng hiện trên SERP”
  • Sinh file sạch bằng /vi/tools/robots-txt-generator/ rồi kiểm tra trên domain thật

Liên kết liên quan