Mỗi khi Googlebot hay một bot tìm kiếm khác ghé thăm website, việc đầu tiên nó làm là đọc một file nhỏ tên robots.txt. File này quyết định bot được đi vào những đường dẫn nào và phải tránh ra những đường dẫn nào. Viết đúng thì tiết kiệm tài nguyên thu thập; viết sai một dòng có thể vô tình chặn cả website khỏi Google.
Robots.txt dùng để làm gì
Theo tài liệu chính thức của Google, robots.txt được dùng chủ yếu để tránh làm quá tải máy chủ bằng số lượng yêu cầu thu thập (crawl request) quá lớn. Bạn dùng nó để chỉ cho bot biết những phần không cần ghé: trang quản trị, trang kết quả lọc trùng lặp, file tạm, các URL tham số sinh ra vô số biến thể.
Điểm quan trọng nhất cần khắc cốt: robots.txt không phải cơ chế để giấu một trang khỏi Google. Nó kiểm soát việc thu thập (crawling — bot đọc nội dung trang), chứ không kiểm soát việc lập chỉ mục (indexing — đưa trang vào kho kết quả tìm kiếm). Hai khái niệm này khác nhau, và nhầm lẫn giữa chúng là nguồn gốc của hầu hết lỗi nghiêm trọng.
Vị trí đặt file và cách bot đọc
File phải nằm ở thư mục gốc của tên miền, truy cập được tại địa chỉ cố định https://tenmien.com/robots.txt. Đặt ở thư mục con (ví dụ /blog/robots.txt) thì bot bỏ qua hoàn toàn. Mỗi tên miền và mỗi tên miền phụ (subdomain) cần file riêng của nó.
File là văn bản thuần, mã hoá UTF-8. Bot đọc từng nhóm chỉ dẫn, mỗi nhóm bắt đầu bằng một dòng User-agent xác định nhóm đó áp cho bot nào.

Cú pháp cơ bản
Một file robots.txt được ghép từ vài chỉ dẫn (directive) đơn giản:
- User-agent — tên bot mà nhóm luật áp dụng. Dấu
*nghĩa là áp cho mọi bot. - Disallow — đường dẫn bot không được thu thập.
- Allow — đường dẫn được phép thu thập, dùng để mở lại một phần nằm trong vùng đã bị Disallow.
- Sitemap — địa chỉ đầy đủ của file sitemap XML khai báo URL cho bot, giúp bot tìm trang nhanh hơn.
Một file ví dụ:
User-agent: *
Disallow: /wp-admin/
Allow: /wp-admin/admin-ajax.php
Disallow: /?s=
Sitemap: https://tenmien.com/sitemap_index.xmlỞ đây mọi bot bị chặn khỏi thư mục quản trị, nhưng vẫn được phép gọi file admin-ajax.php cần cho website chạy, và bị chặn khỏi các URL tìm kiếm nội bộ /?s=.
Khi luật mâu thuẫn thì cái nào thắng
Với Google, luật cụ thể hơn (đường dẫn dài hơn) thắng. Nếu bạn có Disallow: /san-pham/ và Allow: /san-pham/khuyen-mai/ thì thư mục khuyến mãi vẫn được thu thập, vì đường dẫn Allow dài và cụ thể hơn. Đây là cơ chế giúp bạn chặn diện rộng rồi mở lại một ngách nhỏ.
Lỗi chặn nhầm thường gặp
Vì một dòng sai có thể chặn cả site, đây là những bẫy hay gặp nhất:
- Chặn toàn bộ site khi lên prod. Dòng
Disallow: /(kèmUser-agent: *) chặn mọi đường dẫn. Đây là cấu hình mặc định của nhiều site staging/demo — quên gỡ khi đẩy lên thật là tai nạn kinh điển. - Chặn file CSS và JavaScript. Bot hiện đại render trang như trình duyệt. Nếu bạn
Disallow: /assets/js/hoặc chặn thư mục theme, Googlebot sẽ thấy một phiên bản vỡ của trang và đánh giá sai trải nghiệm. - Tưởng Disallow là ẩn trang. Một URL bị Disallow vẫn có thể bị lập chỉ mục nếu có trang khác trên web trỏ link tới nó. Lúc đó Google hiển thị URL trần trong kết quả, không có mô tả — vừa không ẩn được, vừa xấu.
- Sai đường dẫn vì phân biệt hoa thường. robots.txt phân biệt chữ hoa chữ thường ở phần đường dẫn;
/Blog/khác/blog/.
Sau khi sửa, hãy kiểm tra lại bằng công cụ kiểm thử robots.txt trong Google Search Console để chắc URL quan trọng không bị chặn ngoài ý muốn.
Robots.txt khác meta robots ở chỗ nào
Đây là phân biệt cốt lõi, vì hai thứ giải quyết hai bài toán khác nhau:
| Tiêu chí | robots.txt | meta robots / X-Robots-Tag |
|---|---|---|
| Kiểm soát điều gì | Thu thập (bot có đọc trang không) | Lập chỉ mục (trang có vào kết quả không) |
| Vị trí | 1 file ở gốc tên miền | Thẻ trong <head> hoặc HTTP header của từng trang |
| Dùng để ẩn trang | Không đáng tin | Đúng công cụ cho việc này |
Quy tắc vàng để không bao giờ làm sai: muốn một trang KHÔNG xuất hiện trên Google, bạn phải dùng thẻ noindex, đồng thời PHẢI để bot được thu thập trang đó. Nếu bạn vừa chặn trong robots.txt vừa gắn noindex, bot không vào đọc được trang nên không bao giờ thấy thẻ noindex — và URL vẫn có thể bị lập chỉ mục. Hãy mở cho bot vào, rồi để noindex làm việc. Tìm hiểu sâu hơn về cách điều khiển lập chỉ mục ở bài meta robots và các giá trị noindex, nofollow.
Lưu ý thêm: Google khuyến cáo không dựa vào chỉ dẫn Noindex viết trong robots.txt — đó không phải chuẩn chính thức và không được Google tuân theo. Việc chặn lập chỉ mục thuộc về thẻ meta hoặc header.

Khi nào nên động vào robots.txt
Đa số website nhỏ chỉ cần một file mặc định gọn gàng là đủ. Bạn nên rà lại robots.txt khi: vừa đẩy site từ staging lên thật, vừa đổi cấu trúc URL, hoặc khi báo cáo lập chỉ mục trong Search Console báo nhiều trang “Bị chặn bởi robots.txt” ngoài dự kiến. File này là một mảnh trong bức tranh kiểm tra kỹ thuật SEO toàn diện — chặn đúng giúp bot dồn sức vào những trang đáng giá.
Câu hỏi thường gặp
Không có file robots.txt thì sao?
Không sao cả. Khi không tìm thấy file, bot hiểu là được thu thập toàn bộ. File chỉ cần khi bạn muốn chặn một số phần.
Robots.txt có chặn được người dùng truy cập trang không?
Không. Nó chỉ là hướng dẫn cho bot ngoan; người dùng và bot xấu vẫn truy cập bình thường. Muốn bảo vệ thật thì dùng mật khẩu hoặc phân quyền máy chủ.
Sửa robots.txt bao lâu có hiệu lực?
Google cache file này khoảng một ngày. Muốn cập nhật nhanh hơn, bạn có thể yêu cầu Google tải lại file trong Search Console.
