Cung cấp dữ liệu có cấu trúc

Trang này cho bạn biết cách thêm dữ liệu có cấu trúc mà toán tử tìm kiếm phụ thuộc.

Trang web thường chứa văn bản dạng tự do, người dùng có thể dễ dàng đọc được nhưng máy tính khó hiểu. Một số trang web có thông tin có cấu trúc lớn hơn và dễ đọc, chẳng hạn như ngày tháng của trang được nhúng trong URL hoặc tiêu đề trang hoặc các trường có thể đọc được trong mã HTML. Google trích xuất nhiều dữ liệu có cấu trúc từ các trang web. Trang này mô tả các loại dữ liệu có cấu trúc mà Google trích xuất hiện có sẵn để sử dụng trong Đoạn mã tuỳ chỉnhTìm kiếm có cấu trúc.

  1. Tổng quan
  2. Cung cấp dữ liệu cho công cụ tìm kiếm có thể lập trình
  3. Cung cấp dữ liệu cho đoạn trích nhiều định dạng
  4. Xem dữ liệu có cấu trúc đã trích xuất

Tổng quan

Khi đọc một trang web bán đĩa DVD, bạn có thể nhanh chóng tìm ra tiêu đề, suy nghĩ của người đánh giá về bộ phim và cách họ đánh giá bộ phim đó. Nhưng máy tính không thể làm điều tương tự, vì nó không hiểu cách cấu trúc thông tin.

Ví dụ: nếu trang có nội dung về DVD (cùng với đề xuất cho các mặt hàng khác, quảng cáo từ các cửa hàng khác và nhận xét của khách hàng), thì trang có thể có mức giá khác nhau cho mọi thứ, không chỉ cho DVD đang bán. Bạn có thể dễ dàng tìm ra giá cho DVD trong khi loại bỏ các mức giá khác, nhưng máy tính thì không. Một số chương trình phức tạp có thể tìm thấy giá trên trang web, nhưng không thể xác định các quy tắc để chỉ tìm giá của DVD.

Định dạng dữ liệu có cấu trúc là các quy tắc chuẩn hoá cấu trúc và nội dung của trang web. Chúng là các mã đánh dấu mà bạn áp dụng cho đoạn văn bản để máy tính có thể xử lý ý nghĩa hoặc ngữ nghĩa của các đoạn mã đó. Thẻ đánh dấu không thay đổi định dạng trang web của bạn mà chỉ làm cho siêu dữ liệu và văn bản đính kèm trong thẻ XHTML có ý nghĩa hơn với máy tính.

Công cụ tìm kiếm có thể lập trình sẽ nhận dạng các định dạng sau:

  • PageMaps: các khối XML vô hình giúp thêm siêu dữ liệu vào trang.
  • JSON-LD: dữ liệu có cấu trúc ẩn với định dạng JSON.
  • Định dạng vi mô: các thẻ dùng để đánh dấu nội dung hiển thị trên trang theo các loại xác định trước.
  • RDFa: một tiêu chuẩn thay thế để đánh dấu nội dung hiển thị trên các trang tùy ý.
  • Microdata: một tiêu chuẩn HTML5 mới để đánh dấu nội dung hiển thị trên trang.
  • Thẻ <meta>: các thẻ HTML chuẩn, một tập hợp con trong đó được Google phân tích cú pháp.
  • Ngày của trang: các tính năng trên một trang cho biết ngày mà trang đó cố gắng phân tích cú pháp

Bạn có thể sử dụng một hoặc kết hợp nhiều định dạng mà bạn muốn. Xin lưu ý rằng không giống như Công cụ tìm kiếm có thể lập trình, Google Tìm kiếm chỉ sử dụng JSON-LD, Vi dữ liệu và RDFa khi tạo đoạn trích nhiều định dạng và có thuật toán và chính sách riêng để xác định thông tin nào sẽ hiển thị cho người dùng. Vì vậy, mặc dù một phần tử dữ liệu có cấu trúc mà bạn thêm vào các trang của mình có thể xuất hiện trên Công cụ tìm kiếm có thể lập trình, nhưng dữ liệu đó có thể không được sử dụng trong kết quả của Google Tìm kiếm.

Sau đây là một đoạn trích HTML thuần tuý từ trang web đánh giá:

<div>
    <div>
        <h1>Pizza My Heart</h1>
    </div>
    <span>88%</span> like it
    <a href="#reviews">See all 12 reviews</a>
    <span>Under $10 per entree</span>
<div>

