返回文章列表
2026年6月20日·42 分鐘閱讀

FAQ Schema 怎麼做:讓 AI 直接拿走你的答案

Organization schema 只告訴 AI「你是誰」,FAQPage 才是告訴 AI「使用者問 X 時,你家的答案是 Y」。這篇講我們怎麼把 B2B 服務頁改成 AI 最愛摘的結構,附完整 Next.js 實作。

上一篇 AEO 三件事 講 JSON-LD 時,只停在 Organization——讓 AI 知道你是誰。這篇講下一層:FAQPage——讓 AI 知道「使用者問 X 時,你家的答案是 Y」。做對之後 ChatGPT 會逐字引用你的 FAQ,不是意譯,是原文。

為什麼 FAQPage 對 AEO 特別重要

AI 做網頁摘要時其實在做兩件事:

  1. 讀懂這頁在講什麼
  2. 摘出跟使用者問題最相關的片段

純文字網頁對 AI 來說是一團沒標記的資訊——它要自己猜哪幾句是問題、哪幾句是答案、哪段是結論、哪段是鋪陳。猜錯了就是錯誤引用,或乾脆不引用你。

FAQPage schema 直接把「問題 → 答案」的配對告訴 AI:

json
1{
2  "@type": "Question",
3  "name": "客製化系統開發通常多久可以上線?",
4  "acceptedAnswer": {
5    "@type": "Answer",
6    "text": "典型 B2B 內部系統 3–6 個月可以上線 MVP⋯"
7  }
8}
9 

AI 看到這種結構,摘錄成本是零——它不用猜、不用推論,直接拿去用。對 B2B 特別有價值,因為 B2B 決策者問的就是「這系統多久能上線」、「導入要多少錢」、「跟我現有 ERP 接不接得起來」這種明確問題。

三個要先想清楚的決策

做完 Heiso 自家官網的 FAQPage 之後,歸納出三件事要先決定,再寫 code。

1. 哪些頁面放 FAQPage?

不是每頁都該放。我們的原則:

  • :服務頁、產品頁、landing page、定價頁
  • 不放:公司簡介、團隊頁、blog 列表頁
  • 看情況:blog 文章本身。結構就是 Q&A 的可以放;長篇論述硬切會扭。

理由:FAQPage 是給「有明確問題」的讀者看的——服務頁符合這個特質,blog 文章不一定。

2. 問題要寫使用者的問法,不是公司的說法

錯誤示範:

text
1Q: 我們的客製化系統開發服務包含哪些範圍?
2 

這是公司在講話。使用者不會這樣問。

正確示範:

text
1Q: 客製化系統開發通常多久可以上線?
2Q: 做一個 ERP 整合專案大概要多少預算?
3Q: 系統做好之後的維護是你們做還是我們自己接?
4 

這些是使用者真實會打進 ChatGPT 的句子。

寫不出來?有個土方法——打開 ChatGPT 輸入「我想找 XX 服務」,看它自動補的問題是哪幾題。那就是你要答的題目。

3. 答案第一句就是結論,後面才補充

AI 摘錄通常取前一兩句。所以:

text
1A: 典型 B2B 內部系統 3–6 個月可以上線 MVP,
2   複雜的整合專案(跨 ERP / CRM / 多國多語系)通常拉到 6–9 個月。
3   實際時程取決於需求清晰度、既有系統的技術債、資料遷移量。
4 

第一句 30 字內給數字(3–6 個月 / 6–9 個月),第二句補條件,第三句補依變因。AI 大概率只摘第一句——那也沒關係,第一句本身就足以回答使用者。

違反直覺的地方:傳統中文寫作喜歡起承轉合,結論放最後。對 AEO 來說這是反效果——AI 摘完前兩句就跳走,你最關鍵的結論永遠摘不到。

B2B 服務頁實作:完整範例

以我們自家「客製化系統開發」服務頁為例。Next.js App Router + TypeScript。

Step 1:定義 FAQ 資料結構

src/lib/faqs/custom-software.ts

ts
1export interface FAQ {
2    question: string;
3    answer: string;
4}
5 
6export const customSoftwareFAQs: FAQ[] = [
7    {
8        question: '客製化系統開發通常多久可以上線?',
9        answer: '典型 B2B 內部系統 3–6 個月可以上線 MVP,複雜的整合專案通常拉到 6–9 個月。實際時程取決於需求清晰度、既有系統的技術債、資料遷移量。',
10    },
11    {
12        question: '做一個 ERP 整合專案大概要多少預算?',
13        answer: '台灣 B2B 中型企業的 ERP 整合專案通常落在 80–300 萬台幣區間。低於 80 萬通常是單點串接,高於 300 萬通常涉及自建 ERP 或多套系統深度整合。我們提供免費範疇評估。',
14    },
15    {
16        question: '系統做好之後的維護是你們做還是我們自己接?',
17        answer: '兩種都可以。多數客戶選擇前三個月我們維護、之後交接給內部團隊;也有選擇簽年約長期委外的。交接時附完整技術文件與 handover session。',
18    },
19    {
20        question: '你們能跟我現有的 ERP / CRM 系統接嗎?',
21        answer: '主流 ERP(SAP、Oracle、鼎新、正航、Odoo)跟 CRM(Salesforce、HubSpot、Zoho)都做過整合。API 限制嚴格的老系統我們用 DATA-BEE 做中介資料層處理。',
22    },
23];
24 

