Bản đặc tả về thẻ meta robots, thuộc tính data-nosnippet và X-Robots-Tag

Bản tóm tắt

Tài liệu này trình bày chi tiết cách sử dụng các tùy chọn cài đặt cấp trang và cấp văn bản để điều chỉnh cách Google hiển thị nội dung của bạn trong kết quả tìm kiếm. Bạn có thể chỉ định các tùy chọn cài đặt cấp trang bằng cách bao gồm thẻ meta trên các trang HTML hoặc trong tiêu đề HTTP. Bạn có thể chỉ định các tùy chọn cài đặt cấp văn bản bằng thuộc tính data- nosnippet trên các phần tử HTML trong một trang.

Sử dụng thẻ meta robots

Thẻ meta robots cho phép bạn sử dụng phương thức chi tiết ở cấp trang để kiểm soát cách Google nên lập chỉ mục và hiển thị một trang riêng lẻ cho người dùng trong kết quả của Google Tìm kiếm. Hãy đặt thẻ meta robots trong phần <head> của một trang nhất định, như trong ví dụ sau:

    <!DOCTYPE html>
    <html><head>
    <meta name="robots" content="noindex" />
    (…)
    </head>
    <body>(…)</body>
    </html>
    

Thẻ meta robots trong ví dụ trên hướng dẫn các công cụ tìm kiếm không hiển thị trang trong kết quả tìm kiếm. Giá trị của thuộc tính name (robots) chỉ định rằng lệnh này áp dụng cho tất cả các trình thu thập dữ liệu. Để cung cấp chỉ dẫn cho một trình thu thập dữ liệu cụ thể, hãy thay thế giá trị robots của thuộc tính name bằng tên của trình thu thập dữ liệu mà bạn muốn chỉ dẫn. Trình thu thập dữ liệu cụ thể còn được gọi là tác nhân người dùng (trình thu thập dữ liệu sử dụng tác nhân người dùng để yêu cầu một trang). Trình thu thập dữ liệu web thông thường của Google có tên tác nhân người dùng là Googlebot. Để chỉ ngăn Googlebot thu thập dữ liệu trang của bạn, hãy cập nhật thẻ như sau:

    <meta name="googlebot" content="noindex" />
    

Hiện tại, thẻ này chỉ dẫn Google không hiển thị trang này trong kết quả tìm kiếm. Cả hai thuộc tính namecontent đều không phân biệt chữ hoa chữ thường.

Công cụ tìm kiếm có thể có các trình thu thập dữ liệu khác nhau cho các sản phẩm hoặc mục đích khác nhau. Hãy xem danh sách đầy đủ các trình thu thập dữ liệu của Google. Ví dụ: để hiển thị một trang trong kết quả tìm kiếm trên web của Google, nhưng không hiển thị trang đó trong Google Tin tức, hãy sử dụng thẻ meta sau:

    <meta name="googlebot-news" content="noindex" />
    

Để chỉ định riêng nhiều trình thu thập dữ liệu, hãy sử dụng nhiều thẻ meta robots:

    <meta name="googlebot" content="noindex">
    <meta name="googlebot-news" content="nosnippet">
    

Sử dụng tiêu đề HTTP X-Robots-Tag

Bạn có thể sử dụng thẻ X-Robots-Tag dưới dạng một phần tử của phản hồi tiêu đề HTTP cho một URL nhất định. Bất kỳ lệnh nào dùng được trong thẻ meta robots cũng có thể được chỉ định là một X-Robots-Tag. Dưới đây là ví dụ về phản hồi HTTP có thẻ X-Robots-Tag hướng dẫn các trình thu thập dữ liệu không lập chỉ mục một trang:

    HTTP/1.1 200 OK
    Date: Tue, 25 May 2010 21:42:43 GMT
    (…)
    X-Robots-Tag: noindex
    (…)
    