Đoạn mã sau đây cho thấy mã HTML trước đó được mở rộng bằng một định dạng có tên là microformat:

<div class="hreview-aggregate">
    <div class="vcard item">
        <h1 class="fn">Pizza My Heart</h1>
    </div>
    <span class="rating average">88%</span> like it
    <a href="#reviews">See all <span class="count">12</span> reviews</a>
    <span class="pricerange">Under $10 per entree</span>
<div>

Công cụ kiểm tra dữ liệu có cấu trúc hiển thị thông tin mà Google Tìm kiếm trích xuất từ trang này:

hreview-aggregate
  item hcard
    fn = Pizza My Heart
rating
    average (normalized to 5.0 scale) = 4.5
    average = 88%
pricerange = Under $10 per entree
count = 12

Công cụ tìm kiếm có thể lập trình sẽ sử dụng một tập hợp con thông tin có sẵn cho Google Tìm kiếm; tập hợp con này hiển thị ở cuối trang công cụ kiểm tra:

review (source = MICROFORMAT)
ratingstars = 4.5
ratingcount = 12
pricerange = Under $10 per entree

Bằng cách tích hợp các định dạng dữ liệu có cấu trúc chuẩn vào trang web của mình, bạn không chỉ cung cấp dữ liệu đó cho Công cụ tìm kiếm có thể lập trình mà còn cung cấp dịch vụ hoặc công cụ hỗ trợ tiêu chuẩn đó. Áp dụng dữ liệu có cấu trúc cho thông tin quan trọng nhất trên trang web để bạn có thể trình bày chúng trực tiếp trong kết quả. Ví dụ: nếu bạn có một trang web bán thiết bị Android, hãy cung cấp dữ liệu có cấu trúc về điểm xếp hạng, giá cả, tình trạng còn hàng và những nội dung không có. Khi người dùng tìm kiếm thiết bị Android, họ có thể xem nhanh điểm xếp hạng, giá và tình trạng còn hàng.

Giờ đây, máy tính có thể hiểu được các loại dữ liệu trong trang web. Sau đó thì sao? Máy tính cũng có thể bắt đầu thực hiện tác vụ cố định là tìm và kết hợp thông tin trong các trang web khác nhau. Việc này giúp người dùng không phải thực hiện các tác vụ hoàn toàn nhàm chán, chẳng hạn như chọn qua nhiều trang để tìm các mục mà họ muốn. Các công cụ tìm kiếm (chẳng hạn như Công cụ tìm kiếm có thể lập trình) có thể xử lý dữ liệu có cấu trúc trong các trang web của bạn và hiển thị dữ liệu đó theo cách hữu ích và ý nghĩa hơn, chẳng hạn như đoạn mã tuỳ chỉnhtìm kiếm có cấu trúc.

Quay lại đầu trang

Cung cấp dữ liệu cho công cụ tìm kiếm có thể lập trình

Google hỗ trợ một số loại dữ liệu mà Công cụ tìm kiếm có thể lập trình sử dụng chủ yếu: Sơ đồ trang, một tập hợp con các thẻ <meta> và ngày tháng gần đúng của trang.

Sử dụng PageMaps

PageMaps là một định dạng dữ liệu có cấu trúc cung cấp cho Google thông tin về dữ liệu trên một trang. Công cụ này cho phép nhà sáng tạo trang web nhúng dữ liệu và ghi chú vào các trang web. Mặc dù người dùng hoặc Google Web Search không nhìn thấy dữ liệu có cấu trúc, nhưng Công cụ tìm kiếm có thể lập trình sẽ nhận dạng dữ liệu này khi lập chỉ mục các trang web của bạn và trả lại trực tiếp dữ liệu này trong Phần tử tìm kiếm có thể lập trình.

Bạn có thể thêm PageMaps vào một trang một cách rõ ràng hoặc gửi PageMaps bằng cách sử dụng Sơ đồ trang web. Google cũng sẽ sử dụng thông tin khác trên một trang, chẳng hạn như mã đánh dấu đoạn trích nhiều định dạng hoặc dữ liệu thẻ meta, để tạo PageMap.

