跳到主要內容
技術 SEO · 54 分鐘閱讀

Schema 結構化資料完整教學:選型、JSON-LD 實作與三層驗證

Schema 結構化資料把頁面事實翻成機器可讀的標記。本篇用 AK Schema Entity Alignment Matrix 帶你看選型、JSON-LD 欄位、驗證、CMS 管理與常見失敗模式,避免把標記寫成噪音。

最後更新:

Schema 結構化資料完整教學:選型、JSON-LD 實作與三層驗證

Schema 結構化資料是什麼?

Schema 結構化資料是寫在網頁原始碼中的標記,目的是讓搜尋系統更準確理解頁面類型、主體實體、作者、產品、問答、步驟與網站層級關係。它常用 JSON-LD 格式呈現,詞彙來源多半是 Schema.org,Google 則依自己的支援規則判斷哪些標記能進一步觸發 rich results。

Schema 結構化資料是什麼?:Schema 結構化資料是寫在網頁原始碼中的標記,目的是讓搜尋系統更準確理解頁面類型、主體實體、作者、產品、問答、步驟與網站層級關係
圖 1:正文|Schema|搜尋呈現

把 schema 想成給搜尋引擎看的資料標籤會比較準。正文是給人讀的,schema 是把正文裡已經存在的事實翻成機器比較好解析的格式。它只能標記與整理既有資訊,不能替代內容品質、技術可爬取性、內部連結或品牌信任。

Schema 在搜尋系統中的位置

搜尋系統處理一個頁面時,依序面對三個層次:正文、schema、搜尋呈現。正文負責讓讀者看懂主題與答案;schema 負責標記頁面類型與已出現的事實;搜尋呈現則由 Google 依資格、品質與查詢情境決定呈現方式。schema 介於正文與搜尋呈現之間,是連結頁面事實與系統理解的介面,不是獨立於內容之外的第四層。

把這個位置講清楚,就能排除兩種常見誤解。第一種是「只要 schema 有寫,正文就可以很薄」,實際上正文才是讀者與搜尋系統判斷答案價值的依據。第二種是「測試通過就一定顯示特殊結果」,實際上資格通過不代表系統必須採用,呈現與否還取決於品質判斷與查詢情境。

層級主要工作常見誤解
正文讓讀者看懂主題與答案只要 schema 有寫,正文就可以很薄
Schema標記頁面類型與已出現的事實加了就能保證排名或 rich snippet
搜尋呈現Google 依資格、品質與查詢情境決定呈現方式測試通過就一定顯示特殊結果

Schema 與排名因素的真正關係

要說清楚 schema 與排名因素的關係,先要把理解與排序分開。結構化資料不是排名因素,Google 的排序系統不會因為頁面多掛一組 JSON-LD

什麼頁面需要 schema

需要 schema 的頁面,通常有清楚的主體、可見的事實欄位,以及 Google 或其他搜尋系統能理解與使用的內容類型。文章頁、FAQ 區塊、教學步驟、商品頁、在地商家頁、麵包屑、作者頁和組織資訊頁,都比單純的薄內容頁更適合標記。反過來說,一個頁面如果只是形象說明、沒有具體事實欄位,結構化資料就缺少可以依附的對象。

從頁面任務判斷 schema 是否成立

判斷順序要從頁面任務開始。這個頁面是在解釋一個主題、回答常見問題、教一套步驟、展示商品、介紹商家,還是只是一般形象頁?任務不同,適用的 schema 類型就不同。頁面任務不清楚,schema 也會跟著失焦,搜尋系統無法判斷該把哪些欄位當作可信事實。

任務一旦明確,對應關係也跟著明確。解釋主題的頁面,主體是文章本身,適合從 Article 或 BlogPosting 開始;頁面真的包含一問一答的區塊,才考慮 FAQPage;頁面有連續步驟而且每一步都有明確完成結果,才考慮 HowTo,但要先知道 Google 已經停止顯示 HowTo rich result,這個標記現在只剩語意描述的作用;頁面要展示商品,則必須有商品名稱、價格、庫存或評價等欄位,才考慮 Product。也就是說,schema 是頁面任務的輸出,不是輸入。

適合標記的頁面特徵

頁面有明確主題與可見主體,是標記 Article 或 BlogPosting 的基本條件。這些頁面通常有標題、作者、發布日期、正文內容,搜尋系統能從既有結構中讀出文章的邊界。沒有這些欄位的頁面,即使硬加 Article 標記,也只是宣告一段不存在的文章。