Step 2:寫 schema 產生器

src/lib/schema.ts(延續上一篇檔案):

ts
1import type { FAQ } from './faqs/custom-software';
2 
3export function getFAQPageSchema(faqs: FAQ[]) {
4    return {
5        '@context': 'https://schema.org',
6        '@type': 'FAQPage',
7        mainEntity: faqs.map((faq) => ({
8            '@type': 'Question',
9            name: faq.question,
10            acceptedAnswer: {
11                '@type': 'Answer',
12                text: faq.answer,
13            },
14        })),
15    };
16}
17 

Step 3:服務頁套用

src/app/services/custom-software/page.tsx

tsx
1import { JsonLd } from '@/components/JsonLd';
2import { getFAQPageSchema } from '@/lib/schema';
3import { customSoftwareFAQs } from '@/lib/faqs/custom-software';
4 
5export default function CustomSoftwarePage() {
6    return (
7        <>
8            <JsonLd data={getFAQPageSchema(customSoftwareFAQs)} />
9 
10            {/* 服務頁主內容 */}
11 
12            <section className="py-20">
13                <h2 className="text-3xl font-bold mb-10">常見問題</h2>
14                <div className="space-y-4">
15                    {customSoftwareFAQs.map((faq) => (
16                        <details key={faq.question} className="group border-b pb-4">
17                            <summary className="text-lg font-medium cursor-pointer">
18                                {faq.question}
19                            </summary>
20                            <p className="mt-3 text-neutral-600 leading-relaxed">
21                                {faq.answer}
22                            </p>
23                        </details>
24                    ))}
25                </div>
26            </section>
27        </>
28    );
29}
30 

兩個陷阱要注意:

  • JSON-LD 跟視覺版 FAQ 內容必須一致。schema 裡有的問題,頁面上讀者要看得到。如果 schema 放 10 題、頁面只秀 3 題,Google 會視為 cloaking,可能降權。兩邊共用同一份 customSoftwareFAQs 就不會有這個問題。
  • <details>** 預設摺疊沒差**。AI 爬蟲讀 HTML 時 DOM 已經渲染完成,不管摺疊狀態都抓得到。視覺摺疊只影響使用者體驗,不影響 schema 有效性。

Step 4:驗證

部署後用 Rich Results Test 丟服務頁網址,應該能看到 FAQPage 被偵測、每題 Q&A 都列出來。某題沒出現的話,通常是 JSON 跟頁面文字對不起來——去檢查資料來源。

FAQ Schema 怎麼測

部署完之後最容易跳過的一步——但這步才是「schema 真的對 AEO 有用」的證據。

一、確認 schema 出現在 SSR HTML 裡

最常見的踩雷:用 React 客戶端渲染 schema,但 AI 爬蟲只看 SSR HTML。

bash
1curl -s https://your-site.com/contact | grep -c FAQPage
2 

應該 ≥ 1。如果是 0,schema 沒在初始 HTML 裡——把 JSON-LD 移到 server component 或 layout 裡渲染。

二、過 Google Rich Results Test

把網址丟到 Rich Results Test,每題 Q&A 都應該列出來。

⚠️ 注意:Google 2023 年 8 月起限制 FAQ rich result 只開放給政府/健康權威網站。一般 B2B 網站做 FAQPage 不會在 Google SERP 看到 FAQ 摘要區塊。這一步只驗證 schema 結構正確——對 AI 爬蟲來說已經夠了。

三、等 1-2 週後對 AI 引擎事實檢驗

AI 爬蟲(GPTBot、ClaudeBot、PerplexityBot)重爬有週期,部署後不會立刻見效。等個 1-2 週,到 ChatGPT、Perplexity 問跟你 FAQ 主題相關的問題(不用一字不差):

  • 答案是不是你 FAQ 的具體內容?
  • AI 有沒有把你的網域列為來源?

兩者都符合,schema 真的對 AEO 有用——AI 已經把你當答案來源。

沒看到不要急判失敗:新站可能要 1-3 個月才會被 AI 引用。這一步的核心成果是「HTML 確實有 FAQPage schema、結構正確」,AI 引用是時間問題。

B2B 的 schema 優先順序

不是每個 schema 都值得做。我們驗證過的 B2B 優先順序:

Schema 優先度 為什麼
Organization 必做 告訴 AI「你是誰」的基本盤
FAQPage 主力 AI 最愛摘、CTR 最高
Service 建議 服務頁加分,效果小於 FAQPage
BreadcrumbList 建議 對 SEO 有用,對 AEO 效果有限
Product 看情況 有 SKU / 定價才做
Article 看情況 Blog 可以加,對 B2B lead gen 幫助不大

OrganizationFAQPage 做對,70% 的 AEO schema 效果就在這裡。

收尾

FAQPage 不是「放了就算做了」的 schema——問題怎麼挑、答案怎麼切、跟視覺 UI 怎麼同步,每一步都有工程判斷。但做對之後的複利很強:一次設計、兩邊收(AEO 引用 + SEO 富摘要),而且不用買廣告、不用做外部連結。

想把這套用在你的專案?

從盤點問題、設計流程到落地實作——Heiso 顧問團隊一起接住

預約諮詢 →
更多文章
分享:

延伸閱讀