本頁說明如何新增搜尋運算子依附的結構化資料。
因為網頁通常會填入任意形式的文字 但電腦較難理解只有部分通知 網頁包含的資訊結構較大 例如內嵌在網址或標題中的網頁日期 或機器可讀取的欄位Google 敬上 會從網頁中擷取各種結構化資料。這個 頁面說明瞭 Google 擷取的結構化資料類型 輸入來源 自訂摘要和 結構化搜尋:
總覽
瀏覽販售 DVD 的網頁時,快速 瞭解片名、審查人員對這部電影的想法 以及他們給予的評價但電腦無法做到某些事情 它不瞭解資訊的結構
舉例來說,如果網頁上有 DVD 和 推薦其他商品、其他商店的廣告和來自 網頁針對不同的客戶可能會有不同的價格 而不只是銷售 DVD 而已您可以輕鬆地找出 關閉其他價格時 DVD 的價格 則完全無法支援有些精密的程式可能會使用 但無法判斷哪些規則只能找出 DVD 的價格。
結構化資料格式是用來將結構和 網頁內容。這些標記是用來標記文字的標記, 電腦都能處理其含義或語義標記不會改變 格式,只是將中繼資料和文字 XHTML 標記對電腦來說更有意義
程式化搜尋引擎可辨識下列格式:
- PageMaps:新增的 XML 隱形區塊,並加上 將中繼資料寫入網頁
- JSON-LD:使用以下格式的隱形結構化資料: JSON 格式。
- 微格式:用來標記可見的標記 與預先定義的類型一併顯示網頁內容
- RDFa:標記可見的替代標準 頁面內容。
- 微資料:新的 HTML5 標記標準 顯示的網頁內容
<meta>
標記:標準 HTML 代碼,其中一部分 可能會由 Google 剖析- 網頁日期:網頁上的功能會標示網頁日期 這個日期;Google 會嘗試剖析這個日期
您可以使用自己偏好的其中一種格式,或搭配使用多種格式。 請注意,有別於程式化搜尋引擎,Google 搜尋只會使用 JSON-LD、微資料和 RDFa 且具備專屬的演算法和政策 決定要向使用者顯示的資訊當你新增結構化資料元素時 你的網頁可能會顯示在程式化搜尋引擎中,因此 Google 可能不會使用這些資料 搜尋結果
以下內容包括評論網站的純 HTML 簡單 HTML 程式碼片段:
<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>
下列程式碼片段為先前的 HTML 程式碼 以名為微格式的格式擴充:
<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>
將標準結構化資料格式 您不僅可以將資料提供給程式化搜尋引擎 以及支援相同標準的服務或工具套用 可將結構化資料排入網頁中最重要的資訊 可以直接在結果中顯示舉例來說,如果您在 假設您有銷售 Android 裝置的網站,請在網站中加入 包括評分、價格、空房資訊等等您的使用者搜尋 可以在 Android 裝置上查看評分、價格和 費用一目瞭然
這樣一來,電腦就能瞭解 特定類型的資料還得電腦也可以開始執行 繁瑣的任務,就是尋找並結合 網頁。這會讓使用者不再覺得無聊的工作 反覆瀏覽多個頁面,找到需要的項目搜尋引擎 程式化搜尋引擎可以處理 並以更實用、更有意義的方式顯示網頁,例如 自訂程式碼片段和 結構化搜尋。
提供資料給程式化搜尋引擎
Google 支援多種資料,主要用於
程式化搜尋引擎:網頁對應、<meta>
標記子集及約略網頁日期。
使用 PageMaps
PageMaps 是一種結構化資料格式,可將 網頁上的資料讓網站製作者可將資料和附註嵌入 網頁。雖然您的使用者或 Google 網頁搜尋 - 程式化搜尋引擎 在為網頁建立索引時,會辨識出您的答案, 直接傳回 程式化搜尋元素。
你可以將 PageMaps 明確加入網頁,也可以使用 Sitemap 提交 PageMaps。
Google 也會使用網頁上的其他資訊,例如複合式摘要標記或
meta
標記資料),藉此建立 PageMap。
有別於下述其他結構化資料格式,PageMaps 會
無需遵守標準內容、條款或網頁
加入現有詞彙、結構定義或範本只需建立
適合您網站的自訂屬性值有別於
微格式、微資料和 RDFa 的資料屬性
在 HTML 內文中向使用者顯示的內容,會包括 PageMaps 中繼資料。
找到 HTML 網頁的 head
部分。這個方法支援
但您可能不想這麼做
向使用者顯示
建立 PageMap 之後,您可以透過任何一種 方法如下:
- 直接在 HTML 網頁中加入 PageMap 資料。 Google 會在檢索你的網站時找到 PageMap 資訊。
- 在 Sitemap 中新增 PageMap 資料,然後提交 用於建立索引的 Sitemap。如果您不想 在網頁的 HTML 原始碼中顯示 PageMap。
PageMap 標記定義
下表概述在 Sitemap。
標記 | 是否必要? | 說明 |
---|---|---|
PageMap |
是 | 包含相關網址的所有 PageMap 資訊。 |
DataObject |
是 | 包含單一元素的所有相關資訊 (例如, 動作)。 |
Attribute |
是 | 每個 DataObject 都包含一或多個屬性。 |
注意:
PageMaps 是 XML 區塊,因此格式必須正確。
尤其是 PageMap
、DataObject
和
XML 中的 Attribute
標記區分大小寫,
type
、name
和 value
屬性。
直接將 PageMap 資料新增至 HTML 網頁
以下舉例說明: 羽球:
<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>
在 Sitemap 中加入 PageMap 資料
如果不想在網頁的 HTML 中納入 PageMap 資料,您可以 將 PageMap 資料新增至 Sitemap,並透過 Search Console Sitemap 工具:
以下的 Sitemap 範例包含兩個 網址:http://www.example.com/foo 和 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>
剖析 PageMap 資料
使用程式化搜尋元素時,自訂屬性 每個結果的複合式摘要屬性中傳回的 ,都可用來 搜尋元素回呼。
<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>
使用 <meta>
標記
雖然 PageMaps 能讓您精確地
有時候,每個網頁中都有大量內容
例如不想加註Google 會從
META
<meta name="KEY"
content="VALUE">
格式的標記。我們不支援
META 標記,例如使用 property
而非 name
。
雖然我們明確排除
這類標記通常是由網頁編寫工具以程式輔助方式插入
例如 robots
、description
和
keywords
,您的網站專屬的較罕見代碼會是
並放入特殊資料物件中
metatags
類型,可以與所有的「自訂」欄位搭配使用
Google 搜尋的結構化資料功能。例如,下列格式的 <meta>
標記:
<meta name="pubdate" content="20100101">
建立 PageMap DataObject,在 XML 結果中傳回,如下所示:
<r n="1"> ... <PageMap> <DataObject type="metatags"> <Attribute name="pubdate" value="20100101"/> </DataObject> </PageMap> ... </r>
這個自動建立的 PageMap 中的資料可用於任何位置 使用已明確包含在網頁內容中的 PageMap 資料。適用對象 也可以與搜尋運算子 (例如 排序依據:
https://www.google.com/cse?cx=12345:example&q=oil+spill&sort=metatags-pubdate
或 程式化搜尋元素:
... <div class="gcse-search" sort_by="metatags-pubdate:d:s"></div> ...
- 機器人
- 說明
- 關鍵字
- 之後再次造訪
- 產生器
- Verify-v1
- Google 機器人
- google-site-verification
- mssmarttagspreventparsing
- 沒有快取
Google 會嘗試加入所有其他 <meta>
標記,不過請留意
name
中的標點符號、特殊字元和內嵌空格
系統無法正確剖析 <meta>
標記的欄位。程式化搜尋引擎
在 <meta>
標記名稱中明確支援半形句號和破折號。
程式化搜尋引擎未明確支援其他特殊字元
出現在 <meta>
標記名稱內,但有一些特殊字元
即可正確接受
網址已編碼。
限制
只要程式化搜尋引擎最多可將 50 個 <meta>
標記轉換為 PageMaps,
由於所有已處理的屬性文字大小總計不超過 1 MB,
個別屬性超過 1,024 個半形字元
使用網頁日期
除了您在網頁上明確指定的中繼資料之外
Google 也會根據網頁功能估算網頁日期,例如
顯示在標題和網址中的日期程式化搜尋引擎
使用特殊中繼資料來排序、自訂調整和範圍限制結果
date
的金鑰。這個預估日期可用於所有業者
並使用 &sort=
網址參數,包括
排序依據
Bias by Attribute (依屬性)
限制在範圍內。
注意:網頁日期不會加進 PageMap。 因此不會傳回 JSON API 結果,也不能用於程式化搜尋引擎 元素,也無法與 依屬性篩選功能。
以下範例說明如何透過下列運算子使用網頁日期:
If you want to... | 傳送這個網址... | 詳情請參閱... |
---|---|---|
按日期遞減排序結果 | https://www.google.com/cse?cx=12345:example&q=oil+spill&sort=date |
依屬性排序 |
對新日期有強烈偏見的結果 | https://www.google.com/cse?cx=12345:example&q=oil+spill&sort=date:d:s |
Bias (依屬性) |
偏誤的結果與舊日期相差不多 | https://www.google.com/cse?cx=12345:example&q=oil+spill&sort=date:a:w |
Bias (依屬性) |
傳回 2010 年 1 月 1 日至 2 月 1 日的結果 (含) | https://www.google.com/cse?cx=12345:example&q=oil+spill&sort=date:r:20100101:20100201 |
限制在範圍內 |
Google 會根據功能推斷網頁的正確日期 例如新聞報導的署名,或 文件標題中的日期。如果網頁未指定錯誤 Google 可能無法根據網頁日期預估的日期,找出不一致的日期 因此,您的程式化搜尋引擎可能會傳回 做出您期望的行為
設定日期格式
網站可能仰賴 Google 的 預估網頁日期功能,偵測網頁內嵌的日期 網址、標題或其他功能,或是明確提供 結構化資料格式無論是何種情況,有效的日期使用方式 必須正確設定日期格式。
對於程式化搜尋引擎 排序依據 Bias by Attribute (依屬性區分 Bias): 限制在範圍內 功能,Google 會嘗試同時使用兩個傳統日期來剖析日期 格式和正式標準 ISO 8601 和 IETF RFC 850。 系統支援下列完整日期格式:
日期格式 | 範例日期 |
---|---|
YYYY-MM-DD (西元年-月份-日) | 2009-12-31 |
YYYY/MM/DD | 2009 年 12 月 31 日 |
YYYYMMDD | 20091231 |
月份 DD YYYY | 2009 年 12 月 31 日 |
DD 月份 | 2009 年 12 月 31 日 |
Google 會嘗試剖析這些日期格式的變體,例如
做為 MM/DD/YYYY
和 DD/MM/YYYY
。不過
日期越明確,Google 就越不可能剖析
但事實並非如此例如,06/07/08
日期為
此資訊過於模稜兩可,且 Google 不太可能會為其指派
為了獲得最佳結果,請使用完整的
ISO 8601
具有完整指定年份的日期格式。
複合式摘要
Google 也會從 JSON-LD、微格式、RDFa 中擷取各種結構化資料。
和微資料
複合式摘要、標準 Google 搜尋結果的延伸簡報。
程式化搜尋引擎中的
結構化資料運算子,通常與複合式摘要使用的相同資料。
舉例來說,如果您使用微格式來標記網頁
hrecipe
標準,您可以按照評分次數排序
食譜中的星級評等加上運算子,例如
&sort=recipe-ratingstars
。
Google 會持續擴增擷取的資料,
資料用於程式化搜尋引擎即可查看 Google 目前在哪些資料
您可以使用
Search Console 中的結構化資料測試工具。
使用 JSON-LD
JSON-LD 是廣泛使用的結構化資料標準格式,
資料格式為 JSON,並放在
含有 type="application/ld+json"
的 <script>
標記。
以下是簡短的 HTML 程式碼,有一些簡單的 JSON-LD:
<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 會從程式化搜尋引擎擷取部分資料,並進行正規化處理。 正規化可簡化 JSON-LD,並移除許多 JSON-LD 慣用語。正規化資料是 進一步處理:
- 其轉換是從 圖表 JSON-LD 到樹狀結構的樹林。
- 森林往下落至與子集相關的分支 schema.org 類型。子集由 schema.org 類型的樹狀結構 ,瞭解如何調查及移除這項存取權。 如果有其他類型適用於特定用途,請 透過支援中心 論壇。
- 所選類型中的每個 JSON-LD 節點都會從 JSON-LD 中擷取「分支版本」 。該分支版本在樹狀結構中包含祖系節點及其所有子節點。 例如,我們有個根樹 MusicComposition,其中包含 firstPerformance 資源,且 事件值,包含完整的事件 資源。這些節點會從 MusicComposition 屬性 Event 和其子係都會保持為有意義的樹狀分支版本 包含的 firstPerformance Event。
... "event": { "name": "Presenting Foo", "description": "Please attend. You'll love it!", "startdate": "2022-05-24", "location": "Back room" }, ...
如要查看 Google 搜尋為網頁擷取的資訊並驗證 JSON-LD,請使用 複合式搜尋結果 測試工具。
如要進一步瞭解 JSON-LD,請參閱 結構化資料說明文件和 json-ld.org。
使用微格式
微格式
這個規格代表
,例如評論、人員、產品和商家一般而言
微格式包含 <span>
和
<div>
元素、類別屬性,以及
簡短且描述性屬性名稱 (例如 dtreviewed
)
或 rating
,代表評論項目的日期
和評分)。
下方附上一段純 HTML 程式碼。
<p><strong>Kevin Grendelzilla</strong></p> <p>Technical writer at Google</p> <p>555 Search Parkway</p> <p>Googlelandia, CA 94043</p>
下列程式碼片段顯示先前的 HTML 程式碼,以 微格式:
<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 會擷取這項資料的一小部分,並正規化並重新整理 對應到複合式摘要的顯示方式。這個 子集會在 XML 結果中傳回,如下所示:
<r n="1"> ... <PageMap> <DataObject type="person"> <Attribute name="location" value="Googlelandia"/> <Attribute name="role" value="Technical Writer"/> </DataObject> </PageMap> ... </r>
如要查看 Google 擷取的網頁內容,請使用 結構化資料 Google 的「測試工具」 Search Console 網站。Google 從網頁擷取的資料 裝置會持續延長,請定期回來查看 可讓您存取想要的資料在此期間,如果您需要 不會對應至已定義的微格式的自訂資料 即可使用 PageMaps。
如要進一步瞭解微格式,請參閱 結構化資料說明文件和 microformats.org。
在屬性中使用資源描述架構 (RDFa)
屬性 (RDFa) 中的資源說明架構 (RDFa) 更具彈性 而不是微格式微格式會指定同時包含 結構化資料轉換為 HTML 文件和一組微格式類別 每個物件都有各自的特定詞彙RDFa (已開啟) 相對地, 只需要指定語法,並且讓您可以使用 或自行建立屬性的詞彙。甚至可讓您結合 一次取得多個詞彙如果現有詞彙表不符合 您可以依需求定義自己的標準和詞彙表 建立新的欄位
下方附上一段純 HTML 程式碼。
<div> <h3>5 Centimeters Per Second</h3> <h4>Makoto Shinkai</h4> ... </div>
下列程式碼片段顯示先前的使用 RDFa 擴充的 HTML 程式碼:
<div> <h3 property="dc:title">5 Centimeters Per Second</h3> <h4 property="dc:maker">Makoto Shinkai</h4> ... </div>
如要進一步瞭解 RDFa,請參閱 結構化資料說明文件。如要進一步瞭解如何定義 RDF 結構定義 請參閱 RDF Primer。
使用微資料
網頁語言的最新修訂版本都是 HTML5
定義名為
微資料
將 RDFa 和微格式構想直接整合到
HTML 標準本身。微資料在 HTML 標記中使用簡易屬性
(通常是 span
或 div
) 指派概要和
會為項目和屬性提供描述性的名稱
如同 RDFa 和微格式,微資料的屬性可協助您 您的內容描述了特定類型的資訊,例如評論、 人物、資訊或事件。例如,使用者可以擁有 屬性名稱、暱稱、網址、標題和聯盟。以下是 一個簡短的 HTML 區塊範例,顯示這位基本聯絡方式 給 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>
以下是使用微資料為相同的 HTML 內容加上標記後的程式碼:請注意,本例中 我們使用屬性「nickname」我們尚未正式加入 schema.org 的行列。自訂 搜尋適合用來探索當地可能的 schema.org 擴充功能 包括將這些建議提供給廣大社群。
<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>
這個範例的第一行包含一個 HTML div
標記,
itemscope
屬性,表示 div
包含微資料項目。
已啟用 itemtype="http://schema.org/Person"
屬性
都代表這是人個人資料項目的每個屬性
可透過 itemprop
屬性識別;例如
span
標記的 itemprop="name"
說明
使用者的姓名。請注意,您只能使用 span
和div
;itemprop="url"
標記已附加
設為 a
(錨定) 標記
如要進一步瞭解微資料,請參閱 結構化資料說明文件和 HTML 微資料標準。
查看擷取的結構化資料
JSON-LD 結構化資料提供 Google 支援的特殊驗證工具, 複合式搜尋結果測試工具。檢查 JSON-LD 的語法以及部分語意,尤其是結構化資料 包含必要與建議屬性 檢查其他結構化形式 資料,請使用結構定義標記驗證工具。驗證 並顯示其解讀形式。
程式化搜尋引擎會保留一部分 所以請使用程式化搜尋引擎檢查程式化搜尋引擎 網頁結構化資料的檢視畫面:
如果您尚未在任何網頁中加入結構化資料,但想要查看 可能看起來會像這樣 或來自其他網站的資料。提供評論資訊或清單 檔案通常具有結構化資料。
找到內含結構化資料的網頁後, 網頁的來源,以瞭解網站實作的結構化資料。例如: 請參考下列包含結構化資料的 HTML 程式碼片段: 適合做為微格式使用的人
<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>
程式化搜尋引擎會擷取以下部分的資料 用於結構化搜尋:
person (source = MICROFORMAT) location = Tokyo
瞭解其他功能
結構化資料可用於多項程式化搜尋引擎功能 包括: