站点运营

站点运营:定时發布與時間戳自查,別让蜘蛛拿到矛盾的時間信号

站点發布和更新时,時間信号往往被忽略。Last-Modified、Sitemap lastmod、结构化資料日期、可见日期、RSS pubDate 和服務器时区如果不一致,蜘蛛可能誤判内容新舊。本文梳理常见矛盾场景與自查顺序,帮助你把時間信号整理清楚。

站点运营

站点运营:定时發布與時間戳自查,別让蜘蛛拿到矛盾的時間信号

做站点运营时,大家更關注标题、正文和連結,時間信号常被放在最後。但對搜尋蜘蛛来说,一篇文章是刚發布還是半年前更新,會影响它是否重新抓取、多久回訪一次。如果站点里几個地方给出的時間互相矛盾,蜘蛛只能按自己的理解處理,运营者却很难從表面看出問题。

蜘蛛能看到哪些時間信号

同一個頁面,可能同时存在多套時間信息:

  • HTTP 响應头里的 Last-Modified,表示服務器認為资源最後修改的時間。
  • Sitemap 中的 lastmod,表示该 URL 内容更新的時間。
  • 结构化資料里的 datePublished 和 dateModified。
  • 頁面可见日期,比如标题下方的“發布于”“更新于”。
  • RSS 或主動推送中的 pubDate。
  • 服務器日誌里记錄請求發生的時間。

這些時間不必完全相同,但至少不能互相打架。比如頁面顯示“今天更新”,Last-Modified 還是三個月前,Sitemap lastmod 又是全站统一生成時間,蜘蛛就很难判断该信哪個。

常见的矛盾與誤判场景

定时發布提前暴露頁面

有些站点先建立好文章,設定未来發布時間,但 URL 已经可以訪問。蜘蛛一旦抓到,可能看到一個带有未来日期的頁面。如果頁面内容完整,它可能直接索引;如果内容不完整,又可能留下低质量印象。更稳妥的做法是,發布前让連結不可訪問,或至少加 noindex,並避免把地址放進 Sitemap 和 RSS。

更新内容但時間没變

修改了正文、补充了資料,但頁面是静態生成或缓存未刷新,Last-Modified 仍是舊時間;结构化資料里的 dateModified 也没改。蜘蛛按舊時間判断,可能很久不再回訪。相反,如果每次构建都把所有頁面的 lastmod 刷成目前時間,蜘蛛會認為全站频繁更新,反而稀释重点。

时区導致日期差一天

服務器用 UTC,編輯在本地時間晚上十点發布,頁面顯示当天,结构化資料却寫成前一天。這類差异看似小,在跨时区团队里很常见。如果站点主要面向中文用戶,建议统一用一個明确时区,並在後台、服務器、Sitemap 生成逻辑中保持一致。

可见日期與标记日期不一致

頁面顯示“2024 年 5 月更新”,结构化資料却是 2023 年,RSS 又是另一個日期。蜘蛛不一定因此惩罚,但會降低對時間信号的信任。运营者最好把可见日期和结构化資料当成同一件事来维護。

自查顺序與操作建议

  1. 確認服務器时区。查看系統時間、PHP 或應用框架时区設定,和站点目标时区對齐。
  2. 抓取 HTTP 响應头。用浏览器開發者工具或 curl 查看 Last-Modified、Date、Cache-Control,確認不是缓存层返回的舊時間。
  3. 核對 Sitemap lastmod。只给真正修改過的頁面更新 lastmod,不要每次生成都全站刷新。
  4. 检查结构化資料。datePublished 和 dateModified 要和可见日期一致,修改内容时同步更新。
  5. 检查 RSS 和推送。pubDate 是否使用正确时区,是否把草稿或未来内容推出去。
  6. 查看服務器日誌。對比蜘蛛抓取時間、狀態碼和响應時間,確認定时發布前後有没有異常訪問。
時間信号的價值在于一致和真實,不在于數量多。與其在每個地方都塞一個時間,不如让几個關键位置说同一件事。

發布後的收尾习惯

内容發布或更新後,建议顺手做三件事:刷新相關缓存,確認頁面可见日期正确;如果改了正文,更新 dateModified 和 Sitemap lastmod;观察日誌里蜘蛛是否按预期回訪。對于定时發布,發布前检查草稿連結、预览連結和 RSS 是否提前泄露,發布後再把资源放進 Sitemap 或推送通道。

時間戳不是玄学,它只是站点运营中的一個基础信号。把时区、缓存、标记和展示對齐,蜘蛛讀到的信息就會更清楚,运营者也更容易判断一次更新到底有没有被及时發現。