在地商家頁的判斷也一樣,必須先有地址、電話、營業時間與服務範圍,才考慮 LocalBusiness;頁面裡如果沒有這些資訊,標記出來的地址和電話就成了虛構欄位。全站有清楚階層時,BreadcrumbList 幾乎是基本項,因為麵包屑反映的是站內導覽結構,而不是單一頁面的內容。整體原則是:頁面特徵決定 schema 類型,而不是 schema 類型決定頁面要長什麼樣子。

標記前要先處理的內容債

如果頁面只是為了湊 SEO 字數,沒有清楚的事實欄位,先補內容與站內結構,再回來談標記。結構化資料的作用是標記已存在的資訊,不是拿來替空內容化妝。一個沒有價格、沒有庫存、沒有評價的頁面,加上 Product 標記不會讓它變成商品頁,只會讓 Google 看到內容與標記不一致。

內容債通常有三個來源:欄位缺失、資訊過時、頁面任務模糊。欄位缺失要回到編輯流程補上真實數據;資訊過時要建立更新機制,讓價格、營業時間、作者與日期維持可用;頁面任務模糊則需要先重寫內容目標,再判斷該不該標記。處理完這些,schema 才有東西可以標,標記出來的欄位也才與頁面內容一致。

JSON-LD 怎麼寫才不會過度標記

JSON-LD是 Google 建議使用的結構化資料格式,通常放在頁面 HTML 的 script 區塊或由前端模板注入。它的重點不是把所有欄位都塞滿,而是用最少且可信的欄位說清楚這個頁面的主體是什麼、由誰發布、主要內容類型是什麼。

一個穩定的 BlogPosting schema,通常會包含 headline、description、image、datePublished、dateModified、author、publisher、mainEntityOfPage、inLanguage、keywords、about 和 mentions。FAQPage 則必須和頁面上真的看得到的 FAQ 一致。

先盤點頁面可見內容,再決定 schema type

寫 JSON-LD 的第一步不是打開外掛,而是先列出頁面實際出現的內容,包含標題、作者、日期、分類、FAQ、圖片與主實體。把這份清單寫下來之後,才去判斷這個頁面適合哪一種 schema type。BlogPosting 給單篇文章,Article 給一般內容頁,Product 只給真正具備產品資訊的頁面。

不要一開始就套用外掛預設。許多 CMS 會替所有頁面輸出同一組 schema,但沒有價格與庫存的服務頁並不具備 Product 的必備屬性,新聞稿與教學文章的語意結構也不同。先比對內容清單與 schema type 的必填欄位,兩者吻合才選用。

只標記模板能可靠提供的欄位,about 與 mentions 分工

欄位不是越多越好。headline 必須等於頁面上的標題,datePublished 必須有真實的發布時間來源,image 必須是頁面確實使用的圖片。模板無法保證的欄位寧可省略,也不要寫死空值。

about 放主實體,mentions 放支援實體。主實體是頁面內容的核心對象,支援實體是輔助說明的對象,兩者不能互換。沒有可信 sameAs 的弱實體可以不放,避免把模糊的關鍵字硬塞進結構化資料。

部署後驗證語法與支援資格,避免硬標成熱門類型

部署之後要用測試工具確認語法正確,並檢查是否符合 Google 的支援資格。Rich Results Test 或 Schema Markup Validator 可以解析 JSON-LD,指出語法錯誤,也會顯示該頁面是否有機會取得增強外觀。

最常見的過度標記,是把服務頁硬標成 Product、把沒有步驟的文章標成 HowTo、或把頁面沒有出現的 FAQ 寫進 JSON-LD。這些做法短期看起來像優化,長期會降低 schema 可信度。

驗證時除了看語法,也要看資料是否與頁面渲染結果一致。如果日期、作者或圖片與頁面顯示不同,測試工具不一定會報錯,但搜尋引擎比對頁面之後仍可能判定為不可信。以頁面真實內容為準,是避免過度標記的最後一道關卡。

常見 schema 類型怎麼選

選 schema 的判斷基準是頁面主要任務和可見內容,不是哪個類型聽起來比較容易拿曝光。Google 支援的 structured data 類型很多,但 SEO 文章與企業網站常用的其實集中在少數幾個類別,先確認頁面任務,再檢查頁面上是否真的存在對應欄位,就能收斂出正確的類型組合。

先定義頁面任務,再對齊可見內容

頁面任務決定候選類型的範圍。一篇教學文章要讓讀者跟著步驟完成一件事,Article 或 HowTo 才符合語意;一個商品頁要提供價格、庫存或購買決策所需資訊,Product 才有著力點;一個在地服務據點要讓使用者找到地址、營業時間與服務區域,LocalBusiness 才能描述這頁的本質。任務不同,同一個網站的不同頁面就會各自對應不同類型。

