XML 網站地圖產生器會將一串絕對的 HTTP 與 HTTPS 頁面網址,轉換成一份符合標準的 XML 網站地圖檔,讓你可以直接發布。整個工作流程完全在瀏覽器中執行:貼上你的網址、可選擇套用共用的 lastmod、changefreq 或 priority 數值、產生 XML,然後下載 sitemap.xml 以便部署到你的網站。Yoast SEO 已經會自動為 WordPress 網站建立 XML 網站地圖,因此「如何在 Yoast 中建立 XML 網站地圖」這個實際問題其實有兩個答案:讓 Yoast 處理,或是在 Yoast 預設不合用時自行建立策展過的檔案。兩種做法採用同一套網站地圖協定,因此從產生器產生的手動建置檔案,在結構上與 Yoast 輸出的任何檔案完全相同,搜尋引擎讀取任何來源的方式也都一樣。

how to create xml sitemap in yoast
how to create xml sitemap in yoast

Yoast SEO 內建網站地圖功能的作用

Yoast SEO 自 5.x 版起就內建了 XML 網站地圖功能,位置在 SEO → General → Features。當你開啟 XML sitemaps 開關時,Yoast 會在 /sitemap.xml 註冊一個網站地圖索引(在某些設定中也會有 /sitemap_index.xml 鏡像),並為每種內容類型建立一個子網站地圖:文章、頁面、分類、標籤、作者,以及你啟用的任何自訂文章類型或分類法。外掛會透過查詢 WordPress 資料庫的已發布內容來決定收錄哪些網址,套用已儲存的標準網址,並略過它已知標記為 noindex 的項目。你可以到 SEO → General → XML sitemaps 調整輸出,切換文章類型、以 ID 排除特定文章,以及開啟或關閉作者或日期彙整頁。

這個外掛不會主動抓取,只會讀取 WordPress 資料庫,因此網站地圖反映的是爬蟲請求當下的文章資料表狀態。對多數 WordPress 網站來說,這就是「如何在 Yoast 中建立 XML 網站地圖」的實務答案:啟用該功能、確認你想要的類型,然後把產生的索引網址提交到 Search Console,或依 Google Search Central 網站地圖指南的建議列在 robots.txt 中。Yoast 遵循的 sitemaps.org 協定將 XML 檔定義為一份網址清單加上選擇性的中繼資料,這也正是 XML 網站地圖產生器在你手動貼上網址時所輸出的內容。

何時自訂 XML 網站地圖是更好的選擇

在某些情況下,Yoast 自動產生的網站地圖並不合適,而採取策展式的「網址清單轉 XML」工作流程反而更合理。在實際稽核中常會遇到以下三種情境:

  • 你希望單一份網站地圖同時收錄 WordPress 網址,以及位於文章迴圈之外、經過挑選的登陸頁、夥伴頁或 PDF 文件。
  • 你經營的是不使用 WordPress 的靜態或無頭網站,但仍想要一份符合協定的網站地圖。
  • 你正在稽核或搬遷網站,需要發布一份不會隨底層資料庫變動而改動的固定網站地圖。

每一種情境的目標都相同:交給搜尋引擎一份你已檢視過的乾淨網址清單,並用遵循 sitemaps.org 協定的 XML 包裝起來。XML 網站地圖產生器正是為了這種「清單轉 XML」的模式所設計,而建立 XML 網站地圖的實務指南則會逐步說明更完整的工作流程,包含稽核與提交步驟。

如何從網址清單建立網站地圖

依照下列步驟,將一份已檢視過的頁面網址清單,轉換成可部署到你網站上的單一標準化網站地圖檔。

  1. 在瀏覽器中開啟 XML 網站地圖產生器。不會上傳任何資料;此頁面直接在目前的分頁中執行。
  2. 在網址清單區域中,每行貼上一個絕對的 HTTP 或 HTTPS 頁面網址。同一檔案僅使用單一主機,例如全部條目都位於 example.com,或全部位於 example.com:8443。裸網域、相對路�、片段與認證資訊會被拒絕。
  3. 如果你想要僅含 loc 的網站地圖,請將選填的 lastmod、changefreq 與 priority 欄位留空。如果單一數值對每個網址都屬實(例如對部落格索引使用 weekly),則可填入。共用數值錯誤會比留空更糟。
  4. 點擊 Generate。工具會驗證每一行、以瀏覽器的 URL 解析器正規化網址、依首次出現順序去重、對資料進行 XML 跳脫,並在預覽中回報筆數與完成的 XML。
  5. 下載 sitemap.xml,並將其部署於所代表網站的根目錄,或放在你於網站地圖索引中引用的資料夾。當你編輯任何網址或選項時,下載連結會立即失效,因此若有變動請重新產生。

值得了解的協定規則與工具限制

sitemaps.org 協定將上限設為每個檔案 50,000 個網址與 50 MiB 未壓縮大小。XML 網站地圖產生器在�覽器中運作,因此採用更嚴格的整檔預算,以避免預�、Blob 與下載在龐大輸入時卡住。下表顯示實際限制與協定上限的比較,以及達到上限時的行為。

限制協定上限產生器上限達到上限時的行為
每個檔案的不重複網址數50,00010,000第 10,000 個網址會被接受;下一個不重複網址會使整次產生失敗。
未壓縮檔案大小52,428,800 位元組10,485,760 位元組(UTF-8 XML)恰好等於上限會被接受;再多一個位元組就會失敗。
序列化 location 長度2,047 個字元2,047 個字元正規化後長度超過 2,047 個字元的 location 會被拒絕。
輸入大小未指定5,000,000 個 UTF-16 碼元超過的輸入會在解析前被拒絕。

限制都是全有或全無:不會悄悄截斷、不會縮短預覽,而當你編輯任何網址或選項時,下載按鈕會立即失效。選填欄位也採取同樣嚴格的原則 — 錯誤的日期、拼錯的 changefreq,或是超出 0.0 到 1.0 範圍的 priority,都會使整次產生失敗,而不是被靜默捨棄。重複的行不會消耗輸出額度,而無效的行也絕不會被跳過:驗證結果會清楚告訴你是哪一行失敗以及原因。

發布自訂網站地圖前需要修正的錯誤

即使網址清單很乾淨,一些細小的錯誤仍會破壞網站地圖,或讓它對爬蟲隱形。以下五種模式反覆出現。

  • 在同一檔案中混用主機。 example.com 與 example.com:8443 是不同的序列化主機,因為連接埠屬於主機識別的一部分。請將非預設連接埠的網址放到獨立檔案,或合併進網站地圖索引。
  • 包含片段或認證資訊。片段(#section)會被 HTTP 剔除,本就不應產生多筆條目;網址中的認證資訊則會在公開檔案中暴露使用者名稱與密碼。兩者都會在驗證階段被拒絕。
  • 設定共用 lastmod 但實際上並非屬實。將單一的 2026-01-15 日期套用於 8,000 個網址,等同於告訴爬蟲這 8,000 個頁面都在同一天有實質編輯。除非同一數值對每個條目都屬實,否則請將 lastmod 留空。
  • 依賴工具去驗證頁面。產生器從不存取網址、不檢查狀態碼,也不會讀取 canonical 標記。在發布之前,請自行檢視重新導向、noindex 條目、被封鎖的頁面與私密頁面。
  • 略過 Search Console。產生器不會把檔案提交到任何地方。在檔案部署到所代表的主機之後,你仍然需要負責到 Search Console 提交 /sitemap.xml,或將其列在 robots.txt 中。

Yoast 自動產生的網站地圖與手動建置的檔案都是有效的選擇;無論哪一種,目標都相同:一份簡短、誠實的網址清單,讓搜尋引擎能毫無意外地爬取。XML 網站地圖產生器在瀏覽器中負責「清單轉 XML」的工作;網址挑選與提交仍由你負責。

想進一步了解,請參閱如何在瀏覽器中從 XML 網站地圖擷取網址