TL;DR
- 抓取層:先確認重要 URL 能被目標 crawler 發現並取得 200 回應,robots、權限、WAF 與 redirect 任何一關失敗,後面的內容優化都無法補救。
- 索引層:被抓取不等於被索引,noindex、canonical、重複頁、參數頁與 sitemap 訊號必須共同核對,不能只看 sitemap 是否提交成功。
- 渲染層:主要標題、正文、連結、FAQ 與商品資訊應在可取得的 HTML 中穩定出現,不能假設每個搜尋或 AI 系統都會完整執行 JavaScript。
- 理解層:可見文字、實體名稱、內容類型與結構化資料必須一致,語法通過不代表系統就能正確理解頁面。
- 引用層:技術基礎只能讓內容取得被理解與引用的資格,不能保證排名、AI citation 或商業成效。
一張 AI Search visibility 報表裡,最容易誤導團隊的欄位是「沒有被引用」。它描述的是結果,卻沒有說明問題發生在哪一層。頁面可能根本沒有被 crawler 取得,也可能被抓取後因 canonical 指向別處而沒有進入索引;還可能索引了空殼 HTML,真正的商品規格要等瀏覽器執行 API 才出現。
在參與客戶網站盤點時,會先把「看不到」改寫成可驗證的技術問題。AI Search 沒有讓 Technical SEO 消失;更務實的起點,是把抓取、索引、渲染、canonical、結構化資料與內容可存取性整理成有證據、owner 與驗收標準的診斷流程。
五個層次必須照相依關係檢查
技術盤點要按「可抓取、可索引、可渲染、可理解、可引用」前後排查,因為後一層建立在前一層之上。若 URL 回傳 403,先討論 FAQ schema 幾乎沒有意義;若 Google 選到另一個 canonical,改寫當前頁面的標題也未必能解決可見性問題。
| 層次 | 要回答的問題 | 最小驗收證據 |
|---|---|---|
| 可抓取 | 目標 crawler 能否發現 URL 並取得內容? | crawler 可存取、最終回應為預期狀態碼、沒有權限或 WAF 阻擋 |
| 可索引 | 平台是否允許並選擇這個 URL 進入索引? | 無意外 noindex、canonical 訊號一致、平台檢查結果指向預期 URL |
| 可渲染 | crawler 取得的頁面是否包含完整主要內容與連結? | 原始 HTML 與渲染結果的關鍵欄位可比對,JavaScript 錯誤有紀錄 |
| 可理解 | 系統能否辨識頁面主題、實體、關係與內容類型? | 標題、正文、連結與 markup 對同一事實表達一致 |
| 可引用 | 內容是否有資格與價值支持特定問題的答案? | 針對固定 query set 保存結果與引用位置,不把單次未引用當技術故障 |
這五層不是五個保證。Google 官方說明,搜尋與 AI features 沿用既有技術要求,符合要求仍不保證抓取、索引或顯示;OpenAI 也把 OAI-SearchBot 的搜尋發現用途與 GPTBot 的模型訓練用途分開。團隊要針對實際平台與 user agent 核對規則,不能把「允許一個 bot」寫成所有 AI 系統都會引用的承諾。
抓取先查入口、回應與阻擋層
抓取檢查的重點不是 robots.txt 有沒有檔案,而是重要 URL 從發現到回應的整條路徑是否暢通。我通常先選商品頁、分類頁、活動頁與知識文章各一組代表 URL,再用相同順序留下證據。
- 檢查 robots.txt 對 Googlebot、Bingbot、OAI-SearchBot、PerplexityBot 等目標 crawler 的實際規則,避免只看
User-agent: *就下結論。 - 檢查 robots meta 與 HTTP
X-Robots-Tag。robots.txt 管的是抓取;noindex管的是索引,而且 crawler 必須能取得頁面才看得到noindex。 - 保存 HTTP status 與 redirect chain。重要頁應回到預期的 200 URL;連續轉址、loop、soft 404、5xx 與不同裝置結果不一致都要單獨記錄。
- 用未登入狀態確認內容不受會員、地區、Cookie consent 或權限限制。若內容只有登入後可見,就不應假設公開 crawler 能取得。
- 對照 CDN、WAF、rate limit 與 bot mitigation log。瀏覽器開得起來,不代表 crawler 沒有收到 403、429 或 challenge page。
- 從首頁、分類頁或 topic hub 實際走到重要 URL,確認存在可爬的 HTML 連結。只在 sitemap 或前端搜尋框出現的孤兒頁,發現與重要性訊號都較弱。
OpenAI 最新 publisher 文件特別提醒,robots.txt 之外,WAF、CDN、authentication 與 rate limiting 都可能阻擋 crawler。這也是為什麼驗收不能只附一張 robots tester 截圖;工程 ticket 至少要包含測試 URL、user agent、時間、回應碼、response headers、redirect chain,以及相關 edge log。
索引要查平台選了哪個 URL
索引問題最常見的誤判,是把「已提交 sitemap」當成「已被索引」。Sitemap 是發現與偏好訊號,不是收錄保證;Google 也明確說明,sitemap 中的 canonical 偏好屬於較弱訊號,平台仍會根據內容與其他訊號選擇 canonical。
索引檢查應同時核對頁面的 robots meta、HTTP header、HTML canonical、redirect、站內連結、sitemap 與實際平台結果。電商網站尤其要注意排序、篩選、追蹤參數、分頁、相似商品與活動複製頁;若不同訊號各自指向不同 URL,平台選錯 canonical 並不意外。
我會要求索引 ticket 回答三件事:品牌想保留哪個 URL、目前各項訊號指向哪裡、平台實際選了哪一個 URL。修正後的 acceptance criteria 也不是「canonical tag 已上線」,而是原始碼、redirect、sitemap 與主要站內連結都一致指向預期版本,並在平台重新處理後保存檢查結果。
JavaScript 檢查要比較原始 HTML 與渲染結果
JavaScript 網站的風險不是「用了 JavaScript」,而是主要內容是否依賴不穩定的執行條件。Google 能渲染 JavaScript,但官方流程仍把 crawling、rendering 與 indexing 分成階段,也提醒 blocked resources、API 錯誤與不相容程式碼可能影響內容取得。其他搜尋或 AI crawler 的渲染能力與時程不應被假設成完全相同。
檢查時至少保存三份證據:初始 HTTP 回應的 HTML、一般瀏覽器完成渲染後的 DOM、平台 URL inspection 或 crawler 測試所看到的結果。接著逐項比對 H1、title、主要正文、商品名稱、價格或規格、FAQ、canonical 與內部連結。若初始 HTML 只有 root element,內容需等待 API、同意 Cookie 或 client-side route 才出現,就應把 API 回應失敗、console error、network waterfall 與缺少欄位的畫面一起放進 ticket。
管理上最穩健的做法,是讓關鍵事實與可爬連結在伺服器回傳或預渲染 HTML 中就存在,再用 JavaScript 增強互動。這不是要求所有網站改成純靜態頁,而是避免把搜尋可見性綁在使用者端執行成功這一個條件上。
內容可存取性比「畫面看得到」更嚴格
內容可存取性要檢查的是系統能否穩定取得完整文字與連結關係,不是人類操作幾次後是否看得到。重要資訊若藏在收合元件、頁籤、圖片、影片、登入牆、canvas,或點擊後才呼叫的 API,團隊要逐一確認未互動狀態下是否仍有可取得的文字替代與 HTML 關係。
例如,商品尺寸只印在圖片上,搜尋系統就難以把尺寸與商品實體穩定連結;FAQ 問題出現在 HTML,答案卻要點擊後才從 API 載入,也可能只留下半套內容。影片可以保留,但關鍵說明應有可讀文字;互動比較器可以保留,但核心規格不應只存在於 client-side state。
技術可存取與內容品質仍要分開。若系統已能取得完整內容,但頁面沒有回答使用者問題、事實過期或缺乏證據,owner 應從工程轉到內容或產品團隊。技術 SEO 的責任是確保內容有機會被取得與理解,不是替內容價值做保證。
結構化資料要和使用者看到的事實一致
結構化資料檢查不能停在「語法有效」。有效只表示格式可解析;是否符合平台支援規則、是否與頁面可見內容一致,以及是否正確描述實體與內容類型,才會影響辨識品質與風險。
商品價格、庫存、評分、作者、發布日期與 FAQ 若出現在 markup,就必須和頁面可見內容及後端事實一致。把已下架商品標成有庫存、把品牌自評寫成使用者評分,或在 JSON-LD 填入頁面不存在的 FAQ,都會建立錯誤訊號。Google 官方也明確表示,正確標記不保證顯示 rich result。
驗收時應把 schema validator、平台 rich result 測試、頁面可見內容與資料來源放在同一張檢查表。內容團隊負責確認事實,產品或資料 owner 確認來源,工程負責輸出與更新邏輯;不能把所有 schema 問題都丟給 SEO owner。
Sitemap、feed、lastmod 與站內連結是更新訊號
發現與更新要使用多個一致訊號,而不是尋找一個 AI 專用捷徑。XML sitemap 應只列可索引的 canonical URL,lastmod 應反映有意義的內容變更;RSS 或 Atom feed 可以協助支援它的平台發現近期更新,Bing 官方也接受 XML、RSS 與 Atom 等 sitemap 格式。IndexNow 能通知支援的搜尋引擎 URL 已新增、更新或刪除,但通知仍不等於保證收錄。
站內連結同樣重要。新文章若只出現在 feed,網站本身沒有任何分類頁、導覽或相關內容連到它,團隊失去的不只是 crawl path,也失去內容在網站架構中的關係。較好的驗收是:canonical URL 已進入 sitemap、更新時間可信、相關 feed 能讀取、站內有可爬連結,且平台後續能看到更新;不是「檔案已產生」就結案。
把工具結果改寫成可處理的故障票
有效的技術 SEO 專案,最小工作單位應是「症狀 → 證據 → 可能原因 → owner → 修正 → 驗收」。工具只是取得證據的方法,分數本身不能告訴團隊誰要改什麼。
| 欄位 | 應記錄的內容 | 範例 |
|---|---|---|
| 症狀 | 使用者或監測看到的結果 | 重要商品頁未被索引,AI Search query set 也未出現 |
| 證據 | 可重現的技術資料 | URL、時間、user agent、403 response、edge log、HTML 差異 |
| 可能原因 | 尚待驗證的假設 | WAF 將 crawler 判成自動化流量 |
| Owner | 有權修正的角色 | Infrastructure/Security owner |
| 修正 | 明確的設定或程式變更 | 調整規則並保留 rate limit 與安全邊界 |
| 驗收 | 可觀察的完成條件 | 指定 crawler 取得 200、主要 HTML 完整、log 無阻擋,平台重新處理 |
這個格式有兩個管理價值。第一,團隊不會因為「AI 看不到」就直接要求內容部門重寫文章;第二,工程也不會只交付「設定已修改」,卻沒有外部可觀察的結果。可能原因必須標成假設,驗收則必須是另一個人可以重現的證據。
一個電商盤點如何逐層排除問題
以下是一個依常見實務合成的匿名情境,不代表特定品牌成果。行銷團隊發現新品頁在多組 AI Search 問題中沒有出現,初步要求內容團隊增加 FAQ。SEO owner 沒有先改文案,而是從五層模型開始。
抓取層發現,一部分 crawler 對新品頁取得 403,但一般瀏覽器是 200;edge log 顯示 bot mitigation 規則誤判。修正後,crawler 能取得頁面。索引層再發現新品頁的 canonical 指向上一季活動模板,sitemap 與站內連結卻指向新品 URL;團隊統一訊號後提交重新處理。
渲染層接著發現,商品名稱已在初始 HTML,完整規格與 FAQ 卻要等 API 回應。工程改為讓核心規格在伺服器輸出,互動比較功能仍由 JavaScript 增強。理解層最後查到 JSON-LD 的庫存狀態來自舊 cache,和頁面可見狀態不一致,由產品資料 owner 修正更新邏輯。
完成這些工作後,團隊能證明頁面可抓取、canonical 一致、主要內容可取得、markup 與畫面相符。至於頁面是否被特定 AI Search 引用,仍要回到固定 query set 持續觀測;若技術條件都通過而內容仍未被採用,下一張 ticket 才應轉向問題對應、證據品質與內容治理。這個順序讓模糊的 visibility 問題,變成跨部門可以各自負責並共同驗收的工作。
Owner 分工要跟著證據走
跨部門協作的關鍵不是每個人都懂全部技術,而是每一層都有明確決策權。行銷與內容團隊定義重要頁面、目標 query 與預期事實;SEO owner 整合 crawl、index、render 與 citation 證據,安排優先級;產品與工程負責模板、資料、canonical 與渲染修正;Infrastructure 或 Security owner 處理 CDN、WAF 與 bot policy。
共同驗收時,不用「搜尋分數提高」作為唯一結論。應逐張關閉有可重現證據的 ticket,再分開觀察索引、自然搜尋、AI citation、referral 與商業轉換。只有這樣,技術修正、內容改善與平台波動才不會混成同一個 KPI。
AI Search 時代的技術 SEO,核心仍是讓正確內容能被正確系統穩定取得。把五個層次、六段故障票與跨部門 owner 建立起來,團隊就能知道下一步要修 robots、canonical、JavaScript、資料來源,還是內容本身,而不是對著一個「沒有被引用」的結果猜原因。
FAQ
AI Search 技術 SEO 應該先檢查什麼?
先確認重要 URL 對目標 crawler 可抓取,再依序檢查可索引、可渲染、可理解與可引用。最先保存 robots 規則、HTTP status、redirect chain、WAF log 與初始 HTML;抓取不通時,schema 或內容改寫都不是優先事項。
robots.txt 允許 crawler,就代表頁面會被 AI Search 引用嗎?
不代表。robots.txt 只處理特定 crawler 的抓取許可,頁面還要通過權限、WAF、索引、渲染、內容理解與答案選擇等環節。允許 OAI-SearchBot 或 PerplexityBot 有助於相應服務取得內容,但不能保證收錄、排名或引用。
Sitemap 提交成功,為什麼頁面還是沒有被索引?
Sitemap 是發現與 canonical 偏好訊號,不是索引保證。頁面仍可能有 noindex、錯誤 canonical、重複內容、低品質回應、權限阻擋或渲染問題;應對照平台實際選擇的 canonical 與 URL inspection 結果。
JavaScript 網站一定不利於 SEO 或 AI Search 嗎?
不一定。風險在於主要內容與連結是否必須依賴 client-side 執行、API、Cookie 或互動才出現。讓核心事實先存在於伺服器回傳或預渲染 HTML,再用 JavaScript 增強互動,通常更容易跨 crawler 穩定驗收。
結構化資料驗證通過,為什麼仍沒有 rich result 或 AI citation?
語法有效只表示 markup 可解析,不代表內容符合平台所有政策、與可見頁面一致,或足以支持特定答案。結構化資料應協助辨識實體與內容類型,但平台不保證 rich result,更不保證 AI citation。
技術問題修完後,如何驗收 AI Search visibility?
先用可重現證據驗收抓取、索引、渲染與資料一致性,再以固定 query set 記錄日期、平台、地區、答案與引用 URL。技術驗收與 citation 監測要分開,因為前者是網站可控制的條件,後者仍受平台與問題脈絡影響。
參考資料
- Google Search Central:Crawling and indexing topics
- Google Search Central:JavaScript SEO basics
- Google Search Central:Canonicalization
- Google Search Central:Build and submit a sitemap
- Google Search Central:Structured data general guidelines
- Google Search Central:AI features and your website
- OpenAI Help Center:Publishers and Developers FAQ
- OpenAI Developers:Overview of OpenAI Crawlers
- Bing Webmaster Tools:Webmaster Guidelines
- Bing Webmaster Tools:Sitemaps
- Bing Webmaster Tools:IndexNow
- Perplexity:Perplexity Crawlers
- RFC 9309:Robots Exclusion Protocol
- Schema.org:Documentation