XML 網站地圖(sitemap)其實只是一個純文字檔,裡面列出網站希望搜尋引擎知道的所有頁面 URL,而從網站地圖中萃取出 URL,指的就是把那種巢狀的 XML 轉成一筆一行、扁平、乾淨的 URL 列表,方便你閱讀、排序、貼到試算表,或交給其他工具使用。對初學者來說,挑戰不在 URL 本身——每個頁面本來就已經在線上——而是在包住它們的外殼。網站地圖使用尖括號標籤、選擇性的命名空間,以及兩種不同的根層結構,所以直接在瀏覽器中開啟 sitemap.xml 檔案往往看起來像一堆雜訊。一個專注的 Sitemap URL Extractor 工具能解決這個問題:它在本機端讀取你貼上的 XML,只挑出直接的 loc 值、把 URL 統一正規化成單一標準格式、移除重複項目,然後以乾淨的純文字列表呈現結果。不需要上傳、不需要 API 金鑰,而且解析器遵循公開的 Sitemaps 通訊協定,而不是憑猜測運作。你貼進什麼內容,就會得到對應的輸出:urlset 會產生頁面 URL,sitemap index 會產生網站地圖檔案的 URL,而任何格式錯誤的內容會讓整個執行失敗,而不是回傳一份不完整的清單。

extract urls from sitemap for beginners
Extract URLs From a Sitemap for Beginners: First Guide

網站地圖實際上包含什麼內容

如果你以前從未開啟過網站地圖檔案,第一次看到內容可能會覺得難以招架。檔案本身是純文字,但它使用類似 HTML 的尖括號標籤,並遵循公開的 Google Search Central 網站地圖指南 所定義的嚴格結構。該通訊協定允許兩種根層結構:

  • urlset — 最常見的形式。每個頁面都放在一個 <url> 元素中,實際的頁面網址則放在該元素的單一 <loc> 子元素裡。<lastmod>、<changefreq> 和 <priority> 等選擇性欄位可能會出現,但它們並不會改變網址本身。
  • sitemapindex — 不是頁面的目錄,而是「其他網站地圖檔案」的目錄。每個子項目都放在 <sitemap> 元素中,並包含一個指向另一個網站地圖檔案的 <loc> 子元素。

有些網站會在每個標籤前面加上命名空間前綴,例如 sm:。這在通訊協定中是允許的行為,解析後與預設形式完全相同。像是 <?xml version="1.0"?> 這樣的 XML 宣告,以及 HTML 風格的註解,也都是正常內容,任何合規的解析器都應該忽略它們。

為什麼要把 URL 抽成一份純文字清單

XML 格式是為搜尋引擎設計的,而不是為人類設計的。從網站地圖檔案中一個一個複製頁面網址既慢又容易出錯,而把原始 XML 貼到試算表中會產生破碎的資料列。一份乾淨且去重過的清單,對於初學者通常想做的任務來說會實用得多:

  • 把頁面匯入試算表以便檢視或排序
  • 在網站搬遷過程中建立重新導向對照表
  • 比對網站地圖所宣稱的內容與爬蟲實際找到的內容
  • 把清單交給狀態檢查工具、標準化檢查工具或批次處理工具
  • 找出因主機大小寫或預設連接埠變體而產生的意外重複項目

Sitemap URL Extractor 工具可以直接幫你產生這份清單。由於解析過程是在你的瀏覽器中執行,XML 從不離開你的裝置,因此在預備環境、上線前的盤點清單,或任何你不想交給第三方處理的 URL 清單上使用都非常安全。

準備好要貼上的網站地圖文字

在開始萃取之前,你需要把實際的 XML 內容準備成純文字。初學者常見的起點包括:直接在瀏覽器中檢視 /sitemap.xml、查看 robots.txt 中的 Sitemap: 那一行,或是請同事從 CMS 匯出網站地圖。如果你的檔案副檔名是 .xml.gz,請先用任何標準的 gzip 工具解壓縮——這個萃取工具不接受壓縮格式的輸入。如果你需要協助找出檔案位置,在瀏覽器中尋找網站地圖 URL 這份指南會逐步說明常見的位置。

在貼上之前,有兩個容易踩到的陷阱值得注意:

  • 把 URL 貼到編輯器中是沒有用的。這個小工具不會發送任何網路請求。你必須貼上 XML 文字本身,而不是該檔案的網址。
  • 貼上不完整的 XML 會刻意讓執行失敗。檔案被截斷、缺少結尾標籤,或有多餘的編輯,都不會產生部分清單。請修正來源並貼上完整的文件。