第二道檢查是頁面上是否真的看得到那些資料。FAQPage 的問題與答案必須原樣出現在可見區塊,HowTo 必須有實際步驟與材料,Product 必須有價格、庫存或評論欄位,LocalBusiness 必須有 NAP、營業時間、地區與服務資料。只要欄位對不上,這個類型就不該選。選錯類型比不做更麻煩,例如服務頁沒有價格、庫存或可購買商品,硬套 Product schema 只會讓語意變髒;這種頁面更常需要 Organization、Service 或清楚的內容結構,而不是追逐商品 rich result。

七個最常被使用的類型與適用條件整理如下,欄位條件是用來篩選的門檻,不是拿來湊數的清單。

類型適合頁面使用條件
BlogPosting / Article文章、教學、觀點內容有標題、作者、日期、主圖與正文
FAQPage可見 FAQ 區塊問答必須原樣出現在頁面上;rich result 目前只留給權威的政府與健康網站
HowTo步驟式教學Google 已停止顯示 HowTo rich result,標記只剩語意描述作用
Product商品頁有商品資料、價格、庫存或評論等欄位
LocalBusiness在地商家或服務據點有 NAP、營業時間、地區與服務資料
BreadcrumbList有階層的網站前端或 CMS 能穩定輸出麵包屑
Organization / Person品牌、作者、關於頁有一致的名稱、URL、sameAs 與描述

選型的下一步不是背誦 Schema.org 的完整詞彙表,而是打開 Google 的 Search Gallery,確認候選類型在 Google 搜尋上是否對應某種顯示效果。Search Gallery 列出的是 Google Search 可能使用的 structured data 功能清單,例如 Article 的新聞文章、Product 的商品資訊、Local business 的商家資訊等;它只收錄 Google 會吃的類型,因此比 Schema.org 的詞彙表更貼近決策需求。

對照的方式是先看候選類型有沒有出現在 Gallery 中,再看該條目的範例欄位是否與頁面現有內容一致。若 Gallery 沒有收錄某個類型,不代表語意標記無效,只代表 Google Search 不會因此產生特殊版位;HowTo 與 FAQ 現在就不在這份清單裡;Organization、Person、BreadcrumbList 這類對知識圖譜有價值的標記仍可保留,只是別期待 rich result。

Schema 結構化資料完整教學:選型、JSON-LD 實作與三層驗證

Schema 結構化資料把頁面事實翻成機器可讀的標記。選型、JSON-LD 實作與驗證必須一起完成,才不會讓標記變成噪音。AK Schema Entity Alignment Matrix 是一張發布前檢查表,用來確認正文、schema type、主實體、about、mentions、sameAs、驗證工具與維護責任彼此一致,避免內容團隊寫一套,工程模板輸出另一套,最後 Google 看到第三套。

Schema 結構化資料完整教學:選型、JSON-LD 實作與三層驗證:Schema 結構化資料把頁面事實翻成機器可讀的標記
圖 2:第一層|第二層|第三層

這個 matrix 的核心判斷很直接:schema 只能翻譯頁面已經清楚呈現的事實。如果頁面正文沒有說作者是誰,schema 裡卻寫了完整 Person;如果頁面沒有產品價格,Product schema 卻填了價格欄位。這些都會讓 structured data 變成噪音。

三層驗證:正文、schema type 與實體對齊

第一層驗證先看正文可見內容。讀者看不到的事實,不應該出現在標記裡。作者、價格、日期、評分都要能在頁面上找到對應的說明,JSON-LD 欄位才有根據。這樣做也讓內容編輯在更新文章時,會先確認頁面上的文字與數字,再回頭檢查 schema。

第二層驗證看 schema type 與主實體。類型是否符合頁面任務,決定 Google 能否正確理解這段標記。about 指向的主題必須唯一,mentions 列出的支援實體要被正文真正討論,sameAs 則要能幫助消歧,不能指到錯誤品牌、錯誤人物或空泛頁面。

第三層驗證檢查語法與 Google 功能資格。標記不能只在測試工具裡看起來正常,必須通過 Rich Results Test 與 Schema Markup Validator 的檢查,並在 Search Console 觀察實際抓取結果。維護責任也要指定清楚,當作者、標題或 FAQ 變動時,由誰同步更新 schema。

