Bỏ qua tới nội dung
SEO & crawler

robots.txt cho WordPress chuẩn 2026 (thực sự nên viết gì trong đó)

File robots.txt của WordPress chỉ cần năm dòng. Chặn /wp-admin/, cho phép admin-ajax.php, thêm sitemap, và bỏ qua những danh sách chặn dài dòng làm hỏng khâu render.

Đã đăng

Một file robots.txt tốt cho WordPress dài khoảng năm dòng. Chặn /wp-admin/, cho phép admin-ajax.php, chỉ cho crawler đường tới sitemap, rồi dừng lại — những danh sách chặn 40 dòng lê thê bạn thấy trên các diễn đàn hầu hết chỉ làm hỏng khâu render hoặc chẳng có tác dụng gì. Toàn bộ file:

User-agent: *
Disallow: /wp-admin/
Allow: /wp-admin/admin-ajax.php

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

Thay tên miền vào, và nếu bạn dùng một plugin SEO đảm nhận phần sitemap thì hãy trỏ dòng Sitemap tới file chỉ mục của plugin đó. Vậy thôi. Nếu file của bạn dài hơn thế, những dòng dư ra nhiều khả năng đang khiến bạn trả giá.

WordPress vốn đã tạo sẵn một file — cho tới khi bạn tạo file thật

WordPress đi kèm một robots.txt ảo. Khi có request tới /robots.txt mà không tồn tại file thật nào ở thư mục gốc web, WordPress bắt lấy request đó và in ra phản hồi ngay trong bộ nhớ. Không có gì được ghi xuống ổ đĩa. Kết quả mặc định là khối chặn wp-admin ở trên, cộng thêm một dòng Sitemap: trỏ tới wp-sitemap.xml mà core đã xuất ra từ WordPress 5.5.

Có hai thứ làm thay đổi kết quả đó. Nếu mục Cài đặt → Đọc → Ngăn công cụ tìm kiếm lập chỉ mục trang web này đang được tích, WordPress thay toàn bộ nội dung bằng Disallow: /, tức là chặn sạch. Ô tích đó là nguyên nhân phổ biến nhất khiến một website biến mất khỏi kết quả tìm kiếm sau khi ra mắt. Thứ hai, plugin và theme có thể sửa phần xuất ảo thông qua filter robots_txt, và đó chính là cách các plugin SEO chèn dòng sitemap cùng quy tắc riêng của chúng vào.

Giờ tới phần ngốn mất cả buổi chiều của nhiều người. Một file robots.txt vật lý nằm trong thư mục gốc web sẽ lặng lẽ ghi đè tất cả. Máy chủ web tìm thấy file thật trên ổ đĩa, phục vụ nó, và WordPress không bao giờ được nạp. Trình tạo file ảo không chạy. Filter robots_txt không kích hoạt. Trình chỉnh sửa robots.txt trong plugin SEO của bạn vẫn có thể hiện ra giao diện đẹp đẽ với đúng các quy tắc bên trong, mà chẳng dòng nào trong đó tới được tay crawler.

Quy tắc nằm ở đâuSửa được trong trang quản trị WordPressThắng khi có request thật
File ảo (không có file trên ổ đĩa)Có, qua filter robots_txt hoặc một pluginChỉ khi không tồn tại file vật lý
File vật lý trong thư mục gốc webChỉ khi plugin ghi được xuống ổ đĩaLuôn luôn

Nên trước khi gỡ lỗi bất cứ thứ gì: mở https://yoursite.com/robots.txt trong trình duyệt, rồi kết nối qua SFTP hoặc trình quản lý file của nhà cung cấp hosting và kiểm tra xem có một file robots.txt thật nằm cạnh wp-config.php.htaccess hay không. Nếu có, chính file đó mới là robots.txt của bạn. Hãy sửa ngay tại đó, hoặc xoá nó đi và để WordPress đảm nhận — nhưng chỉ chọn một. Chạy song song cả hai chính là cách các website kết thúc với một URL sitemap cũ mèm mà chẳng ai tìm ra.

Vì sao chặn /wp-admin/ nhưng lại cho phép admin-ajax.php

/wp-admin/ chứa bảng điều khiển. Những URL đó vô dụng trong kết quả tìm kiếm và việc thu thập chúng đốt ngân sách crawl vào các trang chỉ chuyển hướng về màn hình đăng nhập. Chặn thư mục này là việc không ai tranh cãi.

admin-ajax.php nằm bên trong thư mục đó nhưng không phải một trang quản trị. Đây là điểm cuối mà plugin và theme dùng để xử lý các request AJAX ở giao diện người dùng — nút tải thêm, lưới sản phẩm có bộ lọc, công cụ tính toán, biểu mẫu. Nếu crawler không tải được nó, nó sẽ không thấy nội dung mà những tính năng đó nạp vào, và Google sẽ render trang của bạn đúng như một khách truy cập nhìn thấy khi tính năng bị hỏng.

