橋序創研 BRIDGESEQLAB

SEO

結構化資料怎麼做?用 JSON-LD 讓搜尋與 AI 更懂你的網站

TL;DR:結構化資料不是排名外掛,而是把頁面內容翻譯成搜尋引擎與 AI 更容易理解的資料格式。對企業網站與部落格來說,先把 Article、Breadcrumb、Organization 或 WebSite 這幾種 JSON-LD 做穩,比一次追很多 schema 類型更實用。

結構化資料是用標準化格式描述網頁內容的方式,讓搜尋引擎能更清楚辨識頁面主題、作者、圖片、日期、網站階層與內容實體。Google 在 結構化資料入門文件 裡也明確說明,structured data 是用來提供頁面資訊並分類頁面內容的標準格式;而 W3C JSON-LD 1.1 則把 JSON-LD 定義為「用 JSON 序列化 Linked Data 的格式」。

我在幫網站規劃 SEO、AIO/GEO 與內容架構時,會把結構化資料當成「網站給機器看的說明書」。讀者看到的是文章、產品頁、服務頁與導覽;搜尋引擎與 AI 系統看到的則需要更明確的欄位,例如這篇文章是誰寫的、何時發布、屬於哪個分類、頁面在網站層級中的位置、品牌或組織的官方身份是什麼。

為什麼網站需要結構化資料?

可見內容與結構化資料差異對比圖,左側是讀者看到的文章,右側是搜尋引擎讀取的欄位

結構化資料的價值,不是「加了就保證排名上升」,而是降低搜尋系統理解頁面的成本。Google 的 Article 結構化資料文件 說明,Article structured data 可以幫助 Google 更了解文章頁面,並可能在搜尋結果中呈現更好的標題、圖片與日期資訊;但 Google 也提醒,使用結構化資料不保證相關搜尋功能一定會出現。

對橋序創研常遇到的企業網站來說,結構化資料通常解決三個問題:

  • 內容身份不清楚:一篇技術文章有標題、有作者、有日期,但程式碼沒有明確告訴搜尋引擎這是一篇 Article 或 BlogPosting。
  • 網站階層不清楚:使用者知道自己在「Notes > SEO > 某篇文章」,但搜尋引擎需要 BreadcrumbList 來理解頁面在網站架構中的位置。
  • 品牌實體不清楚:企業網站如果沒有一致的 Organization、WebSite、logo、sameAs、url 等資訊,機器比較難把品牌、服務與內容串在一起。

我自己的判斷標準是:如果某個資訊對讀者重要,也對搜尋引擎理解內容重要,就值得思考是否要用 schema 補上。例如作者、發布時間、更新時間、主圖、分類、麵包屑、組織名稱、官方網站 URL,都是企業網站很常漏掉的基本資料。

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

Google 支援 JSON-LD、Microdata 與 RDFa 三種格式,但在 結構化資料入門文件 中,JSON-LD 被列為建議格式。實務上,我也會優先使用 JSON-LD,因為它不需要把 schema 屬性塞進 HTML 每個元素裡,對 Next.js、React、Vue、WordPress、Sanity、Headless CMS 都比較好維護。

表格整理:格式|寫法|優點|適合情境;JSON-LD|用 `<script type="application/ld+json">` 放 JSON|不干擾畫面、容易由 CMS 自動產生、維護成本低|多數企業網站、部落格、Headless CMS;Microdata|把屬性寫進 HTML 標籤|資料和畫面綁在一起,容易對照|小型靜態頁或舊系統;RDFa|用 HTML 屬性描述 linked data|彈性高、語意強|特定 linked data 或語意網需求

如果你正在做 SEO 網站、AIO/GEO 內容、Sanity 部落格或 Next.js 官網,我會建議先用 JSON-LD。W3C 的 JSON-LD 1.1 規格 提到 JSON-LD 可以平順整合到既有 JSON 系統,這正好符合現代網站用資料模型產頁面的工作方式。

企業網站最該先做哪些 schema?

企業網站三個優先 schema 類型圖示,Article、Breadcrumb、Organization 橫向排列

不要一開始就追求把 schema.org 全部欄位填滿。Schema.org 的 Article 類型 有非常多屬性,但 Google 實際支援與建議的欄位會依搜尋功能不同而變。我的做法是先從「最能穩定描述網站」的三類開始。

Article 或 BlogPosting:讓文章像文章

對部落格、知識庫、案例分享與技術教學來說,Article 或 BlogPosting 是第一優先。Google 的 Article 結構化資料文件 建議可加入 author、datePublished、dateModified、headline、image 等欄位;Schema.org 的 Article 類型 也列出 headline、author、datePublished、dateModified、image、articleSection、wordCount、about、url 等實用屬性。

最基本的 JSON-LD 可以長這樣:

程式碼示意:<script type="application/ld+json"> { "@context": "https://schema.org", "@type": "BlogPosting", "headline": "結構化資料怎麼做?用 JSON-LD 讓搜尋與 AI 更懂你的網站", "description": "結構化資料 JSON-LD 實作教學,整理 Article、Breadcrumb 與企業網站 SEO 的基本做法。", "image": "https://www.example.com/images/structured-data-cover.jpg", "datePublished": "2026-07-02T05:00:00+08:00", "dateModified": "2026-07-02T05:00:00+08:00", "author": { "@type": "Person", "name": "Izzo", "url": "https://www.bridgeseqlab.com/about" }, "publisher": { "@type": "Organization", "name": "橋序創研 BridgeSeqLab", "url": "https://www.bridgeseqlab.com/" }, "mainEntityOfPage": { "@type": "WebPage", "@id": "https://www.example.com/notes/structured-data-json-ld-seo-guide" } } </script>

這裡有一個常見踩雷:不要把不存在的資訊硬塞進 schema。例如沒有實際更新就不要假造 dateModified,沒有可公開辨識的作者頁就不要亂填不相關連結。結構化資料要和頁面可見內容一致,否則不是加分,而是增加不可信訊號。

麵包屑不是只給使用者看的導覽,也能幫搜尋系統理解頁面位置。Google 的 Breadcrumb structured data 文件 說明,breadcrumb trail 表示頁面在網站階層中的位置,Google Search 會使用 breadcrumb markup 來分類搜尋結果中的頁面資訊。

Schema.org 的 BreadcrumbList 類型 定義也很直覺:它是一串連結頁面的鏈,通常用 URL 與名稱描述,並以目前頁面作為結尾。實作時最重要的是 `itemListElement`、`ListItem`、`position`、`name`、`item` 這幾個欄位。

程式碼示意:<script type="application/ld+json"> { "@context": "https://schema.org", "@type": "BreadcrumbList", "itemListElement": [ { "@type": "ListItem", "position": 1, "name": "首頁", "item": "https://www.bridgeseqlab.com/" }, { "@type": "ListItem", "position": 2, "name": "Notes", "item": "https://www.bridgeseqlab.com/notes" }, { "@type": "ListItem", "position": 3, "name": "結構化資料怎麼做?" } ] } </script>

我建議麵包屑不要只是機械式複製 URL path,而是反映「讀者實際理解網站分類的方式」。例如 `/notes/structured-data-json-ld-seo-guide` 可以在畫面上呈現「首頁 > Notes > SEO」,而不是硬拆成「notes > structured data json ld seo guide」。

Organization 或 WebSite:讓品牌身份穩定

企業網站還可以補上 Organization 或 WebSite schema,讓品牌名稱、網站 URL、logo、sameAs、搜尋入口等資訊更一致。這部分不一定每個頁面都要塞滿,但至少首頁、關於頁、服務頁可以建立穩定的品牌實體描述。

對橋序這類網站製作、SEO、AI 自動化服務品牌來說,我會把資料模型設計成:

  • 全站共用資料:品牌名稱、網站 URL、logo、社群連結、聯絡資訊。
  • 文章頁資料:標題、描述、作者、日期、主圖、分類、文章 URL。
  • 頁面階層資料:首頁、Notes、分類頁、文章頁的麵包屑。

這樣做的好處是,未來新增文章時不必每篇手寫 JSON-LD,而是由 CMS 欄位自動輸出。Sanity、WordPress、Next.js、Nuxt、Astro 都可以做到,只是資料欄位要先規劃好。

如何實作結構化資料?

結構化資料驗證發布流程圖,從資料欄位、JSON-LD、Rich Results Test、URL Inspection 到 Search Console

我會把實作拆成六步,不要一開始就直接丟給外掛或 AI 亂生 schema。

  1. 先定義頁面類型:這是文章、服務頁、產品頁、FAQ、案例頁,還是分類頁?不同頁面不要混用不相關 schema。
  2. 確認可見內容:schema 裡的 headline、author、date、image、breadcrumb,要能在頁面或網站資料模型中對應得到。
  3. 選擇最小可用欄位:先補必要且可信的欄位,不要為了看起來完整而捏造不存在資料。
  4. 由資料模型產生 JSON-LD:例如從 Sanity 的 title、slug、excerpt、publishedAt、mainImage、author 自動生成。
  5. 用工具驗證:先用 Google Rich Results Test 檢查語法與支援項目,再用 URL Inspection tool 看 Google 實際抓到的頁面。
  6. 上線後監控:到 Search Console 看結構化資料報告與頁面索引狀態,避免模板改版後 schema 失效。

如果是 Next.js 網站,我通常會把 JSON-LD 放在頁面 component 或 metadata 旁邊,由資料物件組出來;如果是 WordPress,則要檢查 SEO 外掛輸出的 schema 是否和自訂內容模型衝突。最怕的是同一頁同時有外掛、佈景主題、自訂程式都輸出不同版本的 Article,結果 author、image、date 彼此不一致。

