技術深入

AI 爬蟲爬唔到你個網?答案引擎優化(AEO)前必查嘅 7 個技術原因

2026-08-23作者: · 技術總監9 分鐘

AI 爬蟲爬唔到你個網,多數走唔甩呢 7 個技術原因:robots.txt 擋咗、JS rendering、Vercel/CDN 攔截、middleware 誤判、sitemap 缺失、WAF 當你係攻擊、內容藏喺登入牆後。爬唔到,後面所有 AI 搜尋優化工夫都白做。以下逐個教你點喺 5 分鐘內自查。

測試環境同日期:以下指令喺 2026-08 用 curl、Chrome DevTools、Google Search Console、Vercel Dashboard 實際行過。AI 爬蟲 User-Agent 名單同 robots.txt 慣例會隨時間變,如果你睇呢篇文已經係幾個月後,建議先重新核對各引擎最新嘅 User-Agent。

Crawlability 係答案引擎優化(Answer Engine Optimization,AEO)嘅 hard gate

想知 AI 而家點講你間公司?

輸入網址,1–2 分鐘睇 ChatGPT / Gemini 有冇推薦你 — 唔使登記

睇下 AI 點講你

做 AEO(AI 搜尋優化)嘅公司最常見錯誤,係一開波就跳去寫 FAQ、加 Schema,但完全冇驗證過 AI 嘅爬蟲本身有冇能力落地你個網站。呢個唔係「做多啲會更好」嘅優化項——係「做唔到就乜都冇用」嘅 hard gate。你個網做咗幾靚嘅結構化資料,如果 GPTBot 一入嚟就撞到 403,AI 引擎連你嘅內容都未見過,邊有得引用你。

原因一:robots.txt 完全擋晒 AI 爬蟲

最常見、最容易一次過中招嘅原因。好多網站幾年前為咗防止內容被 scrape 訓練 AI 模型,喺 robots.txt 度加咗 Disallow: / 針對常見 AI 爬蟲,但而家又想被 AI 引用——兩者互相矛盾,你冇得攬住個餅同時食。

自查方法:

curl -s https://你嘅域名/robots.txt

睇下有冇類似呢啲 block:

User-agent: GPTBot
Disallow: /

User-agent: PerplexityBot
Disallow: /

User-agent: ClaudeBot
Disallow: /

User-agent: Google-Extended
Disallow: /

如果想畀 AI 引用,起碼要放行以下幾隻主要爬蟲(各家 User-Agent 名稱會變,實施前建議對照返各引擎官方文件):GPTBot(OpenAI)、ClaudeBot(Anthropic)、PerplexityBot、Google-Extended(Google AI Overviews/Gemini 訓練用)、Bingbot(Copilot 底層一部分用 Bing 索引)。修正做法:

User-agent: GPTBot
Allow: /

User-agent: ClaudeBot
Allow: /

User-agent: PerplexityBot
Allow: /

User-agent: Google-Extended
Allow: /

Sitemap: https://你嘅域名/sitemap.xml

原因二:JS rendering——爬蟲睇到嘅係空白頁

好多 AI 爬蟲(同傳統 SEO crawler 一樣)唔會執行 JavaScript,只讀 server 返回嘅原始 HTML。如果你個網係純 client-side render(例如 React SPA 冇做 SSR),爬蟲攞到嘅可能係一個近乎空白嘅 <div id="root"></div>,內容全部要靠 JS 喺瀏覽器入面先渲染出嚟。

自查方法:關咗瀏覽器 JS 之後重新載入頁面,或者直接 curl 睇 raw HTML:

curl -s https://你嘅域名/ | grep -o '<title>.*</title>'

再對比瀏覽器實際睇到嘅內容——如果 curl 出嚟嘅 HTML 入面搵唔到你嘅主要文字內容(例如服務介紹、FAQ),但瀏覽器打開就見到,代表內容係靠 JS 後補渲染。

修正方向:用 Next.js/Nuxt 呢類支援 Server-Side Rendering (SSR) 或 Static Site Generation (SSG) 嘅框架,令 server 直接吐出完整 HTML;如果暫時做唔到全站 SSR,起碼要對重點頁面(首頁、服務頁、FAQ 頁)做靜態化。

原因三:Vercel/CDN 層擋咗爬蟲

用 Vercel 部署嘅網站,有時問題唔喺 code 層面,而喺平台設定——Deployment Protection(部署保護)或者 Vercel 嘅 Bot Protection/Firewall 規則,可能將所有非瀏覽器 User-Agent 一律當成攻擊擋咗。呢個情況特別陰濕,因為你自己用瀏覽器開個網睇落完全正常,但 AI 爬蟲一嚟就食 401/403。