從你的網站地圖中萃取出 URL

  1. 在你的瀏覽器分頁中開啟 Sitemap URL Extractor。不需要帳號、不需要安裝、不需要上傳。
  2. 把一份完整的 urlset 或 sitemapindex 文件 XML 文字貼到編輯器中。請確認整份檔案都齊全,從開頭的根標籤一直到結尾的根標籤都要包含在內。
  3. 執行萃取作業並閱讀結果面板。工具會回報它偵測到哪一種根層類型、接受了多少筆不重複的 URL,以及移除了多少筆正規化後的重複項目。
  4. 使用複製按鈕複製「一行一個 URL」的清單。系統會保留「首次出現」的順序,因此輸出結果能夠輕鬆地逐列與來源進行比對。
  5. 在下一個工作流程中使用這份清單——例如匯入試算表、與爬蟲結果比對、重新導向稽核,或搬遷審查。至於狀態、標準化、robots 與索引狀態的檢查,則請針對每個頁面分別執行獨立的線上工具。

解讀結果:根層類型、不重複數與重複數

初學者看到結果面板時,常常會不確定哪些數字才是重點。這三個數字與 Sitemaps 通訊協定所描述的規則相關,並且會清楚地顯示出來,讓你可以對所貼上的檔案進行合理性檢查:

結果中的欄位 它告訴你的資訊
根層類型 解析器辨識到的是 urlset 還是 sitemapindex。如果你預期的結果與此不符,通常代表貼錯了檔案。
不重複數 在移除重複項目之後,被接受的、相異且經過正規化的 URL 數量。每一筆都是符合通訊協定 2,048 字元上限限制的絕對 http 或 https URL。
重複數 被折疊合併、序列化後值相同的項目數量。重複項目往往能反映出來源檔案中主機大小寫或預設連接埠的變體。

解析器在每次執行中最多接受 50,000 筆不重複的 URL,以及五百萬個 UTF-16 輸入碼元(code unit)。一旦達到任一上限,整個作業就會直接失敗,而不是默默地截斷輸出,因此當你處理規模非常大的網站時,請事先做好規劃——把接近上限的檔案拆成較小的片段,並透過網站地圖索引互相引用,然後分別執行每一段。

萃取作業無法告訴你的事

被萃取出來的 URL 只能證明在所貼上的 XML 中出現了一個有效的 loc,並不代表該頁面實際存在、可被爬取、是標準版本、已被建立索引,或有好的排名。Sitemaps 通訊協定明確指出,網站地圖只是一種「探索提示」,而非「索引保證」,因此初學者應該把這份清單視為更廣泛稽核的證據,而非任何單一頁面狀態的證明。

這個萃取工具不會執行的常見檢查包括:

  • HTTP 狀態碼、重新導向或回應時間
  • 線上頁面上的標準化標籤選擇結果
  • 可能阻擋爬取的 robots 指令
  • 搜尋引擎是否實際接受或處理了該來源檔案
  • 這些 URL 是否實用、相異或具有高品質

如果要進行這些檢查,請在取得清單後,對每個頁面分別執行獨立的工具。

把 URL 清單實際派上用場

一旦萃取成功,複製按鈕就會把完整的清單以適合下一步使用的格式放到你的剪貼簿中。初學者常會用這份清單的幾種模式如下:

  • 匯入試算表。貼到單一欄位中以便排序、篩選,或切割成多個批次。
  • 與爬蟲結果比對。對同一個網站執行你自己的爬蟲,然後比對兩份清單的差異,找出網站地圖漏掉的頁面,或網站地圖宣稱存在但實際不存在的頁面。
  • 搬遷審查。在重新導向對照表中,把每個 URL 與其目標網址配對,或檢查舊版 URL 是否仍可解析。
  • 稽核證據。把這份清單連同結果面板的截圖一起保存下來,作為該時間點網站地圖所宣告內容的證明。

當你準備好要把這些頁面送交給搜尋引擎,或逐一檢查它們時,請把清單交給適合該問題的狀態、標準化或索引檢查工具。這個萃取工具只做一件專注的事——把網站地圖 XML 轉成一份乾淨的清單——而 SEO 稽核的其餘部分,仍然屬於那些逐頁執行,或透過你慣用爬蟲所進行的專門檢查。

如果你正在權衡各種選項,Create a Descending List in Bulk URL Generator 對此有詳細說明。