Wudelay
ANĀTMAN · AI 筆SEO · · 約 5 分鐘

sitemap.xml 提交教學:新站文章沒被收錄,3 步驟讓 Google 找到頁面

sitemap.xml 提交教學:新站文章沒被收錄,3 步驟讓 Google 找到頁面

新站文章寫好了卻遲遲沒被收錄,最直接的補救是建立一份 sitemap.xml,再到 Google Search Console 的 Sitemap 報告提交網址。sitemap.xml 提交的作用,是把「網站上有哪些頁面」整份交給 Google,讓還沒有外部連結指向的新頁面也能被發現,不必等 Googlebot 沿著連結慢慢爬到。

先講清楚它做不到的事:Google 官方把提交 sitemap 定位成「只是一個提示」,也不保證清單上的每個網址都會被檢索、收錄。sitemap 解決的是「Google 不知道頁面存在」,解決不了內容品質或技術設定造成的不收錄。

整個流程分三步:建立檔案、上線前檢查、到 Search Console 提交。下面依序拆解。

先確認:你的網站需要 sitemap 嗎?

Google 的 sitemap 說明列出幾種特別需要的情況,其中一種正是外部連結很少的新網站:沒有其他網站連過來,Googlebot 就少了發現頁面的入口。反過來,約 500 頁以內、內部連結完整到從首頁點得到每一頁的小站,官方認為不一定需要。

不過建立 sitemap 沒有壞處,多數 CMS 也會自動產生。對新站來說,實際的問題通常不是「要不要」,而是「現有的 sitemap 對不對、交了沒」。內部連結的部分可以參考文章少的新站怎麼串內鏈。

第一步:建立 sitemap.xml

依網站類型選做法

網站類型 做法 預設網址
WordPress 5.5 以上 核心內建,自動產生,不用另外安裝外掛 /wp-sitemap.xml
Next.js(App Router) 在 app 目錄放 sitemap.ts,回傳網址陣列 /sitemap.xml
靜態網站、自架網站 依 sitemap 協定手寫 XML,或用產生器輸出後上傳 自訂,建議放根目錄

← 左右滑動看完整表格 →

WordPress 的 sitemap 從 5.5 版開始內建,並會自動寫進 robots.txt。有一個常見陷阱:後台「設定 → 閱讀」勾了「阻擋搜尋引擎索引這個網站」,內建 sitemap 就會被停用。新站施工期間常勾這個選項,正式上線忘了取消,sitemap 就一直不存在。

Next.js 的 sitemap.ts 寫法是 export default 一個函式,回傳由 url、lastModified 等欄位組成的陣列,輸出在 /sitemap.xml。文章來自 CMS 或資料庫時,在函式裡把文章清單轉成這個陣列即可。要注意這個檔案預設會被快取,若沒有設定重新驗證,新文章可能要等下次部署才會出現在 sitemap 裡。

四個常見欄位,Google 只看兩個

欄位 用途 Google 怎麼處理
loc 頁面網址 必填,要用完整的絕對網址
lastmod 最後修改時間 會採用,前提是日期準確
changefreq 預估更新頻率 忽略
priority 頁面相對重要性 忽略

← 左右滑動看完整表格 →

不少教學仍建議細調 priority 和 changefreq,但 Google 官方明說兩者完全不使用。真正值得花心思的是 lastmod:Google 會用它安排已知網址的重新檢索,但只有正文、結構化資料、連結這類重大修改才該更新日期;如果網站長期把 lastmod 填成不實的時間,Google 會不再信任這個值。

這段的檢查,我也幫人做。給我網址就好,不用後台帳號,我從外部幫你看一遍。
了解網站健檢

第二步:上線前檢查 5 件事

依照 Google 的 sitemap 建立規範,提交前逐項確認:

  1. 網址用完整格式:寫 https://example.com/post,不要寫 /post 這種相對路徑。
  2. 檔案編碼是 UTF-8:網址含中文或 & 這類特殊字元時,要經過跳脫處理。
  3. 單檔不超過 50MB 或 5 萬個網址:超過就拆成多份,再用 sitemap index 統整。一般新站碰不到這個上限。
  4. 放在根目錄:放在子目錄的 sitemap,只對該目錄底下的網址有效(透過 Search Console 提交的除外)。
  5. 只放想被收錄的網址:sitemap 是一份「請收錄這些頁面」的清單,帶 noindex、被 robots.txt 封鎖,或 canonical 指向別頁的網址,放進去只會讓訊號互相矛盾。

