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 vào.

Các trang web thường chứa văn bản dạng tự do, loại văn bản này dễ đọc đối với con người nhưng máy tính lại khó hiểu hơn. Một số trang web có thông tin với cấu trúc lớn hơn và dễ đọc hơn, chẳng hạn như ngày của trang được nhúng trong URL hoặc tiêu đề của trang, hoặc các trường mà máy có thể đọc được được nhúng trong mã HTML. Google trích xuất nhiều loại 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 có thể sử dụng trong Đoạn thông tin 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 mã nhiều định dạng
  4. Xem dữ liệu có cấu trúc được trích xuất

Tổng quan

Khi đọc trên trang web có bán DVD, bạn có thể nhanh chóng tìm ra tên phim, ý kiến của người đánh giá về bộ phim và cách họ đánh giá bộ phim. Tuy nhiên, máy tính không thể làm được những việc tương tự vì máy tính không hiểu được cấu trúc thông tin như thế nào.

Ví dụ: nếu trang có nội dung về DVD — cùng với đề xuất về các mục khác, quảng cáo của các cửa hàng khác và nhận xét của khách hàng — thì trang có thể có các mức giá khác nhau cho nhiều nội dung, không chỉ cho DVD đang được bán. Bạn có thể dễ dàng tính giá DVD trong khi loại bỏ các giá khác, nhưng máy tính thì không. Một số chương trình tinh vi có thể tìm được giá trên trang web nhưng họ không thể xác định 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. Đây là các mã đánh dấu mà bạn áp dụng cho các đoạn mã văn bản để máy tính có thể xử lý ý nghĩa hoặc ngữ nghĩa. Mã đánh dấu này không thay đổi cách định dạng của trang web mà chỉ giúp cho siêu dữ liệu và văn bản trong thẻ AGP trở nên có ý nghĩa hơn với máy tính.

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

  • PageMaps: các khối XML ẩn đi thêm siêu dữ liệu vào các trang.
  • JSON-LD: dữ liệu có cấu trúc không hiển thị bằng định dạng JSON.
  • Microformats (Định dạng vi mô): Thẻ dùng để đánh dấu nội dung trang hiển thị cùng với các loại được xác định trước.
  • RDFa: một tiêu chuẩn thay thế để đánh dấu nội dung trang hiển thị theo các loại tuỳ ý.
  • Microdata: một tiêu chuẩn HTML5 mới để đánh dấu nội dung trang hiển thị.
  • Thẻ <meta>: các thẻ HTML chuẩn, một tập hợp con các thẻ này được Google phân tích cú pháp.
  • Page Date (Ngày trang): các tính năng trên một trang cho biết ngày của trang mà Google sẽ 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 các định dạng mà bạn thích. 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 mã chi tiết. Google Tìm kiếm cũng 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ử của 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ể sẽ không được sử dụng trong kết quả của Google Tìm kiếm.

Dưới đây là một đoạn trích lý tưởng của HTML thuần tuý từ mộ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 cho thấy mã HTML trước đó được mở rộng với định dạng vi định dạng:

<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>
Bạn có thể xem các tính năng mà Công cụ tìm kiếm có thể lập trình trích xuất bằng cách làm theo phương thức này

Khi tích hợp các định dạng dữ liệu có cấu trúc tiêu 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 cho mọi dịch vụ hoặc công cụ hỗ trợ cùng một 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 những thông tin đó 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á, tình trạng còn hàng và các thông tin khá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.

Vì vậy, giờ đây máy tính có thể hiểu các loại dữ liệu trên trang web. Bây giờ bạn phải làm gì? Máy tính cũng có thể bắt đầu thực hiện nhiệm vụ cấp thiết là tìm và kết hợp thông tin trong nhiều trang web. Điều này giúp người dùng không phải thực hiện những công việc hoàn toàn nhàm chán, chẳng hạn như sàng lọc qua nhiều trang để tìm các mục 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 trang web của bạn và hiển thị dữ liệu đó theo những cách hữu ích và có ý nghĩa hơn, chẳng hạn như đoạn trích tuỳ chỉnhkết quả tìm kiếm có cấu trúc.

Trở 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 ước chừng của trang.

Sử dụng PageMaps

