很多人檢查 Sitemap 的方式,是打開 Search Console 看「已發現的網址」數字有沒有變多。但網址數正確,不代表 Sitemap 健康。這篇寫給剛接手網站技術 SEO 的新同事,一步一步說明除了數量之外還要核對哪些欄位,以及每個欄位出錯時的意義。
Sitemap 的網址數只能告訴你「列了多少頁」,無法告訴你「列的是不是對的頁」,所以檢查一定要往下核對每個網址的技術狀態。我帶新人時最常看到的情況是:Sitemap 裡有五百個網址,數字和網站頁面數差不多,大家就放心了;但實際抽查後發現,其中有幾十個是已經轉址的舊網址、十幾個是設了 noindex 的頁面、還有一批是帶參數的重複頁。這些網址不但不會被收錄,還會讓搜尋引擎對整份 Sitemap 的可信度打折。
你可以把 Sitemap 想成交給搜尋引擎的一份推薦清單。清單上的每一項都應該是你真心希望被收錄、而且能正常開啟的頁面。清單裡混入越多無效項目,對方就越不會認真看待這份清單。所以檢查 Sitemap 的目標不是確認它存在,而是確認它乾淨。
在看任何網址之前,先確認 Sitemap 檔案本身沒有技術問題,因為檔案讀不到,後面的檢查都沒有意義。這一關新人常常跳過,但它其實只需要幾分鐘。
有一個容易忽略的細節是中文網址的處理。網址中的中文字應該以百分比編碼的形式出現在 Sitemap 裡,如果直接放中文字元,某些工具讀得到、某些讀不到,會造成檢查結果不一致。遇到這種情況,先統一編碼方式再往下查。
Sitemap 裡的每一個網址都應該回應 200 狀態碼,出現 301、302、404 或 5xx 的網址都不該留在清單裡。這是最基本、也最常出錯的一關,因為網站改版、刪文或更換網址結構時,Sitemap 往往沒有同步更新。
實作上,你可以用爬蟲工具把 Sitemap 裡的網址全部抓一次,匯出狀態碼欄位後篩選非 200 的項目。判斷方式如下:若是 301 轉址,應把 Sitemap 裡的網址換成轉址後的最終網址;若是 404,要先確認這個頁面是刻意刪除還是意外壞掉,刻意刪除就從 Sitemap 移除,意外壞掉則要修復頁面;若是 5xx,代表伺服器端有問題,這不是 Sitemap 的錯,但要立刻通知工程同事。
新人常犯的錯是只看首頁與幾個重要頁面,就認定整份 Sitemap 沒問題。狀態碼檢查一定要全量跑,因為出問題的往往是很久沒人碰的舊頁面。
Sitemap 裡列出的網址,必須和該頁面自己宣告的標準網址完全相同,否則等於同時給搜尋引擎兩個互相矛盾的訊號。標準網址指的是頁面 head 區塊裡 canonical 標籤指向的網址,它告訴搜尋引擎「這一頁的正式版本在這裡」。
常見的不一致有幾種:Sitemap 用 http,canonical 用 https;Sitemap 網址結尾有斜線,canonical 沒有;Sitemap 用了帶 www 的網域,canonical 沒有;或是 Sitemap 列了帶追蹤參數的網址,canonical 卻指向乾淨網址。這些差異看起來很小,但對搜尋引擎而言就是兩個不同的網址。
檢查方式是在爬蟲結果裡同時匯出「請求網址」與「canonical 網址」兩欄,用試算表比對是否完全相同。不一致的項目,原則上應該修改 Sitemap,讓它列出 canonical 指向的版本。如果發現 canonical 本身設錯,例如所有文章都指向首頁,那就是更嚴重的問題,要先修頁面再修 Sitemap。
設了 noindex 的頁面不應該出現在 Sitemap 裡,因為這等於一邊請搜尋引擎收錄、一邊又叫它不要收錄。同樣地,被 robots.txt 阻擋的路徑也不該出現在 Sitemap 中。
這一關經常能抓到網站外掛或內容管理系統的預設設定問題。例如某些系統會自動把所有標籤頁放進 Sitemap,但主題設定又把標籤頁設為 noindex,兩個設定互相打架,而負責的人通常都不知道。
lastmod 欄位應該只在頁面內容實際有意義地更新時才改變,如果所有網址的 lastmod 都是同一天,或每天都自動更新,這個欄位就失去了參考價值。搜尋引擎會用 lastmod 判斷哪些頁面值得優先重新抓取,一份所有日期都一樣的 Sitemap,等於沒有提供任何優先順序的訊號。
檢查方式很直接:把 Sitemap 裡的 lastmod 欄位匯出,看日期分布。如果超過九成網址的 lastmod 都集中在同一天,很可能是系統在每次重新產生 Sitemap 時,把產生時間當成修改時間。接著隨機抽五到十頁,對照頁面上顯示的更新日期或內容管理系統裡的修改紀錄,看兩者是否吻合。
至於 changefreq 與 priority 這兩個欄位,目前主要搜尋引擎多半不太依賴它們,新人不需要花太多時間調整,但也不要填入明顯不合理的值,例如把所有頁面的 priority 都設為最高。
Sitemap 檢查最好的做法是變成每月固定的例行工作,而不是等收錄出問題才來查。以下是我給新人的月檢順序,網站規模在幾百到幾千頁之間時,大約一到兩小時可以完成。
如果你負責的是公司的品牌網站,而不只是技術維護,Sitemap 的健康度其實和內容策略息息相關,例如哪些頁面值得被收錄、哪些應該合併。銘望顧問所在市場調研的專案中,也會把 Sitemap 月檢列為內容盤點的起點。
Sitemap 乾淨不代表頁面一定會被收錄。搜尋引擎決定是否收錄,還會考量內容品質、重複程度、內部連結與網站整體的可信度,Sitemap 只是其中一個訊號。如果 Sitemap 已經完全乾淨,但大量頁面仍然未被收錄,問題通常出在內容本身,而不是技術欄位。
另外,極小型網站,例如只有十幾頁的形象站,搜尋引擎通常靠內部連結就能找到所有頁面,Sitemap 的影響相對小,不需要每月跑完整流程,半年檢查一次即可。反過來說,每天新增大量頁面的電商或新聞網站,可能需要更頻繁的自動化檢查,這已經超出本文手動清單的範圍。