最後用瀏覽器無痕視窗直接打開 sitemap 網址,確認看到的是 XML 內容,而不是 404、登入頁或空白頁。Search Console 的官方流程也建議,先用網址檢查工具對 sitemap 網址做即時測試,確認網頁擷取成功再提交。

第三步:sitemap.xml 提交到 Google Search Console

前提是網站已經在 Search Console 完成驗證,還沒設定可以先看 SEO 實戰篇【零】。另外,透過報告提交需要該資源的擁有者權限。

  1. 進入 Search Console,選擇要提交的網站資源。
  2. 左側選單「索引」底下,點「Sitemap」。
  3. 在「新增 Sitemap」欄位填入 sitemap 網址,例如 sitemap.xml 或 wp-sitemap.xml。
  4. 按「提交」,等待狀態更新。

沒有擁有者權限,或希望其他搜尋引擎也找得到,可以在 robots.txt 任一位置加一行 Sitemap: https://example.com/sitemap.xml,同一個檔案可以列多行。這是 Google 認可的另一種提交方式。

網路上較舊的教學還會教「用 ping 網址通知 Google」,這個端點 Google 在 2023 年 6 月宣布停用,6 個月後失效。現在的正規管道是 Search Console(含 API)與 robots.txt。

提交後怎麼看結果

Google 收到後會立即擷取 sitemap,但清單上的網址要檢索還需要時間。Sitemap 報告的狀態有三種:

狀態 意思 該做什麼
成功 已擷取並處理,網址都排入檢索 等待即可,不用重複提交
有錯誤 擷取到了但有部分錯誤,解析成功的網址仍會排入 點進該列看錯誤明細並修正
無法擷取 Google 拿不到檔案 檢查網址、HTTP 狀態碼、robots.txt 是否封鎖

← 左右滑動看完整表格 →

報告上的「已發現的網頁」只是從 sitemap 解析出的網址數,不等於收錄數。想知道 sitemap 裡有幾頁真的被收錄,要到「網頁索引」報告,用 sitemap 篩選。

狀態成功,頁面還是沒收錄?

sitemap 狀態是「成功」、頁面卻遲遲沒出現,代表問題已經不在「Google 找不到」,而是在檢索或索引階段:可能是 noindex、canonical 指向別頁、內容被判定價值不足,或單純還在排隊。官方說明檢索可能需要幾天到幾週。逐項排查可以看網站沒被 Google 收錄的 6 個檢查步驟。

常見問題

每發一篇新文章,都要重新提交 sitemap 嗎?

不用。成功讀取過的 sitemap,Google 會自行定期重新檢索,只要 sitemap 本身會隨文章自動更新即可。官方建議重新提交的時機,是 sitemap 內容大幅變動,或修正了無法擷取的問題之後。

提交 sitemap 和「要求建立索引」差在哪?

網址檢查工具的「要求建立索引」適合少數幾個網址,而且有配額限制,同一網址重複要求也不會比較快;網址數量多時,官方建議用 sitemap。兩者不衝突:sitemap 負責全站,特別重要的單篇可以再手動要求一次。

參考資料

  1. Build and Submit a Sitemap(Google Search Central)
  2. Learn about sitemaps(Google Search Central)
  3. Sitemaps report(Search Console Help)
  4. Sitemaps ping endpoint is going away(Google Search Central Blog)
  5. Ask Google to recrawl your URLs(Google Search Central)
  6. sitemap.xml(Next.js Docs)
  7. New XML Sitemaps Functionality in WordPress 5.5(Make WordPress Core)
你讀完了這篇・約 5 分鐘
ThreadsLINE

下一篇・同一條支流圖片 SEO 怎麼做?圖片 SEO alt 文字寫法與檔名優化指南約 8 分鐘 →

river breath・河的呼吸

讀完不急著走。跟著河面呼吸三輪,把讀到的,沉下去。

吸 —— 讓念頭浮起

「唵」—— 圓滿俱足,我與河本為一體