自查方法:喺 Vercel Dashboard 檢查 Project Settings → Deployment Protection 有冇開咗(開咗代表要密碼/SSO 先入到,AI 爬蟲一定入唔到),再檢查 Firewall 規則有冇針對 bot 嘅攔截規則。用實際 User-Agent 測試:

curl -s -A "GPTBot" -o /dev/null -w "%{http_code}\n" https://你嘅域名/

回傳 200 先合格;如果係 401/403,就要去 Vercel 設定放行,或者將 Deployment Protection 收窄到只保護 preview 環境,唔好連 production 都封晒。

原因四:middleware/proxy 對特定 User-Agent 做咗攔截

如果個站用咗自訂 middleware 做 A/B testing、地區導向、或者防爬蟲機制,好多時會用 User-Agent 白名單/黑名單做判斷——常見錯誤係白名單淨係列咗瀏覽器 User-Agent(Chrome、Safari、Firefox),冇考慮到 AI 爬蟲根本唔會扮瀏覽器,一 match 唔到就直接畀 middleware 攔截或者 redirect 去錯誤頁面。

Next.js middleware 舉例,錯誤寫法:

// middleware.ts(有問題嘅版本)
export function middleware(request: NextRequest) {
  const ua = request.headers.get("user-agent") || "";
  const isKnownBrowser = /Chrome|Safari|Firefox/.test(ua);
  if (!isKnownBrowser) {
    return NextResponse.redirect(new URL("/blocked", request.url));
  }
  return NextResponse.next();
}

修正方向:白名單要明確加入已知 AI 爬蟲 User-Agent,或者改用「黑名單已知惡意 UA」而唔係「白名單已知瀏覽器」呢種思路,避免誤傷所有非瀏覽器流量:

// middleware.ts(放行 AI 爬蟲版本)
const AI_CRAWLERS = ["GPTBot", "ClaudeBot", "PerplexityBot", "Google-Extended", "Bingbot"];

export function middleware(request: NextRequest) {
  const ua = request.headers.get("user-agent") || "";
  if (AI_CRAWLERS.some((bot) => ua.includes(bot))) {
    return NextResponse.next();
  }
  // 其餘邏輯...
  return NextResponse.next();
}

原因五:sitemap.xml 缺失或者過期

Sitemap 唔係 crawlability 嘅硬性必要條件,但佢係加速爬蟲發現新/改咗嘅頁面嘅最有效方法。冇 sitemap,爬蟲要靠內部連結逐層爬,深層頁面(例如個別服務頁、blog 文章)可能長期冇畀爬到。

自查方法:

curl -s https://你嘅域名/sitemap.xml | head -20

檢查有冇回傳有效 XML、有冇包含你想被引用嘅重點頁面(服務頁、FAQ 頁、案例頁)、lastmod 日期係咪反映真實更新時間。修正方向:Next.js 可以用 app/sitemap.ts 自動產生,記得將 sitemap 網址寫入 robots.txt 底部,並喺 Google Search Console 提交。

原因六:Cloudflare/WAF 誤將爬蟲當攻擊擋咗

如果個站用咗 Cloudflare 或者其他 WAF(Web Application Firewall),Bot Fight Mode 或者一啲進取嘅安全規則有可能將 AI 爬蟲當成惡意流量擋咗——因為呢啲爬蟲嘅請求模式(短時間內密集 request、冇瀏覽器常見嘅 cookie/JS challenge 反應)同惡意 scraper 好相似。

自查方法:Cloudflare Dashboard → Security → Bots,睇下 Bot Fight Mode 有冇開,同埋喺 Security Events 度搜 GPTBot/ClaudeBot/PerplexityBot 呢啲關鍵字,睇下有冇被 block 嘅記錄。修正方向:喺 WAF 規則度為已知 AI 爬蟲 User-Agent 加白名單 exception,或者將 Bot Fight Mode 收窄成只針對明顯惡意特徵,唔好一刀切擋晒所有非瀏覽器 UA。

原因七:內容藏喺登入牆/付費牆後面

呢個原因好多公司唔覺意——如果你想被 AI 引用嘅重點內容(例如詳細服務說明、案例數據)需要登入或者填表先睇到,AI 爬蟲同未登入嘅訪客一樣,見到嘅只係登入頁面,完全接觸唔到你想被引用嘅內容。

自查方法:用無痕模式(incognito)打開你想被 AI 引用嘅頁面,睇下係咪一開波就要求登入/填表先睇到重點內容。修正方向:將想被 AI 引用嘅核心資訊(公司簡介、服務範圍、定價邏輯、FAQ)留喺公開頁面,登入牆/付費牆淨係用喺真正需要保護嘅深度內容(例如客戶專屬報告)。