Sơ đồ trang 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. API này cho phép người tạo trang web nhúng dữ liệu và ghi chú vào 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 vẫn nhận dạng được dữ liệu đó khi lập chỉ mục các trang web của bạn và trực tiếp trả về dữ liệu đó 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 hoặc gửi PageMaps bằng một Sơ đồ trang web. Google cũng sẽ sử dụng các thông tin khác trên trang, chẳng hạn như mã đánh dấu đoạn mã chi tiết hoặc dữ liệu thẻ meta để tạo một 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 hay thậm chí là tham chiếu đến một từ vựng, giản đồ hoặc mẫu hiện có. Bạn có thể chỉ cần tạo các giá trị thuộc tính tuỳ chỉnh phù hợp với 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 xung quanh nội dung mà người dùng nhìn thấy trong phần nội dung của HTML, siêu dữ liệu của 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à có thể ứng dụng của bạn cần nhưng có thể bạn không muốn cho người dùng thấy.

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

Định nghĩa thẻ PageMap

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

Gắn thẻ Bắt buộc? Nội dung mô tả
PageMap Chứa tất cả thông tin PageMap cho URL có liên quan.
DataObject Chứa tất cả thông tin về một phần tử duy nhất (ví dụ: một hành động).
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, do đó, phải được định dạng chính xác. cụ thể, 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 dữ liệu PageMap trực tiếp 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 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 Sơ đồ trang web và gửi Sơ đồ trang web đó qua công cụ Sơ đồ trang web của Search Console.

Dưới đây là ví dụ về một Sơ đồ trang web chứa thông tin PageMap cho hai 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, các thuộc tính tuỳ chỉnh được trả về trong thuộc tính đoạn mã chi tiết của mỗi kết quả, có thể được dùng 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>

Trở lại đầu trang

Sử dụng thẻ <meta>

Mặc dù Sơ đồ trang cho phép bạn chỉ định chính xác dữ liệu bạn muốn cho mỗi trang, nhưng đô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ó dạng <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ẻ phổ biến thường được chèn theo phương thức lập trình bằng các công cụ biên soạn web, 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à đặt vào một đối tượng dữ liệu đặc biệt thuộc loại metatags. Các thẻ này có thể được sử dụng với tất cả các tính năng dữ liệu có cấu trúc của Tìm kiếm tùy chỉnh. Ví dụ: thẻ <meta> có dạng:

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

sẽ tạo một PageMap DataObject đượ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>

Dữ liệu trong PageMap được tạo tự động này có thể được sử dụng ở bất kỳ nơi nào bạn có thể sử dụng dữ liệu từ PageMap được đưa vào nội dung trang của bạn một cách rõ ràng. Ví dụ: bạn có thể sử dụng đối tượng 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>
...

Sau đây là các thẻ <meta> mà Google loại trừ:

  • rô-bốt
  • description
  • từ khoá
  • xem lại sau
  • trình tạo
  • xác minh-v1
  • googlebot
  • google-site-verification
  • CANNOT TRANSLATE
  • không có bộ nhớ đệm

Google cố gắng đưa vào tất cả các thẻ <meta> khác, với lưu ý rằng dấu chấm câu, ký tự đặc biệt và dấu cách đượ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 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 đúng cách nếu chúng được mã hoá 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á 1MB, không có thuộc tính riêng lẻ nào vượt quá 1.024 ký tự.

Trở lại đầu trang

Sử dụng ngày của 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 của trang dựa trên các tính năng của trang 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, thiên 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ể 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 cả Sắp xếp theo thuộc tính, Bias theo thuộc tính, Giới hạn trong phạm vi.

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

Các ví dụ sau đây minh hoạ việc sử dụng ngày trên trang với các toán tử này:

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
Xu hướng mạnh mẽ đến các ngày mới hơn https://www.google.com/cse?cx=12345:example&q=oil+spill&sort=date:d:s Bias theo thuộc tính
Kết quả sai lệch yếu đối với những ngày cũ hơn https://www.google.com/cse?cx=12345:example&q=oil+spill&sort=date:a:w Bias theo thuộc tính
Trả về kết quả 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 Giới hạn trong phạm vi

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

Định dạng ngày

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

Đối với các tính năng Sắp xếp theo thuộc tính, Bias theo thuộc tính, Giới hạn trong phạm vi của Công cụ tìm kiếm có thể lập trình, 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à các 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 ví dụ
YYYY-MM-DD 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 rõ ràng thì Google càng khó phân tích cú pháp chính xác. Ví dụ: ngày 06/07/08 rất không rõ ràng và khó có khả năng Google sẽ chỉ định ngày 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 theo ISO 8601 đầy đủ với năm được chỉ định đầy đủ.

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

Trở 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 này có định dạng là JSON và được đặt trong một thẻ <script> chứa type="application/ld+json".