Không giống như các định dạng dữ liệu có cấu trúc khác được mô tả bên dưới, PageMaps không yêu cầu bạn phải tuân theo các thuộc tính hoặc thuật ngữ chuẩn, hoặc thậm chí là tham chiếu đến từ vựng, giản đồ hoặc mẫu hiện có. Bạn chỉ cần tạo các giá trị thuộc tính tuỳ chỉnh phù hợp cho trang web của mình. Không giống như các thuộc tính dữ liệu có cấu trúc của vi định dạng, vi dữ liệu và RDFa được thêm vào nội dung hiển thị cho người dùng trong phần nội dung của HTML, siêu dữ liệu PageMaps được đưa vào phần head của trang HTML. Phương thức này hỗ trợ dữ liệu tuỳ ý mà ứng dụng của bạn có thể cần nhưng bạn có thể không muốn hiển thị cho người dùng.

Sau khi tạo PageMap, bạn có thể gửi sơ đồ đó cho Google bằng bất kỳ phương thức nào sau đây:

Định nghĩa các thẻ MapMap

Bảng sau đây trình bày các yêu cầu đối với việc thêm dữ liệu PageMap vào Sơ đồ trang web.

Thẻ Bắt buộc? Mô tả
PageMap Chứa tất cả thông tin trên PageMap cho URL có liên quan.
DataObject Bao gồm tất cả thông tin về một phần tử (ví dụ: một thao tác).
Attribute Mỗi DataObject chứa một hoặc nhiều thuộc tính.

Lưu ý: PageMaps là các khối XML và do đó phải được định dạng chính xác; đặc biệt, các thẻ PageMap, DataObjectAttribute trong XML có phân biệt chữ hoa chữ thường, cũng như các thuộc tính type, namevalue.

Thêm trực tiếp dữ liệu PageMap vào trang HTML của bạn

Dưới đây là ví dụ về dữ liệu PageMap cho một trang web về cầu lông:

<html>
  <head>
   ...
  <!--
  <PageMap>
     <DataObject type="document">
        <Attribute name="title">The Biomechanics of a Badminton
        Smash</Attribute>
        <Attribute name="author">Avelino T. Lim</Attribute>
        <Attribute name="description">The smash is the most
        explosive and aggressive stroke in Badminton. Elite athletes can
        generate shuttlecock velocities of up to 370 km/h. To perform the
        stroke, one must understand the biomechanics involved, from the body
        positioning to the wrist flexion. </Attribute>
        <Attribute name="page_count">25</Attribute>
        <Attribute name="rating">4.5</Attribute>
        <Attribute name="last_update">05/05/2009</Attribute>
     </DataObject>
     <DataObject type="thumbnail">
        <Attribute name="src" value="http://www.example.com/papers/sic.png" />
        <Attribute name="width" value="627" />
        <Attribute name="height" value="167" />
     </DataObject>
  </PageMap>
  -->
  </head>
   ...
</html>

Thêm dữ liệu PageMap vào một Sơ đồ trang web

Nếu không muốn đưa dữ liệu PageMap vào HTML của các trang, bạn có thể thêm dữ liệu PageMap vào một Sơ đồ trang web và gửi Sơ đồ trang web đó qua công cụ Sơ đồ trang web của Search Console.

Sau đây là một ví dụ về Sơ đồ trang web bao gồm thông tin PageMap cho 2 URL: http://www.example.com/foo và http://www.example.com/bar.

<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
 <url>
   <loc>http://www.example.com/foo</loc>
   <PageMap xmlns="http://www.google.com/schemas/sitemap-pagemap/1.0">
     <DataObject type="document" id="hibachi">
       <Attribute name="name">Dragon</Attribute>
       <Attribute name="review">3.5</Attribute>
     </DataObject>
   </PageMap>
 </url>
 <url>
   <loc>http://www.example.com/bar</loc>
   <PageMap xmlns="http://www.google.com/schemas/sitemap-pagemap/1.0">
     <DataObject type="document" id="biggreenegg">
       <Attribute name="name">Ribs</Attribute>
       <Attribute name="review">4.0</Attribute>
     </DataObject>
   </PageMap>
 </url>
</urlset>

Phân tích cú pháp dữ liệu PageMap

Khi sử dụng Phần tử tìm kiếm có thể lập trình, bạn có thể trả về các thuộc tính tuỳ chỉnh trong thuộc tính Richsnippet của từng kết quả. Bạn có thể sử dụng các thuộc tính này với Lệnh gọi lại của Phần tử tìm kiếm.

