最後更新:2026/10/13
在 Google 搜尋一家店,有時候搜尋結果旁邊會出現店名、評分、營業時間;搜尋商品,結果裡直接寫著價格和「有現貨」。這些多出來的資訊,有一部分來自網站上的「結構化資料」。
結構化資料聽起來很技術,概念卻很簡單。這篇用白話說明它是什麼、能幫上什麼忙,再教台灣的店家在 WordPress 網站加上最基本的一種:在地商家資料。
不想自己改?把這篇交給 AI
把這篇的網址(或全文)連同下面這段話貼給 AI:
我的網站是 WordPress。我想照下面這篇文章,幫首頁加上「在地商家」的結構化資料。
請先問我:我的店名、地址、電話、營業時間,以及網站有沒有裝會輸出結構化資料的 SEO 外掛(避免重複)。
問清楚之後,再一步一步告訴我:要用哪一段程式碼、貼在哪裡、哪些地方要換成我自己的資料,以及改完怎麼測試。
如果文章的做法不適合我的網站,請直接告訴我原因和替代做法。
文章:(貼上這篇的網址,或整篇內容)
改之前先備份,密碼不要貼給 AI。
給 Google 看的店家名片
人看網頁,看得懂「營業時間:週二到週六 11:00–19:00」是什麼意思。搜尋引擎讀到的只是一串文字,要猜哪一段是地址、哪一段是電話。結構化資料就是用一種固定的格式,把這些資訊另外寫一份給搜尋引擎看:這是店名、這是地址、這是營業時間,不用猜。
格式有好幾種,Google 建議用 JSON-LD:一段放在網頁原始碼裡的資料,訪客看不到,不會影響版面。
先講清楚:它不是排名的加分題
結構化資料能幫 Google 正確理解你的網站,也讓網頁「有機會」在搜尋結果裡顯示得更豐富。但 Google 從來沒有保證加了就一定會顯示,也不會因為你加了就把排名往前排。
而且規則會變。以前很多網站加上「常見問題」的結構化資料,搜尋結果下方就會多出一排可以展開的問答;Google 在 2023 年 8 月宣布,這種顯示方式之後只給知名、具權威性的政府和醫療網站。一般店家加了,網頁還是正常,只是不會再出現那排問答。所以不要把結構化資料當成排名技巧,把它當成「把基本資料寫清楚」就好。
WooCommerce 商品頁已經自動有了
如果你用 WooCommerce 開店,商品頁這部分不用另外做:WooCommerce 會自動在每個商品頁輸出商品的結構化資料,內容包括商品名稱、網址、價格、幣別、有沒有庫存,以及「首頁 > 分類 > 商品」這樣的麵包屑路徑。我們在測試站打開一個商品頁檢查,確實有商品和麵包屑兩種資料,價格寫的是 450、幣別是新台幣、狀態是有庫存。
所以商品這部分要做的,是把商品資料本身填完整:商品圖片、簡短說明、貨號、正確的庫存狀態,結構化資料就會跟著完整。
首頁加上在地商家資料
有實體店面、工作室、教室的店家,可以在首頁加上「在地商家」(LocalBusiness)的資料。把下面這段的內容換成你的店家資料,放進 Code Snippets 這類外掛或子主題(放法見〈WooCommerce 結帳頁改成台灣習慣〉):
// 首頁加上「在地商家」結構化資料(內容要和網站、Google 商家檔案寫的一致)
add_action('wp_head', function () {
if (!is_front_page()) {
return;
}
$data = [
'@context' => 'https://schema.org',
'@type' => 'LocalBusiness',
'name' => '小島手作皂',
'url' => home_url('/'),
'telephone' => '+886-2-2345-6789',
'image' => home_url('/wp-content/uploads/shop.jpg'),
'address' => [
'@type' => 'PostalAddress',
'streetAddress' => '文化路一段 1 號',
'addressLocality' => '板橋區',
'addressRegion' => '新北市',
'postalCode' => '220',
'addressCountry' => 'TW',
],
'openingHoursSpecification' => [[
'@type' => 'OpeningHoursSpecification',
'dayOfWeek' => ['Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],
'opens' => '11:00',
'closes' => '19:00',
]],
];
echo '<script type="application/ld+json">'
. wp_json_encode($data, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES)
. '</script>' . "\n";
});
幾個欄位說明:電話寫成國際格式,台灣是 +886,區碼前面的 0 拿掉;image 放一張店面或招牌的照片網址;地址拆成路名門牌、區、縣市、郵遞區號;營業時間的星期用英文,不同天不同時間的話,就多寫幾組。如果你的店有更精確的類型,例如餐廳、美髮店、診所,@type 可以換成更具體的類別,Schema.org 網站上查得到完整的清單。
程式用 wp_json_encode 產生資料,不用自己手寫大括號和引號,比較不會因為少一個逗號整段失效。JSON_UNESCAPED_UNICODE 讓中文直接以中文輸出,檢查的時候比較好讀。
網路上也有結構化資料產生器,填表就能產生一段 JSON-LD。不想寫程式的話,可以把產生出來的那段,用佈景主題或外掛提供的「在頁首插入程式碼」功能貼上,效果一樣。
一定要做的事:用 Google 的工具檢查
加好之後,到 Google 的「複合式搜尋結果測試」貼上首頁網址,它會告訴你讀到了哪些資料、有沒有錯誤。另一個工具是 Schema.org 的驗證器(Schema Markup Validator),會列出所有讀到的結構化資料,適合檢查有沒有重複。
重複是很常見的問題。很多 SEO 外掛也會輸出結構化資料,如果外掛已經輸出了一份組織或商家資料,你再加一份,Google 會讀到兩個不同的店家。加之前先用驗證器看一下首頁,已經有的話,直接到外掛的設定裡把資料填完整就好。
最重要的一條規則:結構化資料寫的內容,必須和網頁上看得到的一致。網頁上寫週一公休,結構化資料卻寫週一有營業,這種不一致可能讓 Google 不採用你的資料。
在地店家,Google 商家檔案更重要
說了這麼多,還是要提醒一件事:對有實體店面的店家,搜尋結果右邊那一大塊店家資訊、地圖上的位置,主要來自 Google 商家檔案,不是網站上的結構化資料。結構化資料是輔助,讓 Google 確認「這個網站和那家店是同一個」。店名、地址、電話在網站、結構化資料、Google 商家檔案三個地方寫得一模一樣,效果最好。
如果你想讓網站從結構、內容到搜尋設定都打好基礎,可以先看〈WordPress 網站上線前的檢查清單〉,再看〈IG 帳號不是你的資產〉想想網站要做到什麼。MIMI 專做客製化網頁設計,網站上線時會一起設定好基本的搜尋資料。MIMI 提供台灣網頁設計服務,各縣市的店家都可以用電話、Email 和設計師討論;費用可以先看首頁的製作費用參考,歡迎聯絡 MIMI。
