文章目錄

  1. 一句話答案:FAQPage 現在拚的是「被機器讀懂」
  2. 最小可用的正確 FAQPage JSON-LD
  3. 致命錯誤一:schema 只靠 JS 注入(我們自己踩過)
  4. 致命錯誤二:問題不是使用者會問的句子
  5. 致命錯誤三:答案不自包含、無法被整段摘走
  6. 致命錯誤四:schema 與可見內容兜不攏
  7. 真實案例:我們自己的 faq.html 23 題
  8. 收尾:三步驗證清單

一句話結論:FAQPage 結構化資料的重點,早就不是「長出 Google 那個折疊問答框」,而是「讓機器準確讀懂你的一問一答」。而最常見、也最難察覺的失敗,是你的 schema 只存在於 JavaScript 執行後的頁面裡——非 JS 的 AI 爬蟲抓的是原始 HTML,它們看到的那份原始碼裡,你的 schema 根本不存在。

這篇不談玄學,只談你今晚就能改的東西:一段可以照抄的正確 FAQPage 寫法、四個真的會讓 AI 一個字都讀不到的錯誤,以及我們自己網站上一個 live 的 23 題 FAQPage 當對照組。其中第一個錯誤,是我們自己在做全站結構化資料稽核時親手踩到、又親手補上一道 CI 防線才根治的——所以它排第一個講。

1. 一句話答案:FAQPage 現在拚的是「被機器讀懂」

先講一個很多人不知道的事實:Google 從 2023 年 8 月起,把 FAQ rich result(搜尋結果裡那個藍色折疊問答)限縮到政府與衛生機構等權威網站。一般網站加了 FAQPage,多半不會再看到那個折疊框。但這不代表 schema 沒用了——被收掉的只是「視覺呈現」,機器可讀的問答結構仍在被索引與 AI 引擎使用。

換句話說,做 FAQPage 的動機變了。過去大家做它是為了在搜尋結果佔更多版面(那個折疊框很吸睛);現在做它,是為了讓 Google 索引、知識圖譜,以及 ChatGPT、Perplexity、Google AI Overviews 這些會「生成答案再附上出處」的系統,能精準對上「這個問題,這個頁面給了這個答案」[2]。它是機器理解的鷹架,不是版面裝飾。理解這個轉變,下面四個錯誤才會知道為什麼致命。

2. 最小可用的正確 FAQPage JSON-LD

FAQPage 的結構本身很單純:一個 FAQPage,底下 mainEntity 放一串 Question,每個 Question 有 name(問題)與一個 acceptedAnswer(答案)。這是官方文件定義的最小骨架[1]

貼進頁面 <head> 的原始 HTML(不是等 JS 產生)
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "FAQPage",
  "mainEntity": [
    {
      "@type": "Question",
      "name": "我的退款要多久才會入帳?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "核准後 3 至 5 個工作天退回原付款方式。"
      }
    }
  ]
}
</script>

骨架不難,難的是「內容怎麼寫」與「放對地方」。以下四個致命錯誤,全都不是語法錯誤——它們的 JSON 都能 parse、驗證工具都會顯示綠燈,但成果卻是 AI 讀不到、或讀到了也不引用。

3. 致命錯誤一:schema 只靠 JS 注入

錯誤:schema 是前端腳本執行後才插進頁面的

很多網站(尤其吃 SPA 框架的)把 JSON-LD 交給 JavaScript 在瀏覽器端動態插入。在你自己的瀏覽器裡看,schema 一切正常、驗證工具也綠燈。問題是:抓內容的爬蟲很多只讀伺服器回傳的原始 HTML、不執行 JavaScript。它們拿到的是「還沒被 JS 加工」的那份原始碼——你 JS 注入的 schema,在那份原始碼裡是不存在的。

修法:把 JSON-LD 直接寫死(bake)進原始 HTML 的 <head>,讓它在伺服器回應的第一時間就在原始碼裡。驗證:對你的網址下 curl,或瀏覽器按「檢視網頁原始碼」(view-source)——如果 schema 不在那份純文字裡,非 JS 爬蟲就讀不到。

這個坑我們自己踩過。做全站結構化資料稽核時,我們發現有一批頁面「瀏覽器看起來 schema 都在、但用純文字工具抓原始 HTML 卻是空的」——因為那些 schema 是靠共用的前端腳本在執行期注入的。對能跑 JS 的環境沒問題,對只讀原始碼的檢索爬蟲(例如 GPTBot、ClaudeBot、PerplexityBot 這類)等於不存在。

我們的根治做法,是加一道建置期的自動檢查:掃描所有公開頁面,若一個「應該要有 schema」的高價值頁面在原始 HTML 裡缺了必要的結構化資料,就直接讓那次程式碼變更無法上線。這樣一來,「schema 退化成只靠 JS 注入」這個回歸,會在部署前就被擋下,不會靜靜地讓 AI 讀不到我們的頁面。

你不一定需要一整套 CI,但一定要記住那個測試動作:看原始碼,不要只看瀏覽器。瀏覽器會替你執行 JS、給你一個「加工後」的假象;爬蟲不會。