<r n="1">
 <u> http://www.xyz.com/business/vending_machine.html </u>
 ...
 <t> In Italy, a Vending Machine Even Makes the <b>Pizza</b> </t>
 ...
 <s>The European vending machine industry has annual sales of about #33
 billion, much of it coming from factories and offices.</s>
 ...
 <PageMap>
  <DataObject type="image">
   <Attribute name="image_src" value="http://www.nytimes.com/images/2009/03/14/business/14vend.751.jpg"/>
  </DataObject>
  <DataObject type="publication">
   <Attribute name="author" value="John Tagliabue"/>
   <Attribute name="date" value="March 14, 2009"/>
   <Attribute name="category" value="Business/World Business"/>
  </DataObject>
 </PageMap>
 ...
</r>

Quay lại đầu trang

Sử dụng thẻ <meta>

Mặc dù PageMaps cho phép bạn chỉ định chính xác dữ liệu bạn muốn cho mỗi trang, đôi khi bạn có một lượng lớn nội dung mà bạn không muốn chú thích. Google trích xuất nội dung đã chọn từ các thẻ META của biểu mẫu <meta name="KEY" content="VALUE">. Chúng tôi không hỗ trợ các biến thể của thẻ META, chẳng hạn như việc sử dụng property thay vì name.

Mặc dù chúng tôi loại trừ rõ ràng các thẻ chung thường được các công cụ phát triển web chèn vào theo phương thức lập trình, chẳng hạn như robots, descriptionkeywords, nhưng các thẻ hiếm hơn dành riêng cho trang web của bạn sẽ được trích xuất và đưa vào đối tượng dữ liệu đặc biệt thuộc loại metatags, bạn có thể sử dụng các thẻ này với tất cả tính năng dữ liệu có cấu trúc của Tìm kiếm tuỳ chỉnh. Ví dụ: thẻ <meta> của biểu mẫu:

<meta name="pubdate" content="20100101">

tạo PageMap DataObject và được trả về trong kết quả XML như sau:

<r n="1">
 ...
 <PageMap>
  <DataObject type="metatags">
   <Attribute name="pubdate" value="20100101"/>
  </DataObject>
 </PageMap>
 ...
</r>

Bạn có thể sử dụng dữ liệu trong PageMap được tạo tự động này ở bất cứ đâu để sử dụng dữ liệu từ một PageMap có trong nội dung trên trang của bạn. Ví dụ: bạn có thể sử dụng toán tử này với các toán tử tìm kiếm có cấu trúc như Sắp xếp theo thuộc tính:

https://www.google.com/cse?cx=12345:example&q=oil+spill&sort=metatags-pubdate

hoặc với Phần tử tìm kiếm có thể lập trình:

...
<div class="gcse-search" sort_by="metatags-pubdate:d:s"></div>
...

Các thẻ <meta> bị Google loại trừ bao gồm:

  • robots
  • mô tả
  • từ khóa
  • truy cập lại sau
  • trình tạo
  • xác minh-phiên bản 1
  • Googlebot
  • xác minh google-site
  • phân tích cú pháp mssmart thích
  • không có bộ nhớ đệm

Google cố gắng bao gồm tất cả các thẻ <meta> khác, nhưng lưu ý rằng dấu chấm câu đó, các ký tự đặc biệt và khoảng trắng được nhúng trong trường name của thẻ <meta> có thể không được phân tích cú pháp chính xác. Công cụ tìm kiếm có thể lập trình sẽ hỗ trợ rõ ràng dấu chấm và dấu gạch ngang trong tên thẻ <meta>. Công cụ tìm kiếm có thể lập trình không hỗ trợ rõ ràng các ký tự đặc biệt khác trong tên thẻ <meta>, nhưng một số ký tự đặc biệt có thể được chấp nhận chính xác nếu được mã hóa URL.

Các điểm hạn chế

Công cụ tìm kiếm có thể lập trình sẽ chuyển đổi tối đa 50 thẻ <meta> thành PageMaps, miễn là tổng kích thước văn bản của tất cả các thuộc tính được xử lý không vượt quá 1 MB, và không có thuộc tính riêng lẻ nào vượt quá 1024 ký tự.

Quay lại đầu trang

Sử dụng ngày trên trang

Ngoài siêu dữ liệu mà bạn chỉ định rõ ràng trên một trang, Google cũng ước tính ngày tháng của trang dựa trên các đặc điểm của trang, chẳng hạn như ngày trong tiêu đề và URL. Công cụ tìm kiếm có thể lập trình cho phép bạn sử dụng ngày này để sắp xếp, sai lệch và giới hạn phạm vi kết quả bằng cách sử dụng khoá siêu dữ liệu đặc biệt của date. Bạn có thể sử dụng ngày ước tính này trong tất cả các toán tử sử dụng tham số URL &sort=, bao gồm Sắp xếp theo Thuộc tính, Bia theo thuộc tính,Hạn chế phạm vi.

Lưu ý: Ngày của trang không được thêm vào PageMap, do đó không thể trả về kết quả trong API JSON, không thể sử dụng trong phần tử của Công cụ tìm kiếm có thể lập trình và không thể sử dụng với tính năng Lọc theo thuộc tính.

Những ví dụ sau đây minh họa việc sử dụng ngày của trang với các toán tử sau:

Nếu bạn muốn... Gửi URL này... Để tìm hiểu thêm, hãy xem...
Sắp xếp kết quả theo ngày theo thứ tự giảm dần https://www.google.com/cse?cx=12345:example&q=oil+spill&sort=date Sắp xếp theo thuộc tính
Định kiến kết quả thiên về các ngày gần đây hơn https://www.google.com/cse?cx=12345:example&q=oil+spill&sort=date:d:s Bia theo thuộc tính
Xu hướng kết quả ngày càng yếu kém https://www.google.com/cse?cx=12345:example&q=oil+spill&sort=date:a:w Bia theo thuộc tính
Kết quả trả về từ ngày 1 tháng 1 đến ngày 1 tháng 2 năm 2010 (bao gồm) https://www.google.com/cse?cx=12345:example&q=oil+spill&sort=date:r:20100101:20100201 Hạn chế phạm vi

Google ước tính ngày chính xác của một trang dựa trên các tính năng, chẳng hạn như ngày ghi tên tác giả của tin bài hoặc ngày tháng được chỉ định rõ ràng trong tiêu đề của tài liệu. Nếu một trang có ngày không xác định hoặc ngày không nhất quán, thì ước tính của Google về ngày của trang có thể không hợp lý và Công cụ tìm kiếm có thể lập trình của bạn có thể trả về kết quả theo thứ tự bạn không mong đợi.

Định dạng ngày

Một trang web có thể cung cấp thông tin về ngày ngầm ẩn, dựa vào tính năng ngày tháng ước tính của trang trên Google để phát hiện các ngày nhúng trong URL, tiêu đề hoặc các tính năng khác, hoặc cung cấp ngày ở định dạng dữ liệu có cấu trúc một cách rõ ràng. Trong cả hai trường hợp, việc sử dụng ngày hiệu quả yêu cầu định dạng ngày chính xác.

Đối với các tính năng Sắp xếp theo thuộc tính của Công cụ tìm kiếm có thể lập trình, Bia theo thuộc tính, Hạn chế phạm vi, Google cố gắng phân tích cú pháp ngày bằng cả định dạng ngày thông thường và tiêu chuẩn chính thức như ISO 8601IETF RFC 850. Các định dạng ngày đầy đủ sau đây được chấp nhận:

Định dạng ngày Ngày mẫu
DD-MM-YYYY 2009-12-31
YYYY/MM/DD 31/12/2009
YYYYMMDD 20091231
Tháng DD YYYY Ngày 31 tháng 12 năm 2009
DD Tháng YYYY Ngày 31 tháng 12 năm 2009

Google sẽ cố gắng phân tích cú pháp các biến thể của những định dạng ngày này, chẳng hạn như MM/DD/YYYYDD/MM/YYYY. Tuy nhiên, ngày càng mơ hồ, Google càng có ít khả năng phân tích cú pháp ngày đó một cách chính xác. Ví dụ: ngày 06/07/08 hoàn toàn không rõ ràng và rất ít khả năng Google sẽ chỉ định ngày cho bản diễn giải mà bạn muốn. Để có kết quả tốt nhất, hãy sử dụng định dạng ngày ISO 8601 hoàn chỉnh với một năm được chỉ định đầy đủ.

Quay lại đầu trang

Đoạn mã chi tiết

Google cũng trích xuất nhiều dữ liệu có cấu trúc từ JSON-LD, Microformat, RDFa và Microdata để sử dụng trong các đoạn trích nhiều định dạng, là bản trình bày mở rộng về các kết quả tìm kiếm chuẩn của Google. Bạn có thể dùng dữ liệu tương tự trong các toán tử dữ liệu có cấu trúc của Công cụ tìm kiếm có thể lập trình – thường là chính dữ liệu dùng trong đoạn trích nhiều định dạng. Ví dụ: nếu đã đánh dấu các trang của mình bằng tiêu chuẩn hrecipe của Microformat, thì bạn có thể sắp xếp theo số sao xếp hạng của công thức bằng một toán tử như &sort=recipe-ratingstars. Google liên tục mở rộng dữ liệu mà Google trích xuất và lượng dữ liệu có sẵn để sử dụng trong Công cụ tìm kiếm có thể lập trình. Để xem dữ liệu mà Google hiện đang trích xuất, bạn có thể sử dụng Công cụ kiểm tra dữ liệu có cấu trúc trong Search Console.