Bạn có thể kết hợp nhiều tiêu đề X-Robots-Tag trong phản hồi HTTP, hoặc bạn có thể chỉ định danh sách các lệnh được phân tách bằng dấu phẩy. Dưới đây là ví dụ về phản hồi tiêu đề HTTP sử dụng noarchive X-Robots-Tag kết hợp với unavailable_after X-Robots-Tag.

    HTTP/1.1 200 OK
    Date: Tue, 25 May 2010 21:42:43 GMT
    (…)
    X-Robots-Tag: noarchive
    X-Robots-Tag: unavailable_after: 25 Jun 2010 15:00:00 PST
    (…)
    

Nếu muốn, bạn có thể chọn chỉ định một tác nhân người dùng trước các lệnh trong thẻ X-Robots-Tag. Ví dụ: bạn có thể sử dụng nhóm tiêu đề HTTP X-Robots-Tag sau đây để cho phép (kèm theo điều kiện) hiển thị một trang trong kết quả tìm kiếm cho các công cụ tìm kiếm khác nhau:

    HTTP/1.1 200 OK
    Date: Tue, 25 May 2010 21:42:43 GMT
    (…)
    X-Robots-Tag: googlebot: nofollow
    X-Robots-Tag: otherbot: noindex, nofollow
    (…)
    

Các lệnh được chỉ định mà không có tác nhân người dùng sẽ áp dụng cho tất cả các trình thu thập dữ liệu. Tiêu đề HTTP, tên tác nhân người dùng và các giá trị được chỉ định đều không phân biệt chữ hoa chữ thường.

Lệnh lập chỉ mục và phân phát hợp lệ

Bạn có thể dùng các lệnh sau đây với thẻ meta robots và X-Robots-Tag để kiểm soát việc lập chỉ mục và phân phát đoạn trích. Trong kết quả tìm kiếm, đoạn trích là một đoạn trích văn bản ngắn gọn dùng để thể hiện mức độ phù hợp của nội dung với truy vấn của người dùng. Bảng dưới đây liệt kê tất cả các lệnh mà Google tuân theo và ý nghĩa của chúng. Mỗi giá trị đại diện cho một lệnh cụ thể. Có thể kết hợp nhiều lệnh trong một danh sách được phân tách bằng dấu phẩy. Các lệnh này không phân biệt chữ hoa chữ thường.

Lệnh

all
Không có hạn chế nào đối với việc lập chỉ mục hoặc phân phát. Lệnh này là giá trị mặc định và không có hiệu lực nếu được liệt kê rõ ràng.
noindex
Không hiển thị trang này trong kết quả tìm kiếm.
nofollow
Không theo các đường liên kết trên trang này.
none
Tương đương với noindex, nofollow.
noarchive
Không hiển thị đường liên kết đã lưu trong bộ nhớ đệm trong kết quả tìm kiếm.
nosnippet
Không hiển thị đoạn trích văn bản hoặc đoạn video xem trước trong kết quả tìm kiếm cho trang này. Hình thu nhỏ tĩnh (nếu có) vẫn có thể hiển thị nếu mang lại trải nghiệm tốt hơn cho người dùng. Lệnh này áp dụng cho tất cả các dạng kết quả tìm kiếm (trên Google: tìm kiếm trên web, Google Hình ảnh, Khám phá).
max-snippet:[number]

Sử dụng tối đa [number] ký tự làm đoạn trích văn bản cho kết quả tìm kiếm này. (Xin lưu ý rằng một URL có thể xuất hiện dưới dạng nhiều kết quả tìm kiếm trong một trang kết quả duy nhất). Lệnh này không ảnh hưởng đến các hình ảnh hoặc video xem trước. Lệnh này áp dụng cho tất cả các dạng kết quả tìm kiếm (như tìm kiếm trên web trên Google, Google Hình ảnh, Khám phá, Trợ lý). Tuy nhiên, giới hạn này không áp dụng trong trường hợp nhà xuất bản đã cấp riêng quyền sử dụng nội dung. Ví dụ: nếu nhà xuất bản cung cấp nội dung dưới dạng dữ liệu có cấu trúc trong trang hoặc có thỏa thuận cấp phép với Google, thì tùy chọn cài đặt này không gây cản trở cho những phương thức sử dụng cụ thể mà nhà xuất bản đã cho phép. Lệnh này bị bỏ qua nếu bạn không chỉ định [number] có thể phân tích cú pháp.

