架站或碰過 SEO 的人多半聽過「Sitemap」這個字,甚至知道它跟 sitemap.xml 有關,但問到「這份檔案實際在幹嘛、什麼時候非做不可、做完之後要交給誰」,答得清楚的人沒那麼多。
搜尋引擎發現網頁,主要靠兩條路。一條是順著網站內部連結一頁一頁爬過去,另一條則是直接讀一份主動遞出去的網址清單。Sitemap,指的就是後面這一條路,它看起來只是一份格式化的清單,但什麼時候真的用得上、做出來要交給誰、跟排名有沒有關係,反而是最常被搞混的地方。
先從搜尋引擎怎麼找到頁面講起,一路拆到 sitemap.xml 的格式怎麼寫、跟 SEO 收錄的關係,再到怎麼做出來又怎麼提交給 Google。
Sitemap 是什麼?
多數時候,搜尋引擎的爬蟲是順著網站內部連結一頁一頁爬過去的。連結架構夠健康,不靠額外清單也大致爬得到。但還有另一條路,用 XML 格式寫成一份頁面網址清單,直接遞給搜尋引擎,這份檔案通常叫做 sitemap.xml,我們平常說的 Sitemap,指的就是它。
這份檔案有兩個容易被忽略的性質。第一,它是寫給搜尋引擎讀的技術文件,不是給真人看的網頁,一般訪客打開來只會看到一堆看不懂的標籤。第二,它本質上是一份「建議清單」,遞出去之後,搜尋引擎收不收、爬不爬,最終還是自己判斷。
給人看的導覽頁,跟給爬蟲看的 sitemap.xml,不是同一份東西
不少網站會另外做一個列出所有分類、服務、頁面連結的導覽頁面,有些甚至畫成樹狀圖,方便訪客找到想看的內容,這種給人看的頁面,業界稱為「HTML 網站地圖」。Search Engine Land 在整理 XML Sitemap 的文章裡,就把兩者的分工講得很清楚,HTML 網站地圖是設計給真人訪客用的,XML Sitemap 則是寫給搜尋引擎用的。
兩者目的不同、格式也不同,可以同時存在,但不能互相替代。網站已經有一個好找的導覽頁,不代表就不用做 sitemap.xml;反過來,做了 sitemap.xml,也不代表訪客就不需要一個清楚的導覽頁。
sitemap.xml 裡,哪三個標籤是必要的?
最簡化的 sitemap.xml,只列一個網址,大概長這樣:
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>https://www.example.com.tw/about</loc>
</url>
</urlset>Code language: HTML, XML (xml)
這幾行標籤看起來陌生,但其中只有三個是 Sitemap 協定訂出來的必要標籤,理解這三個,格式上這份檔案就算合格。
urlset xmlns:宣告這份檔案遵循的 Sitemap 協定版本,目前是 0.9 版,每份 sitemap.xml 最外層都要包這一層。
url:每個網址各自的容器標籤,有幾個網址就要寫幾組 url。
loc:放的是完整的絕對網址,必須以 https:// 開頭,不能寫成 /about 這種省略網域的相對路徑。這是最容易寫錯的地方,漏寫網域名稱,搜尋引擎就讀不到正確位置。
sitemaps.org 的協定文件與 Google 官方說明,都把這三個標籤列為必要。少了任何一個,這份檔案在格式上就不合格。

lastmod、changefreq、priority 這三個選填標籤,Google 真的會看嗎?
不少人以為,把 priority 全部設成 1.0、changefreq 全部設成 daily,就能催促搜尋引擎多來抓幾次自己的網站。Google 官方文件寫得很直接,它會忽略 priority 和 changefreq 這兩個值。
理由不難理解,這兩個欄位太容易被濫用,幾乎每個網站都把所有頁面設到最高優先度、最頻繁更新,資料一旦全部一樣,就沒有參考價值,Google 乾脆改用自己觀察到的訊號來判斷,不理會網站自己填的數字。
真正還有意義的是 lastmod(最後修改時間),但前提是這個值要準確、而且能被驗證。也就是說,Google 真的會拿它去跟頁面實際的修改情況核對,填得不準,像每次重新產生 sitemap 就順手改成當天日期、內容卻沒真的更新過,反而會讓這個訊號失去可信度。
除了 XML,Sitemap 還有這兩種格式
XML 不是唯一的選項。如果網站本身就有 RSS 或 Atom 動態消息(部落格常見的那種),可以直接把這個消息來源網址提交當 Sitemap,優點是 CMS 通常已經自動產生,不必額外處理;缺點是它多半只反映最近更新的少數網址,涵蓋不到全站內容。
另一種是純文字檔(.txt),格式最單純,一行放一個網址,不含任何標籤或中繼資料,適合網址數量很少的小型網站。
XML 之所以是主流選擇,是因為它能附加的資訊最完整,像是 lastmod 這類中繼資料,以及圖片、影片、多語系版本的擴充寫法,都只有 XML 格式支援得到,這也是多數 CMS 與 SEO 外掛預設產出 XML 格式的原因。
為什麼網站要做 Sitemap?
Sitemap 本質上是一份「提示」,不是「命令」。交出這份清單,不保證每個網址都會被讀取、被收錄,但能讓爬蟲少走一段冤枉路,更快確認你覺得重要的頁面在哪裡。
那什麼情況真的該花心力做?Google 官方給的判斷基準很明確:如果網站規模不大(參考門檻大約在 500 頁以內)、內部連結又健康,有沒有交這份清單其實差別不大;但符合以下任一種情況,就值得認真看待:網站規模本身龐大、剛上線還沒什麼外部連結,或是網站有大量圖片、影片內容,甚至內容會出現在 Google 新聞。這幾種站的共通點是,Google 光靠自己爬未必爬得完整,需要一份清單主動補位。
而且會讀這份清單的不只 Google,像 Bing 等其他搜尋引擎同樣支援同一套 Sitemap 協定,只是這篇聚焦在最主流的 Google 流程講。
Sitemap 不是排名因素,但會影響收錄
提交 Sitemap 跟排名沒有直接關係,就算沒交,排名也不會因此一落千丈。
它真正影響的是收錄的完整度與速度。交了清單,網站有機會被更完整地檢索、進而被收錄,也可以透過 Google Search Console 追蹤目前的收錄狀況。
這裡有一點很少被說清楚,Ahrefs 指出,Google 還會把 Sitemap 當成判斷「標準版本」的訊號之一。如果同一份內容存在多個網址版本,Sitemap 裡列的那個網址,會是 Google 判斷你比較想讓哪個版本出現在搜尋結果的參考依據之一,這個訊號牽涉到的 canonical 標籤細節,這篇不展開。
做 Sitemap 有三條路:手動、工具,還是讓系統自動生成?
實際動手做,依規模大概分三種做法。

