# AI Search Check

> 輸入一個網址，逐一檢查各家 AI 爬蟲的 robots.txt 判定、llms.txt、Markdown 版、sitemap、JSON-LD、標題結構、可引用性，以及內容是不是要靠 JS 才看得到。

- URL: https://bytescope.dev/zh-Hant/ai-search-check/
- Locale: zh-Hant · Also: [en](https://bytescope.dev/en/ai-search-check.md) · [ja](https://bytescope.dev/ja/ai-search-check.md)
- Runs: 網址會交給我們的 Worker 代抓，評分在你的瀏覽器裡算。除了成功／失敗的匿名次數，什麼都不存。
- Requires: Any modern browser (Chrome, Edge, Firefox, Safari), desktop and mobile.
- Updated: 2026-09-08

## What it does

AI 回答引擎要引用一個頁面之前，會先在意三件事：爬蟲抓不抓得到、不跑 JavaScript 讀不讀得到內容、裡面有沒有值得引用的具體事實。貼上網址，這個工具就把這三件事拆成 10 項檢查，給你一個 100 分制的分數。每一項都寫清楚「現況」「為什麼重要」「怎麼改」，還附上可以直接貼進 `robots.txt`、`llms.txt` 或 `<head>` 的片段。

### 檢查哪些東西

`robots.txt` 依 RFC 9309 的比對規則，逐一判定 `GPTBot`、`OAI-SearchBot`、`ChatGPT-User`、`ClaudeBot`、`Claude-User`、`PerplexityBot`、`Google-Extended`、`Applebot-Extended`、`CCBot`、`Bingbot`。擋掉訓練用的爬蟲算是正當選擇；擋到搜尋用或使用者觸發的爬蟲才會判不及格，因為讓你從 AI 回答裡消失的是這些。另外也會讀 `/llms.txt` 並測試前 10 個連結、找這一頁的 Markdown 版（`.md`、`index.md`，或 `rel="alternate" type="text/markdown"` 連結）、從 sitemap 抽 5 個網址確認、列出 JSON-LD 型別和缺了哪些必填欄位，再看標題階層、狀態碼、轉址、`noindex` 與 canonical。

十項檢查下面還有一節選用的「問題相關度」，不計入總分。輸入最多五個讀者可能會問的問題，工具會依標題把頁面切成段落，用開源的向量模型 EmbeddingGemma 2 把每一段和每個問題轉成向量，列出每題最接近的三段和分數；如果最高分的段落只比全頁中位數高不到 0.05，會標出「沒有哪一段明顯比其他段更貼近這個問題」。這是用開源模型模擬檢索，不是 Google、ChatGPT、Perplexity 實際用的模型，所以分數只能拿來比較同一頁的不同段落。排序看的是意思接不接近，不是真的讀懂內容，很抽象的詞效果會比較差。第一次使用要下載約 234 MB 的模型，之後會留在瀏覽器裡；需要支援 WebGPU 的瀏覽器，也就是桌機版 Chrome、Edge，Safari、Firefox 和手機瀏覽器都還沒測過。頁面跟上面的檢查一樣透過我們的 Worker 抓取，轉成向量則是在你的瀏覽器裡做。只分析抓到的這一頁，不是整個網站。

### 不做的事

只查你輸入的這一頁，不會爬整個網站。就跟大多數 AI 爬蟲一樣，我們不跑頁面的 JavaScript，所以「內容要不要靠 JS」是從原始 HTML 推估的：看得到的字數、script 的份量，以及 `#root`、`#__next` 這類空的掛載點。hreflang 也只查本頁（有沒有指向自己、跟 `<html lang>` 一不一致、代碼合不合法）；其他語言版本有沒有指回來，要把每一頁都抓下來才知道，這裡不做。可引用性是用數字、日期、表格、定義句對上行銷形容詞來計數的啟發式指標，不是在評文章寫得好不好。

### 抓取是怎麼運作的

瀏覽器沒辦法直接讀別人網站的頁面，所以網址會交給我們的 Cloudflare Worker 代抓。Worker 會在整體 8 秒的期限內，抓頁面本身、`robots.txt`、`llms.txt`、sitemap 和 Markdown 候選，最多跟 3 次轉址、每個回應上限 2 MB、不帶 Cookie，並拒絕私有與本機位址，包括會解析到這些位址的主機名稱。Worker 只把原始回應交回來，評分在你的瀏覽器裡算；頁面內容一律不存，只留下「成功或失敗」的匿名次數。

## Limits

Does not crawl a whole site, does not run the page's JavaScript, and does not verify hreflang pages point back. It checks one URL, fetched through our Worker; nothing is stored beyond an anonymous success or failure count.

## FAQ

### 我的網站有沒有擋 GPTBot？

跑一次檢查，打開 robots.txt 那張卡片：每個 AI 爬蟲是允許還是擋掉、由哪條規則決定，都列在上面。`GPTBot` 是 OpenAI 的訓練用爬蟲；ChatGPT 搜尋用的是 `OAI-SearchBot`，使用者要求去抓的則是 `ChatGPT-User`，所以只擋 `GPTBot` 並不會讓你從 ChatGPT 的回答裡消失。

### ChatGPT 有沒有收錄我的網站？

OpenAI 的索引外人看不到，這個工具也不會假裝看得到。它查的是「能不能被收錄」的條件：`OAI-SearchBot` 和 `ChatGPT-User` 有沒有被允許、頁面是不是回 200 而且沒有 `noindex`、內容是寫在 HTML 裡，還是要等 JavaScript 畫出來。

### 分數是怎麼算的？

每一項有各自的權重：robots.txt、可引用性、JS 依賴各 15；llms.txt、sitemap、結構化標記、標題結構各 10；Markdown 版、回應、語系各 5。通過算滿分、需要改善算一半、不及格算 0，沒辦法檢查的項目不列入總分。

### 一定要有 llms.txt 嗎？

沒有任何搜尋引擎要求它。這是 llmstxt.org 提出的慣例，用一份簡短的 Markdown 目錄列出網站的重點頁面，有些 AI 工具會去讀。在這裡少了它會扣 100 分中的 10 分；想做一份的話，llms.txt 產生器可以直接從 sitemap 產出來。

### 為什麼我用 JavaScript 做的網站分數這麼低？

大多數 AI 爬蟲不跑 JavaScript。如果伺服器送出來的只有空的 `#root` 加一大包 bundle，爬蟲幾乎看不到任何文字。改用伺服器端渲染或靜態匯出，內容就會在 HTML 裡。這項檢查只讀原始 HTML，所以你看到的就是這類爬蟲看到的樣子。

### 我查的網址會被存下來嗎？

不會。Worker 抓完就把回應交給你的瀏覽器，自己什麼都不留；分析事件只記錄這次檢查成功還是失敗。Worker 對每個 IP 位址有次數限制，也會拒絕私有位址，以及會解析到私有位址的主機名稱。

### 怎麼知道我的頁面有沒有回答使用者的問題？

用檢查卡片下面的「問題相關度」。輸入問題後，它會列出這一頁意思最接近的三個段落和分數；如果沒有哪一段明顯比其他段落更相關，也會特別標出來。這只能看出檢索系統最可能挑中哪一段，不代表 AI 一定會引用你：分數來自開源模型，不是 Google、ChatGPT 或 Perplexity 用的模型，而且只能在同一頁裡互相比較。需要 WebGPU（桌機版 Chrome 或 Edge），第一次使用要下載約 234 MB。

## Related tools

- [llms.txt Generator](https://bytescope.dev/zh-Hant/llms-txt-generator.md) — 從 sitemap 做出 llms.txt，每頁都帶標題和描述。
- [AI Crawler Log](https://bytescope.dev/zh-Hant/ai-crawler-log.md) — 從伺服器 log 看哪些 AI 爬蟲真的有來。
