首頁/學習 GEO/JavaScript 會執行嗎
技術 GEO · 渲染

AI 爬蟲會執行 JavaScript 嗎?

在所有問題裡,這一題「回答有多篤定」和「背後有多少證據」之間的落差最大。兩家引擎在文件裡寫明會渲染,一類客戶端因其構造必然渲染,其餘的只被測過一次:一個月,一家公司。

本頁內容
分享本文
分享到 X 分享到 LinkedIn
簡短回答

有的會,多數兩個方向都沒說,而這題那種篤定的答法,是它自己的證據撐不起來的。Google 和 Apple 都在自家文件裡寫明會渲染 JavaScript,代理型瀏覽器會渲染是因為它們本來就是 Chromium 構建;至於傳統的 AI 爬蟲,全部公開紀錄只有一份基礎設施日誌研究,日期為 2024 年 12 月 17 日,它在所考察的五個爬蟲家族裡都沒有發現執行,儘管 OpenAI 那幾個 agent 有 11.50% 的抓取花在下載 JavaScript 檔案上,Anthropic 的則是 23.84%。1

關鍵要點
  • Google 和 Applebot 用自己的文字寫明會渲染,Gemini 則繼承 Googlebot 的渲染器。OpenAI、Anthropic 和 Perplexity 兩個方向都沒有表態。
  • 人人引用的 5.69 億這個數字,來自同一篇文章另一節的抓取量統計。那項渲染測試沒有寫明樣本量,也沒有寫明日曆時間窗。
  • 執行是靠一個在頁面渲染完成時觸發的信標偵測的,所以沒有渲染器的爬蟲,和信標回報不出去的爬蟲,看起來一模一樣。
  • 微軟的助手因為沒有獨立的 user agent 被直接排除,而這些廠商今天記錄在案的好幾個爬蟲令牌,當時都不在樣本裡。
  • 這些都不改變你該交付什麼:初始 HTML 回應裡的文字,每一類系統都讀得到,就算它是以 JSON 的形式在那裡也一樣。
三分法

AI 爬蟲會執行 JavaScript 嗎?

這裡有三組,不是兩組,而網路上多數爭論都來自把它們壓成一組。有兩家引擎用自己的文字寫明會渲染:Google「只要 JavaScript 沒有被封鎖,就能處理其中的內容」,同時附帶一句提醒,說 JavaScript 框架會讓這件事「通常更複雜」3;以及「Applebot 可能會在瀏覽器裡渲染你網站的內容」,而 Apple 警告說,如果你的 JavaScript 和 CSS 在 robots.txt 裡被封鎖,它可能就做不到。5 Gemini 繼承了 Googlebot 的渲染器1;代理型瀏覽器會渲染,是因為它們本來就是 Chromium:Tow 中心的研究者在 2025 年 10 月發現,其中一款取回了一篇九千字、藏在客戶端遮罩後面的訂閱者限定文章,而同幾家公司的一般對話介面卻說自己讀不到。9

第三組才是人人爭論的那一組,而它恰恰是沒有人說過任何話的那一組。去讀 OpenAI、Anthropic 和 Perplexity 公布的機器人文件,render、rendering 和 JavaScript 這幾個詞一次都沒有出現(核查於 2026 年 8 月 30 日)。678 這份沉默本身就是結論,也正因如此,一份日誌研究才承擔了這麼重的分量。

01

文件寫明會渲染

Google 與 Applebot,寫在它們自己的文字裡,再加上因繼承而渲染的 Gemini。請假定你的腳本在這裡會被執行,也請假定封鎖自己的 JS 或 CSS 只會傷到你。

02

因其構造而渲染

代理型瀏覽器就是 Chromium。它們會執行你的打包檔、讀取 DOM,出現在你日誌裡時看起來像一次普通的 Chrome 工作階段,而不是一個聲明過身分的機器人。

03

只測過一次,此後沉默

OpenAI、Anthropic、Meta、字節跳動和 Perplexity 的爬蟲。一份日誌研究沒有看到執行。這五家沒有一家在任何方向上表過態。

這次測量

2024 年 12 月那項研究究竟測了什麼?

一家網站託管公司和一家 SEO 顧問公司讀自己的伺服器日誌,以部落格文章的形式發表於 2024 年 12 月 17 日,署名四位作者。1 涉及的資產是:那家託管公司所維護框架的文件站、它更大範圍的網路,以及兩個用作跨技術堆疊對照的求職網站。這就是全部樣本:第一方日誌資料,是「某個爬蟲做了什麼」這個問題上現有最強的證據;同時又是一家廠商自有流量的便利樣本,對「爬蟲們普遍怎麼做」來說是很弱的證據。