Dưới đây là bit 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á nó. Việc chuẩn hoá giúp đơn giản hoá JSON-LD, loại bỏ nhiều thành ngữ JSON-LD. Dữ liệu đã 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 một rừng cây.
  • Rừng được phân chia theo các nhánh liên quan đến một tập hợp con các loại schema.org. Tập hợp con này bao gồm các cây loại schema.org cho Nếu bạn có các loại khác có thể hữu ích 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 của nó. 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. Chẳng hạn, chúng ta có thể có một cây bắt nguồn từ một MusicComposition (Thành phần kết hợp) có thuộc tính firstPerformance có giá trị Event (Sự kiện), trong đó có một tập hợp đầy đủ các thuộc tính Event. Tất cả các nút đó, từ MusicComposition (Thành phần nhạc) đến các thuộc tính của Event (Sự kiện) và mọi thành phần con cháu của chúng đều được giữ lại để duy trì một nhánh cây có ý nghĩa chứa firstPerformance Event (Sự kiện biểu diễn đầu tiên).
Đố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 dữ liệu 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.

Trở lại đầu trang

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

Định dạng vi mô là thông số kỹ thuật để trình bày các mục được xuất bản phổ biến như bài đánh giá, con người, sản phẩm và doanh nghiệp. Nhìn chung, định dạng vi mô bao gồm các phần tử <span><div> cùng 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à có tính mô tả (chẳng hạn như dtreviewed hoặc rating, thể hiện ngày đánh giá và điểm xếp hạng của một mục).

Sau đây là 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 cho thấy mã HTML trước đó được mở rộng bằng vi định dạng:

<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, được chuẩn hoá và sắp xếp lại để tương ứng với cách dữ liệu sẽ hiển thị trong đoạn mã chi tiết. 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 những nội dung 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 trong trang web Search Console của Google. Dữ liệu mà Google trích xuất từ các trang sẽ liên tục được mở rộng, vì vậy, hãy kiểm tra lại định kỳ để xem dữ liệu bạn muốn đã được cung cấp hay chưa. 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 vi định dạng đã xác định, bạn có thể sử dụng PageMaps.

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

Trở lại đầu trang

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

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

Sau đây là 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 đây cho thấy 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, vui lòng 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 Bài viết về RDF Primer.

Trở lại đầu trang

Sử dụng Microdata

HTML5, bản sửa đổi mới nhất của các trang web ngôn ngữ được dùng, xác định một định dạng có tên là vi dữ liệu, kết hợp trực tiếp ý tưởng về RDFa và Vi định dạng vào chính 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) để gán 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à Vi định dạng, các thuộc tính của Vi dữ liệu giúp bạn chỉ định rằng nội dung của bạn mô tả thông tin thuộc một số loại cụ thể, chẳng hạn như bài đánh giá, con 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, chức danh và đơn vị liên kết. Sau đây là ví dụ về một khối HTML ngắn hiển thị 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 là một phần của schema.org. Tìm kiếm tuỳ chỉnh là một cách hay để khám phá các tiện ích schema.org có thể có trên phạm vi cục bộ trước khi đề xuất cho cộng đồng rộng lớn 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 có một thẻ div HTML 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 đó. Xin lưu ý rằng bạn không bị giới hạn ở spandiv; thẻ itemprop="url" được đính kèm với thẻ a (cố định).

Để 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 Vi dữ liệu HTML.

Trở lại đầu trang

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

Dữ liệu có cấu trúc JSON-LD có một công cụ xác thực đặc biệt mà Google hỗ trợ, đó là Công cụ kiểm tra kết quả nhiều định dạng. Phương thức này kiểm tra cú pháp của JSON-LD và một số ngữ nghĩa, đặc biệt là liệu dữ liệu có cấu trúc có chứa các thuộc tính bắt buộc và thuộc tính nên dùng hay không. Để 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. Công cụ này xác thực cú pháp của dữ liệu có cấu trúc và cho bạn thấy dạng được diễn giải của dữ liệu đó.

Công cụ tìm kiếm có thể lập trình lưu giữ một phần 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 của Công cụ tìm kiếm có thể lập trình trên một trang bằng cách:

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

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

  2. Sau đó, hãy dùng công cụ tìm kiếm đó để tìm một trang có dữ liệu bạn muốn xem rồi 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 chưa gắn thẻ 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 trông như thế nào, 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 liên hệ đặc biệt có khả năng có 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ạ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ìm kiếm có cấu trúc:

person (source = MICROFORMAT)
  location = Tokyo

Trở lại đầu trang

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

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