Quay lại đầu trang

Sử dụng JSON-LD

JSON-LD là một định dạng chuẩn được sử dụng rộng rãi cho dữ liệu có cấu trúc. Dữ liệu có định dạng JSON và được đặt trong thẻ <script>type="application/ld+json".

Sau đây là đoạn HTML tối thiểu với một số JSON-LD đơn giản:

<script type="application/ld+json">
      {
        "@id": "http://event.example.com/events/presenting-foo",
        "@type": "http://schema.org/Event",
        "http://schema.org/description": "Please attend. You'll love it!",
        "http://schema.org/name": "Presenting Foo",
        "http://schema.org/startdate": "2022-05-24",
        "http://schema.org/location": "Back room"
      }
    </script>

Google trích xuất một tập hợp con dữ liệu này cho Công cụ tìm kiếm có thể lập trình và chuẩn hoá dữ liệu đó. Việc chuẩn hoá sẽ đơn giản hoá JSON-LD, loại bỏ nhiều thành ngữ JSON-LD. Dữ liệu được chuẩn hoá sẽ được xử lý thêm:

  • Nó được chuyển đổi từ cấu trúc biểu đồ của JSON-LD thành rừng cây.
  • Khu rừng được chia nhỏ thành các nhánh liên quan đến một số loại dữ liệu schema.org. Tập hợp con bao gồm các loại cây schema.org cho Nếu bạn có các loại hữu ích khác cho trường hợp sử dụng cụ thể của mình, vui lòng cho chúng tôi biết trong Diễn đàn hỗ trợ.
  • Mỗi nút JSON-LD từ một trong các loại đã chọn sẽ lấy một nhánh từ cây JSON-LD. Nhánh đó bao gồm các nút đối tượng cấp trên trong cây và tất cả các nút con cháu của nó. Ví dụ: có thể chúng tôi đã có một cây gốc tại MusicComposition với một thuộc tính firstPerformance có giá trị Event, trong đó có đầy đủ các thuộc tính Event. Tất cả các nút đó, từ MusicComposition thông qua các thuộc tính của Sự kiện và bất kỳ thành phần con nào của các tệp đó đều được giữ lại để một nhánh cây có ý nghĩa chứa Sự kiện PerformancePerformance.
Đối với JSON-LD ở trên, dữ liệu có cấu trúc sẽ được trả về trong kết quả tìm kiếm dưới dạng JSON như sau:
 ...
 "event": {
   "name": "Presenting Foo",
   "description": "Please attend. You'll love it!",
   "startdate": "2022-05-24",
   "location": "Back room"
 },
 ...

Để xem những nội dung mà Google Tìm kiếm trích xuất cho một trang và xác thực JSON-LD, hãy sử dụng Công cụ kiểm tra kết quả nhiều định dạng trên trang web Search Console của Google.

Để tìm hiểu thêm về JSON-LD, hãy xem tài liệu về dữ liệu có cấu trúcjson-ld.org.

Quay lại đầu trang

Sử dụng định dạng vi mô

Định dạng vi mô là thông số kỹ thuật để biểu thị các mục được xuất bản phổ biến như bài đánh giá, người, sản phẩm và doanh nghiệp. Nhìn chung, các định dạng vi mô bao gồm các phần tử <span><div>, một thuộc tính lớp cùng với một tên thuộc tính ngắn gọn và mang tính mô tả (chẳng hạn như dtreviewed hoặc rating, đại diện cho ngày mà một mục được đánh giá và mức phân loại tương ứng).

Phần sau bao gồm một đoạn mã HTML thuần tuý.

<p><strong>Kevin Grendelzilla</strong></p>
<p>Technical writer at Google</p>
<p>555 Search Parkway</p>
<p>Googlelandia, CA 94043</p>

Đoạn mã sau đây cho thấy mã HTML trước được mở rộng bằng định dạng vi mô:

<div class="vcard">
   <p><strong class="fn">Kevin Grendelzilla</strong></p>
   <p><span class="title">Technical writer</span> at <span class="org">Google</span></p>
   <p><span class="adr">
      <span class="street-address">555 Search Parkway</span>
      <span class="locality">Googlelandia</span>, <span class="region">CA</span>
      <span class="postcode">94043</span>
      </span></p>
