Robots.txt là tệp văn bản đặt ở gốc của một site để hướng dẫn crawler những URL hoặc khu vực nào được phép hoặc không được phép crawl. Đây là công cụ kiểm soát truy cập của bot, không phải công cụ bảo mật, không phải thẻ noindex và cũng không phải “nút tăng Crawl Budget” cho mọi website.
Với Google, robots.txt hiện hỗ trợ bốn trường chính: user-agent, allow, disallow và sitemap. Google không hỗ trợ crawl-delay. File được áp dụng theo đúng protocol, host và port nơi nó được phục vụ; vì vậy https://xuyenvietmedia.com/robots.txt không tự quản lý mọi subdomain hoặc origin khác.
Tại Xuyên Việt Media, tôi chỉ dùng robots.txt khi có lý do rõ: giảm crawl vào URL ít giá trị, chặn crawler khỏi các khu vực không cần xử lý hoặc khai báo sitemap. Nếu mục tiêu là ngăn một trang xuất hiện trên Google, tôi xử lý index control riêng thay vì chặn crawl rồi hy vọng URL biến mất.
File Robots.txt là gì?
Robots.txt là tệp văn bản theo Robots Exclusion Protocol, được crawler đọc để biết các quy tắc crawl áp dụng cho site.
Ví dụ cơ bản:
User-agent: *
Disallow: /private/
Sitemap: https://xuyenvietmedia.com/sitemap.xmlĐoạn trên nói với crawler tuân thủ chuẩn rằng nhóm user-agent * không nên crawl đường dẫn bắt đầu bằng /private/. Dòng Sitemap khai báo vị trí sitemap.
Robots.txt không ra lệnh cho crawler “index” hay “không index”. Nó chủ yếu điều khiển việc crawler có được truy cập URL hay không.

