- LocalBusiness 結構化資料是放在網頁原始碼裡、用固定格式描述店家資訊的程式碼;Google 支援 JSON-LD、微資料與 RDFa,並建議使用 JSON-LD。
- Google 文件列出的必要屬性只有 name 與 address,telephone、url、geo、openingHoursSpecification、priceRange 等是建議屬性;類型要選最具體的子類型,例如 Restaurant、HairSalon、AutoRepair。
- 標記內容必須與網頁上看得到的資訊一致;店家在自己網站上標記關於自己的評論,不符合星級評論功能的資格。
- Google 寫明不保證採用結構化資料的功能一定會顯示在搜尋結果中,加好之後用複合式搜尋結果測試與網址檢查工具驗證。
顧客在網頁上看到「營業時間:週二到週日 11:00–21:00」,一眼就懂;但對搜尋引擎來說,這只是一串文字,它得自己猜哪個是店名、哪個是地址、哪個是營業時間。結構化資料就是把這些資訊用固定格式再寫一次,放在網頁原始碼裡,讓 Google 不必猜。店家網站最常用的類型是 LocalBusiness(當地商家)。這篇依 Google 搜尋中心的官方文件,整理 LocalBusiness 要填哪些欄位、台灣店家的地址與營業時間怎麼寫、一段可以照著改的示意範例,以及加好之後怎麼測試、最常犯哪些錯。
先講清楚:結構化資料能做什麼、不能做什麼
Google 搜尋中心的 LocalBusiness 文件說明,使用者在 Google 上搜尋商家時,搜尋結果可能會顯示醒目的知識面板,列出與查詢相符的商家詳細資料;標記也可以包含營業時間與部門等資訊。但有兩件事要先知道:
- 不保證顯示。Google 文件寫明,不保證採用結構化資料的功能一定會顯示在搜尋結果中。結構化資料一般指南也說明,就算測試工具顯示標記正確,仍可能因內容不相關、有誤導之虞或不符合指南而不顯示,搜尋結果也會受使用者的搜尋紀錄、地點、裝置影響。
- 它不是排名開關。結構化資料的作用是讓 Google 更清楚理解頁面內容。Google 地圖上的在地排名主要看商家檔案的關聯性、距離與知名度,細節見Google 地圖排名三要素。
所以比較務實的看法是:結構化資料是店家官網的基本功之一,花一兩個小時做對就好,不必期待它單獨帶來流量。它應該放在一個資訊本身已經完整的網站上,網站該有哪些頁面與內容,先對照店家官網必備頁面檢查表。
格式選 JSON-LD
Google 支援三種結構化資料格式:JSON-LD、微資料(Microdata)與 RDFa。官方建議優先使用 JSON-LD,原因是比較容易導入與維護;只要標記有效且依說明正確導入,三種格式對 Google 沒有優劣之分。JSON-LD 的好處是整段程式碼放在一個 <script type="application/ld+json"> 區塊裡,不用改動網頁原本的版面,日後修改也只要改這一段。
使用架站平台(CMS)的店家,Google 文件建議可以用平台已整合的外掛程式來產生標記。動手之前,先用後面介紹的複合式搜尋結果測試檢查你的網站,確認平台是不是已經自動加了一份,避免同一頁出現兩份內容不一致的標記。
第一步:選對 @type,用最具體的子類型
Google 文件建議盡可能使用最具體的 LocalBusiness 子類型。這些類型來自 Schema.org 的詞彙表,下面是在地店家常用的幾個(皆已在 Schema.org 查證存在):
| 店家類型 | 可用的 @type | 上層類型 |
|---|---|---|
| 餐廳、小吃 | Restaurant、FastFoodRestaurant | FoodEstablishment |
| 咖啡廳、烘焙坊、冰店 | CafeOrCoffeeShop、Bakery、IceCreamShop | FoodEstablishment |
| 美髮、美甲、美容、SPA | HairSalon、NailSalon、BeautySalon、DaySpa | HealthAndBeautyBusiness |
| 健身房 | HealthClub | HealthAndBeautyBusiness |
| 汽車保養維修、洗車、機車行 | AutoRepair、AutoWash、MotorcycleRepair | AutomotiveBusiness |
| 水電、油漆、鎖匠、搬家、冷氣 | Plumber、Electrician、HousePainter、Locksmith、MovingCompany、HVACBusiness | HomeAndConstructionBusiness |
| 零售門市 | Store | LocalBusiness |
| 托育 | ChildCare | LocalBusiness |
如果你的店同時屬於好幾種類型,Google 文件說明可以用陣列表示,例如 ["Electrician", "Plumber", "Locksmith"]。另外要注意,Google 文件寫明不支援 additionalType,不要用它來補充類型。找不到完全對應的子類型時,就用上層類型或 LocalBusiness 本身,不要硬套一個不符合的類型——結構化資料一般指南要求標記必須真實反映網頁內容。
LocalBusiness 和 Organization 的關係。Google 的 Organization 結構化資料文件說明,LocalBusiness 是 Organization 的細分類型;網站若與餐廳或實體商店等當地商家相關,應改用最具體的 LocalBusiness 子類型。所以實體店家不需要另外再加一份 Organization,直接用 LocalBusiness 就好。
第二步:欄位怎麼填(必要與建議屬性)
Google 文件把屬性分成「必要」與「建議」兩種。必要屬性缺了,標記就沒有資格使用相關功能;建議屬性越完整,資訊越有可能被呈現,但官方也建議寧可少填幾項,也要確保填的都完整正確。
| 屬性 | 必要/建議 | 官方說明重點 | 店家填寫提醒 |
|---|---|---|---|
| name | 必要 | 商家名稱 | 跟招牌、Google 商家檔案上的名稱一致,不要加關鍵字 |
| address | 必要 | 商家的實際位置(PostalAddress),盡可能多加入子屬性 | 街道、行政區、縣市、郵遞區號、國家都填 |
| telephone | 建議 | 供消費者使用的主要聯絡電話,務必加入國家/地區代碼和區碼 | 台灣寫成 +886 開頭,市話去掉區碼前面的 0 |
| url | 建議 | 特定商家所在地點的完整網址,必須是有效連結 | 多分店就填各分店的地點頁網址 |
| geo | 建議 | 經緯度,精確度至少到小數點後第 5 位 | 可以從 Google 地圖對著店門口取得座標 |
| openingHoursSpecification | 建議 | 營業時間,用 dayOfWeek、opens、closes 表示 | 寫法見下一節 |
| priceRange | 建議 | 相對價格區間,長度必須少於 100 個半形字元 | 可寫「$$」或「NT$300–600」這類區間 |
| image | (官方範例使用) | 範例以陣列提供 1x1、4x3、16x9 三種比例的圖片網址 | 用門口或店內實景,圖片網址要能被檢索 |
| menu、servesCuisine | 建議(餐飲) | 菜單的完整網址;餐廳供應的料理類型 | 菜單網址要連到文字版菜單頁 |
| department | 建議 | 單一部門的巢狀項目 | 一般小店用不到,店中店或大型門市才需要 |
| aggregateRating、review | 建議(限特定網站) | 只有在網站會擷取關於其他當地商家的評論時才建議使用 | 店家自己的官網不要用,原因見常見錯誤 |
台灣地址怎麼對應 PostalAddress
Google 文件只要求盡可能填寫完整的地址子屬性,沒有規定台灣地址怎麼拆。下面是常見的對應方式(捷萊整理的建議寫法,不是官方規定),重點是內容要跟頁面上的文字地址、Google 商家檔案一致:
| 子屬性 | 意思 | 示意值 |
|---|---|---|
| streetAddress | 路名、巷弄、門牌、樓層 | 範例路 100 號 1 樓 |
| addressLocality | 鄉鎮市區 | 示意區 |
| addressRegion | 縣市 | 示意市 |
| postalCode | 郵遞區號 | 000 |
| addressCountry | 國家代碼 | TW |
中文地址與英文地址怎麼在各平台統一寫法,可以參考NAP 一致性與在地引用。結構化資料裡的地址寫法,最好跟你在 NAP 整理時決定的「標準寫法」完全相同。
營業時間的寫法
openingHoursSpecification 可以是單一物件或陣列。Google 文件說明的規則如下:
dayOfWeek可以寫完整網址(例如https://schema.org/Monday),也可以只寫Monday;同樣營業時間的幾天可以放在同一個陣列。opens、closes使用時間格式(說明寫 hh:mm:ss,官方範例則用「11:30」這種寫法)。- 24 小時營業:
opens設為00:00,closes設為23:59。 - 整天不營業:
opens與closes都設為00:00。 - 營業到半夜:例如週六 18:00 營業到週日 03:00,用一個規格寫 opens 18:00、closes 03:00 即可。
- 暫停營業一段期間:用
validFrom與validThrough(YYYY-MM-DD)標示期間,例如年度整修休業。
營業時間是最常改、也最容易忘記同步的欄位。改了營業時間,記得官網文字、結構化資料、Google 商家檔案、Facebook 粉專同一天一起改。
JSON-LD 示意範例
下面是一家虛構咖啡廳的完整範例。店名、地址、電話、網址、座標全部是示意資料,請換成你自己的;example.com 是保留給範例使用的網域。
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "CafeOrCoffeeShop",
"name": "示意咖啡",
"image": [
"https://www.example.com/img/shop-1x1.jpg",
"https://www.example.com/img/shop-4x3.jpg",
"https://www.example.com/img/shop-16x9.jpg"
],
"address": {
"@type": "PostalAddress",
"streetAddress": "範例路 100 號 1 樓",
"addressLocality": "示意區",
"addressRegion": "示意市",
"postalCode": "000",
"addressCountry": "TW"
},
"geo": {
"@type": "GeoCoordinates",
"latitude": 25.00000,
"longitude": 121.00000
},
"url": "https://www.example.com/",
"telephone": "+886-2-0000-0000",
"priceRange": "NT$150–400",
"servesCuisine": "咖啡、輕食",
"menu": "https://www.example.com/menu.html",
"openingHoursSpecification": [
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": ["Tuesday", "Wednesday", "Thursday", "Friday"],
"opens": "10:00",
"closes": "18:00"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": ["Saturday", "Sunday"],
"opens": "09:00",
"closes": "20:00"
}
]
}
</script>
這段範例有幾個刻意的設計:週一沒有列出,代表公休;image 依官方範例提供三種比例;沒有放 aggregateRating 與 review,因為店家自己的網站不適用星級評論功能。Google 的結構化資料簡介說明,JSON-LD 的 script 標記可以放在網頁的 <head> 或 <body> 中。
要放在哪一頁
結構化資料指南說明,標記應該放在描述該資訊的網頁上,而且必須符合網頁內容;官方也提醒,不要單純為了放結構化資料而建立空白網頁。依店家網站的型態:
| 網站型態 | 放在哪裡 |
|---|---|
| 一頁式網站 | 放在那一頁,頁面上要看得到同樣的店名、地址、電話、營業時間 |
| 單店形象網站 | 放在首頁,或「地點與交通」頁,選一個主要頁面放完整版本 |
| 多分店網站 | 每家分店一個地點頁,各自標記自己的資料,url 填該分店頁網址 |
第三步:測試與上線
Google 文件建議的流程如下:
- 用複合式搜尋結果測試檢查。可以輸入網址,也可以直接貼上程式碼;可以選擇用智慧型手機或電腦的使用者代理程式測試。結果會列出頁面上偵測到的結構化資料類型、錯誤與警告。官方要求先修正所有重大錯誤;警告也逐項看過,能補的就補。
- 部署到網站上。確認頁面沒有被 robots.txt 或 noindex 封鎖、不需要登入就能開啟。結構化資料一般指南也規定,不可以用這些方式阻擋 Googlebot 讀取含結構化資料的網頁。
- 用網址檢查工具確認 Google 看得到。在 Search Console 檢查該網址,必要時要求重新檢索;這部分的操作可以參考網站在 Google 搜尋不到的檢查步驟。
- 等幾天。Google 需要時間重新檢索與建立索引;網站有 Sitemap 的話,建議一併提交。
測試通過不等於一定會顯示。Google 文件提醒,結構化資料的問題可能與語法無關,所以複合式搜尋結果測試不一定能找出所有問題;網頁與標記仍須符合品質相關的指南,這些不在測試範圍內。
常見錯誤對照表
| 錯誤 | 為什麼有問題 | 正確做法 |
|---|---|---|
| 把自己店的 Google 評論星等寫進 aggregateRating | 評論摘要指南規定,能控制自身評論的實體使用 LocalBusiness 或 Organization 標記時不能使用星級評論功能,內嵌第三方評論小工具也一樣 | 店家官網不標記自己的評分 |
| 標記的資料頁面上看不到 | 一般指南要求標記內容必須與使用者看得到的內容一致,使用者看不到的資訊不應加上標記 | 頁面上用文字寫出店名、地址、電話、營業時間 |
| 電話寫成 02-0000-0000 | 官方要求加上國家/地區代碼與區碼 | 寫成 +886-2-0000-0000 |
| geo 只填到小數點後 3 位 | 官方要求精確度至少到小數點後第 5 位 | 從地圖重新取得座標 |
| priceRange 寫一大段說明 | 官方規定必須少於 100 個半形字元,超過時不會顯示 | 只寫符號或價格區間 |
| 用 additionalType 補類型 | Google 文件寫明不支援 | 用陣列列出多個 @type |
| 店名塞關鍵字,例如「示意咖啡|示意區下午茶推薦」 | 一般指南規定標記不得含有誤導內容,名稱也應與頁面、招牌一致 | 只寫招牌上的店名 |
| 營業時間改了只改網頁文字 | 標記與頁面不一致,資訊過時 | 改營業時間時同步改結構化資料與商家檔案 |
| 平台自動產生一份、自己又加一份 | 同一頁出現兩份內容不同的資料,容易互相矛盾 | 用測試工具確認後只保留一份 |
結構化資料一般指南也說明,違反規範的網站可能遭到人工處置(manual action),受處置的網頁不能以複合式搜尋結果呈現;可以在 Search Console 的人工處置報告中檢查。照著上面的原則做——標記真實、與頁面一致、不放自己的評論——基本上就不會碰到這個問題。
結構化資料和 Google 商家檔案是兩回事
常有店家以為「網站加了 LocalBusiness,就不用管 Google 商家檔案」,或反過來。兩者的角色不同:Google 商家檔案是顧客在 Google 地圖與搜尋上看到的店家資料,地圖排名主要看這裡;LocalBusiness 結構化資料是你官網上的一段程式碼,幫助 Google 理解官網頁面在講哪一家店。兩邊的店名、地址、電話、營業時間一致,Google 比較容易把它們認定為同一家店。商家檔案還沒整理好的話,建議先處理那一邊,可以參考Google 商家檔案申請與代辦。如果你也關心 AI 摘要或對話式搜尋怎麼呈現店家資訊,可以接著看AI 搜尋時代店家資料怎麼準備。
上線前檢查清單
| 檢查項目 | 完成標準 |
|---|---|
| @type | 選了最具體、真實符合的子類型,沒有用 additionalType |
| name、address | 兩個必要屬性都有,地址子屬性盡量填完整 |
| telephone | 含 +886 國碼與區碼 |
| url | 是這個地點的完整網址,打得開 |
| geo | 經緯度至少到小數點後第 5 位 |
| 營業時間 | 與頁面文字、商家檔案一致,公休日與特殊時段寫對 |
| 評論 | 沒有標記自己店的 aggregateRating 或 review |
| 頁面一致性 | 標記裡的每一項資訊,頁面上都看得到 |
| 測試 | 複合式搜尋結果測試沒有錯誤 |
| Search Console | 網址檢查工具確認頁面可以被檢索與建立索引 |
需要協助的時候
如果你的網站是自己用架站平台做的,照上面的範例改一改、用測試工具驗證,通常一個下午就能完成。如果網站本身資訊不完整、頁面上沒有文字地址,或打算重新整理網站,捷萊的店家網站架設提供店家一頁式網站(投放廣告用)NT$35,000 一次性,以及形象網站(SEO 架構)NT$65,000 一次性兩種方案,上線時會一併處理 LocalBusiness 結構化資料與測試。我們不承諾結構化資料一定會讓特殊搜尋結果出現,但會確保標記正確、與頁面和商家檔案一致。
常見問題
加了 LocalBusiness 結構化資料,排名會變好嗎?
Google 沒有這樣說。Google 搜尋中心寫明結構化資料只是讓相關功能有資格出現,不保證一定會顯示在搜尋結果中;它的作用是讓 Google 更清楚理解頁面上的店家資訊。Google 地圖上的在地排名,主要還是看商家檔案的關聯性、距離與知名度。
可以把 Google 評論的星等放進結構化資料嗎?
不建議。Google 的評論摘要指南規定,接受評論的實體若能控制自己獲得的評論,使用 LocalBusiness 或其他 Organization 類型的網頁不能使用星級評論功能,透過內嵌第三方評論小工具呈現的評論也包括在內。aggregateRating 與 review 只建議用在擷取其他商家評論的網站。
我有三家分店,結構化資料要怎麼放?
結構化資料應該放在描述該資訊的網頁上。比較清楚的做法是每家分店一個地點頁,各自標記自己的 name、address、telephone、url 與營業時間,並與該分店的 Google 商家檔案資料一致。
用架站平台做的網站,也能加結構化資料嗎?
多數可以。Google 文件建議使用 CMS 的店家可以用平台已整合的外掛程式;不確定的話,用複合式搜尋結果測試輸入你的網址,看看平台是否已經自動產生 LocalBusiness 標記,避免重複加上兩份內容不同的標記。