Chuyển đến nội dung chính
← Tất cả hướng dẫn

robots.txt và sơ đồ trang web

Cả hai tệp đều nói với trình thu thập điều gì đó về các địa chỉ của bạn, và không tệp nào làm đúng việc người ta thường tưởng. Một tệp từ chối quyền tải về. Tệp kia đưa ra một danh sách để cân nhắc.

Cho phép không đồng nghĩa với loại trừ

robots.txt từ chối quyền tải một địa chỉ, và không làm gì hơn thế. Google nói thẳng rằng đây không phải cơ chế giữ một trang khỏi Tìm kiếm. Hai ý niệm này liên tục bị gộp làm một, và chính sự gộp ấy tạo ra một hỏng hóc rất cụ thể, rất dễ thấy.

Một địa chỉ bị chặn nhưng được các trang khác trỏ tới vẫn có thể vào chỉ mục. Google biết địa chỉ đó tồn tại vì đã có người liên kết tới; nó chỉ không thể nhìn thấy bên trong có gì. Vì vậy địa chỉ có thể được liệt kê mà không kèm mô tả nào — tệ cả đôi đường, vì trang hiện công khai trong kết quả trong khi bạn không kiểm soát được nó trông ra sao.

Đọc và viết tệp này

Tệp nằm ở gốc của một máy chủ và chỉ áp dụng cho máy chủ cùng giao thức đó. Các quy tắc được nhóm theo user-agent, và một trình thu thập chỉ tuân theo đúng một nhóm khớp với nó cụ thể nhất — không phải mọi nhóm mà nó có thể khớp. Trong một nhóm, Google xử lý xung đột bằng quy tắc cụ thể hơn, không phải bằng thứ tự dòng.

