建立並提交 Sitemap

本頁說明如何建立 Sitemap,以及如何讓 Google 存取 Sitemap。 進一步瞭解 Sitemap

  1. 決定要使用的 Sitemap 格式
  2. 建立 Sitemap,可以採取自動建立或手動建立。
  3. 將 Sitemap 加入 robots.txt 檔案,或是直接提交到 Search Console,讓 Google 存取您的 Sitemap

Sitemap 格式

Google 支援多種 Sitemap 格式:

Google 支援所有格式的標準 Sitemap 通訊協定,但目前不支援在 Sitemap 中使用 <priority> 屬性。

不論採用何種格式,單一 Sitemap 在未壓縮時的檔案大小上限為 50 MB,且最多只能包含 50,000 個網址。如果您的檔案較大或網址數量較多,必須將網址清單分割成數個 Sitemap。此時,您可以選擇建立 Sitemap 索引檔,也就是指向 Sitemap 清單的檔案,然後直接將這個索引檔案提交給 Google。 當然,您也可以選擇提交多個 Sitemap 和/或 Sitemap 索引檔。

XML

以下是相當基本的 XML Sitemap,只包含單一網址的位置:

<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
  <url>
    <loc>http://www.example.com/foo.html</loc>
    <lastmod>2018-06-04</lastmod>
  </url>
</urlset>

您可以在 sitemaps.org 找到更複雜的範例和完整說明文件。

您可以參考指定其他語言版本網頁的 Sitemap 範例,以及新聞、圖片或影片檔案的 Sitemap 範例。

RSS、mRSS 和 Atom 1.0

如果您的網誌含有 RSS 或 Atom 動態消息,您可以透過 Sitemap 提交動態消息的網址。 大多數網誌軟體均可為您建立動態消息,不過需要注意的是,這類動態消息只會針對最近的網址提供資訊。

  • Google 接受 RSS 2.0 和 Atom 1.0 動態消息。
  • 您可以使用 mRSS (媒體 RSS) 動態消息將網站中影片內容的詳細資料提供給 Google。

文字

如果您的 Sitemap 中只有網頁網址,可使用簡單的文字檔案將網址提供給 Google。在這個檔案中,請將每個網址分行列出,例如:

http://www.example.com/file1.html
http://www.example.com/file2.html

文字檔 Sitemap 規範

  • 檔案需使用 UTF-8 編碼。
  • 請勿在 Sitemap 檔案中加入網址以外的任何內容。
  • 文字檔沒有一定的命名規則,不過必須使用 .txt 副檔名,例如 sitemap.txt。

針對其他媒體類型使用 Sitemap 擴充元素

Google 支援以下媒體類型的 Sitemap 擴充語法。您可以使用這些擴充元素描述您網站上的影片檔、圖片和其他不易剖析的內容,協助 Google 提升為這些資源建立索引的效能。

Sitemap 通用規範

  • 使用一致且完整的網址。Google 會完全按照列出的網址進行檢索。 舉例來說,如果您的網站位於 https://www.example.com/,請勿將網址指定為 https://example.com/ (缺少 www) 或 ./mypage.html (相對網址)。
  • 您可以在網站的任何位置張貼 Sitemap,但 Sitemap 的作用範圍僅限於上層目錄的子系。因此,建議您將 Sitemap 張貼在網站根目錄,這樣便能涵蓋網站上的所有檔案。
  • 請勿在 Sitemap 中加入網址的工作階段 ID,以免系統重複檢索這些網址。
  • 使用 hreflang 註解將網址的替代語言版本告知 Google
  • Sitemap 檔案必須使用 UTF-8 編碼,並且適當逸出網址
  • 將大型 Sitemap 分割成數個較小的 Sitemap:每個 Sitemap 檔案最多只能包含 50,000 個網址,且壓縮前的檔案大小不得大於 50 MB。使用 Sitemap 索引檔,在其中列出所有個別 Sitemap 並提交給 Google,不要分別提交各個 Sitemap。
  • Sitemap 中只能列出標準網址。如果網頁有兩個版本,您只能將希望出現在搜尋結果中的版本列在 Sitemap 中。舉例來說,假如您的網站有 www 和非 www 兩個版本,請先決定要將哪個版本做為首要網站,並在其中張貼 Sitemap,然後在另一個網站中新增 rel=canonical,或將該網站重新導向至首要網站。
  • 如果行動版和電腦版網頁的網址不同,建議只在 Sitemap 中指向其中一種版本。不過,如果想要同時指向這兩個網址,請為網址加上註解以指明電腦版和行動版。
  • 使用 Sitemap 擴充元素指向其他媒體類型,例如影片、圖片和新聞。
  • 如果您針對不同語言或地區提供替代網頁,可以在 Sitemap 或 HTML 標記中使用 hreflang 指定替代網址。
  • 非英數字元和非拉丁字元。 Sitemap 檔案請務必使用 UTF-8 編碼,您通常可以在儲存檔案時指定這種編碼格式。與所有 XML 檔案一樣,下表所列字元的資料值 (包括網址) 都必須使用實體逸出碼。Sitemap 只能包含 ASCII 字元,不可包含延伸 ASCII 字元、特定控制碼或特殊字元,例如 *{}。如果您的 Sitemap 網址包含這些字元,您就會在新增網址時收到錯誤訊息。
    字元 符號 逸出碼
    & 符號 & &amp;
    單引號 ' &apos;
    雙引號 " &quot;
    大於 > &gt;
    小於 < &lt;

    此外,包含您 Sitemap 網址在內的所有網址,都必須以網址所在網路伺服器可解讀的方式編碼並逸出。不過,如果您使用任何類型的指令碼、工具或記錄檔來產生網址 (也就是除了手動輸入外的任何方式),這些方式通常都已為您完成這個動作。提交 Sitemap 後,如果收到錯誤訊息,指出 Google 找不到部分網址,請確定網址是否符合 RFC-3986 URI 標準、RFC-3987 IRI 標準及 XML 標準

    以下網址範例使用了非 ASCII 字元 (ü) 和需要實體逸出的字元 (&):

    http://www.example.com/ümlat.html&q=name

    以下是同一個網址,但使用了 ISO-8859-1 編碼 (供使用這種編碼的伺服器代管),且網址已逸出:

    http://www.example.com/%FCmlat.html&q=name

    以下是同一個網址,但使用了 UTF-8 編碼 (供使用這種編碼的伺服器代管),且網址已逸出:

    http://www.example.com/%C3%BCmlat.html&q=name

    以下是同一個網址,且實體已逸出:

    http://www.example.com/%C3%BCmlat.html&amp;q=name
  • 請注意,Sitemap 的作用是向 Google「建議」您認為重要的網頁,Google 未必會檢索 Sitemap 中的每個網址。
  • Google 會忽略 <priority><changefreq> 值。
  • Google 會使用 <lastmod>,前提是該值必須始終保持準確且可供驗證,例如將該值與網頁上次修改的版本進行比較時能得知目前的值較準確。
  • 網址在 Sitemap 中的位置並不重要,Google 不會按照網址在 Sitemap 中顯示的順序來檢索網址。

建立 Sitemap

建立 Sitemap 時,您會告訴搜尋引擎您偏好搜尋結果顯示哪些網址,這些網址就是所謂的標準網址。如果您在不同網址提供相同的內容,請選擇您偏好的網址並加入 Sitemap,而不要加入會導向相同內容的所有網址。

決定好要加入 Sitemap 的網址後,請依據網站的架構和大小,選用下列其中一種方法建立 Sitemap:

讓 CMS 為您產生 Sitemap

如果您使用 WordPress、Wix 或 Blogger 等 CMS,您的 CMS 很可能已建立 Sitemap 並提供給搜尋引擎。請嘗試搜尋 CMS 如何產生 Sitemap 的相關資訊,或是搜尋 CMS 未自動產生 Sitemap 時您該如何建立 Sitemap。舉例來說,如果您使用 Wix,請搜尋「wix Sitemap」。

如果您採用其他網站設定,則必須自行產生 Sitemap。

手動建立 Sitemap

如果 Sitemap 包含的網址少於幾十個,您或許可以手動建立 Sitemap。 如果是這種情況,請開啟 Windows 記事本Nano (Linux、MacOS) 等文字編輯器,並遵循 Sitemap 格式一節中說明的語法來建立 Sitemap。

您當然也可以手動建立大型 Sitemap,但過程會相當繁瑣。

自動產生 Sitemap

如果要建立的 Sitemap 包含的網址多於幾十個,您就需要讓系統自動產生 Sitemap。雖然能產生 Sitemap 的工具有許多種,不過還是建議使用您的網站軟體自動產生。舉例來說,您可以從網站資料庫中擷取網站的網址,然後將這些網址匯出至畫面或網路伺服器上的實際檔案。請洽詢您的開發人員或伺服器管理員,進一步瞭解這個解決方案。如果需要程式碼方面的建議,請查看我們舊版的第三方 Sitemap 產生器清單。

提醒您,單一 Sitemap 的檔案大小不得超過 50 MB。 進一步瞭解如何管理大型 Sitemap

將 Sitemap 提交給 Google

Google 不會在每次檢索網站時檢查 Sitemap。除非您透過連線偵測 (ping) 告知我們 Sitemap 有異動,否則我們只會在首次偵測到 Sitemap 時進行檢查。如果您並未新增或更新 Sitemap,請勿要求 Google 檢查 Sitemap;也不要重複提交相同的 Sitemap 或為其執行連線偵測 (ping)。

假如 Sitemap 中有經過更新的網頁,請用 <lastmod> 欄位標記這些網頁。其他 XML 檔案也有相似欄位,例如 Atom XML 的 <updated>。您也可以參閱相關說明,瞭解如何計算這個日期。

您可以透過下列幾種方式讓 Google 存取您的 Sitemap:

  • 透過 Sitemap 報告提交 Sitemap
  • 使用連線偵測 (ping) 工具。在瀏覽器或指令列中對以下網址傳送 GET 要求,並在其中指明 Sitemap 的完整網址。請務必確保 Sitemap 檔案可供存取:
    https://www.google.com/ping?sitemap=FULL_URL_OF_SITEMAP

    範例:

    https://www.google.com/ping?sitemap=https://example.com/sitemap.xml
  • 在 robots.txt 檔案中任一處插入以下這行指令,並在其中指明 Sitemap 的存取路徑。我們會在下次檢索您的 robots.txt 檔案時找到 Sitemap:
    Sitemap: https://example.com/my_sitemap.xml
  • 如果您的 Sitemap 採用 Atom/RSS,且您想將變更播送到 Google 以外的搜尋引擎,請使用 WebSub

排解 Sitemap 問題

請參閱 Sitemap 疑難排解指南