Robots txt là gì

Robots.txt là gì? Robots.txt là một trong những cách chính để có thể thông báo cho công cụ tìm kiếm biết nơi mà nó có thể và không thể truy cập vào trang web của bạn. Đây là một trong những tệp ‘đơn giản’ nhất trên một trang web, nhưng nó cũng là một trong những tệp dễ gây nhầm lẫn nhất.

Tất cả các công cụ tìm kiếm chính đều có hỗ trợ chức năng cơ bản mà nó cung cấp, tuy nhiên một số công cụ trong số đó cũng đáp ứng một số quy tắc bổ sung cũng có thể hữu ích.

Bài viết này bao gồm tất cả các thông tin, cách sử dụng robots.txt trên trang web của bạn.

Một cảnh báo trước khi bạn bắt đầu bài viết này!

Như tôi đã nói ở trên, đây là một trong những tệp dễ gây nhầm lẫn nhất. Lý do vì chỉ một ký tự không đúng vị trí cũng có thể gây ra tác động xấu tới việc thực hành SEO trên website của bạn và ngăn các công cụ tìm kiếm có thể truy cập được nội dung quan trọng trên trang web của bạn.

Robots.txt là gì?

Robots.txt là một tệp văn bản được đọc bởi các công cụ tìm kiếm [ví dụ như Google, Bing và Yahoo], hay còn được gọi với cái tên “Robots Exclusion Protocol”, là kết quả của sự đồng thuận giữa các nhà phát triển công cụ tìm kiếm ban đầu.

Đây không phải là tiêu chuẩn chính thức do bất kỳ tổ chức tiêu chuẩn nào đặt ra; mặc dù là tất cả các công cụ tìm kiếm đều tuân theo nó.

Robots.txt sẽ thực hiện công việc gì?

Tôi sẽ nêu ra hai công việc chính của công cụ tìm kiếm để các bạn có được cái nhìn khái quát nhất:

1. Thu thập thông tin trên website để bắt đầu việc ‘khám phá nội dung’ bên trong đó.

2. Lập chỉ mục nội dung hay còn gọi là index nội dung để nó có thể cung cấp cho những người tìm kiếm đang đi tìm kiếm thông tin.

Để có thể thu thập dữ liệu các trang web, các công cụ tìm kiếm sẽ đi theo các liên kết để di chuyển từ trang này sang trang khác và cuối cùng chính là thu thập lại toàn bộ thông tin qua hàng tỷ liên kết khác và trang web khác nhau. Hành động thu thập thông tin này còn được gọi với cái tên “spidering”.

Sau khi đã tới được một trang web, trước khi bắt đầu việc xem xét trang web đó, trình thu thập thông tin [search crawler] sẽ tìm kiếm tệp Robots.txt.

Khi tìm thấy một tệp thì trình thu thập sẽ đọc tệp đó trước khi tiếp tục công việc của mình qua những trang kế tiếp. Lý do là bởi tệp robots.txt chứa thông tin về cách mà công cụ tìm kiếm sẽ thu thập thông tin, thông tin được tìm thấy ở đó sẽ hướng dẫn cho trình thu thập thông tin hành động tiếp theo trên trang web cụ thể này.

Nếu như tệp robots.txt không chứa bất kỳ lệnh nào không cho phép hoạt động của tác nhân người dùng [hay trang web đó không có tệp robots.txt] thì nó sẽ tiến hành việc thu thập thông tin ở trên những trang khác trên trang web.

Tại sao Robots.txt lại quan trọng?

Có thể nói rằng, hầu hết các trang web không cần tới tệp Robots.txt.

Lý do là bởi Google thường có thể tìm và lập chỉ mục tất cả các trang quan trọng trên trang web của bạn.

Tuy nhiên, họ sẽ KHÔNG lập chỉ mục các trang quan trọng hay các phiên bản trùng lặp của các trang khác.

