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

B2B 網站要被 AI 引用,先做這三件事

AEO 要做的事可以列到 20 條,但 80% 的效果集中在三件事。這篇講我們幫自家官網做的三個最低成本動作,附 Next.js 程式碼。

上一篇講了 AEO 是什麼(當使用者開始問 ChatGPT,你的網站有被 AI 抓取過嗎?),這篇講實作。網路上 AEO 指南動輒列到 20 條,實際做下來,80% 的效果集中在三件事上。我們在自家官網(Next.js App Router + TypeScript)是這樣做的。

前情:為什麼只做三件事

我們花了一個下午把市面上的 AEO 指南整理過一輪,發現大部分條目屬於兩類:

  • 長期戰:寫 FAQ、累積外部連結、E-E-A-T 訊號——這些都重要,但沒有一週見效的版本
  • 次要戰:Open Graph 調整、OGP 圖片、canonical——SEO 時代該做的事,AEO 沒有放大它們的重要性

真正決定你「能不能被 AI 讀到」的只有三件:能進來、讀得懂、會更新。對應到實作:robots.txt、JSON-LD、IndexNow。

第一件:robots.txt 放行 AI bot

最容易被忽略。很多公司出於「保護內容」把所有非 Google bot 擋掉,結果 ChatGPT、Claude、Perplexity 根本不認識你。

public/robots.txt

text
1User-agent: GPTBot
2Allow: /
3 
4User-agent: ChatGPT-User
5Allow: /
6 
7User-agent: OAI-SearchBot
8Allow: /
9 
10User-agent: ClaudeBot
11Allow: /
12 
13User-agent: Claude-Web
14Allow: /
15 
16User-agent: anthropic-ai
17Allow: /
18 
19User-agent: Google-Extended
20Allow: /
21 
22User-agent: PerplexityBot
23Allow: /
24 
25User-agent: Perplexity-User
26Allow: /
27 
28User-agent: Applebot-Extended
29Allow: /
30 
31User-agent: *
32Allow: /
33Disallow: /admin/
34Disallow: /api/
35 
36Sitemap: https://www.heiso.io/sitemap.xml
37 

幾個重點:

  • Google-ExtendedGooglebot 是兩回事——前者是 Google 訓練 Gemini 用的,要另外列
  • Applebot-Extended 是 Apple Intelligence 用的,2024 年才出現,很多舊 robots.txt 沒有

第二件:JSON-LD 結構化數據

這是讓 AI「讀得懂你」的關鍵。純文字網頁對 AI 來說是一團文字,JSON-LD 則是直接告訴它「主詞—動詞—受詞」。

最低成本版本是放 Organization + WebSite 兩個 schema 在根 layout,讓每一頁都有。

src/lib/schema.ts

ts
1export function getOrganizationSchema() {
2    return {
3        '@context': 'https://schema.org',
4        '@type': 'Organization',
5        name: 'Heiso 黑首數位',
6        url: 'https://www.heiso.io',
7        description: 'Heiso 黑首數位提供軟體外包、客製化系統開發與 AI Agent 建置服務。',
8        sameAs: [
9            'https://www.linkedin.com/company/heiso',
10            // 其他社群連結
11        ],
12    };
13}
14 

src/components/JsonLd.tsx

tsx
1export function JsonLd({ data }: { data: object }) {
2    return (
3        <script
4            type="application/ld+json"
5            dangerouslySetInnerHTML={{ __html: JSON.stringify(data) }}
6        />
7    );
8}
9 

塞進根 layout:

tsx
1// src/app/layout.tsx
2import { JsonLd } from '@/components/JsonLd';
3import { getOrganizationSchema } from '@/lib/schema';
4 
5export default function RootLayout({ children }) {
6    return (
7        <html>
8            <body>
9                <JsonLd data={getOrganizationSchema()} />
10                {children}
11            </body>
12        </html>
13    );
14}
15 

這樣做完,用 Rich Results Test 丟你的首頁,應該能驗證到 Organization schema。

進階一點可以每個服務頁塞 Service schema、每個產品頁塞 SoftwareApplication、有 FAQ 的頁面塞 FAQPage——但先把 Organization 做對,已經解決 60% 的「AI 不認識我是誰」問題。

第三件:IndexNow 自動推送

Sitemap 是被動的——爬蟲想來才來。IndexNow 是主動的——你發文了,立刻通知 Bing、Yandex、Naver 來爬。Google 沒有加入 IndexNow,但 ChatGPT 走 Bing 的索引,所以對 AI 搜尋來說 IndexNow 比 Google Search Console 還重要。

設定步驟:

  1. 產一把 key(任意 32–128 字元):例 heiso-indexnow-2026-xyz789
  2. 把 key 放成檔案:public/heiso-indexnow-2026-xyz789.txt,內容就是 key 本身
  3. 寫一個發送函式:
ts
1// src/lib/indexnow.ts
2const KEY = 'heiso-indexnow-2026-xyz789';
3const KEY_LOCATION = `https://www.heiso.io/${KEY}.txt`;
4 
5export async function notifyIndexNow(urls: string[]) {
6    await fetch('https://api.indexnow.org/indexnow', {
7        method: 'POST',
8        headers: { 'Content-Type': 'application/json' },
9        body: JSON.stringify({
10            host: 'www.heiso.io',
11            key: KEY,
12            keyLocation: KEY_LOCATION,
13            urlList: urls,
14        }),
15    });
16}
17 
  1. 在以下時機呼叫:
  • Blog 新文章發布後
  • 服務頁文案更新後
  • 新增 landing page 後

我們自家的做法是把它變成一個 endpoint:POST /api/indexnow/notify 一打,就會自動撈所有 status: published 的中英 blog 文 + 主要 static page,一次推給 Bing。不用挑 URL、不用列清單。

bash
1curl -X POST https://www.heiso.io/api/indexnow/notify
2# {"ok":true,"status":202,"urlCount":32}
3 

status: 202 是正常回應(IndexNow 不會給 200,202 = 已收到、會排隊去爬)。我們把這顆按鈕綁在 blog 寫作流程的最後一步——文章 statuspublished 之後就 ping 一次。從草稿到 ChatGPT 知道你存在,這條路徑壓到幾分鐘以內。

怎麼測這三件事真的有效

部署完不要假設它運作——三件事各有測法。

robots.txt

bash
1curl -s https://your-site.com/robots.txt | grep -E "GPTBot|ClaudeBot|PerplexityBot"
2 

應該看到 User-agent: GPTBot 後面是 Allow:不是 Disallow:。整站 Disallow: / 等於把 AI 爬蟲擋光。

JSON-LD

bash
1curl -s https://your-site.com/ | grep -c "application/ld+json"
2 

首頁應該 ≥ 2(一個 Organization + 一個 WebSite)。或丟 Schema.org Validator 驗結構正確。

IndexNow

Bing Webmaster ToolsURL Submission 應該每次 publish 都有對應的提交紀錄。或看 Bing 索引頁面數的趨勢——數字本身意義不大,看有沒有上升趨勢就好。

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

AI 爬蟲(GPTBot、ClaudeBot、PerplexityBot)重爬週期過後,問 ChatGPT、Perplexity:

  • 「[你公司名] 是做什麼的?」
  • 「[你公司名] 的服務有哪些?」

AI 答得出你的具體服務 + 引用你的網域為來源 → 這三件事真的把你「翻譯」給 AI 了。

新站可能要 1-3 個月才會見效。核心成果是「結構正確、AI bot 進得來」,AI 引用是時間問題。

Heiso 自家現在的狀態

把上面的測試方法套到自家 heiso.io,實際結果——做了兩件、第三件還在 backlog:

✅ robots.txt:顯式 Allow 14+ 個 AI bot

bash
1curl -s https://www.heiso.io/robots.txt | grep -E "GPTBot|ClaudeBot|PerplexityBot"
2 

清單包含:GPTBot、ChatGPT-User、OAI-SearchBot、ClaudeBot、Claude-Web、anthropic-ai、Google-Extended、Googlebot、PerplexityBot、Perplexity-User、Applebot、Applebot-Extended、Bingbot、BingPreview、CCBot。讀者可自行打開 heiso.io/robots.txt 對照。

✅ JSON-LD:首頁 2 個 schema

bash
1curl -s https://www.heiso.io/ | grep -c "application/ld+json"
2# → 2
3 

Organization + WebSite,從 src/app/layout.tsx 統一注入每一頁。讀者 view source 可驗證。

✅ IndexNow:已接(2026-04-27 更新)

bash
1curl -s -o /dev/null -w "%{http_code}\n" https://www.heiso.io/5a51c7b52dd46f3d4b1926ef2a651aa3.txt
2# → 200
3 
4curl -s -X POST https://www.heiso.io/api/indexnow/notify | jq
5# → {"ok":true,"status":200,"urlCount":34}
6 

Key file 已部署、POST /api/indexnow/notify endpoint 一打就把當前所有 published 中英 blog + 主要 static page(共 34 個 URL)一次推給 Bing。而且綁進發 EDM 的流程——每次發新文章寄電子報時,IndexNow 也同步 ping,從 publish 到 ChatGPT 知道你存在的時間壓到分鐘等級。

2026-04-20 寫這篇時還沒做、列為「誠實揭露的 backlog」。一週後(04-27)做完——記錄留著當對照,比「文章寫完就刪 backlog 那段」誠實。

收尾

AEO 實作的水可以很深,但要踏進第一步只需要這三件事。難的不是技術——robots.txt 加三行、JSON-LD 貼十行、IndexNow 寫個 fetch——難的是決定「要讓 AI 怎麼認識你」。那個答案要花時間想,但想清楚之後,技術實作一天之內做完。

想把這套用在你的專案?

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

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

延伸閱讀