SKILL.md
唯讀
名稱
seo-sitemap
描述
分析現有 XML Sitemap 或使用業界範本產生新的 Sitemap。驗證格式、URL 和結構。當使用者提到「sitemap」、「產生 sitemap」、「sitemap 問題」或「XML sitemap」時使用。
Sitemap 分析與產生
模式 1:分析現有 Sitemap
在回報 sitemap 缺失前,先探索候選項目:
claude-seo run sitemap_discovery.py <url> --json
輔助工具會讀取 robots.txt 中每個有邊界的 Sitemap: 宣告,
透過共享的 SSRF 安全擷取層驗證跨主機目標,
並在宣告的 sitemap 過時或無效時,仍然探查常見路徑。
僅使用 found 中的條目;將宣告失敗保留為發現結果,
而不是僅憑 robots.txt 的一行就證明 sitemap 正常運作。
驗證檢查
- 有效的 XML 格式
- 每個檔案限制:≤50,000 個 URL 且 ≤50MB 未壓縮(以先達到者為準)
- 所有 URL 回傳 HTTP 200
<lastmod>準確:必須是有效的 W3C Datetime,且反映最後
一次重大內容變更(主要內容、結構化資料、連結,非
版權/範本編輯)。Google 僅在<lastmod>持續且可驗證地
準確時才採納,因此當數值可疑地一致或比頁面實際內容更新時,請提出警告。- 無已棄用的標籤:Google 忽略
<priority>和<changefreq> - Sitemap 在 robots.txt 中被引用
- 比較爬取頁面與 sitemap;標記遺漏的頁面
品質訊號
- 若超過 50k 個 URL,使用 sitemap 索引檔
- 按內容類型分割(頁面、文章、圖片、影片)
- Sitemap 中無非標準 URL
- Sitemap 中無 noindex 的 URL
- Sitemap 中無重新導向的 URL
- 僅使用 HTTPS URL(無 HTTP)
常見問題
| 問題 | 嚴重性 | 修正方式 |
|---|---|---|
| 單一檔案超過 50k 個 URL | 嚴重 | 使用 sitemap 索引分割 |
| 單一檔案未壓縮超過 50MB | 嚴重 | 使用 sitemap 索引分割 |
| 非 200 狀態碼的 URL | 高 | 移除或修正損壞的 URL |
| 包含 noindex 的 URL | 高 | 從 sitemap 移除 |
| 包含重新導向的 URL | 中 | 更新為最終 URL |
| 所有 lastmod 相同 | 低 | 使用實際修改日期 |
| 使用了 priority/changefreq | 資訊 | 可移除(Google 忽略) |
擴充 Sitemap(圖片 / 影片 / 新聞)
Google 記錄了三種子類型,各有其規則,請依子類型驗證:
- 圖片(
http://www.google.com/schemas/sitemap-image/1.1):僅剩兩個有效
標籤:<image:image>和<image:loc>(每個<url>最多 1,000 個<image:image>)。
<image:caption>/<image:geo_location>/<image:title>/
<image:license>已於 2022 年棄用,標記為資訊層級可移除。 - 影片:必填
<video:video>搭配<video:thumbnail_loc>、
<video:title>、<video:description>,以及<video:content_loc>或
<video:player_loc>;也支援 mRSS。將已棄用/移除的標籤
(<video:category>、<video:gallery_loc>、<video:price>、<video:tvshow>、
player autoplay/allow_embed)標記為資訊層級可移除;在引用移除日期前,請重新檢查 Google 文件。 - 新聞:每個檔案最多 1,000 個
<news:news>(非 50,000 個);僅包含
最近 2 天內的文章;必填<news:publication>/<news:name>/
<news:language>/<news:publication_date>/<news:title>;透過
Search Console 或 robots.txt/sitemap 索引提交/發現;在相關情況下,僅使用 Publisher Center
進行出版管理。當偵測到news:命名空間時,將通用的 50k 檢查覆寫為 1,000 的上限。
模式 2:產生新的 Sitemap
流程
- 詢問業務類型(或從現有網站自動偵測)
- 從
../seo-plan/assets/目錄載入業界範本 - 與使用者互動規劃結構
- 套用品質關卡:
- ⚠️ 30 個以上地點頁面時發出警告(要求 60% 以上獨特內容)
- 🛑 50 個以上地點頁面時強制停止(需要提供理由)
- 產生有效的 XML 輸出
- 以先達到者為準進行分割:50,000 個 URL 或 50MB 未壓縮,並附上 sitemap 索引
- 產生 STRUCTURE.md 文件
安全的程式化頁面(可大規模使用)
✅ 整合頁面(附有實際設定文件)
✅ 範本/工具頁面(附有可下載內容)
✅ 詞彙表頁面(200 字以上的定義)
✅ 產品頁面(獨特規格、評論)
✅ 使用者個人檔案頁面(使用者產生內容)
有懲罰風險(避免大規模使用)
❌ 僅更換城市名稱的地點頁面
❌ 沒有產業特定價值的「最佳 [工具] 給 [產業]」
❌ 沒有真實比較資料的「[競爭對手] 替代方案」
❌ 未經人工審查且無獨特價值的 AI 生成頁面
Sitemap 格式
標準 Sitemap
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>https://example.com/page</loc>
<lastmod>2026-02-07</lastmod>
</url>
</urlset>
Sitemap 索引(超過 50k 個 URL 時使用)
<?xml version="1.0" encoding="UTF-8"?>
<sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<sitemap>
<loc>https://example.com/sitemap-pages.xml</loc>
<lastmod>2026-02-07</lastmod>
</sitemap>
<sitemap>
<loc>https://example.com/sitemap-posts.xml</loc>
<lastmod>2026-02-07</lastmod>
</sitemap>
</sitemapindex>
錯誤處理
- URL 無法連線:回報 HTTP 狀態碼,並建議檢查網站是否正常運作
- 找不到 Sitemap:執行
sitemap_discovery.py,僅在其found清單在檢查過宣告和常見候選項目後仍為空時,回報「找不到」 - 無效的 XML 格式:回報具體的解析錯誤,附上行號
- 偵測到速率限制:退避並回報部分結果,附上關於重試時機的備註
輸出
分析模式
VALIDATION-REPORT.md:分析結果- 問題清單,附嚴重性
- 建議
產生模式
sitemap.xml(或分割檔案與索引)STRUCTURE.md:網站架構文件- URL 計數與組織摘要