檢查欄位要回答的問題失敗訊號
正文可見內容讀者看得到這些事實嗎?schema 有,頁面沒有
Schema type類型符合頁面任務嗎?FAQ、HowTo、Product 被濫用
主實體about 指向的主題是否唯一?about 放太多不相干概念
mentions支援實體是否真的被討論?為了塞關鍵字列一堆實體
sameAs是否能幫助消歧?指到錯誤品牌、錯誤人物或空泛頁
驗證狀態語法和 Google 功能資格是否通過?只在本機看起來正常,沒有正式驗證
維護責任改標題、作者、FAQ 時誰同步 schema?內容改了,schema 還是舊資料

在大型網站,這張表比「再加一個 schema 外掛」有用。外掛能產生標記,但不會知道內容策略、作者 entity、服務頁邊界和 topical map。這些需要 SEO、內容與工程共同維護。

Rich Results 能不能出現

Rich Results能不能出現,是多重條件同時成立的結果:Google 是否支援該 structured data 類型、頁面是否符合內容與品質規範、查詢情境是否適合,以及 Google 當下是否選擇展示。Rich Results 測試工具通過,只代表頁面有資格被理解,不代表每次搜尋都會出現特殊樣式。更準確的說法,schema 是讓頁面更容易被正確分類、在某些查詢中取得更豐富的呈現機會,而不是直接提高排名。

通過測試不等於一定顯示

Google 的 rich result 測試與 Search Console 的增強項目報表,驗證的是結構化資料能否被正確解析,以及是否符合該類型的基本規定。這個層級只處理機器可讀性,不會評估頁面內容是否真的滿足使用者意圖,也不會決定這個結果該不該出現在第一頁。測試通過,代表系統知道你在描述什麼,但不代表系統認為這則內容值得用特殊樣式呈現。

以 Article schema 為例,即使標題、日期、作者、主圖與發布者都標記正確,Google 仍可能因為內容品質、網站信譽或使用者互動數據,決定不顯示文章類的 rich result。同理,FAQPage 自 2023 年 8 月起只對權威的政府與健康網站顯示問答樣式,一般網站就算問答真實存在也拿不到這個版位;Product schema 必須有真實商品資料,若硬套在一般服務頁,就算測試通過,也無法產生商品相關的特殊呈現。

影響顯示的綜合因素

結構化資料類型本身只決定有哪些欄位可以標記,實際能否顯示,還取決於搜尋系統對頁面的整體判斷。BreadcrumbList 可以幫助搜尋引擎理解站內階層,也有機會影響 SERP 顯示,但前提是網站的路徑結構清晰、麵包屑真實對應頁面位置。Organization 與 Person schema 的作用更偏向 entity disambiguation,也就是讓 Google 確認這個組織是誰或這個人是誰,不是為了 rich snippet 而存在,因此不該用是否有特殊樣式來衡量成效。

內容規範與查詢情境也是變數。Google 對每一種 rich result 類型有其政策,例如醫療、新聞、商品優惠等類別,對作者身分、更新時間、評價來源都有額外要求。即使用戶的查詢與頁面高度相關,只要 Google 判斷當前查詢不需要特殊呈現,就不會顯示。換句話說,rich result 是系統根據查詢、使用者裝置與版面配置做出的動態決定,不是標記完成後的固定輸出。

沒出現時的優先排查順序

當預期的 rich result 沒有出現,先從資格開始檢查:結構化資料是否放在正確位置、是否為 Google 支援的類型、必填欄位是否完整、是否有殘留的測試資料或隱藏文字。接著檢查品質:頁面內容是否與標記一致、是否有足夠的正文支撐、是否有誤導性資訊。最後再檢查呈現環境:該查詢是否真的適合 rich result、Google 政策是否有新的限制、網站是否因為手動處罰或核心更新而暫時失去特殊呈現資格。

這些檢查大多可以在 Google Search Console 的增強項目報表與網址檢查工具中完成,報表會顯示有效、有效但有一或多個警告、無效等狀態,也會指出 Google 無法讀取的屬性。若要系統性解讀這些報表,可以參考 Google Search Console 各報表判讀教學,但真正要修正的根源,通常是標記與內容不一致、欄位空缺或網站層級的品質問題。

如果 Search Console 沒有報錯,頁面也一直有曝光,但 rich result 從未出現,最可能的原因就是查詢情境不適合,或 Google 選擇不展示。這種情況不需要反覆修改 schema,而是應該先觀察其他同樣類型、同樣內容品質的競爭頁面是否出現 rich result,再決定要不要調整標記策略。

Schema 在 AI 搜尋時代的邊界

