File Robots.txt: Cấu trúc, vai trò, cách tạo chuẩn

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, disallowsitemap. 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.

Mục lục nội dung

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.

Bạn biết gì về file Robots.txt trên web?
Bạn biết gì về file Robots.txt trên web?

“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.txt

Google á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 cho https://xuyenvietmedia.com/....
  • https://www.xuyenvietmedia.com/robots.txt là file khác.
  • https://shop.xuyenvietmedia.com/robots.txt là 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ườngVai tròLưu ý
user-agentChỉ crawler áp dụng rulesTên trường và giá trị không phân biệt hoa thường
disallowChặn crawl pathPath phân biệt hoa thường
allowCho crawl path phù hợpHữu ích để tạo ngoại lệ trong vùng bị chặn
sitemapKhai báo URL sitemapPhả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.xml

Directive 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: 10

và 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ínhPhù hợp
robots.txtCrawlPath hoặc tài nguyên không muốn crawler truy cập
Meta RobotsIndex/serving của HTMLnoindex, snippet, follow và directive cấp trang
X-Robots-TagIndex/serving qua HTTP headerHTML 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ợ *$ 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.xml

Khô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ộ.

Upload file Robots.txt qua FPT
Upload file Robots.txt qua FPT

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?

StatusGoogle xử lýÝ nghĩa vận hành
2xxĐọc và áp rules nhận đượcTrạng thái mong muốn
3xxTheo 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ừ 429Xem như không có robots.txt hợp lệGoogle giả định không có crawl restriction
5xx / lỗi mạngTạm dừng/giảm crawl theo cơ chế lỗiKhô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ách tạo robots.txt bằng Plugin All in One SEO
Cách tạo robots.txt bằng Plugin All in One SEO

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.
Cách dùng plugin Yoast SEO để tạo file Robots.txt
Cách dùng plugin Yoast SEO để tạo file Robots.txt
 Yoast SEO cho phép bạn tùy chỉnh lệnh trong file theo ý muốn
Yoast SEO cho phép bạn tùy chỉnh lệnh trong file theo ý muốn

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ỏiDấ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, disallowsitemap; 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.

Để lại một bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *