做站点运营时,大家更关注标题、正文和链接,时间信号常被放在最后。但对搜索蜘蛛来说,一篇文章是刚发布还是半年前更新,会影响它是否重新抓取、多久回访一次。如果站点里几个地方给出的时间互相矛盾,蜘蛛只能按自己的理解处理,运营者却很难从表面看出问题。
蜘蛛能看到哪些时间信号
同一个页面,可能同时存在多套时间信息:
- 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 或推送通道。
时间戳不是玄学,它只是站点运营中的一个基础信号。把时区、缓存、标记和展示对齐,蜘蛛读到的信息就会更清楚,运营者也更容易判断一次更新到底有没有被及时发现。