時間窗值得精確複述,因為它一直被轉述錯。整篇文章沒有印出任何日曆區間。它的流量數字以「在過去一個月」引出,而資料蒐集那一節說,主要資料來自對那些資產「過去幾個月」的監測。頁面上唯一的日期是發表日期,所以任何指定一個起始月份的複述都是推論而不是引用;而本站在 2026 年 8 月之前,做的正是這個推論。

人人引用的那個數字其實屬於另一條論斷。5.69 億次 GPTBot 抓取和 Anthropic 爬蟲的 3.70 億次,位於規模與分布那一節,旁邊是 Googlebot 的 45 億次、Applebot 的 3.14 億次和 PerplexityBot 的 2440 萬次。它們測的是發生了多少抓取。緊接在後的渲染那一節給出結論時完全沒有樣本量:沒有頁面數、沒有請求數、沒有按爬蟲的拆分。把抓取量數字當成渲染測試的 n 來引用,是這份材料最常見的誤用。

偵測方式

執行是怎麼被偵測到的,這個測試又會漏掉什麼?

靠一個信標。方法不在那篇 AI 爬蟲文章裡,而在它為細節所連結的 2024 年 7 月那篇文章裡:同一批人在那裡描述了如何在這些資產上放置自訂的邊緣中介層,用來辨識機器人請求,並往發給它們的 HTML 裡注入一個輕量 JavaScript 函式庫。該函式庫會在頁面渲染完成時觸發,把一個請求識別碼和一個時間戳記回報給另一台伺服器;把這些回報和原始存取日誌對上,就知道哪些請求渲染過。2

這是個好設計,而它是單向的。信標觸發了,就證明執行過。信標從沒觸發,只證明沒有回報抵達;而造成這個結果的,除了「沒有渲染器」還有別的情況:在無對外網路的沙箱裡執行腳本的爬蟲、丟棄子資源請求的爬蟲、對信標的抓取被封鎖或逾時的爬蟲。這些都無法和「只讀 HTML 的客戶端」區分開來。「目前主要的 AI 爬蟲都不渲染 JavaScript」是對一個零結果的一種合理讀法,但它不是唯一的讀法。

那篇更早的文章把自己的範圍寫得很清楚:它聚焦 Googlebot,在 2024 年 4 月 1 日至 30 日之間提供了超過 37,000 個與伺服器信標配對的已渲染頁面,並且說團隊仍在蒐集 AI 廠商方面的資料。2 這套量測裝置是在一個確實會渲染的爬蟲上大規模驗證過的。它在那些看來不渲染的爬蟲身上得到的是一個「無」,而「無」沒有樣本量可以報告。

涵蓋範圍

哪些爬蟲被涵蓋了,哪些沒有?

五個家族被點名為不渲染,兩個被點名為會渲染,還有一個助手因為沒有獨立的 user agent 而被直接排除。

爬蟲在 2024 年 12 月的樣本裡嗎?觀察到什麼廠商今天對渲染的表態
Googlebot 與 Gemini會渲染,共用同一套基礎設施有,Google 有文件3
Applebot在瀏覽器裡渲染有,Apple 有文件5
GPTBot、OAI-SearchBot、ChatGPT-User、ClaudeBot未觀察到執行兩個方向都沒有67
Meta-ExternalAgent、Bytespider、PerplexityBot、CCBot未觀察到執行兩個方向都沒有8
OAI-AdsBot、Claude-SearchBot、Claude-User不在樣本裡從未被測過兩個方向都沒有
微軟的助手被作者排除從未被測過本研究未涵蓋

把那張清單和這些廠商今天公布的東西對照著讀,缺口一目了然。Anthropic 現在記錄的是三個機器人而不是一個,把訓練、使用者觸發的抓取和搜尋品質拆了開。7 OpenAI 現在列的是四個 token 而不是三個,其中包括一個廣告爬蟲。6 研究之後新增的爬蟲令牌,沒有一個在樣本裡;所以對它們來說,誠實的答案不是「它們不渲染」,而是「沒有人看過」。

二十個月

2024 年 12 月之後有什麼變化?

有三件事,沒有一件是複現。第一,文件變了。Anthropic 現在描述的是 ClaudeBot 用於訓練、Claude-User 用於使用者觸發的抓取、Claude-SearchBot 用於搜尋品質,該頁最後更新於 2026 年 4 月 7 日。7 Google 的生成式 AI 指引最後更新於 2026 年 7 月 10 日,那句關於處理 JavaScript 中內容的話仍然在。3 沉默那一側的每一處新增都保持了沉默,所以這份沉默是擴大了,而不是被補上了。