一次過自查:5 步跑晒 7 個原因

# 1. robots.txt 有冇擋晒 AI 爬蟲
curl -s https://你嘅域名/robots.txt

# 2. raw HTML 有冇內容(JS rendering 問題)
curl -s https://你嘅域名/ | grep -o '<title>.*</title>'

# 3. 用 AI 爬蟲 UA 測試實際回傳狀態(Vercel/middleware/WAF 三個原因一次 test 晒)
curl -s -A "GPTBot" -o /dev/null -w "%{http_code}\n" https://你嘅域名/
curl -s -A "ClaudeBot" -o /dev/null -w "%{http_code}\n" https://你嘅域名/
curl -s -A "PerplexityBot" -o /dev/null -w "%{http_code}\n" https://你嘅域名/

# 4. sitemap 有冇有效內容
curl -s https://你嘅域名/sitemap.xml | head -20

# 5. 重點頁面係咪需要登入先睇到(用無痕模式人手核對)

呢 5 步入面,只要有一步回傳唔正常(403/401/空內容/redirect 去錯誤頁),就代表你嘅 AEO 工夫仲未開始就已經卡住——先修呢層,先值得投資落 Schema、BLUF 內容呢啲下一層工作。

FAQ

點知邊個 User-Agent 係邊個 AI 引擎嘅爬蟲?

主要幾個:GPTBot 係 OpenAI/ChatGPT 嘅爬蟲;ClaudeBot 係 Anthropic(Claude)用;PerplexityBot 係 Perplexity AI 用;Google-Extended 控制緊 Google AI 產品(包括 Gemini、AI Overviews)可唔可以用你個網嘅內容;Bingbot 影響緊 Microsoft Copilot 部分底層索引。呢啲名單會隨時間有新增,實施前建議對照返各引擎官方文件核實最新名單。

robots.txt 擋咗 AI 爬蟲,係咪即刻改就有效?

改完 robots.txt 只係第一步——你要畀 AI 爬蟲有機會重新嚟過。冇一個保證嘅重新爬取時間表,但一般建議喺改完之後,喺 Google Search Console 用「網址檢查工具」主動提交重要頁面要求重新索引,加速 Google 相關產品側嘅重新發現。其他引擎(OpenAI、Anthropic、Perplexity)暫時未有公開嘅「即時提交」機制,只能等佢哋下一輪自然爬取。

用 Cloudflare 嘅 Bot Fight Mode 係咪一定要關咗先做到 AEO?

唔一定要全關,但一定要加 exception。Bot Fight Mode 對防止惡意 scraper/DDoS 有實際用處,唔建議純粹為咗 AEO 就完全關閉安全機制。正確做法係喺 Cloudflare 嘅 WAF/Bot 設定入面,為已知嘅正當 AI 爬蟲 User-Agent(GPTBot、ClaudeBot、PerplexityBot 等)明確加白名單規則,令佢哋跳過 Bot Fight Mode 嘅攔截,但其餘可疑流量繼續受保護。

我點知自己個網屬唔屬於「純 client-side render」有 JS rendering 問題?

最快嘅檢查方法係關咗瀏覽器 JavaScript 之後重新整頁——Chrome DevTools 入面 Settings → Debugger →「Disable JavaScript」,或者直接用 curl 攞 raw HTML 同瀏覽器實際顯示嘅內容對比。如果 curl 出嚟嘅 HTML 搵唔到頁面主要文字(例如淨係得一個空嘅 <div id="root">),但瀏覽器打開就正常見到內容,就代表你個網主要靠 JavaScript 喺瀏覽器端渲染,AI 爬蟲好大機會攞唔到完整內容。

修完呢 7 層,跟住就要睇 AI 引擎實際識唔識你。 用 Webka 免費 AI 品牌曝光診斷工具(aeo.weblnno.info),輸入網址即場問五引擎(ChatGPT、Gemini、Claude、DeepSeek、Perplexity),1–2 分鐘出結果,每日 3 次免費,無需註冊。技術細節想問,可以電郵 hello@webka.hk。

想知 AI 而家點講你間公司?

輸入網址,1–2 分鐘睇 ChatGPT / Gemini 有冇推薦你 — 唔使登記

睇下 AI 點講你
分享這篇文章

AI 識唔識
你嘅品牌?

輸入你嘅網址,1–2 分鐘睇到 ChatGPT 點樣描述你。 如果答案唔理想 — 我們幫你改變。

Mr. Chao • Webka 技術總監
Rm 01, 11/F, Cameron Sino Technology Limited, 73 Chai Wan Kok St, Tsuen Wan, NT