在 AI 搜尋的檢索與生成流程中,Schema.org 結構化資料的角色是讓機器讀懂頁面裡的實體關係,但它不是排名保證,也不是引用保證。結構化欄位能降低實體辨識的歧義,例如把「蘋果」標記為組織而非水果,讓 AI 在生成回答時有更明確的知識來源;然而,AI 是否引用一個頁面,仍取決於頁面內容的權威性、外部連結與品牌在語料中的出現頻率,這些條件無法靠 JSON-LD 補上。Schema 的邊界因此可以一句話說明:它優化的是「被正確理解」的機率,不是「被引用」的結果。

實體消歧與結構化欄位的實際作用

知識圖譜與大型語言模型在處理查詢時,第一步通常是辨識查詢中的實體,再從候選頁面中抽取對應的事實。Schema.org 的 Person、Organization、Product、Article 等類型,正是為這個步驟提供明確的錨點。以 Organization 為例,sameAs 屬性可以把頁面中的品牌指向維基百科或官方社群帳號,讓 AI 在比對多個來源時確認這是同一個實體,而不是同名但不同的機構;這個消歧過程直接影響 AI 能否把頁面內容與既有知識圖譜中的節點對齊。

結構化欄位的第二個作用是讓常見事實查詢有固定的回答格式。例如 FAQPage 的 acceptedAnswer 欄位、Product 的 offers 與 review 欄位,AI 在抽取答案時可以循著欄位名稱取得結構化資料,不需要從自由文字中重新推論。這類欄位對價格多少、營業時間、文章作者是誰等事實型查詢特別有效,因為模型的生成結果可以直接引用欄位值,減少幻覺的空間。但結構化欄位只有在值與內文一致時才有幫助;若欄位標記與可見文字矛盾,AI 在比對時反而會降低對頁面的信任。

Schema 無法取代的內容條件

topical authority 是 AI 引用與否的主要判斷依據,它來自內容的廣度、深度與內部一致性。一篇只靠 Schema 標記產品名稱與價格的頁面,若沒有足夠的論述說明產品適用的場景、與競品的差異、使用上的限制,AI 在生成比較型回答時仍會優先選擇論述完整的來源。結構化資料能告訴 AI 這個頁面在談什麼,但無法告訴 AI 這個頁面是不是該主題的可靠來源;後者需要由正文品質、作者可信度、外部引用與更新頻率共同建立。

外部語境同樣是 Schema 無法控制的變數。AI 的引用決策會參考搜尋結果中的其他頁面、知識圖譜中既有的實體描述、以及使用者查詢的歷史脈絡。當一個品牌的維基百科條目缺乏、或知識圖譜中的實體描述模糊時,即使頁面上的 JSON-LD 完整無誤,AI 仍可能引用競爭對手的內容。這意味著 Schema 標記必須與內容治理、數位公關、知識圖譜維護等外部工作搭配,單獨調整標記無法改變頁面在 AI 眼中的相對位置。 延伸閱讀:Entity SEO (實體搜尋優化)

AI 引用策略的歸屬

AI 引用策略包含更廣泛的決策:品牌希望在哪些查詢類型中被提及、要與哪些實體建立關聯、以及如何處理模型回答中可能出現的錯誤陳述。這些決策涉及檢索增強生成、品牌語料管理與模型層級的評估,屬於 ai-overviews-optimization 的範疇。Schema 標記在其中的角色是供應乾淨的實體欄位與事實欄位,讓 AI 在引用時有可取的素材,但引用與否、以何種方式呈現,由該策略中的模型行為分析與內容布局決定;結構化資料工作不承擔引用決策,也不應為了追求引用而擴大標記的範圍。

因此,頁面的結構化資料驗證應與 AI 引用的成效評估分開看待。驗證工具只能確認語法正確、欄位齊全、且符合 Google 的結構化資料指南;若驗證通過後 AI 引用未出現,問題通常不在於標記本身,而在於內容深度、實體知名度或外部語境。把這條界線畫清楚,可以避免團隊在錯誤的層級上反覆調整 JSON-LD,而忽略了真正影響引用的內容條件。

Schema 怎麼驗證

驗證 schema 不能只跑一次測試工具,要分三個層次:語法是否有效、Google 是否支援對應的 rich result、部署後搜尋系統是否真的讀取到標記。Schema.org 的合法性與 Google Search 的功能資格是兩件事,前者只證明標記寫法符合規格,後者才決定頁面能否產生增強顯示。

Schema 怎麼驗證:驗證 schema 不能只跑一次測試工具,要分三個層次:語法是否有效、Google 是否支援對應的 rich result、部署後搜尋系統是否真的讀取到標記
圖 4:Schema Markup Validator…|Rich Results Test 支援資格|Search Console 部署回報
Schema 驗證流程圖,包含 JSON-LD、Rich Results Test、Schema Markup Validator 與 Google Search Console 監控