Điều đó có thể diễn giải rằng, có 3 lý do chính mà bạn thực sự MUỐN sử dụng Robots.txt.

Chặn các trang không công khai

Đôi khi bạn có các trang trên trang web của mình mà bạn không muốn nó được lập chỉ mục.

Ví dụ: Bạn có thể có phiên bản theo từng giai đoạn của một trang hoặc một trang đăng nhập. Các trang này cần phải tồn tại. Nhưng bạn không muốn những người dùng ‘ngẫu nhiên đổ bộ’ vào chúng. Đây chính là trường hợp mà bạn sử dụng robots.txt để chặn các trang này ra khỏi trình thu thập thông tin và chương trình của công cụ tìm kiếm.

Tối đa hóa ngân sách thu thập thông tin

Nếu bạn gặp khó khăn trong việc lập chỉ mục tất cả các trang của mình, bạn có thể gặp vấn đề về ngân sách thu thập thông tin [Crawl Budget]. Bằng cách chặn các trang không quan trọng bằng robots.txt, Googlebot có thể ‘chi tiêu’ nhiều hơn ngân sách thu thập thông tin của bạn trên các trang thực sự quan trọng.

Ngăn lập chỉ mục tài nguyên:

Sử dụng chỉ thị meta có thể hoạt động giống như Robots.txt để ngăn các trang được lập chỉ mục. Tuy nhiên, chỉ thị meta không hoạt động tốt cho các tài nguyên đa phương tiện, như PDF và hình ảnh. Đây chính là lúc mà robots.txt được phát huy khả năng của mình.

Điểm mấu chốt ở chỗ, Robots.txt yêu cầu trình thu thập thông tin của công cụ tìm kiếm không thu thập từ dữ liệu các trang cụ thể trên trang web của bạn.

Bạn có thể kiểm tra xem bạn đã lập chỉ mục bao nhiêu trang trong Google Search Console.

Nếu số đó khớp với số trang mà bạn muốn lập chỉ mục, bạn không cần bận tâm tới tệp Robots.txt.

Nhưng nếu con số đó cao hơn con số mà bạn mong đợi [và bạn nhận thấy các URL được lập chỉ mục không nên được lập chỉ mục], thì đã tới lúc tạo tệp robots.txt cho trang web của bạn.

Robots.txt trông như thế nào?

Dưới đây là định dạng cơ bản của tệp robots.txt:

Sitemap: [URL location of sitemap]

User-agent: [bot identifier]

[directive 1]

[directive 2]

[directive …]

User-agent: [another bot identifier]

[directive 1]

[directive 2]

[directive …]

Nếu bạn chưa từng thấy một trong những tệp này trước đây, điều đó nghe có vẻ khó khăn. Tuy nhiên, cú pháp thực hiện rất đơn giản. Nói tóm lại, bạn chỉ định các quy tắc cho bot bằng cách nêu rõ tác nhân người dùng của chúng, sau đó là các lệnh.

Hãy cùng tìm hiểu một cách chi tiết hơn về hai thành phần này.

Tác nhân người dùng [User-agents]

Mỗi công cụ tìm kiếm đều xác định nó với một user-agents khác nhau.

Bạn có thể đặt hướng dẫn tùy chỉnh cho từng hướng dẫn này trong robots.txt của mình. Có hàng trăm user-agents, nhưng dưới đây là một số user-agents thực sự hữu ích cho SEO:

  • Google: Googlebot
  • Google Hình ảnh: Googlebot-Image
  • Bing: Bingbot
  • Yahoo: Slurp
  • Baidu: Baiduspider
  • DuckDuckGo: DuckDuckBot

Chú thích ngoài lề: Tất cả các user-agents đều phân biệt chữ hoa và chữ thường trong robots.txt.

Bạn cũng có thể sử dụng ký tự đại diện dấu [*] để gán chỉ thị dành cho tất cả các user-agents.

Ví dụ: giả sử rằng bạn muốn chặn tất cả các bot ngoại trừ Googlebot thu thập dữ liệu trang web của bạn. Đây chính là cách mà bạn thực hiện điều đó:

User-agent: *
Disallow: /

User-agent: Googlebot
Allow: /

Biết rằng tệp Robots.txt của bạn có thể bao gồm các lệnh cho bao nhiêu tác nhân user-agents tùy thích. Điều đó nói nên rằng, mỗi khi mà bạn khai báo về một user-agents mới, nó sẽ hoạt động giống như một phương tiện chặn rõ ràng.

Nói theo cách khác, nếu bạn thêm nhiều chỉ thị cho user-agents, các chỉ thị được khai báo cho user-agent đầu tiên sẽ không được áp dụng cho user-agents thứ hai, thứ ba, thứ tư,…

Ngoại lệ cho quy tắc đó là khi bạn khai báo cùng một user-agents dùng nhiều lần. Trong trường hợp đó, tất cả các chỉ thị liên quan được kết hợp và tuân theo.

Lưu ý quan trọng:

Trình thu thập thông tin chỉ tuân theo các quy tắc đã được khai báo trong [các] tác nhân người dùng [user-agents] áp dụng chính xác nhất cho chúng. Đó là lý do vì sao tệp robots.txt ở trên chặn tất cả các bot ngoại trừ Googlebot [và các bot khác của Google] thực hiện việc thu thập dữ liệu trên web. Googlebot bỏ qua phần khai báo user-agents ít cụ thể hơn.

Chỉ thị

Chỉ thị là các quy tắc mà bạn muốn các user-agents đã khai báo tuân theo.

Các chỉ thị được hỗ trợ

Dưới đây là các chỉ thị mà Google hiện hỗ trợ, cùng với cách sử dụng của chúng.

Disallow

Sử dụng chỉ thị này để hướng dẫn các công cụ tìm kiếm không truy cập vào các tệp và trang nằm trong một đường dẫn cụ thể.

Ví dụ: Nếu bạn muốn chặn tất cả các công cụ tìm kiếm truy cập vào blog của mình và tất cả các bài đăng trên blog của mình, tệp robots.txt của bạn có thể trông giống như sau:

User-agent: *
Disallow: /blog

Chú thích: Nếu bạn không xác định được đường dẫn sau lệnh Disallow, các công cụ tìm kiếm sẽ bỏ qua nó.

Allow

Sử dụng chỉ thị này để cho phép các công cụ tìm kiếm thu thập thông tin một trang hoặc một thư mục con – ngay cả trong một thư mục không được phép khác.

Ví dụ: nếu bạn muốn ngăn các công cụ tìm kiếm truy cập vào mọi bài đăng trên blog của bạn ngoại trừ một bài đăng, thì tệp robots.txt của bạn có thể trông giống như sau:

User-agent: *

Disallow: /blog

Allow: /blog/allowed-post

Trong ví dụ này, các công cụ tìm kiếm có thể truy cập /blog/allowed-post
Nhưng họ không thể truy cập:

/blog/another-post

/blog/yet-another-post

/blog/download-me.pdf

Cả Google lẫn Bing đều hỗ trợ chỉ thị này.

Chú thích: Cũng như chỉ thị Disallow, nếu bạn không xác định đường dẫn sau chỉ thị allow, các công cụ tìm kiếm sẽ bỏ qua nó.

Một lưu ý về các quy tắc xung đột

Bạn nên cẩn thận trong việc này, vì các chỉ thị Allow và Disallow có thể dễ dàng tạo ra xung đột với nhau.

Trong ví dụ bên dưới, chúng tôi không cho phép truy cập /blog/ và cho phép truy cập / blog.

User-agent: *

Disallow: /blog/

Allow: /blog

Trong trường hợp này, URL /blog/post-title/ dường như vừa Disallow và vừa Allow. Vậy cái nào đúng?

Đối với Google và Bing, quy tắc là chỉ thị có nhiều ký tự nhất sẽ đúng. Trong trường hợp ở đây là chỉ thị Disallow.

Disallow: /blog/ [6 ký tự]

Allow: /blog [5 ký tự]

Nếu các lệnh allow và disallow có độ dài như nhau, thì lệnh ít hạn chế nhất sẽ đúng. Trong trường hợp đó, chính là chỉ thị allow.

Chú thích: Tại đây, /blog [không có dấu gạch chéo] vẫn có thể truy cập và thu thập thông tin được.

Điều quan trọng, đây chỉ là trường hợp của Google và Bing. Các công cụ tìm kiếm khác hay lắng nghe chỉ thị phù hợp ban đầu. Trong trường hợp này, điều đó không được phép.

Sitemap

Sử dụng chỉ thị này để chỉ định vị trí của các Sitemap trên trang web của bạn cho các công cụ tìm kiếm. Nếu bạn không quen với sitemap, chúng thường bao gồm các trang mà bạn muốn các công cụ tìm kiếm thu thập thông tin và lập chỉ mục.

Dưới đây là ví dụ về robots.txt sử dụng lệnh sitemap:

Sitemap: //www.domain.com/sitemap.xml

User-agent: *

Disallow: /blog/

Allow: /blog/post-title/

Việc bao gồm các sitemap trong tệp robots.txt của bạn quan trọng như thế nào?

Nếu bạn đã gửi thông qua Search Console, thì nó sẽ hơi thừa đối với Google. Tuy nhiên, nó cho các công cụ tìm kiếm khác như Bing biết nơi tìm sơ đồ trang web của bạn, vì vậy nó vẫn là một phương pháp khá thú vị.

Lưu ý rằng, bạn không cần lặp lại chỉ thị sơ đồ trang web nhiều lần chỗ mỗi user-agents. Nó không chỉ áp dụng cho một. Vì vậy, tốt nhất bạn nên bao gồm chỉ thị sitemap ở đầu hoặc cuối tệp robots.txt của mình.

Ví dụ:

Sitemap: //www.domain.com/sitemap.xml

User-agent: Googlebot
Disallow: /blog/
Allow: /blog/post-title/

User-agent: Bingbot
Disallow: /services/

Google hỗ trợ chỉ thị sitemap, cũng giống như Ask, Bing và Yahoo.

Các lệnh không được hỗ trợ

Dưới đây là các lệnh không còn được Google hỗ trợ nữa – một số lệnh trong số đó chưa bao giờ có về mặt kỹ thuật.

Trễ thu thập thông tin

Trước đây, bạn có thể sử dụng chỉ thị này để chỉ định độ trễ thu thập thông tin tính bằng giây.

Ví dụ: Nếu bạn muốn Googlebot đợi 5 giây sau mỗi hành động thu thập thông tin, bạn sẽ đặt độ trễ thu thập thông tin thành 5 như sau:

User-agent: Googlebot
Crawl-delay: 5

Hiện Google không còn hỗ trợ chỉ thị này, nhưng Bing và Yandex thì có.

Điều đó nói rằng, hãy cẩn thận khi thiết lập chỉ thị này, đặc biệt nếu bạn có một trang web lớn. Nếu bạn đặt độ trễ thu thập thông tin là 5 giây, thì bạn đang hạn chế các bot thu thập thông tin tối đa 17.280 URL mỗi ngày.

Điều đó sẽ không hữu ích lắm nếu bạn đang sở hữu hàng triệu trang, nhưng nó có thể tiết kiệm băng thông nếu bạn có một trang web nhỏ.

Noindex

Chỉ thị này chưa bao giờ được Google hỗ trợ một cách chính thức. Tuy nhiên, cho đến gần đây, người ta cho rằng Google đã có một số “mã xử lý các quy tắc không được hỗ trợ và chưa được xuất bản [chẳng hạn như noindex].”

Vì vậy, nếu bạn muốn ngăn Google lập chỉ mục tất cả các bài đăng trên blog của mình, bạn có thể sử dụng lệnh sau:

User-agent: Googlebot
Noindex: /blog/

Tuy nhiên, vào ngày 1 tháng 9 năm 2019, Google đã nói rằng chỉ thị này không được hỗ trợ. Nếu bạn muốn loại trừ một trang hay tệp khỏi công cụ tìm kiếm, hãy sử dụng Meta Robots tags hoặc tiêu đề HTTP X-Robots thay thế.

Nofollow

Đây là một chỉ thị khác mà Google chưa bao giờ chính thức hỗ trợ và được sử dụng để hướng dẫn các công cụ tìm kiếm không đi theo các liên kết trên các trang và tệp theo một đường dẫn cụ thể.

Ví dụ: nếu bạn muốn ngăn Google theo dõi tất cả các liên kết trên blog của mình, bạn có thể sử dụng câu lệnh sau:

User-agent: Googlebot
Nofollow: /blog/

Google đã thông báo rằng chỉ thị này chính thức không được hỗ trợ vào ngày 1 tháng 9 năm 2019.

Nếu bạn muốn thực hiện nofollow với tất cả các liên kết trên một trang ngay bây giờ, bạn nên sử dụng Meta Robots Tag hoặc Title X-Robots.

Nếu bạn muốn yêu cầu Google không theo các liên kết cụ thể trên một trang, hãy sử dụng thuộc tính liên kết rel = “nofollow”.

Ưu và nhược điểm của việc sử dụng robots.txt

Ưu điểm: Chuyên nghiệp trong việc quản lý ngân sách thu thập thông tin

Thông thường, người ta thường hiểu rằng một trình thu thập thông tin tìm kiếm đến một trang web với “mức cho phép” đã được xác định trước cho số lượng trang mà nó sẽ thực hiện việc thu thập thông tin [hoặc lượng tài nguyên / thời gian mà nó sẽ sử dụng, dựa trên quyền hạn / kích thước / danh tiếng của trang web và máy chủ phản hồi hiệu quả như thế nào].

Trong SEO gọi đây là Crawl Budget.

Nếu bạn cho rằng trang web của mình có vấn đề với ngân sách thu thập thông tin, thì việc chặn các công cụ tìm kiếm gây ‘lãng phí’ ngân sách ở các phần không quan trọng trên trang web của bạn có thể có nghĩa là họ tập trung thay vào các phần quan trọng.

Đôi khi có thể có lợi khi chặn các công cụ tìm kiếm thu thập dữ liệu các phần có vấn đề trên trang web của bạn, đặc biệt là trên các trang web cần phải làm sạch nhiều SEO.

Sau khi đã thu dọn mọi thứ, bạn có thể để chúng vào lại.

Lưu ý về việc chặn các tham số truy vấn

Một tình huống mà ngân sách thu thập thông tin đặc biệt quan trọng là khi trang web của bạn sử dụng nhiều tham số chuỗi truy vấn để lọc hoặc sắp xếp danh sách.

Giả sử, bạn có 10 tham số truy vấn khác nhau, mỗi tham số có các giá trị khác nhau có thể được sử dụng trong bất kỳ kết hợp nào [như một chiếc áo phông có nhiều màu và kích thước].

Điều này dẫn tới rất nhiều URL hợp lệ có thể có, tất cả đều có thể được thu thập thông tin. Việc chặn thu thập thông tin truy vấn sẽ giúp đảm bảo công cụ tìm kiếm chỉ thu thập các URL chính trên trang web của bạn và sẽ không đi vào cái bẫy lớn mà bạn có thể sẽ tạo ra.

Nhược điểm:

Không xóa một trang ra khỏi kết quả tìm kiếm

Mặc dù, bạn có thể sử dụng tệp robots.txt để cho spider biết nơi nó không thể đi tới trang web của bạn, nhưng bạn không thể sử dụng nó để thông báo cho công cụ tìm kiếm biết những URL nào không hiển thị trong kết quả tìm kiếm – nói cách khác là chặn nó sẽ không ngăn nó được lập chỉ mục.

Nếu công cụ tìm kiếm tìm thấy đủ liên kết đến URL đó, nó sẽ bao gồm cả nó và không biết có gì trên trang đó. Vậy nên, kết quả của bạn trên kết quả tìm kiếm sẽ trông như thế này:

Nếu bạn muốn chặn một cách đáng tin cậy một trang hiển thị trong kết quả tìm kiếm, bạn cần sử dụng Meta Robots Tag noindex. Điều đó có nghĩa là, để tìm thấy thẻ noindex, công cụ tìm kiếm phải truy cập được trang đó, vậy nên đừng chặn nó bằng robots.txt.

Không lan truyền giá trị liên kết

Nếu công cụ tìm kiếm không thể thu thập thông tin một trang, nó không thể truyền được giá trị liên kết qua các liên kết trên trang đó. Khi một trang bị chặn bằng robots.txt, đây là một đường cụt. Bất kỳ giá trị liên kết nào có thể đã chuyển tới hoặc đi qua trang đó đều bị biến mất.

Cách tìm tệp robots.txt

Nếu bạn đã có tệp robots.txt trên trang web của mình, bạn sẽ có thể truy cập tệp này tại domain.com/robots.txt. Điều hướng tới URL trong trình duyệt của bạn.

Nếu thấy thứ gì đó giống như hình dưới đây, thì bạn đã có tệp robots.txt:

Cách tạo tệp robots.txt

Nếu bạn chưa có tệp robots.txt, việc tạo ra một tệp rất dễ dàng. Chỉ cần mở một tài liệu .txt trống và bắt đầu nhập lệnh. Ví dụ: nếu bạn muốn không cho phép tất cả các công cụ tìm kiếm thu thập thông tin /admin/ folder của bạn, nó sẽ trông như sau:

User-agent: *
Disallow: /admin/

Tiếp tục xây dựng các chỉ thị cho đến khi bạn cảm thấy hài lòng với những gì mình có. Lưu tệp của bạn dưới dạng “robots.txt”.

Ngoài ra, bạn cũng có thể sử dụng trình tạo robots.txt như trình tạo này.

Ưu điểm của việc sử dụng một công cụ như thế này là nó giảm thiểu các lỗi cú pháp. Điều đó là tốt vì một sai lầm có thể dẫn tới ‘thảm họa’ trong SEO trên trang web của bạn – vì vậy, nếu sai sót ở khía cạnh này, có thể bạn sẽ phải mất tiền để bù đắp lại ‘sai lầm’ đó.

Điểm bất lợi là chúng hơi hạn chế về khả năng tùy chỉnh.

Nơi đặt tệp robots.txt của bạn

Đặt tệp robots.txt vào thư mục gốc của tên miền phụ mà nó áp dụng.

Ví dụ: để kiểm soát hành vi thu thập thông tin trên domain.com, tệp robots.txt phải truy cập được tại domain.com/robots.txt.

Nếu bạn muốn kiểm soát việc thu thập thông tin trên một miền phụ như blog.domain.com, thì tệp robots.txt phải truy cập được tại blog.domain.com/robots.txt.

Các phương pháp hay nhất về Robots.txt

Bạn hãy ghi nhớ về điều này để tránh khỏi những sai lầm thường gặp.

Sử dụng một dòng mới cho mỗi chỉ thị

Mỗi chỉ thị nên được nằm trên một dòng mới. Nếu không, có thể nó sẽ gây ra sự nhầm lần đối với các công cụ tìm kiếm.

Bad:

User-agent: * Disallow: /directory/ Disallow: /another-directory/

Good:

User-agent: * Disallow: /directory/

Disallow: /another-directory/

Video liên quan

Chủ Đề