“Robots.txt tốt thường rất ngắn và rất có chủ đích. Tôi không dùng nó để che giấu nội dung, chữa lỗi index hay ép Google dồn crawl sang URL khác; tôi dùng nó để kiểm soát những khu vực crawler thực sự không cần truy cập.”
Anh Thắng Giấu Tên – CEO Xuyên Việt Media
Robots.txt nằm ở đâu?
File phải được phục vụ tại thư mục gốc của đúng site, ví dụ:
https://xuyenvietmedia.com/robots.txtGoogle áp dụng rules theo đúng tổ hợp protocol + host + port. Điều này có nghĩa:
https://xuyenvietmedia.com/robots.txtáp dụng chohttps://xuyenvietmedia.com/....https://www.xuyenvietmedia.com/robots.txtlà file khác.https://shop.xuyenvietmedia.com/robots.txtlà file khác.- HTTP và HTTPS được xem là origin khác nhau.
Doanh nghiệp có nhiều subdomain nên kiểm tra robots.txt trên từng host thay vì chỉ nhìn domain chính.
Google giới hạn Robots.txt bao nhiêu?
Google hiện đọc tối đa 500 KiB của file robots.txt. Nội dung sau giới hạn này bị bỏ qua.
Với hầu hết website, file dài tới mức này là dấu hiệu cấu trúc rules đang quá phức tạp. Thay vì thêm hàng nghìn dòng chặn từng URL, nên quản trị URL inventory, parameter hoặc template ở cấp hệ thống.
Robots.txt có bắt buộc phải có không?
Không. Google Search Console hiện nói site nhỏ có thể không cần robots.txt nếu không có URL hoặc tài nguyên nào cần chặn crawl.
Nếu Google yêu cầu /robots.txt và server trả 404, Google thường xử lý như không có hạn chế crawl.
Điều này không có nghĩa Google sẽ “quét toàn bộ website ngay lập tức”. Googlebot vẫn phải khám phá URL qua link, sitemap hoặc nguồn khác và lịch crawl còn phụ thuộc crawl demand, crawl capacity cùng nhiều yếu tố hệ thống.
Các lệnh Robots.txt Google hỗ trợ
| Trường | Vai trò | Lưu ý |
|---|---|---|
user-agent | Chỉ crawler áp dụng rules | Tên trường và giá trị không phân biệt hoa thường |
disallow | Chặn crawl path | Path phân biệt hoa thường |
allow | Cho crawl path phù hợp | Hữu ích để tạo ngoại lệ trong vùng bị chặn |
sitemap | Khai báo URL sitemap | Phải là URL tuyệt đối |
Google không hỗ trợ các field khác như crawl-delay trong robots.txt.
User-agent là gì?
User-agent xác định nhóm crawler mà các rules phía sau áp dụng.
Ví dụ:
User-agent: Googlebot
Disallow: /temp/Dấu * thường được dùng cho nhóm crawler không có rule riêng cụ thể hơn:
User-agent: *
Disallow: /private/Không nên chặn một user-agent chỉ vì tên trong request. User-agent có thể bị giả mạo; với Googlebot, Google khuyến nghị xác minh crawler bằng reverse DNS hoặc dải IP chính thức khi cần điều tra traffic bot.
Disallow hoạt động như thế nào?
Disallow chỉ định path crawler không nên truy cập.
Ví dụ:
User-agent: *
Disallow: /search/Rule này có thể dùng khi hệ thống tạo trang tìm kiếm nội bộ không cần Google crawl.
Không có chuyện “mỗi Disallow chỉ dùng cho một URL”. Một path có thể áp dụng cho cả thư mục và các URL khớp pattern.
Allow dùng khi nào?
Allow hữu ích khi một vùng lớn bị chặn nhưng bên trong có một path cần crawler truy cập.
Ví dụ WordPress phổ biến:
User-agent: *
Disallow: /wp-admin/
Allow: /wp-admin/admin-ajax.phpÝ nghĩa không phải “Google được index admin-ajax.php”, mà chỉ là rule crawl cho phép truy cập path này dù thư mục cha bị chặn.
Sitemap trong Robots.txt hoạt động thế nào?
Dòng Sitemap phải chứa URL tuyệt đối:
Sitemap: https://xuyenvietmedia.com/sitemap_index.xmlDirective này không chỉ dành cho Googlebot. Google, Bing và nhiều công cụ tìm kiếm lớn hỗ trợ field sitemap theo chuẩn sitemap.
URL sitemap thậm chí có thể nằm trên host khác nếu triển khai hợp lệ.
Sitemap XML nên liệt kê URL canonical, indexable và có giá trị mà website muốn công cụ tìm kiếm biết đến.
Google có hỗ trợ Crawl-delay không?
Không. Google hiện nói rõ các field như crawl-delay không được hỗ trợ trong robots.txt.
Nếu server gặp tải cao, cách xử lý không nên là thêm:
Crawl-delay: 10và kỳ vọng Googlebot tuân thủ.
Google điều chỉnh crawl capacity dựa trên sức khỏe server, độ trễ, 5xx và 429. Nếu server quá tải, cần xử lý hạ tầng hoặc trả response phù hợp thay vì dùng một directive Google không hỗ trợ.
Robots.txt có giúp tối ưu Crawl Budget không?
Có thể, nhưng chỉ khi website thực sự có vấn đề crawl budget và các URL bị chặn là những URL Google không cần crawl.
Hướng dẫn Crawl Budget của Google cập nhật ngày 22/07/2026 chủ yếu dành cho:
- Site khoảng từ một triệu URL trở lên, thay đổi khá thường xuyên.
- Site từ khoảng 10.000 URL trở lên nhưng thay đổi rất nhanh mỗi ngày.
- Site có tỷ lệ lớn URL ở trạng thái Discovered – currently not indexed.
Đây là ước lượng chứ không phải ngưỡng cứng.
Với website nhỏ được crawl ổn, thường không cần xây file robots.txt phức tạp chỉ để “dồn Crawl Budget”. Bài Crawl Budget giải thích rõ hơn khi nào tối ưu crawl thực sự đáng làm.
Chặn Robots.txt có ngăn Index không?
Không bảo đảm.
Khi Googlebot bị chặn crawl một trang, Google không thể đọc nội dung của trang đó. Tuy nhiên, URL vẫn có thể được biết qua external link, internal link hoặc nguồn khác và trong một số trường hợp có thể xuất hiện trên Search mà không có snippet.
Nếu mục tiêu là không cho một trang HTML xuất hiện trên Google, dùng noindex và phải cho Google crawl trang đủ để đọc directive đó.
Robots.txt có phải công cụ bảo mật không?
Không.
Robots.txt là file công khai. Bất kỳ ai cũng có thể mở nó và xem path đang bị chặn.
Do đó, không nên dùng:
Disallow: /du-lieu-mat/
Disallow: /backup-khach-hang/
rồi coi nội dung đã được bảo vệ.
Dữ liệu riêng tư cần authentication, authorization, firewall hoặc cơ chế truy cập phù hợp. Robots.txt chỉ là lời hướng dẫn crawler tuân thủ chuẩn.
Robots.txt, Meta Robots và X-Robots-Tag khác nhau thế nào?
| Công cụ | Kiểm soát chính | Phù hợp |
|---|---|---|
| robots.txt | Crawl | Path hoặc tài nguyên không muốn crawler truy cập |
| Meta Robots | Index/serving của HTML | noindex, snippet, follow và directive cấp trang |
| X-Robots-Tag | Index/serving qua HTTP header | HTML hoặc file như PDF khi cần điều khiển bằng header |
Meta robots và X-Robots-Tag chỉ có thể được Google đọc nếu crawler được phép truy cập response.
Nếu vừa Disallow URL trong robots.txt vừa gắn noindex trong trang, Google có thể không crawl được để thấy noindex.
Robots.txt và Noindex nên dùng thế nào?
Muốn giảm crawl URL ít giá trị
Cân nhắc robots.txt nếu URL thực sự không cần Google crawl.
Muốn URL không xuất hiện trên Search
Cho crawl và dùng noindex.
Muốn nội dung bí mật
Dùng đăng nhập, password hoặc access control.
URL đã xóa vĩnh viễn
Trả 404 hoặc 410 phù hợp thay vì giữ URL sống rồi chặn robots.
Trong audit Technical SEO, tôi luôn tách crawl control, index control và access control thành ba bài toán khác nhau.
Wildcard * và ký tự $ dùng thế nào?
Google hỗ trợ * và $ trong path matching.
* đại diện cho chuỗi ký tự bất kỳ:
User-agent: Googlebot
Disallow: /*?sort=$ đánh dấu cuối URL:
User-agent: Googlebot
Disallow: /*.xls$Ví dụ thứ hai khớp URL kết thúc bằng .xls, nhưng không khớp .xls?download=1 vì còn ký tự sau phần mở rộng.
Pattern phải được kiểm tra trên URL thật. Một dấu * đặt sai có thể chặn rộng hơn nhiều so với dự định.
Quy tắc Allow và Disallow xung đột được xử lý thế nào?
Khi nhiều rule cùng khớp, Google sử dụng rule có path cụ thể hơn theo độ dài match. Nếu Allow và Disallow có cùng độ cụ thể, Allow được ưu tiên.
Vì vậy, không nên đánh giá file robots.txt chỉ bằng việc nhìn rule từ trên xuống và nghĩ “dòng sau ghi đè dòng trước” như CSS.
Một File Robots.txt đơn giản cho WordPress
Ví dụ tối giản:
User-agent: *
Disallow: /wp-admin/
Allow: /wp-admin/admin-ajax.php
Sitemap: https://xuyenvietmedia.com/sitemap_index.xmlKhông cần chặn /wp-content/, CSS, JS hoặc media một cách mặc định. Google cần nhiều tài nguyên để render trang tương tự trình duyệt.
Website có ecommerce, search, faceted navigation hoặc plugin tạo URL đặc biệt cần cấu hình riêng, không nên sao chép một file “chuẩn SEO” trên mạng rồi áp toàn bộ.

Có nên chặn /wp-admin/ trên WordPress?
Đây là cấu hình phổ biến vì khu vực quản trị không phải nội dung Search cần crawl.
Tuy nhiên, robots.txt không bảo vệ trang đăng nhập hoặc wp-admin khỏi attacker. Security vẫn phải dựa vào authentication, cập nhật WordPress/plugin, quyền truy cập và các lớp bảo vệ khác.
HTTPS cũng là baseline kỹ thuật cần có nhưng không thay thế bảo mật ứng dụng.
Có nên chặn wp-content?
Không nên chặn toàn bộ /wp-content/ theo thói quen.
Theme, CSS, JavaScript, ảnh hoặc tài nguyên khác trong đó có thể cần cho render và hiểu trang.
Nếu có một subfolder cụ thể chỉ chứa dữ liệu không cần crawler, hãy đánh giá riêng thay vì chặn cả thư mục lớn.
Có nên chặn CSS và JavaScript?
Thông thường không.
Google render website bằng hệ thống dựa trên Chromium. Nếu crawler không thể truy cập tài nguyên cần thiết, rendered page có thể khác trải nghiệm thật.
Điều này không có nghĩa “chặn CSS sẽ trực tiếp hạ thứ hạng”. Cách diễn đạt đúng hơn là việc chặn tài nguyên cần cho render có thể làm Google không xử lý trang như mong muốn.
Core Web Vitals và hiệu suất cũng cần được tối ưu ở cấp tài nguyên, nhưng chặn crawler khỏi CSS/JS không phải cách tối ưu tốc độ.
Robots.txt và Internal Link
Robots.txt không thay thế quản trị kiến trúc URL.
Nếu site liên tục tạo internal link đến hàng nghìn URL filter rồi mới chặn chúng bằng robots.txt, crawler vẫn có thể thấy các URL đó qua link và phải xử lý thông tin discovery.
Trong nhiều trường hợp, sửa nguồn tạo URL và Internal Link sạch hơn là tiếp tục bổ sung rules.
Robots.txt và Canonical
Canonical và robots.txt có vai trò khác nhau.
Canonical cần Google crawl trang để đọc tín hiệu. Nếu chặn URL bằng robots.txt, Google có thể không thấy canonical đặt trong HTML.
Do đó, “Disallow duplicate URL rồi canonical sang URL chính” không phải cấu hình mặc định hợp lý cho mọi duplicate.
Robots.txt và Breadcrumb/Architecture
Breadcrumb, menu và contextual link giúp crawler khám phá kiến trúc website. Robots.txt chỉ lọc quyền crawl sau khi URL đã được biết.
Nếu site có hàng nghìn orphan page hoặc hierarchy lộn xộn, robots.txt không giải quyết được vấn đề cấu trúc.
Robots.txt và SEO Onpage
SEO Onpage tập trung nội dung và tín hiệu trên trang như title, heading, internal link, media và nội dung.
Robots.txt ở cấp site/origin. Vì vậy đừng dùng file này để xử lý những vấn đề page-level mà meta robots, canonical hoặc nội dung mới là công cụ phù hợp.
Robots.txt và Structured Data
Schema Markup nằm trong nội dung/markup của trang. Nếu trang bị chặn crawl, Google có thể không đọc structured data trên trang đó.
Việc “có Schema nhưng rich result không hiện” đôi khi bắt nguồn từ accessibility/crawl/index trước khi đến phần markup.
HTTP Status của Robots.txt ảnh hưởng thế nào?
| Status | Google xử lý | Ý nghĩa vận hành |
|---|---|---|
| 2xx | Đọc và áp rules nhận được | Trạng thái mong muốn |
| 3xx | Theo redirect giới hạn rồi xử lý kết quả | Nên phục vụ file trực tiếp, đơn giản |
| 4xx trừ 429 | Xem như không có robots.txt hợp lệ | Google giả định không có crawl restriction |
| 5xx / lỗi mạng | Tạm dừng/giảm crawl theo cơ chế lỗi | Không để robots.txt lỗi server kéo dài |
Google hiện cho biết khi robots.txt trả 5xx, trong 12 giờ đầu crawler có thể dừng crawl site trong khi tiếp tục thử fetch file. Nếu lỗi kéo dài, Google có cơ chế dùng bản robots.txt tốt đã cache và tiếp tục retry.
Điều này cho thấy robots.txt là một tài nguyên hạ tầng quan trọng; đừng để plugin hoặc firewall khiến URL này trả lỗi bất thường.
Google Cache Robots.txt bao lâu?
Google thường cache robots.txt tối đa khoảng 24 giờ, nhưng có thể lâu hơn nếu không thể fetch lại file do timeout hoặc lỗi server.
Vì vậy thay rule robots.txt không đồng nghĩa toàn bộ crawler nhận thay đổi ngay lập tức.
Cách kiểm tra Robots.txt bằng Search Console hiện nay
Không nên hướng dẫn người dùng tìm “Robots.txt Tester cũ” như giao diện Search Console trước đây.
Search Console hiện có robots.txt report để xem Google tìm thấy file nào, lần crawl gần nhất, lỗi hoặc cảnh báo parsing và yêu cầu recrawl trong tình huống cần thiết.
Để kiểm tra một URL cụ thể có bị robots.txt chặn hay không, dùng URL Inspection.
Với developer, Google cũng cung cấp thư viện robots.txt mã nguồn mở có cùng logic parser dùng trong Search để test cục bộ.
Cách tạo Robots.txt thủ công
Bước 1: Xác định nhu cầu chặn
Trước khi viết rule, lập danh sách URL/template và lý do tại sao crawler không cần truy cập.
Bước 2: Tạo file plain text UTF-8
Không dùng Word để xuất file có định dạng tài liệu. File robots.txt là plain text.
Bước 3: Viết nhóm User-agent và Rules
Giữ file ngắn, có comment khi cần và tránh rule trùng lặp.
Bước 4: Khai báo Sitemap
Nếu site có sitemap, thêm URL tuyệt đối phù hợp.
Bước 5: Đưa file lên đúng root
Kiểm tra URL thực tế bằng trình duyệt.
Bước 6: Test URL quan trọng
Dùng URL Inspection và crawl staging/local rule khi cần.
Bước 7: Theo dõi sau deploy
Kiểm tra robots.txt report, Crawl Stats và Page Indexing nếu thay đổi rules có phạm vi lớn.
WordPress có cần Plugin để tạo Robots.txt không?
Không bắt buộc.
WordPress và các plugin SEO có thể tạo hoặc điều khiển robots.txt theo nhiều cách. UI và vị trí menu thay đổi theo phiên bản plugin, nên không nên lưu một hướng dẫn click menu từ năm 2022 rồi coi là quy trình hiện hành.
Điều quan trọng là URL /robots.txt mà crawler nhận được cuối cùng chứa rules đúng, bất kể nội dung được tạo từ file vật lý, WordPress hay plugin.

Có nên dùng Yoast, Rank Math hay AIOSEO để sửa Robots.txt?
Có thể dùng công cụ đang phù hợp với website, nhưng không nên cài thêm plugin chỉ để chỉnh một file vài dòng nếu hệ thống đã có cách quản lý khác.
Trước khi sửa:
- Backup cấu hình hiện tại.
- Ghi lại rule cũ.
- Biết plugin có tạo file virtual hay file vật lý không.
- Kiểm tra hosting/CDN có cache robots.txt không.
- Test URL quan trọng sau khi deploy.


Những sai lầm Robots.txt thường gặp
Dùng Robots.txt để giữ trang bí mật
File công khai, không có tác dụng authentication.
Dùng Disallow để Deindex
URL vẫn có thể xuất hiện mà Google không đọc được nội dung.
Chặn Noindex Page
Google không crawl được để thấy noindex.
Dùng Crawl-delay cho Googlebot
Google không hỗ trợ directive này.
Chặn CSS và JavaScript hàng loạt
Có thể cản trở rendering.
Chặn toàn site sau khi Launch
User-agent: *
Disallow: /Đây là lỗi staging rất nghiêm trọng nếu được đưa lên production ngoài ý muốn.
Chặn quá nhiều Parameter mà không Audit
Một parameter có thể đang tạo URL organic có traffic hoặc landing page quan trọng.
Dùng Robots.txt thay cho sửa kiến trúc URL
Rules ngày càng dài trong khi CMS vẫn tiếp tục sinh URL rác.
Checklist Robots.txt trước khi Deploy
| Câu hỏi | Dấu hiệu tốt |
|---|---|
| File đúng root? | /robots.txt trên đúng origin |
| Rules có mục đích rõ? | Mỗi block giải quyết một nhóm URL thật |
| Có chặn URL cần index? | Không |
| Có noindex nằm sau Disallow? | Không dùng hai cơ chế xung đột |
| Có crawl-delay cho Google? | Không |
| Sitemap đúng URL? | URL tuyệt đối, hoạt động |
| CSS/JS quan trọng có bị chặn? | Không |
| Staging rule còn trên production? | Không |
| Search Console có parsing error? | Không |
Cách Xuyên Việt Media xử lý Robots.txt
Tôi bắt đầu từ URL inventory, không bắt đầu từ một template robots.txt có sẵn trên mạng. Cần biết site đang tạo những loại URL nào, URL nào Google cần crawl, URL nào không có giá trị và mục tiêu của từng rule.
Với website có vấn đề crawl, index, redirect, canonical và cấu trúc URL trên diện rộng, dịch vụ SEO tổng thể phù hợp để xử lý robots.txt trong bức tranh Technical SEO thay vì sửa riêng một file.
Với WordPress cần theo dõi plugin, cache, sitemap, certificate, form và file kỹ thuật sau các lần cập nhật, dịch vụ quản trị website giúp giảm nguy cơ một thay đổi nhỏ làm robots.txt hoặc crawl behavior lệch khỏi cấu hình đã chốt.
Kết luận
Robots.txt là công cụ kiểm soát crawl, không phải công cụ bảo mật hoặc noindex.
Google hiện hỗ trợ user-agent, allow, disallow và sitemap; không hỗ trợ crawl-delay. Rules áp dụng theo protocol, host và port, và file cần được phục vụ tại root của đúng site.
Website nhỏ thường chỉ cần file rất đơn giản, thậm chí không cần file nếu không có gì phải chặn. Website lớn nên dùng robots.txt như một phần của quản trị URL và Crawl Budget, nhưng không kỳ vọng mỗi URL bị chặn sẽ khiến Google tự dồn crawl sang trang khác.
Quan trọng nhất là dùng đúng công cụ: robots.txt cho crawl, noindex cho index, authentication cho dữ liệu riêng tư và kiến trúc URL sạch để không phải dùng file robots.txt như lớp vá cho mọi vấn đề kỹ thuật.
Câu hỏi thường gặp về Robots.txt
Robots.txt là gì?
Robots.txt là file văn bản ở root của site dùng để hướng dẫn crawler những path nào được phép hoặc không được phép crawl.
Website có bắt buộc có Robots.txt không?
Không. Nếu không có gì cần chặn crawl, site nhỏ có thể không cần file này.
Robots.txt có chặn Index không?
Không bảo đảm. URL bị chặn crawl vẫn có thể xuất hiện trong Search mà không có snippet. Muốn chặn index, dùng noindex và cho crawler truy cập trang.
Google có hỗ trợ Crawl-delay không?
Không. Google hiện không hỗ trợ field crawl-delay trong robots.txt.
Sitemap directive chỉ dành cho Googlebot?
Không. Google, Bing và nhiều search engine lớn hỗ trợ field sitemap, và field này không gắn với một user-agent riêng.
Có nên chặn CSS và JavaScript?
Thông thường không nên chặn tài nguyên cần để Google render nội dung đúng.
Robots.txt có bảo vệ thư mục riêng tư không?
Không. File robots.txt là công khai. Nội dung riêng tư cần cơ chế truy cập thực sự như đăng nhập hoặc password.
Cách test Robots.txt hiện nay?
Dùng robots.txt report để xem file và parsing issues; dùng URL Inspection để kiểm tra một URL cụ thể có bị robots.txt chặn hay không.
Tài liệu tham khảo
Google. (2026a). How Google interprets the robots.txt specification. Google Crawling Infrastructure.
Google. (2026b). Optimize your crawl budget. Google Crawling Infrastructure.
Google Search Console. (2026). robots.txt report. Search Console Help.