</div>

Google trích xuất một tập hợp con của dữ liệu này, chuẩn hoá và sắp xếp lại để tương ứng với cách dữ liệu sẽ xuất hiện trong đoạn trích nhiều định dạng. Tập hợp con này sẽ được trả về trong kết quả XML như sau:

<r n="1">
 ...
 <PageMap>
  <DataObject type="person">
   <Attribute name="location" value="Googlelandia"/>
   <Attribute name="role" value="Technical Writer"/>
  </DataObject>
 </PageMap>
 ...
</r>

Để xem dữ liệu mà Google trích xuất cho một trang, hãy sử dụng Công cụ kiểm tra dữ liệu có cấu trúc trên trang web Search Console của Google. Dữ liệu mà Google trích xuất từ các trang đang liên tục được mở rộng. Vì vậy, hãy thường xuyên kiểm tra lại để xem dữ liệu bạn muốn có được cung cấp hay không. Trong thời gian chờ đợi, nếu cần dữ liệu tuỳ chỉnh không tương ứng với một định dạng vi mô đã xác định, bạn có thể sử dụng PageMaps.

Để tìm hiểu thêm về các định dạng vi mô, vui lòng xem tài liệu về dữ liệu có cấu trúcmicroformats.org.

Quay lại đầu trang

Sử dụng khung mô tả tài nguyên trong các thuộc tính (RDFa)

Khung mô tả tài nguyên trong các thuộc tính (RDFa) linh hoạt hơn so với các định dạng vi mô. Vi định dạng chỉ định cả cú pháp để đưa dữ liệu có cấu trúc vào các tài liệu HTML và tập hợp các lớp vi định dạng, mỗi lớp có từ vựng cụ thể về các thuộc tính được phép. Mặt khác, RDFa chỉ chỉ định cú pháp và cho phép bạn sử dụng từ vựng hiện có của các thuộc tính hoặc tạo thuật ngữ của riêng bạn. Nó thậm chí còn cho phép bạn tự do kết hợp nhiều từ vựng. Nếu các từ vựng hiện có không đáp ứng được nhu cầu của bạn, bạn có thể xác định tiêu chuẩn và từ vựng của riêng mình bằng cách tạo các trường mới.

Phần sau bao gồm một đoạn mã HTML thuần tuý.

<div>
   <h3>5 Centimeters Per Second</h3>
   <h4>Makoto Shinkai</h4>
    ...
</div>

Đoạn mã sau cho biết mã HTML trước đó được mở rộng bằng RDFa:

<div>
   <h3 property="dc:title">5 Centimeters Per Second</h3>
   <h4 property="dc:maker">Makoto Shinkai</h4>
   ...
</div>

Để tìm hiểu thêm về RDFa, hãy xem tài liệu về dữ liệu có cấu trúc. Để tìm hiểu thêm về cách xác định một giản đồ RDF, hãy xem Primer Primer.

Quay lại đầu trang

Sử dụng vi dữ liệu

HTML5, bản sửa đổi mới nhất của các trang web ngôn ngữ được viết bằng một định dạng có tên là vi dữ liệu kết hợp trực tiếp các ý tưởng của RDFa và Microformat theo tiêu chuẩn HTML. Vi dữ liệu sử dụng các thuộc tính đơn giản trong thẻ HTML (thường là span hoặc div) để chỉ định tên ngắn gọn và mang tính mô tả cho các mục và thuộc tính.

Giống như RDFa và Microformat, các thuộc tính của Microdata giúp bạn chỉ định rằng nội dung của bạn mô tả thông tin về các loại cụ thể, chẳng hạn như bài đánh giá, người, thông tin hoặc sự kiện. Ví dụ: một người có thể có tên thuộc tính, biệt hiệu, url, tiêu đề và đơn vị liên kết. Sau đây là ví dụ về một khối HTML ngắn cho thấy thông tin liên hệ cơ bản này cho Bob Smith:

<div>
  My name is Bob Smith but people call me Smithy. Here is my home page:
  <a href="http://www.example.com">www.example.com</a>
  I live in Albuquerque, NM and work as an engineer at ACME Corp.
</div>

Sau đây là cùng một HTML được đánh dấu bằng vi dữ liệu. Xin lưu ý rằng trong ví dụ này, chúng tôi sử dụng một thuộc tính "biệt hiệu" chưa chính thức thuộc schema.org. Tìm kiếm tùy chỉnh là một cách hay để khám phá các phần mở rộng về schema.org có thể có cục bộ trước khi đề xuất chúng đến cộng đồng rộng hơn.

