Cách viết và gửi tệp robots.txt

Bạn có thể dùng tệp robots.txt để kiểm soát các tệp mà trình thu thập dữ liệu có thể truy cập trên trang web của mình.

Tệp robots.txt nằm tại thư mục gốc của trang web. Vì vậy, đối với trang web www.example.com, tệp robots.txt nằm tại www.example.com/robots.txt. robots.txt là một tệp văn bản thuần túy tuân theo Tiêu chuẩn loại trừ robot. Tệp robots.txt chứa ít nhất một quy tắc. Mỗi quy tắc sẽ chặn hoặc cho phép tất cả hoặc một trình thu thập dữ liệu cụ thể truy cập vào một đường dẫn tệp được chỉ định trên miền hoặc miền con lưu trữ tệp robots.txt đó. Trừ trường hợp bạn chỉ định khác đi, mọi tệp robots.txt đều ngầm cho phép hoạt động thu thập dữ liệu.

Sau đây là một tệp robots.txt đơn giản chứa hai quy tắc:

User-agent: Googlebot
Disallow: /nogooglebot/

User-agent: *
Allow: /

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

Sau đây là ý nghĩa của tệp robots.txt đó:

  1. Tác nhân người dùng có tên Googlebot không được phép thu thập dữ liệu trong mọi URL bắt đầu bằng https://example.com/nogooglebot/.
  2. Mọi tác nhân người dùng khác đều được phép thu thập dữ liệu trên toàn bộ trang web. Quy tắc này có thể được bỏ qua mà kết quả vẫn như vậy. Lý do là theo mặc định, mọi tác nhân người dùng đều được phép thu thập dữ liệu trên toàn bộ trang web.
  3. Tệp sơ đồ trang web của trang web này nằm tại https://www.example.com/sitemap.xml.

Hãy tham khảo phần về cú pháp để xem thêm ví dụ.

Nguyên tắc cơ bản để tạo tệp robots.txt

Có 4 bước để tạo tệp robots.txt và giúp tệp này trở nên dễ truy cập và hữu ích:

  1. Tạo một tệp có tên robots.txt.
  2. Thêm quy tắc vào tệp robots.txt.
  3. Tải tệp robots.txt lên thư mục gốc của trang web.
  4. Kiểm tra tệp robots.txt.

Tạo tệp robots.txt

Bạn có thể sử dụng hầu hết mọi trình chỉnh sửa văn bản để tạo tệp robots.txt. Ví dụ: Notepad, TextEdit, vi và emacs có thể tạo các tệp robots.txt hợp lệ. Đừng dùng trình xử lý văn bản vì trình xử lý văn bản thường lưu tệp dưới một định dạng độc quyền và có thể thêm những ký tự không mong muốn (chẳng hạn như dấu ngoặc kép cong); việc này có thể khiến trình thu thập dữ liệu gặp sự cố. Hãy nhớ lưu tệp bằng phương thức mã hoá UTF-8 nếu được nhắc trong hộp thoại lưu tệp.