Việc Google có thật sự cần tải admin-ajax.php trên website cụ thể của bạn hay không thì tuỳ vào giao diện của bạn có dùng tới nó không. Nói thật: trên nhiều website hiện đại thì chuyện đó chẳng ảnh hưởng gì, vì theme dùng REST API tại /wp-json/ thay thế. Dòng Allow là một tấm bảo hiểm rẻ tiền cho một kiểu hỏng có thật, chứ không phải yếu tố xếp hạng. Cứ giữ nó vì nó chẳng tốn gì.

Đừng chặn /wp-content/ hay /wp-includes/

Đây là lời khuyên tệ nhất về robots.txt vẫn còn lưu truyền, và nó có từ cái thời Google chưa render trang.

/wp-content/ chứa theme, plugin, thư mục uploads — tức là các file stylesheet, script và hình ảnh làm cho trang của bạn trông ra hình ra dạng. /wp-includes/ chứa phần JavaScript của core mà plugin phụ thuộc vào. Google render trang bằng một trình duyệt không giao diện trước khi đánh giá. Chặn những thư mục đó thì trình render nhận về một trang không CSS, không hình ảnh. Thứ Google đánh giá sẽ là một bức tường chữ trần trụi với bố cục vỡ nát, ảnh hưởng tới cách nó hiểu nội dung của bạn và cách nó chấm điểm khả năng dùng trên di động.

Nếu bạn thừa hưởng một file có sẵn những dòng này, hãy xoá chúng:

Disallow: /wp-content/
Disallow: /wp-includes/
Disallow: /wp-content/plugins/
Disallow: /wp-content/themes/

Bạn có thể tự xác nhận thiệt hại bằng công cụ Kiểm tra URL trong Google Search Console. Chạy kiểm tra trực tiếp trên một trang bất kỳ, xem ảnh chụp bản render, và soát danh sách tài nguyên của trang xem có mục nào bị chặn không. Nếu CSS hiện ra là bị chặn, đó chính là nguyên nhân.

Directive Sitemap

Một dòng, URL tuyệt đối, và nó có thể đặt ở bất cứ đâu trong file — nó không gắn với nhóm User-agent nào cả.

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

Hãy dùng đúng URL thật sự truy cập được. Core của WordPress phục vụ wp-sitemap.xml. Đa số plugin SEO tắt sitemap của core và phục vụ file chỉ mục riêng ở đường dẫn khác, thường là sitemap_index.xml. Hãy mở URL đó trong trình duyệt trước khi ghi vào file — một dòng Sitemap trỏ tới trang 404 còn tệ hơn không có dòng nào, vì khi kiểm tra nó trông vẫn có vẻ đúng.

Liệt kê nhiều sitemap cũng được, mỗi cái một dòng. Việc gửi sitemap trong Search Console vẫn nên làm riêng; directive trong robots.txt là cách để những crawler không bao giờ nhìn thấy tài khoản Search Console của bạn tìm ra chúng.

robots.txt không phải noindex, và cũng không phải bảo mật

Hai hiểu lầm này gây ra phần lớn thiệt hại liên quan tới robots.txt.

Chặn một URL không gỡ được nó khỏi Google. Robots.txt chi phối việc thu thập dữ liệu. Nếu một website khác đặt link tới URL bị chặn, Google vẫn có thể lập chỉ mục chính URL đó — bạn nhận được một kết quả chỉ có địa chỉ trơ trọi và một dòng ghi chú rằng không có thông tin nào. Còn có một cái bẫy khó chịu hơn: nếu một trang đã gắn thẻ meta noindex mà sau đó bạn chặn nó trong robots.txt, Google không thu thập được, không nhìn thấy noindex, và trang đó có thể nằm trong chỉ mục vô thời hạn. Muốn gỡ một trang, hãy cho phép thu thập và trả về thẻ meta robots noindex trong phần head của trang hoặc một header HTTP X-Robots-Tag. Google đã ngừng hỗ trợ directive noindex đặt bên trong robots.txt từ năm 2019.

Chặn một đường dẫn không bảo vệ được nó. File robots.txt của bạn công khai theo đúng định nghĩa. Liệt kê /private-client-files/ là nói cho mọi khách truy cập và mọi trình quét biết chính xác chỗ cần dòm, và việc tuân thủ hoàn toàn tự nguyện — Google tôn trọng, bot thù địch thì không. Bất cứ thứ gì cần được bảo vệ đều cần xác thực, giới hạn IP, hoặc quy tắc ở tầng máy chủ trong .htaccess, chứ không phải một dòng trong file văn bản đang quảng cáo chính mục tiêu đó.

Quy tắc đáng thêm và quy tắc nên bỏ