robots.txt
User-agent: *
Disallow: /admin/
Disallow: /*.pdf$
Allow: /admin/public/

User-agent: Googlebot
Disallow: /drafts/

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

Hai chi tiết trong ví dụ này gánh gần hết mọi hiểu lầm. Dòng Allow cụ thể hơn dòng Disallow phía trên, nên /admin/public/ vẫn tải được. Và ngay khi có một nhóm Googlebot, Googlebot chỉ tuân theo nhóm đó — nhóm dấu sao không còn áp dụng cho nó, nên ở đây /admin/ lại tải được đối với Googlebot. Đó gần như không bao giờ là ý người viết.

  • Chặn một đường dẫn không gỡ những địa chỉ đã vào chỉ mục; nó chỉ dừng các lần tải về sau.
  • Chỉ thị Sitemap độc lập với mọi nhóm user-agent và có thể đặt ở bất kỳ đâu trong tệp.
  • Lỗi 5xx ngay trên chính robots.txt có thể khiến trình thu thập lùi khỏi cả máy chủ, nên hãy phục vụ nó từ nơi đáng tin cậy.

Nơi một quy tắc robots gây hại rất xa chính nó

Những sai lầm robots.txt đắt giá nhất không phải các trang bạn định chặn. Đó là những tài nguyên trang cần để kết xuất. Công cụ tìm kiếm kết xuất trang trước khi lập chỉ mục, và việc kết xuất sẽ kéo về script, biểu định kiểu và phản hồi API.

Chặn một đường dẫn script hay một tuyến API, trình thu thập vẫn tải HTML ngon lành. Sau đó nó kết xuất ra một trang gần như trống và lập chỉ mục một trang gần như trống. Không báo cáo nào nói trang bị chặn, vì trang có bị chặn đâu — chỉ những thứ nó cần mới bị.

Sơ đồ trang là gợi ý, không phải hàng đợi

Sơ đồ trang giúp việc khám phá đúng ở nơi liên kết yếu nhất: trang lớn, trang mới toanh ít liên kết trỏ về, và trang nhiều phương tiện không có văn bản neo tự nhiên. Google nói thẳng rằng liệt kê một địa chỉ không bảo đảm việc thu thập lẫn lập chỉ mục.

Chính hướng dẫn của Google cho rằng một trang nhỏ hơn và liên kết nội bộ tốt có thể chẳng cần đến nó, vì trình thu thập theo liên kết là tìm ra hết. Điều đó đáng cân nhắc nghiêm túc trước khi dựng hạ tầng sơ đồ trang để giải quyết một vấn đề mà liên kết nội bộ giải quyết tốt hơn.

Giới hạnGiá trị
Số địa chỉ mỗi tệp sơ đồ50.000
Dung lượng chưa nén mỗi tệp50 MB
Vượt một trong haiTách nhỏ và trỏ tới các phần từ một tệp chỉ mục sơ đồ

Thẻ nào được đọc, bị bỏ qua hay bị nghi ngờ

Đây là chỗ phần lớn công sức dành cho sơ đồ trang bị lãng phí. Hai trong bốn thẻ thông dụng chẳng làm gì cả, và thẻ thứ ba còn có thể quay lại hại bạn.

ThẻGoogle làm gì với nó
locĐọc — chính là địa chỉ
lastmodChỉ dùng khi nhất quán và kiểm chứng được là đúng
changefreqBỏ qua
priorityBỏ qua

Điều kiện đặt lên lastmod mới là chỗ cắn. Nếu bản dựng đóng dấu thời điểm triển khai lên mọi địa chỉ thì mọi giá trị vừa sai vừa dễ bị bác bỏ: trang có đổi đâu, và công cụ tìm kiếm nhận ra được. Khi nó thôi tin trường đó thì nó thôi dùng, và bạn còn tệ hơn cả khi không gửi lastmod nào. Chỉ phát ra khi nội dung chính thay đổi thật, và thà bỏ trống còn hơn bịa.

sitemap.xml
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
  <url>
    <loc>https://example.com/guides/indexing/</loc>
    <lastmod>2026-06-14</lastmod>
  </url>
</urlset>

Chọn đúng công cụ

Gần như mọi câu hỏi trong mảng này đều được gỡ ngay khi bạn tách ba việc nghe thì giống nhau mà thực ra không phải.

Mục tiêuCông cụVì sao
Ngừng phí công thu thập vào địa chỉ rácrobots.txtNgăn hẳn việc tải về
Giữ một trang khỏi kết quảnoindex, hoặc xác thựcCần tải về thì chỉ thị mới được đọc
Giúp trang được tìm thấyLiên kết nội bộ, rồi mới sơ đồ trangLiên kết mang theo ngữ cảnh, mục sơ đồ thì không

Câu hỏi và trả lời

Tôi có thể kết hợp disallow và noindex không?

Không, và cặp đôi đó chính là sai lầm kinh điển. Nếu robots.txt chặn địa chỉ, trình thu thập không bao giờ tải trang và không bao giờ thấy noindex. Hãy cho phép thu thập rồi trả về noindex, hoặc đặt trang sau lớp xác thực.

Tôi có thật sự cần sơ đồ trang không?

Không phải lúc nào cũng cần. Google cho biết một trang nhỏ, liên kết nội bộ tốt vẫn được khám phá qua liên kết. Sơ đồ trang đáng giá ở trang lớn, trang mới toanh ít liên kết trỏ về và nhiều phương tiện.

Vì sao trang tôi đã chặn vẫn hiện trên Google?

Vì robots.txt chặn việc tải về, không phải việc lập chỉ mục. Các trang khác trỏ tới địa chỉ đó nên Google biết nó tồn tại nhưng không thấy nội dung — thành ra một mục không có mô tả. Hãy cho phép thu thập rồi trả về noindex để gỡ đúng cách.

Tôi có nên đặt priority và changefreq không?

Không. Google bỏ qua cả hai. Công sức ấy dùng để làm lastmod chính xác, hoặc dồn cho liên kết nội bộ, thì đáng hơn.

Điều gì xảy ra nếu robots.txt trả về lỗi?

Lỗi 5xx có thể khiến trình thu thập lùi khỏi máy chủ thay vì mặc định mọi thứ đều được phép. Hãy phục vụ robots.txt từ hạ tầng ít nhất cũng đáng tin như chính trang web.