Tenten AIGEO
回到部落格
技術實作手冊實作

提供 Markdown 版內容給 AI:/md 端點與純文字備援的實作方式

AI 引擎讀 HTML 時會先拆掉版面雜訊,過程常抽錯段落。本文說明如何為每個頁面提供 Markdown AI 內容端點與純文字備援:包含 /md 路由、內容協商、llms.txt 分層,以及用 curl 驗證 AI 爬蟲是否真的讀得到你的內容。

Tenten GEO 團隊發布於 2026-07-125 分鐘閱讀
一份發光的文件分裂成雜亂的 HTML 與乾淨的 Markdown 兩道資料流,流向遠處的 AI 光暈

AI 引擎讀你的網頁時,第一步是把 HTML 拆掉:丟掉導覽列、側欄、cookie 提示、追蹤腳本,只留下它判斷為主體的那段文字。這道拆解會出錯,而你看不到它在哪裡出錯。與其把 HTML 語意標記做到完美、賭模型每次都猜對版面,不如直接給它一份你已經整理好的 Markdown。同一份內容,去掉版面雜訊,模型不必猜,被抽取引用的準確度就穩定下來。

AI 為什麼寧願讀 Markdown,而不是你的 HTML

關鍵在雜訊比例。一個典型的 SaaS 產品頁,HTML 原始碼可能有六、七千個 token,真正的內容只占其中一小部分,其餘是 class 名稱、內嵌樣式、SVG 路徑與分析腳本。模型讀進去之後得先過濾這些,才能找到可以拿來回答問題的句子。Markdown 版本把同一段內容壓到原本的幾分之一,標題就是標題、清單就是清單、重點就是重點,結構本身承載語意,模型少了很多猜測空間。

這對答案引擎特別要緊。ChatGPT、Perplexity、Google AI Overviews 在生成回答時,會從候選頁面抽出可引用的段落,頁面越乾淨、段落越自足,被完整引用的機率越高。我們幫客戶處理過一種常見情況:文章本身寫得很好,卻被包在一層層 div 與客戶端渲染的元件裡,模型抓到的是半截句子。改用 Markdown 端點後,同一段內容能被整段取用,引用時也不會斷在奇怪的位置。

/md 端點:給每個頁面一份機器可讀的分身

做法是為每個公開頁面提供對應的 Markdown 版本,網址規則要可預測。常見兩種:在原網址後面加 .md(例如 /blog/aeo-basics 對應 /blog/aeo-basics.md),或在路徑後面加 /md。兩種都行,重點是規則一致、能被推測。Next.js 的 App Router 用一支 Route Handler 就能實作:建一個 route 檔,讀取跟 HTML 頁面同一份內容資料,輸出 Content-Type 為 text/markdown。

  1. 單一資料來源:HTML 頁面與 Markdown 端點讀同一份內容(MDX、資料庫或內容物件),不要維護兩份,否則遲早不同步。
  2. 在 HTML 的 head 放 link rel=alternate type=text/markdown,明確告訴爬蟲機器可讀版本在哪裡。
  3. Markdown 只保留正文:標題、段落、清單、表格、程式碼區塊與連結,拿掉導覽、頁尾、相關文章與行銷橫幅。
  4. 保留必要出處資訊:用檔案開頭的 front-matter 或第一行 H1 帶出標題、原始網址與更新日期,方便模型標註來源。
  5. 回傳正確的快取標頭,讓 CDN 也能服務這份端點,不必每次都回源運算。

用內容協商讓格式切換自動發生

除了固定網址,也可以讓同一個網址依請求者身分回不同格式。判斷依據有兩個:Accept 標頭與 User-Agent。當請求帶著 Accept: text/markdown,或 User-Agent 屬於已知的 AI 爬蟲(GPTBot、ClaudeBot、PerplexityBot、Google-Extended 等),就在中介層(middleware)把它改寫到 Markdown route;一般瀏覽器照舊拿到 HTML。人看到完整版面,模型拿到乾淨正文,網址從頭到尾沒變。

