做站点运营时,大家更關注标题、正文和連結,時間信号常被放在最後。但對搜尋蜘蛛来说,一篇文章是刚發布還是半年前更新,會影响它是否重新抓取、多久回訪一次。如果站点里几個地方给出的時間互相矛盾,蜘蛛只能按自己的理解處理,运营者却很难從表面看出問题。
蜘蛛能看到哪些時間信号
同一個頁面,可能同时存在多套時間信息:
- 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 又是另一個日期。蜘蛛不一定因此惩罚,但會降低對時間信号的信任。运营者最好把可见日期和结构化資料当成同一件事来维護。
自查顺序與操作建议
- 確認服務器时区。查看系統時間、PHP 或應用框架时区設定,和站点目标时区對齐。
- 抓取 HTTP 响應头。用浏览器開發者工具或 curl 查看 Last-Modified、Date、Cache-Control,確認不是缓存层返回的舊時間。
- 核對 Sitemap lastmod。只给真正修改過的頁面更新 lastmod,不要每次生成都全站刷新。
- 检查结构化資料。datePublished 和 dateModified 要和可见日期一致,修改内容时同步更新。
- 检查 RSS 和推送。pubDate 是否使用正确时区,是否把草稿或未来内容推出去。
- 查看服務器日誌。對比蜘蛛抓取時間、狀態碼和响應時間,確認定时發布前後有没有異常訪問。
時間信号的價值在于一致和真實,不在于數量多。與其在每個地方都塞一個時間,不如让几個關键位置说同一件事。
發布後的收尾习惯
内容發布或更新後,建议顺手做三件事:刷新相關缓存,確認頁面可见日期正确;如果改了正文,更新 dateModified 和 Sitemap lastmod;观察日誌里蜘蛛是否按预期回訪。對于定时發布,發布前检查草稿連結、预览連結和 RSS 是否提前泄露,發布後再把资源放進 Sitemap 或推送通道。
時間戳不是玄学,它只是站点运营中的一個基础信号。把时区、缓存、标记和展示對齐,蜘蛛讀到的信息就會更清楚,运营者也更容易判断一次更新到底有没有被及时發現。