4. 致命錯誤二:問題不是使用者會問的句子

錯誤:把問題寫成關鍵字或行銷標語

"name": "退款政策" 這種寫法,是把「問題」欄位當成關鍵字塞。但 AI 是拿使用者的「提問句」去對頁面裡「像不像一個問答」的段落——你的問題句子越接近真人會打的字,越容易被對上。

修法:寫成完整的提問句。"我的退款要多久才會入帳?" 勝過 "退款政策""KYC 認證需要準備哪些文件?" 勝過 "KYC 文件"。想不出來就去看你自己的客服訊息、搜尋後台的長尾字——使用者已經替你寫好問題了。

5. 致命錯誤三:答案不自包含、無法被整段摘走

錯誤:答案依賴上下文、繞圈子才講到重點

「如上所述,這取決於幾個因素……」這種答案,單獨被摘出來時讀者一頭霧水。AI 引用的是「可以整段複製、貼進回答裡就成立」的段落——如果你的答案需要讀者先看完前面三段才懂,它就不是一個好的被引用單位。

修法:每則答案開頭先直接回答,再補細節;一則答案只聚焦一件事,不看上下文也讀得懂。把每個 acceptedAnswer 當成「有人只會看到這一段」來寫。

這一點和 AI 實際怎麼讀頁面有關。2025 年一份針對 ChatGPT、Claude、Perplexity、Gemini 的受控實驗發現:這些系統直接抓頁面時,常常忽略 JSON-LD、只讀看得見的 HTML 文字[4]。這給了我們兩個很實際的結論:第一,schema 要做(餵索引與知識圖譜這條間接路);第二,可見的問答文字同樣重要,甚至對「直接被 AI 讀」更關鍵。所以答案要自包含,不只是為了 schema 漂亮,是因為那段可見文字本身,就是 AI 會直接摘走的東西。

6. 致命錯誤四:schema 與可見內容兜不攏

錯誤:schema 裡塞了頁面上看不到的問答

有人為了「多塞幾題」,把頁面上根本沒有的問答寫進 JSON-LD。這直接違反 Google 的結構化資料政策:FAQ 內容必須在頁面上對使用者可見,且標記要與可見內容一致;放進 schema 卻頁面上看不到、或兩者文字兜不攏,屬於違規,可能被忽略甚至觸發人工處置[1]

修法:把可見問答區塊與 JSON-LD 當成「同一份內容的兩種呈現」,逐字對得上。頁面上有幾題,schema 就幾題;文字改了,兩邊一起改。

7. 真實案例:我們自己的 faq.html 23 題

與其給你抽象原則,不如給你一個可以自己打開來看的本尊。我們官網的 faq.html 有 23 個可見的問答,對應到原始 HTML 裡 FAQPage 結構化資料的 23 筆 Question 條目——一題不多、一題不少,可見文字與 schema 逐字對得上。

這正好把上面四個錯誤全部反著示範了一遍:

你不需要相信我的說法,打開原始碼數一數就知道。這也是我們對「可驗證的信任」的一貫立場:講得出來的,就要能被你當場查證。

8. 收尾:三步驗證清單

上線前跑這三步

  1. 看原始碼:對網址下 curl 或 view-source,確認 JSON-LD 真的在伺服器回傳的原始 HTML 裡,不是靠 JavaScript 事後注入。
  2. 過驗證器:把網址或程式碼貼進 schema.org 的 Schema Markup Validator 或 Google 的 Rich Results Test,確認能 parse、無語法錯誤、沒有未解析的樣板變數(例如殘留的 {{ }})。
  3. 逐題對照:schema 裡的每一則問答,都要在頁面上找得到一模一樣的可見文字。頁面幾題、schema 就幾題。

這三步做完,你就同時鋪好了兩條路:schema 走「餵 Google 索引與知識圖譜」的間接路,可見問答走「被 AI 直讀摘引」的直接路。兩條都通,你的答案才真的有機會出現在別人問 AI 時得到的回覆裡。

想直接看一個做對的範例?

打開我們自己的 FAQ 本尊,view-source 數一數 23 題怎麼和 schema 對齊;或用我們的 Schema 工具,把你的頁面貼進去產生與檢查結構化資料。

看 23 題 FAQPage 本尊 用 Schema 工具驗證

引用來源(全部可查)

官方文件/受控實驗,可直接引用。 琥珀 官方定性/方向性說明。

  1. Google Search Central:FAQPage(FAQ)structured data 官方文件——最小骨架、內容必須可見且與 schema 一致的政策。developers.google.com/search/docs/appearance/structured-data/faqpage
  2. Google Search Central Blog(2023-08):Changes to HowTo and FAQ rich results——FAQ rich result 限縮到權威網站。developers.google.com/search/blog/2023/08/howto-faq-changes
  3. 琥珀 Schema.org:FAQPage 型別定義(@type / mainEntity / Question / acceptedAnswer 結構)。schema.org/FAQPage
  4. searchVIU 受控實驗(2025):ChatGPT/Claude/Perplexity/Gemini 直接抓頁時常忽略 JSON-LD、只讀可見 HTML。searchviu.com/en/schema-markup-and-ai-in-2025…