網址數量很少的話,Google 官方建議的門檻大約在幾十個以內,直接用純文字編輯器照格式打一份就行,不需要任何工具。
網址數量稍多,超過這個門檻,可以改用線上產生器或爬蟲類工具自動掃描網站產出。這類免費工具通常會替可掃描、產出的網址數量設一個上限,規模稍大的網站很容易一下就用完額度。
規模再往上,最實際的做法是讓 CMS 或 SEO 外掛自動產生。網站增刪內容的同時,清單會即時同步更新,不必自己手動維護,這也是多數中大型網站最終會走的路。這裡只講方法分類與各自的適用情境,不指名特定商業產品或外掛品牌,也不展開任何一套系統的操作步驟。
怎麼把 Sitemap 提交給 Google?
提交 Sitemap 目前有兩種有效管道,底下分別展開。先說一個容易被舊文章誤導的地方,過去還有一種對 Google 發送 HTTP 請求(通稱「ping」)來通知更新的方式,但 Google 已在 2023 年底停用這個管道,現在打開那個網址只會回傳 404。接下來要講的,是目前仍然有效的兩種方式。

用 Google Search Console 手動提交
登入 Search Console 後,在左方選單找到「索引→Sitemap」,在「新增 Sitemap」欄位輸入檔名(通常是 sitemap.xml)後送出。提交成功,畫面會顯示狀態與目前探索到的網址數。
提醒一句,Sitemap 只要沒換位置,通常只需要提交一次,之後 Google 會自己定期回來檢索,內容有更新不必重新送。
在 robots.txt 宣告位置,讓其他搜尋引擎也找得到
第二種管道,是在網站的 robots.txt 檔案裡加一行:
Sitemap: https://www.example.com.tw/sitemap.xmlCode language: plaintext (plaintext)
這一行不受 User-agent 區塊限制,放在檔案裡任何位置都算數,一個 robots.txt 也可以列出不只一份 Sitemap。
這個做法的好處是,不只 Google,其他遵循同一套協定的搜尋引擎在讀取 robots.txt 時,一樣能自動發現這份清單的位置,不必每個引擎各自跑一次手動提交流程。
網址真的很多,一份 sitemap.xml 放不下怎麼辦?
Google 官方對單一 Sitemap 檔案訂了兩項硬性上限:網址數量最多 5 萬個,檔案未壓縮的大小不能超過 50MB。
超過任一項,就得把清單拆成好幾份 Sitemap,再用一份「Sitemap 索引檔」(sitemap index)把它們串起來。這份索引檔本身不直接列網頁網址,而是列出好幾份子 Sitemap 的位置,像一份地圖的目錄。只需要把這份索引檔提交給 Google,它就會順著清單,一份一份讀過去。一個簡化的範例大概長這樣:
<?xml version="1.0" encoding="UTF-8"?>
<sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<sitemap>
<loc>https://www.example.com.tw/sitemap-posts.xml</loc>
</sitemap>
<sitemap>
<loc>https://www.example.com.tw/sitemap-products.xml</loc>
</sitemap>
</sitemapindex>Code language: HTML, XML (xml)

這節先建立「是什麼、怎麼提交」的入門認知就好,依內容類型、重要性或更新頻率,實際上該怎麼拆子 Sitemap 才最有效率,是進階操作,這篇不展開。
Sitemap 做得再乾淨,也只是幫爬蟲少走一點冤枉路。它解決的是「找不找得到」這個最基礎的技術門檻,不會直接把排名往上推,後面內容深不深、架構好不好,才是決定排名的關鍵。
如果 Sitemap 都設定好、也提交成功了,收錄卻還是遲遲沒進展,問題通常不是「有沒有交」,而是清單本身的品質。這類進階排查,值得另外用一篇的篇幅談,這篇先把最基本的地基打好。