Có hai bổ sung thực sự hữu ích trên nhiều website. Chặn đường dẫn kết quả tìm kiếm nội bộ giúp ngăn crawler sinh ra vô số URL giá trị thấp. Chặn đường dẫn giỏ hàng hoặc thanh toán trên WooCommerce giúp giữ các URL chứa tham số phiên nằm ngoài phạm vi thu thập.

Disallow: /?s=
Disallow: /search/

Bỏ qua những thứ sau:

  • Crawl-delay — Google hoàn toàn phớt lờ. Hãy dùng phần điều chỉnh tốc độ thu thập trong Search Console nếu bạn thật sự gặp vấn đề tải máy chủ.
  • Chặn /feed/ hay /trackback/ — đó là những URL vô hại, và feed thì có ích.
  • Danh sách dài tên từng con bot — đa số bot mà người ta cố chặn vốn chẳng khai báo trung thực.
  • Chặn /wp-json/ — rất có thể đó chính là thứ theme của bạn dùng để hiển thị nội dung.

Hãy dựng file bằng trình tạo robots.txt cho WordPress, công cụ tạo ra phiên bản tối giản và đúng chuẩn, đồng thời cho phép bạn thêm các quy tắc về tìm kiếm và thương mại điện tử mà không phải tự gõ cú pháp.

Sau khi bạn thay đổi

Hãy mở thẳng https://yoursite.com/robots.txt và xác nhận những byte thực sự được phục vụ đúng như bạn mong đợi — chứ không phải thứ trình chỉnh sửa của plugin hiển thị cho bạn. Sau đó chạy kiểm tra URL trực tiếp trong Search Console trên một trang bình thường và soát xem có tài nguyên CSS hay JavaScript nào bị báo là bị chặn không. Google lưu bộ nhớ đệm robots.txt khoảng một ngày, nên một bản sửa sẽ không có hiệu lực tức thì, và một lỗi sai cũng vậy. Chính độ trễ đó là lý do bạn nên kiểm tra thật kỹ thay vì thử thẳng trên bản chạy thật rồi ngồi chờ.

FAQ

Câu hỏi

File robots.txt của WordPress nên chứa những gì?

Bốn thứ và không hơn: một dòng user-agent đại diện cho tất cả, một dòng Disallow cho /wp-admin/, một dòng Allow cho /wp-admin/admin-ajax.php, và một directive Sitemap trỏ tới URL sitemap đầy đủ của bạn. Mọi thứ ngoài đó đều là tuỳ chọn, và phần lớn các danh sách chặn dài đang lan truyền trên mạng gây ra nhiều vấn đề hơn là giải quyết được.

WordPress có tự tạo file robots.txt không?

Có, nhưng chỉ là file ảo. WordPress dựng phần phản hồi ngay trong bộ nhớ khi có request tới /robots.txt và không có file thật nào trên ổ đĩa. Nội dung gồm các quy tắc wp-admin và, từ phiên bản 5.5 trở đi, một dòng Sitemap trỏ tới wp-sitemap.xml. Không có gì được ghi xuống máy chủ của bạn.

Vì sao robots.txt của tôi không khớp với thứ WordPress lẽ ra phải xuất ra?

Gần như luôn là vì có một file robots.txt vật lý nằm trong thư mục gốc web. Máy chủ web phục vụ thẳng file đó và WordPress không hề chạy, nên cả phần xuất ảo lẫn filter robots_txt đều bị bỏ qua trong im lặng. Hãy kiểm tra xem có file thật ở thư mục gốc website không, trước khi gỡ lỗi bất cứ thứ gì khác.

Có nên chặn wp-content hay wp-includes trong robots.txt không?

Không. Những thư mục đó chứa CSS, JavaScript và hình ảnh mà trang của bạn cần để hiển thị. Chặn chúng khiến Google không tải được các tài nguyên đó, nên nó đánh giá một phiên bản vỡ vụn của bố cục trang. Đây từng là lời khuyên phổ biến nhiều năm trước và giờ nó thật sự gây hại.

robots.txt có giữ được một trang nằm ngoài Google không?

Không. Robots.txt kiểm soát việc thu thập dữ liệu, không kiểm soát việc lập chỉ mục. Một URL bị chặn vẫn có thể bị lập chỉ mục nếu các trang khác trỏ link tới nó, và sẽ xuất hiện trong kết quả mà không có mô tả. Muốn giữ một trang nằm ngoài chỉ mục, hãy cho phép thu thập và trả về thẻ meta robots noindex hoặc header X-Robots-Tag.

robots.txt có phải là biện pháp bảo mật không?

Không, mà ngược lại. File này công khai tại yoursite.com/robots.txt và ai cũng đọc được, nên liệt kê một thư mục riêng tư trong đó chẳng khác nào quảng cáo vị trí của nó. Crawler đàng hoàng thì tôn trọng nó một cách tự nguyện, còn các trình quét độc hại thì phớt lờ hoàn toàn. Hãy bảo vệ những đường dẫn nhạy cảm bằng xác thực hoặc quy tắc ở tầng máy chủ.