有個在台灣經營服飾電商的朋友前陣子找我,他說新上線的網站按部就班提交了網站地圖(sitemap.xml),但過了兩週,Google Search Console(GSC)裡的索引量還是接近零。他以為只要提交了 sitemap,就等同於按下 Google 收錄頁面的開關。這個誤解非常普遍,也導致許多網站站長在基礎這一步就卡關。
Sitemap XML 是技術 SEO 的基石,但它的作用邊界很明確。這篇指南將用最貼近台灣使用者操作習慣的方式,帶你從理解概念、建立格式、提交到 GSC,到一步步診斷常見錯誤,每一步都有具體的實戰操作。
什麼是 Sitemap XML?為什麼需要它?
Sitemap XML 是一份用來主動告訴 Google 你網站上有哪些重要頁面的 URL 清單,採用 XML 格式撰寫,放置於網站伺服器上供 Googlebot 讀取。它的核心作用是輔助「URL 發現」,而非直接影響索引或排名。
內部連結是 Googlebot 發現頁面的主要路徑。它從你的首頁開始,沿著連結爬行整個網站。然而,在某些情境下,僅靠內部連結的爬取效率可能不足:新上線的網站缺乏外部連結引導;擁有數萬個 SKU 頁面的大型電商站,其網站架構可能無法讓爬蟲順利探索每一個角落;那些沒有任何內部連結指向的「孤兒頁面」,或僅在 JavaScript 渲染後才出現的內容,都可能被 Googlebot 遺漏。
在這些情況下,Sitemap 就是你主動將最重要、最希望被索引的頁面清單呈現在 Google 面前,讓搜尋引擎無需依賴連結也能得知這些頁面的存在。Googlebot 爬取與索引的完整流程在這篇有更深入的說明。
Sitemap 對 SEO 有幫助嗎?先分清發現、爬取、索引與排名
Sitemap 的直接作用在於幫助 Google 發現 URL,但它無法保證這些 URL 會被爬取、被索引,更無法確保排名。從「發現」到「排名」,中間隔著爬取、索引品質判斷等多個獨立環節,任何一環都可能失敗。
許多台灣站長在提交 sitemap 後,看到 GSC 顯示「已提交 500 個網址」,但索引量卻只有 200,便認為 sitemap 設定有誤。事實上,這可能很正常,因為「被發現」和「被索引」是兩回事。如果頁面設有 noindex 標籤、canonical 指向別處,或是被 robots.txt 封鎖,即使出現在 sitemap 中也不會被索引。Sitemap 只是向 Google 提供的一個訊號,最終是否收錄仍由 Google 根據頁面品質與技術設定自行判斷。
那麼,網站地圖是必要的嗎?對一個內部連結完善的小型部落格網站而言,或許不是絕對必要。但對於規模稍大的網站,或需要精準診斷索引問題的團隊,提交 sitemap 能讓你在 GSC 中清楚看到哪些 URL 已被提交、哪些被發現但遭排除,這是進行有效技術診斷的關鍵數據基礎。你可以參考索引狀態診斷了解如何運用這些數據。
如何建立 Sitemap XML?從格式教學到工具推薦
建立 Sitemap 最直接的方式是手動撰寫符合規範的 XML 檔案,但對大多數台灣站長而言,使用 CMS 外掛或線上工具自動產生是更有效率且不易出錯的選擇。
一份最基本的 sitemap.xml 格式必須包含 UTF-8 編碼、`urlset` 根標籤,以及每個放在 `url` 元素中的 URL,其中 `loc` 欄位需填入完整的絕對網址。雖然 `lastmod`、`changefreq`、`priority` 是選填欄位,但 `lastmod` 的正確使用尤為重要:它應反映頁面實質內容的最後更新時間,而非每次自動化的微小變動,否則 Google 可能會降低對此數據的信任度。
對於使用 WordPress 或 Shopify 等主流平台的台灣網站,推薦使用外掛或內建功能來自動化這個過程。例如,WordPress 站長可以透過 Yoast SEO 或 Rank Math 外掛自動生成並持續更新 Sitemap,但需定期檢查外掛設定,確保不會將設為 noindex 的頁面也一併放入。Shopify 則內建自動產生位於 `/sitemap.xml` 的地圖。若你是使用 Next.js 等框架的開發者,則可在程式碼層(如 `app/sitemap.ts`)動態產生。對於更大型或自架的網站,可能需要從資料庫定時查詢並動態生成。
如何提交 Sitemap 到 Google Search Console?
提交 Sitemap 的流程很直觀:登入 GSC,前往左側選單的「Sitemap」專區,在輸入框填入你的 sitemap 網址(例如 sitemap.xml),點擊「提交」後,等待狀態從「擷取中」更新為「成功」即可。
具體步驟如下:首先,打開 Google Search Console 並確認位於正確的資源(網域)下。接著,在左側選單點選「索引」>「Sitemap」。在「新增 Sitemap」欄位中,輸入你的 sitemap 相對路徑(系統會自動補上你的網域),然後點擊「提交」。提交後,頁面下方的「已提交的 Sitemap」清單會顯示歷史紀錄與目前狀態。
提交後,你可能會看到不同的狀態訊息。「成功」表示 Google 能正常讀取你的 Sitemap;「無法擷取」代表 Googlebot 無法存取該檔案;「有錯誤」則意味著 XML 格式或內部的 URL 存在問題。除非你大幅更新了網站內容或修復了一批頁面的問題,否則通常不需要頻繁手動重新提交,Google 會定期回來重新爬取你的 Sitemap。更多 GSC 的操作細節,可以參考Google Search Console 完整教學。
常見的 Sitemap 錯誤與診斷修復方法
當 GSC 回報 Sitemap 錯誤時,首先要區分是「檔案本身無法存取」、「XML 格式有誤」,還是「內部 URL 被排除」這三大類型,不同類型的診斷方向與修復方法完全不同。
如果是「無法擷取」,先在瀏覽器直接打開 Sitemap 網址,確認能看到 XML 內容,並檢查 robots.txt 是否有意外擋住這個檔案。若是「XML 格式錯誤」,常見問題包括 URL 中的 `&` 未轉換為 `&`、檔案非 UTF-8 編碼、缺少必要的命名空間宣告,或是 `loc` 使用了相對路徑。你可以使用 W3C XML Validator 或瀏覽器的嚴格 XML parser 來檢測。
最常見的是「URL 被排除」,這表示 Sitemap 本身沒問題,但其中的 URL 因為頁面設定而無法被索引。你需要進入 GSC 的「頁面」報告(前身為「索引涵蓋範圍」),查看具體排除原因。例如,頁面被設為 noindex、canonical 指向其他 URL、回傳 404 錯誤,或被 robots.txt 封鎖。這時你需要回到網站本身修正這些問題,然後從 Sitemap 中移除不該出現的 URL。關於 robots.txt 的設定細節,robots.txt 常見錯誤排查有更完整的說明。
Sitemap 與爬取預算、內部連結的協作關係
Sitemap 不是孤立存在的工具,它與你的網站爬取預算(Crawl Budget)、內部連結架構緊密相關,正確的 Sitemap 策略能最大化爬取效率。
對於大型網站而言,爬取預算是有限的。一份充滿無效 URL(如 404 頁面、noindex 頁面)的 Sitemap 會浪費 Googlebot 的寶貴爬取資源。因此,Sitemap 應該只收錄你確認可索引、回應狀態為 200、且 canonical 指向自身的優質頁面。這與爬取預算診斷與優化指南的目標是一致的。
同時,Sitemap 與內部連結應是互補關係。強大的內部連結網路能幫助 Googlebot 自然發現並爬取重要頁面,而 Sitemap 則扮演補充角色,確保那些因架構原因不易被連結到的頁面(如某些深層商品頁)也能被發現。兩者協同運作,才能構成穩固的爬取基礎。你可以透過內部連結 SEO 優化來強化網站的連結結構。
Sitemap 維護清單與更新建議
Sitemap 的建立並非一勞永逸,定期維護與根據網站變動同步更新,是確保其持續發揮作用的關鍵。
同時,正確使用 `lastmod` 標籤。它應該只在頁面發生「實質內容更新」(例如修改了正文、產品規格、主要圖片)時才變更。濫用 `lastmod` 會讓 Google 降低對此訊號的重視程度。網站遷移或改版時,更應謹慎規劃 Sitemap 的過渡策略,確保新舊 URL 的對應關係能被正確理解。
sitemap.xml 應該放在網站的哪個路徑?
最標準的位置是網站根目錄下的 `sitemap.xml`(例如 `https://你的網站.com/sitemap.xml`)。這是 Google 和大多數爬蟲預設會查找的位置。如果你的 Sitemap 因為 CMS 設置而放在其他路徑(例如 WordPress 配合 Yoast SEO 可能生成 `/sitemap_index.xml`),請務必在 robots.txt 檔案中加入一行 `Sitemap: https://你的網站.com/sitemap_index.xml`,明確告知 Google 去哪裡找。
Sitemap 需要多久更新一次?
Sitemap 的更新頻率沒有固定標準,應視網站內容的變動程度而定。一般建議在新增、修改或刪除重要頁面時進行更新,若使用 CMS 外掛(如 Yoast SEO)則會自動同步。重點是正確使用 lastmod 標籤,僅在頁面實質內容更新時變更,避免頻繁虛假更新導致 Google 降低信任。對於大型網站,可每天或每週定期重新產生 Sitemap,而小型網站則可每月檢查一次。
提交 Sitemap 到 GSC 後,Google 一定會收錄裡面的所有頁面嗎?
不一定。Sitemap 的作用是「告知」Google 這些 URL 的存在,但是否收錄取決於 Google 的索引判斷。頁面如果設有 noindex、被 robots.txt 封鎖、內容品質低落、或是被視為重複內容,即使出現在 Sitemap 中也可能不會被索引。GSC 的「頁面」報告會詳細列出哪些提交的網址遭排除及原因。
Sitemap 的檔案大小和 URL 數量有限制嗎?
有的。單一 Sitemap XML 檔案最多可包含 50,000 個 URL,且檔案大小不得超過 50MB(未壓縮)。如果你的網站網址數量超過此限制,就需要使用 Sitemap Index 檔案來管理多個子 Sitemap。你只需提交 Sitemap Index 的網址,Google 會自動讀取裡面的所有子 Sitemap。
如果我不想某些頁面被索引,它們可以出現在 Sitemap 裡嗎?
絕對不要。如果你希望某些頁面(例如隱私政策頁、會員登入後台、內部搜尋結果頁)不被 Google 收錄,你會為它們加上 noindex 標籤。與此同時,你也絕對不應該將這些網址放入 Sitemap。在 Sitemap 中列出一個 noindex 的頁面,等於向 Google 傳遞了自相矛盾的訊號,這會讓爬蟲困惑,並可能浪費你的爬取預算。
XML Sitemap 和 HTML Sitemap 有什麼不同?
XML Sitemap 是專門給搜尋引擎(機器人)閱讀的格式化清單,主要用於提交給 Google Search Console。而 HTML Sitemap 是一個給網站訪客(人類)閱讀的網頁,通常是一個列出網站主要分類與頁面連結的導覽頁。兩者目的不同,功能互補,並不互相取代。在技術 SEO 領域,我們通常指的是 XML Sitemap。