Skip to main content
RedClaw
返回部落格
strategy

sitemap 完全指南:產生、送出,以及讓當天文章消失的時區 bug

RedClaw 行銷團隊
2026/8/25
5 min read

sitemap 完全指南:產生、送出,以及讓當天文章消失的時區 bug

一句話結論:sitemap 的價值不在「有沒有」,而在「裡面的 URL 是不是你真的想被收錄的那些」。我們自家站在 2026 年踩過一個很難發現的問題:sitemap 用 UTC 判斷「未來日期」,內容用台北時間標日期,結果台北時間早上 8 點前發的文章會被自己的 sitemap 判成未來文而整批跳過,頁面線上看得到、sitemap 裡卻沒有。這篇把產生、驗證、送出、複驗四段拆開講,每一段都附可以直接跑的指令。

大部分教學把 sitemap 講成一個檔案格式問題。實際上它是一份「我希望你優先看這些」的名單,名單錯了比沒有名單更糟。

sitemap 到底做什麼

sitemap 是發現機制,不是排名機制。放進去不代表會被收錄,沒放進去也不代表不會被爬到。它解決的是「爬蟲怎麼知道這個 URL 存在」,特別是站內沒有連結指過去的頁面。

這也帶出第一個常見誤解:sitemap 收錄 ≠ 內部連結。一個頁面只出現在 sitemap、站內沒有任何一條連結指過去,它就是孤兒頁。我們自家站 2026 年 8 月的盤點裡,371 個頁面有 94 個從來沒拿過任何一次曝光,佔 25.3%,其中很大一部分正是這種「只在 sitemap 裡」的頁。

sitemaps.org 的協定文件定義了格式,Google 的 sitemap 說明講的是它怎麼用這份名單。兩份都值得讀一次,因為它們都沒有承諾「放進去就會收錄」。

那個時區 bug

我們的 sitemap 產生器會過濾掉日期在未來的文章,避免排程稿提前曝光。判斷用的是伺服器的 UTC 當天。但內容的 frontmatter 寫的是台北時間。台北比 UTC 快 8 小時,所以在台北時間凌晨到早上 8 點之間,「今天」在 UTC 還是昨天,一篇標記為今天的文章就會被判成未來文,整批被跳過。頁面本身線上打得開、blog 索引頁也看得到,只有 sitemap 少了它。這種錯誤不會噴任何錯誤訊息。

修法有兩種,選一種就好,不要兩種都做:

做法改哪裡適合誰
日期一律帶時區 offsetfrontmatter 寫 2026-08-25T09:00:00+08:00內容團隊在同一個時區
產生器用台北當天判斷sitemap 產生邏輯改用 Asia/Taipei 取當天內容跨時區、不想動既有檔案

我們自己選第一種,因為它把時區資訊放在資料本身,而不是藏在產生器的邏輯裡。第二種要記得所有讀日期的地方都要一起改,只改 sitemap 會出現「sitemap 有、索引頁沒有」的反向不一致。

產生完必須驗的四件事

我們的部署腳本裡有四個檢查,任何一個沒過就不算部署完成。這四個不是理論,是我們各自踩過一次之後才加進去的。

  1. URL 數量對得上。拿 sitemap 的 URL 數對比內容目錄的檔案數,差太多就是有東西被過濾掉了。我們 2026 年 8 月做完內容剪枝之後是 1,062 個 URL,數字對不上就回頭查。
  2. 抽驗 5 筆真的回 200。用 curl 打,不要用瀏覽器看。
  3. 尾斜線形式一致。站台 canonical 有尾斜線,sitemap 裡就不能少,否則每一筆都吃一次 308 轉址。
  4. 今天發的文章在裡面。這一條就是上面那個 bug 的守門員。
curl -s https://example.com/sitemap.xml | grep -c "<loc>"

送出與複驗

送出有兩條路,兩條都做:Google Search Console 的 sitemap 送出,以及 IndexNow 這種即時通知協定。前者是給 Google 的,後者 Bing 與 Yandex 會吃。

送出之後不要就當作完成。到 Search Console 看兩個數字:sitemap 讀到的 URL 數,以及實際被收錄的數量。這兩個數字差很多是正常的,差得離譜就要查。我們的經驗是,新站前 4 週落差 50% 以上都還算合理,超過 3 個月還是這樣就代表內容或技術面有問題。

什麼不該放進 sitemap

名單放太多東西是最常見的浪費。標了 noindex 的頁、被 canonical 指向別頁的重複頁、參數化 URL、分頁的第 2 頁之後、以及登入後才看得到的頁,這些放進去只是在稀釋名單的訊號。我們的判準很簡單:這個 URL 你希望它出現在搜尋結果裡嗎。不希望就不要放,不確定就不要放。

反過來,被 robots.txt 擋掉的頁更不該放。爬蟲讀不到那個頁,就讀不到頁面上的 noindex,結果它會用一個更差的狀態留在索引裡。這一條的完整排查在 robots.txt 與收錄問題排查

常見問題

sitemap 一定要有嗎? 小站站內連結完整的話,沒有也會被爬完。站大、有孤兒頁、或是新站沒什麼外部連結時,它的價值才明顯。

多久更新一次? 有內容變動就更新。靜態產生的站在 build 時重新產出就好,不需要另外排程。

lastmod 要填嗎? 要,而且要填真的。填假的(例如每次 build 都寫成今天)會讓這個欄位失去意義,Google 也會學會忽略它。

sitemap 裡的 URL 數量有上限嗎? 單檔 50,000 筆或 50MB 未壓縮,超過就要拆成多個檔案並用 sitemap index 串起來,這是協定文件明訂的。

送出之後多久會收錄? 沒有保證的時間。我們自家站的觀察是新頁 3 天到 3 週都有,差異主要來自站台權重而不是 sitemap 本身。

參考來源

本文的時區 bug、1,062 個 URL 與 25.3% 零曝光頁這幾個數字,出自我們自家站 2026 年 8 月的實測與內容剪枝紀錄,不在上述任何一份來源裡。

想把整套流程交給別人跑,可以看我們的服務內容,或直接聯絡我們


了解我們的廣告策略與投放服務 →

分享:

讓你的廣告預算發揮最大效益

從帳號養成到數據追蹤,一站式搞定。

  • 專屬客戶經理,即時優化投放策略
  • 完整追蹤架構,每一分錢花得明明白白
  • 跨平台投放經驗,Meta / Google / TikTok

免費獲取您的廣告健檢報告

讓我們的專家分析您的廣告帳戶,找出浪費預算的關鍵問題。

100% 免費48 小時內回覆無綁約

📬 訂閱電子報

每週一封,投放實戰、產業趨勢、工具教學。不灌水,純乾貨。

我們不會分享你的 Email。隨時可以取消訂閱。