第二,來了一整類新的客戶端。研究進行時,代理型瀏覽器還不是大眾市場產品,如今它已由樣本中的兩家公司推出。它們什麼都渲染,在存取日誌裡與 Chrome 無從分辨,而且能讀到本該被爬蟲層封鎖所保護的文字。9 任何說「AI 看不到你的 JavaScript」的建議,對愈來愈大的一部分 AI 流量來說已經是錯的。

第三,什麼都沒有被複現。本課程找不到第二份關於 AI 爬蟲渲染的日誌研究,沒有廠商證實或否認過這個結論,而更早那篇文章裡承諾的、針對 AI 廠商的後續也沒有出現。2 二十個月在這裡是很長的時間。正確的反應不是把結論翻過來,也不是繼續把它當成定論來引用。

單頁應用怎麼辦

如果你的網站是單頁應用,該怎麼辦?

重寫不是要求。要求要窄得多:讀者會引用的那些文字,必須出現在初始 HTML 回應裡。那項研究自己的建議就是這樣劃範圍的,它點名把主要內容、標題、描述、分類和導覽放到伺服器端渲染,同時把客戶端渲染留給計數器、小工具和互動增強。1

可迴旋的餘地比團隊以為的大,因為目標是回應主體,而不是渲染後的標記。同一篇文章指出,初始 HTML 回應裡的內容,包括 JSON 資料,仍可能被收錄,因為這些系統能解讀非 HTML 的內容。1 一個已經把頁面資料序列化進文件裡的框架,其實早就過了這道線,什麼都不用遷移。

所以先做那次抓取。用一個不執行 JavaScript 的普通命令列客戶端請求頁面,然後讀回傳的內容。如果標題、前兩段和站內連結都在,這個頁面的話題就此結束。如果拿到的是一個空容器加一個打包檔,你知道的就是按頁面而不是按整站計的問題。有一個團隊原本預期要遷移,把這套檢查跑遍整個行銷網站後發現:十四個關鍵頁面裡有十一個本來就把正文送了出來,而沒有送出來的那三個分別是價目表、對比表格和一篇客戶故事,也就是引擎最想引用的那三頁。

最省錢又有效的修法

  • 把承載你論點的那些頁面做預渲染或靜態生成,應用本體不動
  • 在動框架之前,先把頁面正文序列化進初始回應,HTML 或 JSON 都行
  • 在資源缺失時也能乾淨地渲染,也就是 Apple 文件所說的優雅降級5

不值得做的事

  • 嗅探 user agent 給機器人另發一版頁面:Google 稱動態渲染是權宜之計,而不是推薦方案4
  • 只憑一篇未被複現的部落格文章、而不是憑你自己跑過的抓取,就論證一次框架遷移
  • 在 robots.txt 裡封鎖自己的 JavaScript 和 CSS,這會打斷那兩家確實會渲染的引擎
一次未被複現的測量能確立什麼,又不能確立什麼

它能確立的只有這些:在那些資產上、在那個月裡,帶著那些 user agent 的請求沒有產生渲染信標。這是一個真實的觀察,也是迄今任何人公開過的最好證據。它不能確立的是:那些爬蟲沒有渲染器、這個結論在 2026 年仍然成立、它對廠商後來新增的 token 成立,或者它在那一家託管網路之外成立,而該網路裡被取樣的最大資產,正好是這家廠商自己維護的框架的文件站。這裡的利害關係值得說明,但不必當成一票否決:發布方賣的就是伺服器端渲染,而這個結論推薦的正是伺服器端渲染。第一方日誌資料在這裡依然是正確的證據;只是一篇沒有寫明樣本量、也沒有寫明時間窗的部落格文章,還不足以構成那樣的證據。

產品在哪裡派得上用場,在哪裡派不上

這一頁上的事沒有一件需要軟體。檢查是每頁一條指令,修復是你自己團隊掌握的一個建置期決策。Bavior 不爬你的網站,不渲染頁面,也無法告訴你某個引擎有沒有執行你的打包檔;沒有任何工具做得到,因為引擎不會回報這件事。它做的事在下游:按排程把一組固定的 prompt 跑遍五個引擎,並記錄每條答案引用了哪些來源,你據此才會知道把正文搬進初始回應之後,被點名的人有沒有改變。當被引用的來源是一串正在進行的討論串時,它會用你掌控的帳號草擬一則回覆,任何內容送出之前都要先由你審核。免費 AI 能見度檢測免費 GEO 健檢不需要付費方案;付費方案為按月付費每月 $99 起,或按年付費每月 $79.17(截至 2026 年 8 月 30 日)。