示意圖:同一個網址依請求者是瀏覽器或 AI 爬蟲,分別回傳 HTML 與乾淨的 Markdown
同一份內容、兩種格式:瀏覽器拿 HTML,AI 爬蟲拿乾淨的 Markdown。

純文字備援:當連 Markdown 都嫌多的時候

有些代理程式或抓取工具不解析 Markdown 語法,只吃純文字;也有些情境,例如語音助理的來源摘要,只需要最精簡的內容。這時準備一份 plain-text 備援就有意義。做法跟 Markdown 端點一樣,差別在輸出 text/plain:標題與段落用換行分隔,連結把網址用括號附在文字後面。層層備援的好處是,不論對方的解析能力落在哪個層級,都拿得到讀得懂的版本。

  • llms.txt:放在網站根目錄的 /llms.txt,用 Markdown 列出重要頁面與簡短說明,等於給模型一張導覽地圖。
  • llms-full.txt:把核心內容整篇串接成單一檔案,方便模型一次讀完,不必逐頁抓取。
  • 單頁 .md 端點:每篇文章、每個產品頁的機器可讀分身。
  • 純文字備援:最低限度的 text/plain,服務那些不解析 Markdown 的工具。

怎麼確認 AI 真的讀得到

上線後要驗證,別假設它自動生效。最快的方法是用 curl 模擬爬蟲請求:帶上 Accept: text/markdown 或設定 AI 爬蟲的 User-Agent,看回傳的是不是乾淨 Markdown、狀態碼是不是 200、快取標頭對不對。接著翻伺服器日誌,確認 GPTBot、ClaudeBot 這些爬蟲確實命中你的 Markdown 端點,而不是繼續抓那份雜訊很多的 HTML。isitagentready 這類工具也能快速幫你檢查頁面對代理程式的可讀性。

能不能被 AI 引用,取決於它能不能乾淨地讀到你的內容。給它一份 Markdown,等於把『猜對版面』這一步從流程裡整個拿掉。Tenten GEO

從一個頁面開始,不必一次改造整站

先挑流量最高、最想被 AI 引用的幾個頁面,替它們加上 .md 端點與純文字備援,量測 AI 爬蟲的抓取行為兩到四週,再決定要不要全站鋪開。這樣風險可控,也能用真實日誌說服團隊。如果你想先知道自己的頁面現在對 AI 到底有多可讀、缺口落在哪,Tenten GEO 的 30 天 GEO 審計會把這些機器可讀性問題逐頁盤點出來。想聊聊你的情況,可以到 /contact 預約一場 30 分鐘 GEO 診斷。

常見問題

什麼是 /md 端點?為什麼要提供 Markdown 版內容給 AI?
/md 端點是為每個頁面提供的機器可讀分身,輸出乾淨的 Markdown。AI 引擎讀 HTML 時要先過濾導覽、腳本等雜訊,容易抽錯段落;直接給 Markdown 能去掉版面雜訊,讓內容被完整、準確地引用。
用 User-Agent 對 AI 爬蟲回不同內容,會不會被 Google 當成 cloaking?
只要內容相同、只是格式不同,也就是 HTML 版與 Markdown 版是同一段文字,就不算隱藏式差異化。cloaking 指的是對爬蟲與使用者回傳實質不同的內容,那才違規。切換格式而非切換內容是安全的。
怎麼確認 AI 爬蟲真的讀到我的 Markdown 端點?
用 curl 帶上 Accept: text/markdown 或 AI 爬蟲的 User-Agent,確認回傳為乾淨 Markdown 且狀態碼 200;再查伺服器日誌,看 GPTBot、ClaudeBot 等爬蟲是否實際命中該端點,而非仍抓 HTML。

READY WHEN YOU ARE

想知道你的品牌在 AI 答案裡值多少?

30 分鐘 GEO 診斷,我們用你的實際提問,帶你看見在六大 AI 引擎裡的能見度缺口,以及補上它的優先順序。

預約 30 分鐘診斷