為什麼結構化資料會失敗?

很多網站做了 schema,卻沒有真的提升搜尋呈現或 AI 理解,常見原因不是「schema 沒用」,而是實作方式不可靠。

表格整理:問題|表面現象|真正風險|修正方式;欄位和頁面內容不一致|schema 寫了作者、日期,但頁面看不到|可信度下降,甚至可能被忽略|讓 schema 只取自正式 CMS 欄位;圖片不可抓取|Article 有 image,但圖片被阻擋或尺寸太小|搜尋結果不一定能使用圖片|確認圖片可公開存取,並符合 Google 圖片格式建議;多套 schema 打架|外掛與自訂程式輸出不同資料|Google 看到矛盾訊號|保留一套主要來源,其他關閉或整合;只驗證首頁|首頁沒問題,文章模板卻壞掉|大量文章未被正確標記|抽查文章、分類、服務頁不同模板;把 schema 當排名保證|客戶期待立刻排名提升|目標錯誤,忽略內容與技術 SEO|把 schema 定位成理解輔助,不是排名捷徑

我會特別提醒:Google 文件中多次提到要遵守 guideline、用 Rich Results Test 驗證、部署後用 URL Inspection tool 檢查,而且搜尋功能不保證一定出現。這代表結構化資料是技術 SEO 的基礎設施,不是「保證曝光」的黑盒魔法。

可以怎麼把結構化資料接進網站製作流程?

如果你正在做新網站,結構化資料最好不要等上線後才補。我的流程通常會在網站製作前期就先規劃。

  • 內容模型階段:定義文章、分類、作者、服務頁、案例頁需要哪些欄位。
  • 設計階段:確認作者、更新日期、分類、麵包屑是否要呈現在畫面上。
  • 開發階段:由 CMS 欄位自動輸出 JSON-LD,不手動複製貼上。
  • 測試階段:用 Rich Results Test 驗證幾種代表頁面。
  • 上線階段:用 Search Console 與 URL Inspection tool 確認 Google 能抓到頁面。
  • 維護階段:當內容模型、圖片欄位、slug 或作者頁改版時,同步檢查 schema。

對 AIO/GEO 來說,這件事也很重要。AI 搜尋與回答系統越來越依賴清楚、可驗證、結構一致的內容訊號。結構化資料不會取代好內容,但它能讓你的好內容少一點被誤解的機率。

FAQ

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

不應該把它當成直接排名保證。Google 的官方文件重點是幫助 Google 理解頁面並可能支援搜尋結果呈現;真正的 SEO 還需要內容品質、技術效能、可索引性、內部連結、E-E-A-T 與使用者體驗一起配合。

JSON-LD 一定要放在 head 裡嗎?

Google 文件說 JSON-LD 可以嵌入 HTML 的 head 或 body,也能讀取由 JavaScript 動態注入頁面內容中的 JSON-LD。但實務上我會優先放在穩定、可被伺服器輸出的區塊,減少前端渲染或第三方 script 造成的風險。

每篇文章都要手動寫一份 JSON-LD 嗎?

不建議。正確做法是讓 CMS 或網站模板自動產生。文章作者、日期、主圖、分類、slug 如果都在 Sanity、WordPress 或資料庫裡,就應該由程式輸出,而不是每篇文章人工複製。

FAQ schema 還值得做嗎?

要看網站類型與搜尋功能支援狀況,不要為了追 rich result 而硬做。即使 FAQ structured data 的搜尋呈現限制變多,文章內保留真實 FAQ 仍然有助於讀者理解與長尾搜尋,但 schema 要遵守 Google 當下支援的官方規範。

結構化資料和 llms.txt 有什麼不同?

結構化資料是頁面內的語意標記,主要幫搜尋引擎與資料處理系統理解頁面內容;llms.txt 則是網站層級的文字檔概念,用來提供 AI 系統可讀的網站內容導覽。兩者可以互補,但不是同一件事。

把內容寫好,也把內容說清楚

我會把結構化資料看成網站長期內容資產的一部分。文章寫得好,是給人看的;Article、Breadcrumb、Organization、WebSite 這些 schema 做得穩,是讓搜尋引擎與 AI 系統更不容易誤讀你的網站。

如果你的網站正在規劃 SEO 內容、AIO/GEO 架構、Sanity 或 WordPress 內容模型、沉浸式網站、AI 自動化流程,橋序創研網站製作、SEO/AIO/GEO 與 AI 自動化服務 可以協助你把內容架構、結構化資料、前端效能與發布流程一起設計;你也可以從 橋序創研服務項目與團隊介紹 了解我們如何把網站開發、SEO、AI 工具與自動化整合成可長期維護的數位基礎建設。

來源與延伸閱讀