出處,全部核查於 2026 年 8 月 30 日
  1. Zecchini、Moore、Ubl、Siddle,《The rise of the AI crawler》,Vercel 與 MERJ,2024 年 12 月 17 日(唯一一份公開測量;第一方日誌資料;未寫明日曆時間窗):vercel.com/blog/the-rise-of-the-ai-crawler
  2. Zecchini、Moore 等,《How Google handles JavaScript throughout the indexing process》,Vercel 與 MERJ,2024 年 7 月 31 日(信標方法;Googlebot,2024 年 4 月 1 日至 30 日,逾 37,000 個配對頁面):vercel.com/blog/how-google-handles-javascript-throughout-the-indexing-process
  3. Google Search Central,《Google’s Guide to Optimizing for Generative AI Features on Google Search》,最後更新於 2026 年 7 月 10 日(JavaScript 處理;第一方):developers.google.com/search/docs/fundamentals/ai-optimization-guide
  4. Google Search Central,《Dynamic rendering as a workaround》,最後更新於 2025 年 12 月 10 日(第一方):developers.google.com/search/docs/crawling-indexing/javascript/dynamic-rendering
  5. Apple,《About Applebot》(瀏覽器渲染、被封鎖的資源、優雅降級;第一方):support.apple.com/en-us/119829
  6. OpenAI,爬蟲與機器人文件(四個 token;整頁沒有任何關於渲染的表述;第一方):developers.openai.com/api/docs/bots
  7. Anthropic,《Does Anthropic crawl data from the web?》,更新於 2026 年 4 月 7 日(三個機器人;沒有關於渲染的表述;第一方):support.claude.com/en/articles/8896518
  8. Perplexity,機器人文件(PerplexityBot 與 Perplexity-User;沒有關於渲染的表述;第一方):docs.perplexity.ai/guides/bots
  9. Chandrasekar 與 Jaźwińska,Tow 數位新聞中心,《How AI Browsers Sneak Past Blockers and Paywalls》,2025 年 10 月 30 日:cjr.org/analysis/how-ai-browsers-sneak-past-blockers-and-paywalls.php
常見問題

你想知道的,都在這裡。

我的單頁應用一定要整個重寫,才能被 AI 搜尋引用嗎?

幾乎肯定不必。要求是:讀者會引用的那些文字要出現在初始 HTML 回應裡,而不是整個應用都要伺服器端渲染。把承載論點的那幾個頁面做預渲染或靜態生成就滿足了;而 2024 年 12 月那項研究本身也明確把客戶端渲染保留給瀏覽計數器、小工具和互動增強,那些地方本來就沒有可引用的東西。

「AI 爬蟲看不到 JavaScript」這個說法成立嗎?

作為一句普遍結論並不成立。Google 和 Applebot 都在文件裡寫明會渲染,Gemini 跑在 Googlebot 的基礎設施上,而代理型瀏覽器是會執行一切的 Chromium 構建。這個說法源自 2024 年 12 月 17 日發表的一份基礎設施日誌研究,它在五個爬蟲家族身上都沒有觀察到執行。至今無人複現,那一組廠商也沒有一家在文件裡表過態。

我要怎麼測試頁面的正文在不在初始 HTML 回應裡?

用一個不執行 JavaScript 的普通命令列客戶端請求這個頁面,然後讀回傳的內容。如果標題、前兩段和站內連結都在,這個頁面的問題就此了結。如果你拿到的是一個空容器加一個腳本打包檔,那你就找到了一個真問題,而且是按頁面而不是按整站找到的。

既然代理型瀏覽器什麼都渲染,伺服器端渲染還重要嗎?

重要,因為這兩類客戶端讀你的網站是出於不同理由。代理型瀏覽器在一次工作階段裡渲染某個人指名要的那一個頁面。而爬蟲建的是決定你到底算不算候選的那個索引,並且量測到抓取量最大的那幾個爬蟲,正是沒有任何渲染文件的那幾個。把正文放進回應裡,兩者都涵蓋;只指望代理型渲染,涵蓋的只有那些本來就已經找到你的流量。

Bavior 編輯部

負責研究與維護 Bavior 關於 Reddit 行銷和 AI 搜尋可見度的所有內容。文中每一個數字都註明了來源出處與查證日期,所有外部連結均非聯盟推廣連結。

發現數字有誤?告訴我們,我們會重新查證:support@bavior.com

你的文字要麼在 HTML 裡,
要麼就只是一個猜測。

免費試用