Quy tắc về định dạng và vị trí:

  • Phải đặt tên tệp là robots.txt.
  • Trang web của bạn chỉ có thể có một tệp robots.txt.
  • Tệp robots.txt phải nằm tại thư mục gốc trên máy chủ của trang web, tương ứng với phạm vi áp dụng của tệp. Ví dụ: để kiểm soát quá trình thu thập dữ liệu trên mọi URL tại https://www.example.com/, tệp robots.txt phải nằm tại https://www.example.com/robots.txt. Bạn không thể đặt tệp này trong một thư mục con (ví dụ như tại https://example.com/pages/robots.txt). Nếu bạn không chắc chắn về cách truy cập vào thư mục gốc của trang web hoặc cần quyền truy cập, hãy liên hệ với nhà cung cấp dịch vụ lưu trữ web của bạn. Nếu bạn không thể truy cập vào thư mục gốc của trang web, hãy dùng một phương thức chặn thay thế, chẳng hạn như thẻ meta.
  • Bạn có thể đăng tệp robots.txt lên một miền con (ví dụ: https://website.example.com/robots.txt) hoặc trên cổng không chuẩn (ví dụ: https://example.com:8181/robots.txt).
  • Tệp robots.txt chỉ áp dụng cho các đường dẫn trong giao thức, máy chủ và cổng nơi tệp này được đăng. Nói cách khác, các quy tắc trong https://example.com/robots.txt chỉ áp dụng cho các tệp trong https://example.com/, chứ không áp dụng cho các miền con như https://m.example.com/ hoặc các giao thức thay thế như http://example.com/
  • Tệp robots.txt phải là tệp văn bản được mã hoá UTF-8 (bao gồm cả ASCII). Google có thể bỏ qua các ký tự không thuộc phạm vi của UTF-8 vì các quy tắc trong tệp robots.txt có thể hiển thị không chính xác.

Cách viết quy tắc trong tệp robots.txt

Các quy tắc có tác dụng hướng dẫn trình thu thập dữ liệu về những phần có thể thu thập dữ liệu trên trang web của bạn. Khi bạn thêm quy tắc vào tệp robots.txt, hãy tuân theo những nguyên tắc sau:

  • Tệp robots.txt bao gồm một hoặc nhiều nhóm (bộ quy tắc).
  • Mỗi nhóm bao gồm nhiều quy tắc (còn gọi là lệnh), mỗi quy tắc một dòng. Mỗi nhóm bắt đầu bằng một dòng User-agent nêu rõ mục tiêu của nhóm đó.
  • Một nhóm cung cấp những thông tin sau:
    • Đối tượng mà nhóm áp dụng (tác nhân người dùng).
    • Những thư mục hoặc tệp mà tác nhân đó được phép truy cập.
    • Những thư mục hoặc tệp mà tác nhân đó không được phép truy cập.
  • Trình thu thập dữ liệu xử lý các nhóm từ trên xuống dưới. Một tác nhân người dùng chỉ có thể khớp với một bộ quy tắc – chính là nhóm đầu tiên và cụ thể nhất khớp với một tác nhân người dùng nhất định. Nếu có nhiều nhóm cho cùng một tác nhân người dùng, thì các nhóm đó sẽ được kết hợp thành một nhóm duy nhất trước khi xử lý.
  • Theo giả định mặc định, tác nhân người dùng có thể thu thập dữ liệu của mọi trang hoặc thư mục không bị quy tắc disallow chặn.
  • Các quy tắc có phân biệt chữ hoa chữ thường. Ví dụ: disallow: /file.asp áp dụng cho https://www.example.com/file.asp nhưng không áp dụng cho https://www.example.com/FILE.asp.
  • Ký tự # đánh dấu điểm bắt đầu của một nhận xét. Các nhận xét sẽ bị bỏ qua trong quá trình xử lý.

Trong tệp robots.txt, trình thu thập dữ liệu của Google hỗ trợ những lệnh sau đây:

  • user-agent: [Bắt buộc, ít nhất một lệnh trong mỗi nhóm] Quy tắc này chỉ định tên của ứng dụng tự động (còn được gọi là trình thu thập dữ liệu của công cụ tìm kiếm) phải tuân theo quy tắc đó. Đây là dòng đầu tiên của mọi nhóm quy tắc. Danh sách tác nhân người dùng của Google có liệt kê tên các tác nhân người dùng của Google. Dấu hoa thị (*) đại diện cho mọi trình thu thập dữ liệu, ngoại trừ các trình thu thập dữ liệu AdsBot (bạn phải nêu rõ tên cho loại trình thu thập dữ liệu này). Ví dụ:
    # Example 1: Block only Googlebot
    User-agent: Googlebot
    Disallow: /
    
    # Example 2: Block Googlebot and Adsbot
    User-agent: Googlebot
    User-agent: AdsBot-Google
    Disallow: /
    
    # Example 3: Block all crawlers except AdsBot (AdsBot crawlers must be named explicitly)
    User-agent: *
    Disallow: /
  • disallow: [Ít nhất một mục disallow hoặc allow trên mỗi quy tắc] Một thư mục hoặc trang (tương đối so với miền gốc) mà bạn không muốn tác nhân người dùng thu thập dữ liệu trên đó. Nếu quy tắc đề cập đến một trang, thì trang đó phải có tên đầy đủ (như tên xuất hiện trong trình duyệt). Quy tắc này phải bắt đầu bằng một ký tự / và nếu quy tắc này đề cập đến một thư mục, thì thư mục đó phải kết thúc bằng một dấu /.
  • allow: [Ít nhất một mục disallow hoặc allow trên mỗi quy tắc] Một thư mục hoặc trang (tương đối so với miền gốc) mà tác nhân người dùng đã chỉ định được phép thu thập dữ liệu trên đó. Quy tắc này được dùng để ghi đè quy tắc disallow nhằm cho phép thu thập dữ liệu trên một thư mục con hoặc một trang trong một thư mục không được phép. Đối với một trang đơn lẻ, hãy chỉ định tên trang đầy đủ như tên xuất hiện trong trình duyệt. Quy tắc này phải bắt đầu bằng một ký tự / và nếu quy tắc này dẫn chiếu đến một thư mục, thì thư mục đó phải kết thúc bằng một dấu /.
  • sitemap: [Không bắt buộc, có hoặc không có trong mỗi tệp] Vị trí của sơ đồ trang web cho trang web này. URL sơ đồ trang web phải là một URL đủ điều kiện; Google không giả định hoặc kiểm tra các phiên bản thay thế (http/https/www/không có www). Sơ đồ trang web là một cách hay để chỉ định nội dung mà Google nên thu thập dữ liệu, chứ không phải nội dung mà Google được phép hoặc không được phép thu thập dữ liệu. Tìm hiểu thêm về sơ đồ trang web. Ví dụ:
    Sitemap: https://example.com/sitemap.xml
    Sitemap: https://www.example.com/sitemap.xml

Mọi quy tắc (ngoại trừ sitemap) đều hỗ trợ ký tự đại diện * cho một tiền tố, hậu tố hoặc toàn bộ chuỗi đường dẫn.

Các dòng không khớp với quy tắc nào trong những quy tắc này sẽ bị bỏ qua.

Hãy đọc trang cách Google diễn giải quy cách tệp robots.txt của chúng tôi để nắm được nội dung mô tả đầy đủ cho từng quy tắc.

Tải tệp robots.txt lên

Khi đã lưu tệp robots.txt vào máy tính tức là bạn đã sẵn sàng cung cấp tệp này cho trình thu thập dữ liệu của công cụ tìm kiếm. Không có công cụ nào có thể giúp bạn thực hiện việc này, vì cách bạn tải tệp robots.txt lên trang web phụ thuộc vào cấu trúc trang web và máy chủ của bạn. Hãy liên hệ với công ty lưu trữ của bạn hoặc tìm kiếm trong tài liệu của công ty lưu trữ đó; ví dụ: tìm kiếm "tải tệp lên infomaniak".

Sau khi bạn tải tệp robots.txt lên, hãy kiểm tra xem tệp đó có thể truy cập công khai không và Google có thể phân tích cú pháp tệp đó không.

Kiểm tra mã đánh dấu trong tệp robots.txt

Để kiểm tra xem tệp robots.txt mới tải lên có thể truy cập công khai hay không, hãy mở một cửa sổ duyệt web ở chế độ riêng tư (hoặc tương đương) trong trình duyệt rồi di chuyển đến vị trí của tệp robots.txt. Ví dụ: https://example.com/robots.txt. Nếu thấy nội dung của tệp robots.txt thì bạn đã sẵn sàng để kiểm tra mã đánh dấu.

Google cung cấp hai cách kiểm tra mã đánh dấu robots.txt:

  1. Trình kiểm tra robots.txt trong Search Console. Bạn chỉ có thể dùng công cụ này đối với các tệp robots.txt hiện đã truy cập được trên trang web của mình.
  2. Nếu bạn là nhà phát triển, hãy tham khảo và xây dựng thư viện tệp robots.txt nguồn mở của Google. Thư viện này cũng được dùng trong Google Tìm kiếm. Bạn có thể dùng công cụ này để kiểm tra tệp robots.txt ngay trên nội bộ máy tính của mình.

Gửi tệp robots.txt cho Google

Sau khi bạn đã tải lên và kiểm tra tệp robots.txt, các trình thu thập dữ liệu của Google sẽ tự động tìm và bắt đầu sử dụng tệp robots.txt của bạn. Bạn không phải làm bất cứ điều gì! Nếu bạn đã cập nhật tệp robots.txt và cần phải làm mới bản sao đã lưu vào bộ nhớ đệm của Google càng sớm càng tốt, hãy tìm hiểu cách gửi tệp robots.txt đã cập nhật cho Google.

Các quy tắc hữu ích trong tệp robots.txt

Sau đây là một số quy tắc phổ biến và hữu ích trong tệp robots.txt:

Quy tắc hữu ích
Không cho phép thu thập dữ liệu toàn bộ trang web

Xin lưu ý rằng trong một số trường hợp, Google vẫn có thể lập chỉ mục các URL thuộc trang web mặc dù chưa thu thập dữ liệu những URL đó.


User-agent: *
Disallow: /
Không cho phép thu thập dữ liệu một thư mục và nội dung trong đó

Thêm dấu gạch chéo lên vào tên thư mục để không cho phép thu thập dữ liệu toàn bộ thư mục.


User-agent: *
Disallow: /calendar/
Disallow: /junk/
Disallow: /books/fiction/contemporary/
Cho phép truy cập vào một trình thu thập dữ liệu

Chỉ googlebot-news mới có thể thu thập dữ liệu trên toàn bộ trang web.


User-agent: Googlebot-news
Allow: /

User-agent: *
Disallow: /
Cho phép tất cả các trình thu thập dữ liệu truy cập nhưng ngoại trừ một trình thu thập dữ liệu

Unnecessarybot không được thu thập dữ liệu trên trang web, mọi bot khác có thể thu thập dữ liệu trên trang web.


User-agent: Unnecessarybot
Disallow: /

User-agent: *
Allow: /

Không cho phép thu thập dữ liệu trên một trang của trang web

Ví dụ: không cho phép trang useless_file.html nằm tại https://example.com/useless_file.htmlother_useless_file.html trong thư mục junk.


User-agent: *
Disallow: /useless_file.html
Disallow: /junk/other_useless_file.html

Không cho phép thu thập dữ liệu trên toàn bộ trang web, ngoại trừ một thư mục con

Trình thu thập dữ liệu chỉ có thể truy cập vào thư mục con public.


User-agent: *
Disallow: /
Allow: /public/

Chặn một hình ảnh cụ thể khỏi Google Hình ảnh

Ví dụ: không cho phép hình ảnh dogs.jpg.


User-agent: Googlebot-Image
Disallow: /images/dogs.jpg

Chặn mọi hình ảnh trên trang web khỏi Google Hình ảnh

Google không thể lập chỉ mục hình ảnh và video mà không thu thập dữ liệu hình ảnh và video đó.


User-agent: Googlebot-Image
Disallow: /

Không cho phép thu thập dữ liệu trong các tệp thuộc một loại cụ thể

Ví dụ: không cho phép thu thập dữ liệu trong mọi tệp .gif.


User-agent: Googlebot
Disallow: /*.gif$

Không cho phép thu thập dữ liệu trên toàn bộ trang web, nhưng cho phép Mediapartners-Google

Cách thức triển khai này ẩn các trang của bạn khỏi kết quả tìm kiếm, nhưng trình thu thập dữ liệu web Mediapartners-Google vẫn có thể phân tích những trang đó để quyết định xem nên hiển thị quảng cáo nào cho khách truy cập trang web của bạn.


User-agent: *
Disallow: /

User-agent: Mediapartners-Google
Allow: /
Sử dụng ký tự đại diện *$ để khớp với những URL kết thúc bằng một chuỗi cụ thể

Ví dụ: không cho phép mọi tệp .xls.


User-agent: Googlebot
Disallow: /*.xls$