GEO 稽核 — 生成式引擎最佳化稽核
目的
對 asdlc.io 程式碼庫執行全面的生成式引擎最佳化(GEO)稽核。GEO 是一種最佳化網路內容的做法,讓 AI 系統(ChatGPT、Claude、Perplexity、Gemini 等)能夠發現、理解、引用並推薦內容。
ASDLC.io 是一個出版者 / 知識庫網站 — 一個靜態 Astro 網站,記錄了 Agentic SDLC 模式。稽核重點在於內容、結構化標記與技術基礎設施在多大程度上支援 AI 引用與推薦。
網站類型: 部署於 Netlify 的靜態 Astro 5.x 網站
網域: https://asdlc.io
內容模型: 三個集合(concepts、patterns、practices)並具備 MCP 伺服器暴露
範圍
- 涵蓋範圍: 稽核 AI 可引用性、技術 GEO 基礎設施、E-E-A-T、結構化標記/結構化資料及 MCP 最佳化;產生
docs/reports/GEO-AUDIT-REPORT.md。 - 不涵蓋範圍: 實作程式碼或內容變更(
dev)、修改規格(spec)、發布或推送(ship)。
稽核工作流程
階段 0:即時網站現狀確認
在深入研究原始碼之前,先擷取即時網站以驗證 AI 爬蟲實際看到的內容。這有助於找出建置階段的錯誤,即原始碼看似正確但渲染輸出已損壞的情況。
步驟 1:擷取關鍵頁面
使用 WebFetch / HTTP 檢索來檢查來自 https://asdlc.io 的渲染 HTML,針對這些頁面:
- 首頁(
/) - 每個集合中的一篇文章(例如
/concepts/agentic-sdlc、/patterns/的第一個列出項目、/practices/的第一個列出項目) /robots.txt/sitemap-index.xml(或/sitemap.xml)/llms.txt
每次擷取強制執行 30 秒的超時限制。如果即時網站無法連線,則記錄失敗並僅以程式碼庫分析繼續。
步驟 2:渲染輸出驗證
對於每個擷取的頁面,提取並記錄:
- 實際的
<title>和<meta name="description">— 它們是否與原始碼的意圖相符? - JSON-LD 區塊 — 解析每個
<script type="application/ld+json">,並驗證渲染 HTML 中實際存在的結構化標記類型和欄位。 - Open Graph 標籤 — 提取
og:title、og:description、og:image、og:url、og:type。 - 標準 URL —
<link rel="canonical">是否正確解析? - 標題結構 — 是否確實只有一個
<h1>?標題層級是否合理? - 內容可訪問性 — 主要內容是否位於語義 HTML(
<article>、<main>、<section>)中,還是深埋在 JS 渲染的 div 中? - 回應標頭 — 記錄
X-Robots-Tag、Cache-Control以及任何與 AI 相關的標頭。
步驟 3:原始碼 vs. 渲染差異比對
標記原始碼定義與渲染輸出之間的任何差異:
- 元件中定義的結構化標記但未在頁面上渲染
- Frontmatter 中的描述未出現在渲染的
<head>中 - Sitemap 中列出的頁面回傳 404,或應該列出但遺漏的頁面
robots.txt指令與標頭配置不符
將所有差異記錄下來,以在最終報告的專屬「原始碼 vs. 渲染」章節中呈現。
階段 1:程式碼庫深度分析
分析原始碼中所有無法從渲染輸出看到的內容 — 內容品質、關係密度、MCP 內部結構、所有頁面的結構化標記完整性。
步驟 1:內容庫存
- 使用
list_articles取得完整的文章清單。 - 讀取
src/content/config.ts以了解結構化標記和 frontmatter 欄位。 - 使用 glob 搜尋
src/content/**/*.{md,mdx}以計算內容檔案總數。 - 對於每個集合(concepts、patterns、practices),記錄:
- 文章總數與狀態分佈(Live、Experimental、Draft)
- 字數抽樣(每個集合讀取 3-5 篇文章)
- Frontmatter 完整性(description、tags、relatedConcepts 等)
步驟 2:技術基礎設施掃描
- 讀取
public/robots.txt— 檢查 AI 爬蟲指令(GPTBot、ClaudeBot、PerplexityBot 等) - 檢查是否存在
public/llms.txt或public/.well-known/llms.txt。 - 讀取
astro.config.mjs— 檢查 sitemap 整合、網站 URL、輸出配置。 - 讀取
src/layouts/BaseLayout.astro— 檢查 meta 標籤、結構化資料注入點。 - 讀取
src/components/SEOMetadata.astro— 稽核 Open Graph、Twitter Cards、標準 URL。 - 檢查 astro 配置中的 sitemap 整合。
- 驗證 MCP 伺服器設定:讀取
netlify/edge-functions/mcp.ts或同等檔案。
步驟 3:結構化標記與結構化資料掃描
- 在所有
.astro檔案中搜尋application/ld+json— 編錄所有 JSON-LD 區塊。 - 搜尋 schema.org 類型:Article、TechArticle、WebSite、Organization、BreadcrumbList、FAQPage、HowTo。
- 讀取任何結構化標記生成元件或工具。
- 檢查文章頁面、索引頁面和首頁上是否存在結構化標記。
階段 2:並行分析
根據 5 個核心類別分析收集到的資料,並計算分數(0-100)以及發現:
- AI 可引用性分析(權重:30%) — 段落自包含性、答案區塊密度、定義清晰度、結構可導航性。
- 內容 E-E-A-T 品質(權重:25%) — 歸因品質、引用密度、內容深度、新鮮度、權威性信號。
- 技術 GEO 基礎設施(權重:15%) — 爬蟲存取、可發現性信號、渲染方法、MCP 暴露。
- 結構化標記與結構化資料(權重:15%) — 結構化標記覆蓋率、類型多樣性、欄位完整性、驗證正確性。
- 知識庫與 MCP 最佳化(權重:15%) — MCP 完整性、清單品質、關係密度、代理可導航性。
階段 3:分數彙總與報告
計算複合 GEO 分數:
GEO_Score = (Citability * 0.30) + (EEAT * 0.25) + (Technical * 0.15) + (Schema * 0.15) + (MCP * 0.15)
根據既定的標準報告範本產生 docs/reports/GEO-AUDIT-REPORT.md。
$ARGUMENTS