驗證 schema 要同時看語法、Google 支援資格、部署後的 Search Console 回報。

第一層:先確認 JSON-LD 符合 Schema.org 語法

把 JSON-LD 放進頁面前,先到 Schema Markup Validator 檢查型別、屬性名稱與屬性值是否符合 Schema.org 規格。工具會列出缺少必填屬性、型別不符、URL 格式錯誤等問題。這個步驟只回答「標記寫得對不對」,不會回答「Google 會不會使用它」。

語法驗證最常攔下的是細節錯誤,例如把 author 寫成純文字而非 Person 物件、日期沒有採用 ISO 8601、email 屬性填成一般字串而不是 mailto 連結。這些錯誤若等到上線後才發現,就必須重新等待 Google 爬取,修復成本比發布前驗證高出許多。

第二層:用 Rich Results Test 確認 Google 支援資格

Rich Results Test 要看的是頁面上標記是否具備 Google 目前支援的 rich result 資格,而不是只看 Schema.org 是否合法。同一份標記在語法上可以成立,但若 Google 沒有對應的版位或政策,就不會產生增強顯示。測試時要填正式網址,不要只測本機 HTML,因為 Google 實際抓取的內容與原始碼可能不同。

若 canonical 指到別頁,Google 會把標記與權重一併歸到指到的版本,測試的頁面便不是 Google 最終使用的版本。這種情境必須回頭檢查 canonical 標籤如何指向正確版本,並確認 URL 結構設計是否讓每個內容只有一個權威網址,再重新測試 live URL。

第三層:部署後監控 Search Console 並納入發布檢查

測試工具通過只是第一步。部署到正式環境後,要等 Google 重新爬取,再到 Search Console 的 enhancement 或索引相關訊息中觀察是否有錯誤。這個層次反映的是搜尋系統是否真的讀到標記,而不只是驗證器認為語法可以用。

若頁面本身還沒被正常爬取或索引,schema 測試通過也不代表搜尋能使用。必須先回到 爬取與索引診斷,確認 Google 看得到頁面,再處理 structured data,否則驗證結果會誤導判斷。

後續每一次變更 FAQ、作者、日期、產品欄位或模板時,都要把 schema 驗證放進發布檢查流程。每改一次就重新測語法、資格與部署後回報,避免改版時把舊錯誤帶回正式頁面。

CMS、Astro、WordPress 怎麼管理 structured data

structured data 管理最好放在模板與內容欄位之間,而不是每篇文章手動貼一段 JSON-LD。WordPress 可以靠外掛快速上線,Astro 或自建站通常適合用模板從 CMS 欄位產生 schema,重點是讓內容更新時標記同步更新。無論哪一種環境,都要把「產生標記」與「驗證標記」分成兩個動作:前者由系統自動完成,後者則要在發布流程中固定下來,避免內容編輯只更新正文卻漏掉結構化資料。

