網站地圖(sitemap.xml)編寫指南

一、什麼是 sitemap.xml?

sitemap.xml是XML 格式的網站頁面地圖檔案,用於向搜尋引擎(如 Google、Bing)傳遞網站的頁面結構、更新頻率、優先順序等資訊,幫助爬蟲高效發現並抓取頁面,是 SEO 基礎最佳化的關鍵環節。 參考依據:sitemaps.org 官方協議、Google 搜尋中心指南。

二、為什麼需要 sitemap.xml?

  1. 提升索引效率:明確告知搜尋引擎“哪些頁面值得抓取”,避免爬蟲遺漏深層頁、動態頁(如分頁、分類頁);
  2. 傳遞內容優先順序:透過 <priority>標註頁面重要性(如首頁=1.0,部落格列表=0.8);
  3. 支援富媒體:可嵌入圖片(<image:image>)、影片(<video:video>)等擴充套件資訊;
  4. 適配多語言/裝置:透過拆分或多名稱空間處理不同語言/移動端頁面。

三、基礎寫法:核心結構與元素

1. 基礎模板

需嚴格遵循 XML 語法,必選元素為 <urlset>(根節點)和 <loc>(頁面 URL),可選元素包括 <lastmod>(最後修改時間)、<changefreq>(更新頻率)、<priority>(優先順序)。

<?xml version="1.0" encoding="UTF-8"?>
<!-- 根節點:宣告名稱空間(基礎協議+擴充套件功能) -->
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
        xmlns:xhtml="http://www.w3.org/1999/xhtml"  <!-- 多語言/富媒體擴充套件 -->
        xmlns:image="http://www.google.com/schemas/sitemap-image/1.1"  <!-- 圖片擴充套件 -->
        xmlns:video="http://www.google.com/schemas/sitemap-video/1.1">  <!-- 影片擴充套件 -->

  <!-- 單個頁麵條目 -->
  <url>
    <!-- 必選:頁面絕對 URL(需用 https,避免相對路徑) -->
    <loc>https://example.com/</loc>
    
    <!-- 可選:最後修改時間(ISO 8601 格式,如 YYYY-MM-DD 或 YYYY-MM-DDThh:mm:ss+08:00) -->
    <lastmod>2024-05-20</lastmod>
    
    <!-- 可選:更新頻率(爬蟲參考值,非強制) -->
    <changefreq>daily</changefreq>
    
    <!-- 可選:優先順序(0.0-1.0,首頁建議 1.0,最低 0.1) -->
    <priority>1.0</priority>
    
    <!-- 擴充套件:多語言適配(xhtml 名稱空間) -->
    <xhtml:link rel="alternate" hreflang="zh-CN" href="https://example.com/" />
    <xhtml:link rel="alternate" hreflang="en" href="https://example.com/en/" />
    
    <!-- 擴充套件:圖片資訊(image 名稱空間) -->
    <image:image>
      <image:loc>https://example.com/images/logo.jpg</image:loc>  <!-- 圖片 URL -->
      <image:title>網站 Logo</image:title>  <!-- 圖片標題(可選) -->
    </image:image>
  </url>

  <!-- 更多頁麵條目... -->
</urlset>

2. 關鍵元素說明

元素是否必選說明
<loc>是頁面絕對 URL(必須包含協議 https://,禁止使用相對路徑如 /about)
<lastmod>否頁面最後修改時間(如 2024-05-20T14:30:00+08:00,精確到秒更利於爬蟲判斷)
<changefreq>否爬蟲參考的更新頻率(可選值:always/daily/weekly/monthly/yearly/never)
<priority>否頁面相對於網站的重要性(首頁=1.0,核心分類頁=0.8,普通詳情頁=0.6,最低 0.1)

四、進階技巧:應對複雜場景

1. 大網站拆分:使用 Sitemap Index

當 URL 數量超過 5 萬條或檔案大小超過 50MB​ 時,需用網站地圖索引檔案(.xml字尾,通常命名為 sitemap_index.xml)拆分多個子 sitemap:

<?xml version="1.0" encoding="UTF-8"?>
<!-- 索引檔案根節點 -->
<sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">

  <!-- 子 sitemap 1:首頁及核心頁面 -->
  <sitemap>
    <loc>https://example.com/sitemap-home.xml</loc>  <!-- 子 sitemap 地址 -->
    <lastmod>2024-05-20</lastmod>  <!-- 子 sitemap 最後更新時間 -->
  </sitemap>

  <!-- 子 sitemap 2:部落格文章 -->
  <sitemap>
    <loc>https://example.com/sitemap-blog.xml</loc>
    <lastmod>2024-05-19</lastmod>
  </sitemap>

  <!-- 更多子 sitemap... -->
</sitemapindex>

2. 排除無效頁面

嚴禁加入以下頁面,否則可能降低爬蟲信任度:

  • 登入/註冊頁、搜尋結果頁、404 錯誤頁;
  • 重複內容頁(如列印版、無實質內容的聚合頁);
  • 被 robots.txt禁止抓取的頁面(如 Disallow: /admin/)。

3. 動態內容處理

  • 分頁頁:如 https://example.com/blog?page=2,需確保 URL 無 session ID、引數穩定(避免 ?page=2&sid=xxx);
  • 分類/標籤頁:僅當內容有獨立價值(如聚合優質文章)時加入,空頁或重複內容頁需排除。

五、驗證與提交

1. 語法驗證

生成後需檢查 XML 格式是否正確,推薦工具:

2. 搜尋引擎提交

  • Google:透過 Search Console→「網站地圖」→ 輸入 sitemap.xml地址提交;
  • Bing:透過 Bing Webmaster Tools→「提交網站地圖」上傳;
  • 通用方式:在 robots.txt中新增 Sitemap: https://example.com/sitemap.xml(引導爬蟲主動發現)。

3. 監控與維護

  • 定期檢查 Search Console/Bing Webmaster Tools 中的「網站地圖狀態」,關注「無法抓取」「超時」等錯誤;
  • 內容新增/刪除後,及時更新 sitemap(可透過工具自動觸發更新,如 Yoast SEO)。

六、工具推薦(免手動編寫)

1. 自動生成工具

2. CMS 外掛(一鍵整合)

  • WordPress:Yoast SEO(自動生成並更新 sitemap,支援圖片/影片擴充套件);
  • Shopify:SEO Manager(內建 sitemap 功能,自動排除無效頁);
  • Hexo/Hugo:主題通常自帶 sitemap 生成外掛(如 Hexo 的 hexo-generator-sitemap)。

七、注意事項

  1. URL 規範:所有 <loc>必須為絕對 URL(如 https://example.com/page),禁止相對路徑(如 /page)或帶引數的臨時 URL;
  2. 編碼統一:檔案編碼需為 UTF-8(避免中文亂碼);
  3. 避免過度最佳化:<priority>不宜全部設為 1.0,<changefreq>需與實際更新頻率匹配(如靜態頁面用 yearly,而非 daily);
  4. 定期更新:至少每月檢查一次 sitemap,確保內容與網站實際頁面一致。

總結:sitemap.xml 的核心是「精準傳遞有效頁面資訊」。透過標準格式、合理擴充套件和工具輔助,可顯著提升搜尋引擎對網站的抓取效率,為 SEO 排名奠定基礎。