下面按现场排查习惯来写,能直接复制的命令放在代码块里,顺序照做即可。 每次生成 sitemap 都把 lastmod 写成当天,两万条 URL 时间戳完全一致,蜘蛛一周只来抓了几十个页面,新文章迟迟不进索引。
改动前把原配置备份一份,出问题能马上回滚,这一步比任何技巧都实用。
先分清是哪一类原因
- 插件用生成时间而不是文章修改时间填充 lastmod
- 全站时间戳同时变化,等于告诉蜘蛛所有页面都没变过
- 没有真实更新信号的站点,抓取调度优先级会被整体降低
按顺序处理
1. 抽查 sitemap 里的时间分布
curl -s https://www.example.com/sitemap.xml | grep lastmod | head
2. 改成输出文章的真实修改时间
echo get_the_modified_time('c', $post_id);
3. 只保留最近半年有更新的页面进 sitemap
SELECT ID FROM wp_posts WHERE post_modified > '2026-05-01';
怎么确认已经恢复
重新提交后 sitemap 里出现多个不同日期,新页面的首次抓取间隔缩短到一天以内,日志里抓取条数明显增加。
容易忽略的地方
把 lastmod 改成未来时间属于明显作弊,被识别后整份 sitemap 的可信度都会下降,连正常页面也会被延后处理。 线上环境和本地环境的差异往往就在版本和默认参数上,比对一下两边的实际取值能省很多时间。