CMS、Astro、WordPress 怎麼管理 structured data:structured data 管理最好放在模板與內容欄位之間,而不是每篇文章手動貼一段 JSON-LD
圖 3:WordPress 外掛路徑(Rank…|Astro / Next.js 模板路徑(由…|Headless CMS 結構化欄位路徑(…

系統圖說明了三種常見架構:WordPress 把外掛產生的標記當作起點,Astro 或自建站由模板直接輸出 JSON-LD,Headless CMS 則把 FAQ、作者、主圖等內容拆成結構化欄位。這三條路線的共通點是驗證責任必須有明確歸屬,而且驗證不只在初次上線時做,每次內容異動後都要重新檢查。

WordPress:外掛當起點,但要檢查預設輸出

WordPress 的 Rank Math、Yoast 這類工具適合入門,它們能快速產生 Organization、Article、BreadcrumbList 等基礎 schema。不過外掛的預設輸出不一定符合你的頁面任務,例如文章頁可能被標成 BlogPosting,但實際內容是產品文件或 FAQ 聚合頁,這類 mismatch 只能靠人工抽查發現。

檢查重點在於 type 與欄位是否對應到頁面實際內容。若外掛允許,應關閉用不到的 schema 類型,避免同一頁同時輸出多組互相矛盾的標記;重要頁面則要定期用 Rich Results Test 或 Schema Markup Validator 複測,不能只相信外掛後台顯示「已啟用」。

Astro 與自建站:模板從 CMS 欄位產生 JSON-LD

Astro、Next.js 或 Directus 這類自建內容系統,應該把 title、description、cover image、author、date、FAQ、category、about 和 mentions 做成可控欄位,由模板統一注入 JSON-LD。如此一來,編輯不需要理解 JSON-LD 語法,只需填寫欄位,模板會負責組出合法的標記結構。

這個做法的風險在於欄位缺漏或部署後沒有重新驗證。若 CMS 中某篇文章缺少 author 或 date,模板可能輸出空字串或直接略過屬性,造成 Article 結構不完整;因此發布流程要加入自動化檢查,至少確認 required 欄位有值,並在部署後對正式網址跑一次驗證。

環境建議做法主要風險
WordPress外掛產生基礎 schema,重要頁人工抽查外掛預設和頁面任務不一致
Astro / 自建站模板由 CMS 欄位產生 JSON-LD欄位缺漏或部署後沒有重新驗證
Headless CMS把 FAQ、作者、主圖、實體欄位結構化內容編輯改正文,schema 沒同步

表格中的三種環境不是互斥選項。WordPress 也可以搭配自訂模板輸出 JSON-LD,Astro 專案也能引入外掛或套件輔助;關鍵是「欄位、模板、驗證」三者的責任邊界要清楚,才不會出現內容團隊與工程團隊互相等待的狀況。

Headless CMS:欄位結構化是同步的關鍵

Headless CMS 的優勢在於內容以結構化欄位儲存,理論上可以精準對應 schema 屬性。實際運作時常遇到的問題是內容編輯在 rich text 編輯器裡直接改 FAQ 或作者資訊,沒有動到結構化欄位,導致前端模板讀到的仍是舊資料,schema 與正文因此脫節。

要避免這種脫節,應把 FAQ、作者、主圖、相關實體等資訊設計成獨立欄位,並在編輯介面標示「此欄位會影響結構化資料」。同時在發布前檢查這些欄位是否有值、格式是否正確,讓 schema 的更新與正文更新發生在同一次發布流程中,而不是事後補測。

Schema 也會受網站技術品質影響。如果頁面很慢、圖片載入不穩、主內容被 JS 擋住,標記再完整也很難形成穩定搜尋品質。效能和體驗問題可以接到 PageSpeed Insights 教學,schema 則負責把頁面事實說清楚;兩者各自處理不同的排名因素,不能互相取代。

成熟的流程會把 schema 放進發文 gate,而不是等排名掉了才補。新文章發布、FAQ 更新、作者頁調整、產品欄位變更、網站改版和 canonical 變更,都是該重測 structured data 的時間點;每個時間點都要有人確認標記仍然對應頁面任務,而不是只檢查語法是否合法。

如果網站規模不大,可以從一個文章模板加上一種 schema 類型開始,先跑通「欄位填寫、模板輸出、驗證工具檢查」的循環,再把範圍擴大到 FAQs、產品頁與作者頁。當內容系統與驗證流程都穩定之後,後續新增頁面只需要依照既有模板填欄位,不需要重新設計 JSON-LD,管理和維護成本就會明顯下降。若不確定網站 schema 該從哪裡開始,可以從頁面類型、CMS 欄位、GSC 報表與 topical map 一起檢查,找出哪些標記值得先做,再判斷外掛、模板與驗證流程需要調整到什麼程度。

Schema 進入內容更新流程的治理節點

Schema 不是上線前貼一次就結束的標籤,它必須被當成內容更新流程裡的一個治理節點。每一次發布新頁、改版既有內容、更新 FAQ、調整產品欄位,或合併、退役頁面,都應該觸發對應的 Schema 檢查與修正,否則結構化資料會與頁面實際內容脫節,搜尋引擎拿到的訊號就會與使用者看到的不一致。 延伸閱讀:網站改版 SEO 風險控制

發布與改版時的 Schema 對齊

發布新頁時,Schema 必須在內容定稿後、上線前完成對齊。編輯流程要確認 Article 或 Product 的實體資訊與正文一致,避免標題、日期、作者、圖片等欄位與頁面內容產生出入。

改版既有內容時,不能只更新內文而忽略 Schema。日期、說明、適用產品、評分等欄位若隨改版變動,就要同步調整 JSON-LD,並檢查 dateModified 是否正確反映最後更新時間。改版後也應重新執行驗證,確保結構化資料仍能被解析。

FAQ 與產品欄位變更的同步

FAQ 頁面新增或移除問題時,Schema 中的 question 與 acceptedAnswer 必須與頁面上實際存在的問答一一對應。多寫或少寫都會造成內容與標記不一致,可能讓搜尋引擎判斷頁面品質時產生誤差。

產品頁的欄位變更同樣需要納入治理。價格、庫存狀態、SKU、保固範圍、退貨政策等欄位一旦更新,offers 區塊就要同步改寫,priceValidUntil 也要跟著調整。產品下架時,則要從頁面移除對應的 Schema,避免標記與實際狀態不符。

合併與退役頁面的 Schema 清理

頁面合併時,兩個來源頁面的 Schema 不能直接相加。合併後的新頁面只能保留一套實體資訊,重複的 article、product 或 organization 標記要合併成單一節點,並確認最終網址與 canonical 指向一致。

頁面退役或轉為 301 時,目標頁的 Schema 要承接來源頁的實體資訊,但不能重複標記。若來源頁有獨立的組織或產品實體,要在轉址後移除或合併,否則同一個實體會同時掛在兩個網址上,造成知識圖譜的混淆。

Schema 治理要真正落地,需要把上述檢查節點寫進每次內容變更的工作流程,而不是靠事後抽查。這需要一組明確的檢查清單、對應的負責人,以及在改版與退役時執行的對齊程序。這些投入可以從一份 SEO 策略藍圖開始,先盤點現有內容的 Schema 缺口,再建立可重複的更新節奏。若你正準備把 Schema 檢查放進內容流程,可以到 檢視 SEO 策略藍圖的服務內容與報價方式

FAQ

Schema 結構化資料會直接提升排名嗎?

不應該把 schema 當成直接排名因素。它主要幫搜尋系統理解頁面類型、實體與可用欄位,並讓頁面有資格參與某些 rich results。排名仍取決於內容、技術、連結、使用者需求和整體品質。

JSON-LD、Microdata、RDFa 要選哪一種?

多數 SEO 情境建議用 JSON-LD,因為它比較容易由模板或 CMS 管理,也不需要把標記混進每個 HTML 元素。Microdata 和 RDFa 仍可用,但維護成本通常較高。

每篇文章都需要 FAQ schema 嗎?

不需要。Google 自 2023 年 8 月起把 FAQ rich result 限縮到權威的政府與健康網站,一般網站標記後不會出現問答樣式。只有頁面真的有可見 FAQ 區塊,且問題和答案對讀者有幫助時,FAQPage schema 才合理。為了 schema 硬塞 FAQ,常會讓文章尾段變得很水。

WordPress 外掛產生的 schema 可信嗎?

可以作為起點,但不能完全不查。外掛可能會依預設套用 Article、Organization、Breadcrumb 或 FAQ,你仍要確認 type、作者、日期、圖片、FAQ 和頁面內容一致。

Schema 和 Google Search Console 有什麼關係?

Schema 是頁面標記,Google Search Console 是觀察 Google 是否讀到問題的工具。部分 structured data 問題會出現在 GSC enhancement 報表,但 schema 的選型和實作仍要先在頁面和模板層處理。

Rich Results Test 通過就一定會顯示 rich snippet 嗎?

不一定。通過測試代表 Google 能解析並判斷有資格,但實際 SERP 是否顯示,還會受到查詢、裝置、頁面品質、政策和 Google 當下版位設計影響。

Product schema 可以用在沒有價格的服務頁嗎?

通常不建議。沒有價格、庫存、商品識別或可購買資訊的服務頁,硬套 Product schema 容易造成語意錯配。服務頁應先處理清楚的服務內容、案例、組織資訊和轉換路徑。

Organization schema 和 Person schema 要放在哪裡?

Organization 通常放在品牌、全站或關於頁相關 schema 裡,Person 則用於作者或專家實體。重點是跨頁使用一致的 @id、url 和 sameAs,讓搜尋系統能把同一個實體串起來。

Schema 寫錯會被懲罰嗎?

一般語法錯誤多半是標記失效或 rich result 資格消失。若刻意標記頁面不存在的內容、偽造評價或誤導搜尋系統,就可能被視為 spammy structured data,風險會高很多。

做 Schema 需要工程師嗎?

小型 WordPress 站可先用外掛完成基礎 schema,但自建站、Headless CMS、多語系網站或大量模板頁,通常需要工程師把 JSON-LD 接到資料欄位和部署流程,才不會每次改版都壞掉。

分享這篇文章

想先自己檢查:相關免費工具

先用這幾個工具把文章提到的項目對照一次,再回到你的網站情境閱讀結果。

技術 SEO 下一步

想把技術檢查放回整體網站?

留下 Email,我會寄出合作方式與價格範圍;你可以先了解技術問題如何整理成工作順序,再決定是否回覆。

我會寄出這次索取的資料;由 AK 親自回覆,可隨時退訂。

十年 SEO 實戰 · Threads 公開研究 · 隱私權政策

你可能也會想看