<div itemscope itemtype="http://schema.org/Person">
  My name is <span itemprop="name">Bob Smith</span>
  but people call me <span itemprop="nickname">Smithy</span>.
  Here is my home page:
  <a href="http://www.example.com" itemprop="url">www.example.com</a>
  I live in Albuquerque, NM and work as an <span itemprop="title">engineer</span>
  at <span itemprop="affiliation">ACME Corp</span>.
</div>

Dòng đầu tiên của ví dụ này bao gồm một thẻ HTML div có thuộc tính itemscope cho biết rằng div chứa một mục vi dữ liệu. Thuộc tính itemtype="http://schema.org/Person" trên cùng một thẻ cho chúng ta biết đây là một người. Mỗi thuộc tính của mục người được xác định bằng thuộc tính itemprop; ví dụ: itemprop="name" trên thẻ span mô tả tên của người đó. Hãy lưu ý rằng bạn không bị giới hạn ở spandiv; thẻ itemprop="url" được đính kèm vào thẻ a (neo).

Để tìm hiểu thêm về vi dữ liệu, hãy xem tài liệu về dữ liệu có cấu trúc và tiêu chuẩn HTML Microdata.

Quay lại đầu trang

Xem dữ liệu có cấu trúc đã trích xuất

Dữ liệu có cấu trúc JSON-LD có một công cụ đặc biệt mà Google hỗ trợ, đó là Công cụ kiểm tra kết quả nhiều định dạng. Tính năng này kiểm tra cú pháp của JSON-LD cũng như một số ngữ nghĩa, đặc biệt là nếu dữ liệu có cấu trúc bao gồm các thuộc tính bắt buộc và nên có. Để kiểm tra các dạng dữ liệu có cấu trúc khác, hãy sử dụng Trình xác thực mã đánh dấu Schema (Schema Markup Validator). Công cụ này xác thực cú pháp của dữ liệu có cấu trúc và hiển thị cho bạn biểu mẫu được diễn giải.

Công cụ tìm kiếm có thể lập trình sẽ lưu giữ một tập hợp dữ liệu có cấu trúc, vì vậy, hãy sử dụng Công cụ tìm kiếm có thể lập trình để kiểm tra chế độ xem dữ liệu có cấu trúc trên một trang cho Công cụ tìm kiếm có thể lập trình bằng cách:

  1. bật Dữ liệu có cấu trúc trong kết quả tìm kiếm trong Các tính năng tìm kiếm nâng cao

    Ảnh chụp màn hình bật dữ liệu có cấu trúc

  2. Sau đó, sử dụng công cụ tìm kiếm đó để tìm một trang có dữ liệu bạn muốn xem và nhấp vào nút Dữ liệu có cấu trúc trong kết quả tìm kiếm cho trang đó:

    Ảnh chụp màn hình nút dữ liệu có cấu trúc trong kết quả tìm kiếm

Nếu bạn chưa gắn thẻ bất kỳ trang web nào với dữ liệu có cấu trúc nhưng muốn xem dữ liệu có cấu trúc đã được trích xuất, bạn có thể nhập URL của các trang web khác. Các trang web phổ biến có thông tin đánh giá hoặc danh sách người liên hệ đặc biệt có nhiều dữ liệu có cấu trúc.

Sau khi tìm thấy một trang có dữ liệu có cấu trúc, bạn có thể xem nguồn của trang đó để xem dữ liệu có cấu trúc mà trang web đã triển khai. Ví dụ: hãy xem xét đoạn mã HTML sau đây với dữ liệu có cấu trúc về một người được triển khai dưới dạng vi định dạng:

<div class="vcard">
    <h1 class="fn">
      <span class="given-name">Godzilla</span>
      <span class="family-name">Gigantis</span>
    </h1>
    <span class="title">Senior Giant Monster</span>,
    <span class="adr">
      <span class="locality">Tokyo</span>
    </span>
<div>

Công cụ tìm kiếm có thể lập trình sẽ trích xuất tập hợp con dữ liệu sau đây để sử dụng trong tính năng tìm kiếm có cấu trúc:

person (source = MICROFORMAT)
  location = Tokyo

Quay lại đầu trang

Khám phá các tính năng khác

Bạn có thể dùng dữ liệu có cấu trúc trong một số tính năng của Công cụ tìm kiếm có thể lập trình: