File Robots.txt là gì? Chức năng của Robots.txt

Robots.txt là một file do webmaster (người quản trị web) tạo ra với mục đích hướng dẫn các web robots (thường là các bot của công cụ tìm kiếm như Google) về cách thu thập dữ liệu của họ. File Robots.txt là một phần của giao thức loại trừ robot (REP – Robots Exclusion Protocol), một nhóm các tiêu chuẩn web quy định về cách robot thu thập dữ liệu trên web, truy cập và index (lập chỉ mục web) nội dung cho người dùng.

robots.txt là gì
robots.txt là gì

Robots.txt cũng bao gồm chức năng của thẻ meta robots khi xử lý 1 page như follow hay nofollow.

Tuy nhiên tệp tin này mạnh mẽ hơn meta robots do file Robots.txt có thể cho phép hoặc chặn việc thu thập dữ liệu web từ một tác nhân nào đó không phải con người. Ví dụ như bot từ các phần mềm copy web hay các trang thống kê (analytics).

Xem thêm: Search engine là gì?

Một số cú pháp cơ bản của file Robots.txt

Cú pháp cơ bản

User-agent: [tên user-agent]
Disallow: [URL page cần chặn không cho robots thu thập dữ liệu]

Với 2 dòng code này file Robots.txt có thể coi là hoàn chỉnh và có thể sử dụng. Mình tạm gọi 2 dòng code này là 1 khối lệnh. Tuy nhiên một file robots.txt có thể có nhiều hơn 2 dòng code như này, tùy thuộc vào mục đích sử dụng.

Ví dụ chặn bot ahrefs nhưng lại cho các bot khác thu thập dữ liệu từ website (allow, disallow, crawl-delays…).

Trong 1 file, nếu bạn điều hướng nhiều hơn 1 loại user agent hoặc nhiều quy tắc như allow, disallow thì bạn cần phải dùng nhiều hơn 1 khối lệnh bên trên. Mỗi khối lệnh trong robots.txt sẽ được ngăn cách với nhau bởi dấu xuống dòng.

Xem thêm: user agent là gì?

Hãy xem ví dụ dưới đây:

robots.txt
Ví dụ về file robots.txt

Như ta thấy, ở đây webmaster đã quy định các bot có tên cụ thể như msnbot, slurp, discobot được phép (allow) và không được phép (disallow) thu thập dữ liệu ở đâu. Tất cả các bot khác sẽ tuân thủ theo quy tắc bởi user agent *.

Dấu * ở đây có nghĩa là tất cả.

Ví dụ về file Robots.txt

Ở đây tôi sẽ lấy ví dụ về tạo file robots,txt cho website http://example.com/

Đường link đến file robots.txt sẽ là: http://example.com/robots.txt

Ví dụ tôi muốn chặn tất cả các bot thu thập dữ liệu tại tất cả các page.

User-agent: *
Disallow: /

Nếu tôi muốn chặn tất cả các bot thu thập dữ liệu chỉ ở 1 số page nhạy cảm của tôi, ví dụ như các trang admin. Tôi sẽ làm như sau.

User-agent: *
Disallow: /admin/*

Vẫn ví dụ trên, tuy nhiên lần này tôi sẽ chặn tất cả các bot vào mục admin và chặn bot Ahrefs không cho bot này quét dữ liệu web.

User-agent: *
Disallow: /admin/*

User-agent: AhrefsBot
Disallow: /

Nâng cao hơn 1 chút ở, như ví dụ trên nhưng tôi muốn chặn bot truy cập vào 1 số file nhạy cảm trên máy chủ của tôi. Ở đây tôi tạm gọi là file private.pdf được đặt trong mục documents.

User-agent: *
Disallow: /admin/*
Disallow: /documents/private.pdf

User-agent: AhrefsBot
Disallow: /

Các cỗ máy tìm kiếm có 2 nhiệm vụ chính:

  • Index – lập chỉ mục tất cả các bài viết của website để nó có thể phục vụ người dùng.
  • Thu thập dữ liệu trong các web page để xếp hạng cho liên kết đó.

Các máy chủ tìm kiếm này thu thập dữ liệu bằng các con bot hay bọ tìm kiếm. Như trong ví dụ bên trên là chúng ta đang gọi tên các con bot của công cụ tìm kiếm để chỉ dẫn chúng vào web của chúng ta.

Các bot này di chuyển từ web page này sang page khác thông qua các link. Link ở đây có nghĩa là cả liên kết nội bộ trong web và link out ra web khác. Cứ như vậy các con bot này sẽ thu thập dữ liệu của tỷ tỷ các web page khác nhau.

Cách thu thập dữ liệu này ở nước ngoài đôi khi người ta gọi là Spidering.

Mỗi con bot khi vào trong website đều sẽ phải đọc qua file robots.txt trước khi thu thập dữ liệu. Nếu nó đọc được các quy tắc trong file và thấy các quy tắc này đang áp dụng cho nó, nó sẽ tuân thủ theo để thu thập dữ liệu.

Nếu nội dung file robots.txt trống, không tồn tại hoặc không có quy tắc nào áp dụng cho bot. Bot sẽ quét toàn bộ dữ liệu trên website của bạn.

Một số kiến thức khác về Robots.txt

Tệp robots.txt phải được đặt ở cấp cao nhất trong thư mục website (thư mục gốc). Trong Cpanel thường sẽ là thư mục public_html.

Tên file có phân biệt chữ in hoa, in thường. Vì vậy bạn phải đặt tên file là robots.txt chứ không phải Robots.txt hay robots.TXT.

Không phải các con bot đều đọc file robots.txt và tuân thủ theo quy tắc trong file này. Hầu hết trong số đó đều là các bot gián điệp và thu thập dữ liệu bất chính như thu thập email khách hàng.

Các sub-domain sử dụng file robots.txt riêng biệt, không sử dụng chung file robots.txt với domain gốc. Ví dụ seohoaphuong.com/robots.txt và hotro.seohoaphuong.com/robots.txt sẽ là 2 file khác nhau.

Robots.txt là cách tốt nhất để bạn điều hướng bot đến sơ đồ trang web (sitemap.xml). Bạn có thể khai báo link sitemap của website trong file robots.txt. Ví dụ như sau:

User-agent:*
Allow:/

Sitemap: https://seohoaphuong.com/sitemap_index.html

Xem thêm: Sitemap là gì?

Các cú pháp trong robots.txt

Robots.txt có các cú pháp và ngôn ngữ riêng của nó, giúp các bot tìm kiếm có thể hiểu được. Có 5 cú pháp phổ biến được dùng trong file robots.txt đó là:

User-agent: chỉ định một web bot cụ thể được phép làm gì và không được phép làm gì. Hiện theo chúng tôi thống kê có 302 user agent bot phổ biến, tất cả tên của user agent này đều được tổng hợp tại đây.

Disallow: không cho phép web bot truy cập vào các liên kết chỉ định.

Allow: cho phép web bot thu thập dữ liệu ở các liên kết chỉ định. Cú pháp này chỉ áp dụng cho GoogleBot.

Crawl-delay: thiết lập thời gian bot phải đợi bao nhiêu giây mới được phép thu thập dữ liệu trang. Hiện tại GoogleBot không chấp nhận lệnh này. Tuy nhiên Google cho phép người dùng thiết lập tốc độ thu thập dữ liệu trong Webmaster Tool.

Sitemap: khai báo link sitemap cho các web bot. Mỗi sitemap sẽ là một lệnh khác nhau, phân biệt với nhau bằng cách xuống dòng. Cú pháp này chỉ áp dụng cho các bot Google, Bing, Yahoo và Ask.

Các biểu thức chính quy trong robots.txt

Khi thực hiện các quy tắc chặn (disallow) hoặc cho phép (allow) từng URL riêng biệt trong file robots.txt có thể rất mất thời gian. Vì mỗi website sẽ có đến hàng chục nghìn thậm chí hàng triệu link.

Chính vì thế Google và Bing đã thêm các biểu thức chính quy (pattern-matching) vào robots.txt. Việc này có thể giúp bạn chọn hàng loạt các đối tượng để áp dụng 1 quy tắc cụ thể nào đó.

Hiện có 2 quy tắc chính quy như sau:

  • * đại diện cho bất kỳ chuỗi ký tự nào
  • $ đại diện cho ký tự đứng cuối url

Ví dụ chặn tất cả các web bot, ta không nhất thiết phải gọi tên đủ 302 con web bot mà chỉ cần 2 dòng ngắn gọn.

User-agent: *
Disallow: /

Hoặc khi tôi muốn chặn thu thập dữ liệu các file PDF trong thư mục uploads. Vì các file PDF có đuôi .pdf nên tôi sẽ sử dụng thêm biểu thức $. Nó sẽ trông như sau:

User-agent: *
Disallow: /uploads/*.pdf$

Bạn có thể đọc thêm một số quy tắc, cú pháp của robots.txt mà Google quy định tại đây.

Robots.txt ở đâu trên thư mục web?

Như tôi đã nói ở trên, mỗi khi vào website của bạn hầu hết các web bot (như Facebook bot) đều sẽ đi tìm file robots.txt để xem các quy tắc về thu thập dữ liệu. Tuy nhiên, chúng sẽ không lùng sục khắp website của bạn để tìm kiếm file này.

Hầu hết các web bot đều mặc định tìm kiếm file robots.txt tại thư mục gốc của website http://example.com/robots.txt. Nếu không tìm thấy tệp tại đấy nó sẽ coi như website của bạn không có robots.txt. Và nó sẽ bắt đầu tiến hành thu thập dữ liệu trên toàn website.

Ngay cả khi bạn tạo 1 file robots.txt nhưng lại đặt ở trong 1 thư mục con của website. Ví dụ như https://example.com/subfolder/robots.txt thì nó cũng được coi như là không tồn tại. Các web bot vẫn xử lý như không có tệp tin này trên server.

Vì vậy, để đảm bảo các web bot có thể tìm thấy tệp tin này, hãy đặt nó tại thư mục gốc (root folder) của website.

Tại sao bạn cần file robots.txt?

Robots.txt giúp bạn kiểm soát truy cập đến một số khu vực nhất định trên website của bạn. Mặc dù điều này đôi khi rất nguy hiểm nếu chẳng may bạn chặn bot của Google. Nếu chặn nhầm phải bot của Google có thể website của bạn sẽ không được index.

Một số trường hợp sử dụng robots.txt phổ biến như sau:

  • Ngăn chặn trùng lặp nội dung xuất hiện trong kết quả tìm kiếm. Ví dụ có 2 link seo về từ khóa dịch vụ SEO Hải Phòng, có lẽ bạn nên cân nhắc chặn 1 trong 2. Tuy nhiên, thông thường chúng tôi làm việc này thông qua tag meta robots.
  • Ngăn cho toàn bộ website của bạn không index trên Google. Điều này xảy ra khi bạn thực hiện thay đổi cấu trúc hoặc giao diện website trên database cũ, tại một sub-domain tạm thời. Nhóm kỹ thuật sẽ muốn các bot không vào link này để dò dữ liệu vì có thể gây nên tình trạng trùng lặp nội dung với website đang chạy.
  • Chặn các trang tìm kiếm nội bộ của website không có trên kết quả tìm kiếm.
  • Ngăn công cụ tìm kiếm truy cập đến file có các đuôi được xác định như .pdf, .docs, .gif…vì đôi khi chúng ta các file tài liệu của doanh nghiệp.
  • Cho phép thiết lập độ trễ (crawl-delay) khi bot đến thu thập dữ liệu, việc này có thể giúp website của bạn tránh bị quá tải.

Nếu không có khu vực nào cần hạn chế truy cập trên website bạn có thể không cần file robots.txt.

Kiểm tra web có file robots.txt không như nào?

Để kiểm tra website có robots.txt hay không cách đơn giản nhất là gõ lên trình duyệt tên miền của bạn kèm với /robots.txt.

Ví dụ như seohoaphuong sẽ là https://seohoaphuong.com/robots.txt

Nếu có file robots.txt, trình duyệt sẽ hiển thị nội dung của file. Trường hợp ngược lại hệ thống sẽ báo lỗi 404. Lúc này bạn sẽ cần phải tạo file robots.txt cho website của mình.

Tạo file robots.txt như nào?

Nếu website của bạn không có file robots.txt hoặc bạn thấy file của bạn chưa ổn cần sửa lại thì việc tạo 1 tệp mới vô cùng đơn giản.

Bạn có thể xem cách Google hướng dẫn tạo file robots.txt trong bài viết này. Bạn cũng có thể kiểm tra xem file robots.txt của mình đang đúng chưa bằng cách truy cập vào công cụ này và submit file robots.txt của mình lên.

Với các bạn đang sử dụng website WordPress chúng tôi sẽ có một bài hướng dẫn tạo robots.txt trên WordPress riêng. Ở bài viết này chúng tôi sẽ dừng ở đây để tránh làm loãng kiến thức bài viết.

Sự khác nhau giữa robots.txt và meta robot vs x-robot

Có đến 3 loại robots, tuy nhiên thực tế chúng khác nhau khá nhiều. Đầu tiên robots.txt là một tệp tin trong khi đó meta robot và x-robot chỉ là các html tag.

Sự khác biệt lớn nhất đó là robots.txt có thể kiểm soát thu thập dữ liệu ở cấp độ toàn bộ website, thư mục hoặc 1 loại tệp tin cụ thể. Trong khi meta robot và x-robot chỉ có thể kiểm soát ở cấp độ web page, nơi mà được nhúng tag này mà thôi.

Như vậy là bạn đã học thêm được rất nhiều kiến thức SEO mới trong bài viết này. Đừng quên chia sẻ bài viết cho SEOHoaPhuong và đón đọc các bài viết tiếp theo trên website của chúng tôi.

Trả lời

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 *