现场是这样的。为了把旧文顶到列表前面,运营把 500 篇文章的发布时间改成了当天,列表顺序确实变了,搜索结果的日期却出现 2026 和 2019 混杂。
中间走过弯路,把「列表页按修改时间排序,和文章日期形成两套时间线」当成主因,改完现象没变。
排查方向其实有限,先把可能性排一排。发布时间被批量改成同一时刻,索引按新日期重排;页面上的可见日期和结构化数据里的 datePublished 不一致;sitemap 的 lastmod 跟着批量更新,进一步强化了错误信号。
上来先比对页面日期与结构化数据
curl -s https://www.example.com/post-1/ | grep -o 'datePublished[^,]*'
接着统计同一时刻发布的文章数
SELECT COUNT(*) FROM wp_posts WHERE post_date='2026-11-01 10:00:00';
然后把日期改回原始发布时间
UPDATE wp_posts SET post_date='2019-06-12 09:30:00' WHERE ID=123;
同步修正结构化数据的日期
add_filter('wpseo_schema_article', 'sync_publish_date');
怎么算真的好了,看的是同一批现象。搜索结果里的日期回到真实发布时间,列表页改用编辑推荐位置顶,索引里的日期混乱消失。
容易忽略的是,发布时间是内容可信度信号,批量改写会让整批页面的时间线失真,置顶应该用排序字段而不是改日期。这类问题最好一次改到位,反复小改反而容易把原因搅混。