Giá trị đặc biệt:

  • 0: Không hiển thị đoạn trích. Tương đương với nosnippet.
  • -1: Không có giới hạn đối với độ dài đoạn trích.
  • Ví dụ:

    <meta name="robots" content="max-snippet:20">
    max-image-preview:[setting]

    Chỉ định kích thước tối đa của hình ảnh xem trước cho trang này trong kết quả tìm kiếm.

    Giá trị setting được chấp nhận:

  • none: Không hiển thị hình ảnh xem trước.
  • standard: Có thể hiển thị hình ảnh xem trước mặc định.
  • large: Có thể hiển thị hình ảnh xem trước cớ lớn, với kích thước tối đa bằng chiều rộng của khung nhìn.
  • Lệnh này áp dụng cho tất cả các dạng kết quả tìm kiếm (như tìm kiếm trên web trên Google, Google Hình ảnh, Khám phá, Trợ lý). Tuy nhiên, giới hạn này không áp dụng trong trường hợp nhà xuất bản đã cấp riêng quyền sử dụng nội dung. Ví dụ: nếu nhà xuất bản cung cấp nội dung dưới dạng dữ liệu có cấu trúc trong trang (chẳng hạn như AMP và phiên bản chuẩn của một bài viết) hoặc có thỏa thuận cấp phép với Google, thì tùy chọn cài đặt này sẽ không gây cản trở cho những phương thức sử dụng cụ thể mà nhà xuất bản đã cho phép.

    Nếu không muốn Google sử dụng hình thu nhỏ có kích thước lớn khi các trang AMP và phiên bản chuẩn của bài viết của họ hiển thị trong kết quả tìm kiếm hoặc Khám phá, các nhà xuất bản nên chỉ định giá trị max-image-previewstandard hoặc none.

    Ví dụ:

    <meta name="robots" content="max-image-preview:standard">
    max-video-preview:[number]

    Sử dụng đoạn trích video có thời lượng tối đa [number] giây cho các video trên trang này trong kết quả tìm kiếm.

    Các giá trị khác mà hệ thống hỗ trợ:

  • 0: Tối đa là, công cụ tìm kiếm được phép dùng hình ảnh tĩnh, tùy thuộc vào tùy chọn cài đặt max-image-preview.
  • -1: Không có giới hạn.
  • Lệnh này áp dụng cho tất cả các dạng kết quả tìm kiếm (trên Google: tìm kiếm trên web, Google Hình ảnh Google Videos, Khám phá, Trợ lý). Lệnh này bị bỏ qua nếu bạn không chỉ định [number] có thể phân tích cú pháp.

    Ví dụ:

    <meta name="robots" content="max-video-preview:-1">
    notranslate
    Không cung cấp bản dịch của trang này trong kết quả tìm kiếm.
    noimageindex
    Không lập chỉ mục hình ảnh trên trang này.
    unavailable_after: [date/time]

    Không hiển thị trang này trong kết quả tìm kiếm sau ngày/giờ chỉ định. Bạn phải chỉ định ngày/giờ ở một định dạng được chấp nhận rộng rãi, bao gồm nhưng không giới hạn ở các định dạng RFC 822, RFC 850ISO 8601. Lệnh này bị bỏ qua nếu bạn không chỉ định [date/time] hợp lệ. Theo mặc định, không có ngày hết hạn cho nội dung.

    Ví dụ:

    <meta name="robots" content="unavailable_after: Sunday, 01-Sep-24 01:00:00 PDT">

    Xử lý các lệnh lập chỉ mục và phân phát kết hợp

    Bạn có thể tạo một hướng dẫn nhiều lệnh bằng cách dùng dấu phẩy để kết hợp các lệnh meta robots. Dưới đây là một ví dụ về thẻ meta robots hướng dẫn trình thu thập dữ liệu web không lập chỉ mục trang và không thu thập dữ liệu đối với bất kỳ đường liên kết nào trên trang:

        <meta name="robots" content="noindex, nofollow">
        

    Dưới đây là ví dụ về cách đặt giới hạn 20 ký tự cho đoạn trích văn bản và cho phép hiển thị hình ảnh xem trước lớn:

        <meta name="robots" content="max-snippet:20, max-image-preview:large">
        

    Đối với các tình huống bạn chỉ định nhiều trình thu thập dữ liệu với các lệnh khác nhau, công cụ tìm kiếm sẽ sử dụng lệnh tổng hợp của các lệnh không cho phép. Ví dụ:

        <meta name="robots" content="nofollow">
        <meta name="googlebot" content="noindex">
        

    Googlebot sẽ diễn giải trang chứa các thẻ meta này là có lệnh noindex, nofollow khi thu thập dữ liệu trang đó.

    Sử dụng thuộc tính HTML data-nosnippet

    Bạn có thể chỉ dẫn các công cụ không sử dụng các phần văn bản của trang HTML làm đoạn trích. Bạn có thể triển khai lệnh này ở cấp phần tử HTML bằng thuộc tính HTML data-nosnippet trong các phần tử span, divsection. data-nosnippet được coi là một thuộc tính boolean và luôn hợp lệ dù có giá trị hay không. Để đảm bảo máy đọc được thì phần HTML đó phải là một phần tử HTML hợp lệ và bạn phải đóng chính xác tất cả các thẻ.

    Ví dụ:

        <p>This text can be shown in a snippet
         <span data-nosnippet>and this part would not be shown</span>.</p>
    
        <div data-nosnippet>not in snippet</div>
        <div data-nosnippet="true">also not in snippet</div>
    
        <div data-nosnippet>some text</html>
        <!-- unclosed "div" will include all content afterwards -->
    
        <mytag data-nosnippet>some text</mytag>
        <!-- NOT VALID: not a span, div, or section -->
        

    Google thường kết xuất các trang để lập chỉ mục, tuy nhiên quá trình kết xuất không phải lúc nào cũng diễn ra. Do đó, việc trích xuất data-nosnippet có thể xảy ra cả trước và sau khi kết xuất. Do không phải lúc nào Google cũng thực hiện việc kết xuất, nên bạn không nên thêm hoặc xóa thuộc tính data-nosnippet của các nút hiện có qua JavaScript. Khi thêm các phần tử DOM thông qua JavaScript, hãy bao gồm thuộc tính data-nosnippet nếu cần thiết khi bắt đầu thêm phần tử vào DOM của trang. Nếu bạn sử dụng các phần tử tùy chỉnh, hãy đặt hoặc kết xuất các phần tử đó trong các phần tử div, span hoặc section nếu bạn cần sử dụng data- nosnippet.

    Sử dụng dữ liệu có cấu trúc

    Thẻ meta robots chi phối lượng nội dung mà Google tự động trích xuất từ các trang web để hiển thị dưới dạng kết quả tìm kiếm. Nhưng nhiều nhà xuất bản cũng sử dụng dữ liệu có cấu trúc schema.org để cung cấp thông tin cụ thể cho việc trình bày kết quả tìm kiếm. Các giới hạn với thẻ meta robots không ảnh hưởng đến việc sử dụng dữ liệu có cấu trúc đó, ngoại trừ article.description và các giá trị của description đối với dữ liệu có cấu trúc đã chỉ định cho các tác phẩm sáng tạo khác. Để chỉ định thời lượng tối đa của nội dung xem trước dựa trên các giá trị description này, hãy sử dụng thẻ meta robots max-snippet. Ví dụ: dữ liệu có cấu trúc recipe trên một trang sẽ đủ điều kiện xuất hiện trong băng chuyền công thức, ngay cả nội dung xem trước bằng văn bản bị giới hạn. Bạn có thể sử dụng max-snippet để giới hạn độ dài của nội dung xem trước bằng văn bản, nhưng thẻ meta robots đó không áp dụng khi thông tin được cung cấp bằng dữ liệu có cấu trúc để hiển thị dưới dạng kết quả nhiều định dạng.

    Để quản lý việc sử dụng dữ liệu có cấu trúc cho các trang web của bạn, hãy sửa đổi các loại và giá trị của dữ liệu có cấu trúc, thêm hoặc xóa thông tin để chỉ cung cấp dữ liệu mà bạn muốn hiển thị. Xin lưu ý rằng hệ thống vẫn có thể sử dụng dữ liệu có cấu trúc cho kết quả tìm kiếm khi bạn khai báo dữ liệu đó trong phần tử data-nosnippet.

    Cách triển khai X-Robots-Tag trong thực tế

    Bạn có thể thêm X-Robots-Tag vào phản hồi HTTP của trang web thông qua các tệp cấu hình của phần mềm máy chủ web trên trang web của bạn. Ví dụ: trên các máy chủ web dựa trên Apache, bạn có thể sử dụng các tệp .htaccess và httpd.conf. Lợi ích của việc sử dụng X-Robots-Tag với phản hồi HTTP là bạn có thể chỉ định các lệnh thu thập dữ liệu mà sẽ áp dụng trên toàn bộ một trang web. Bên cạnh đó, các biểu thức chính quy được hỗ trợ cũng mang lại mức độ linh hoạt cao.

    Ví dụ: để thêm noindex, nofollow X-Robots-Tag vào phản hồi HTTP cho tất cả các tệp .PDF trên toàn bộ trang web, hãy thêm đoạn mã sau vào tệp .htaccess gốc hoặc tệp httpd.conf của trang web trên Apache, hoặc tệp .conf của trang web trên NGINX

    Apache:

        <Files ~ "\.pdf$">
          Header set X-Robots-Tag "noindex, nofollow"
        </Files>
        

    NGINX:

        location ~* \.pdf$ {
          add_header X-Robots-Tag "noindex, nofollow";
        }
        

    Bạn có thể sử dụng X-Robots-Tag cho các tệp không phải HTML, chẳng hạn như tệp hình ảnh, nếu không thể sử dụng thẻ meta robots trong HTML. Dưới đây là ví dụ về cách thêm lệnh noindex X-Robots-Tag cho các tệp hình ảnh (.png, .jpeg, .jpg, .gif) trên toàn bộ trang web:

    Apache:

        <Files ~ "\.(png|jpe?g|gif)$">
          Header set X-Robots-Tag "noindex"
        </Files>
        

    NGINX:

        location ~* \.(png|jpe?g|gif)$ {
          add_header X-Robots-Tag "noindex";
        }
        

    Kết hợp các lệnh thu thập dữ liệu với lệnh lập chỉ mục/phân phát

    Googlebot sẽ phát hiện thẻ meta robots và tiêu đề HTTP X-Robots-Tag khi thu thập dữ liệu một URL. Nếu tệp robots.txt chặn Googlebot thu thập dữ liệu một trang, thì mọi thông tin về lệnh lập chỉ mục hoặc phân phát sẽ không được tìm thấy và do đó sẽ bị bỏ qua. Nếu muốn Googlebot phải tuân theo các lệnh lập chỉ mục hoặc phân phát, thì bạn không được chặn Googlebot thu thập dữ liệu các URL chứa những lệnh đó.