改版把文章详情做成了首页弹窗,点击只在当前页加载内容,地址栏不变,用户觉得流畅,一个月后文章收录数几乎清零。

一开始怀疑是「历史文章地址被 302 到首页,进一步失去入口」,查了一圈,方向不对。

原因不止一个,得分开看。弹窗内容没有独立 URL,蜘蛛无法单独索引。也可能是列表项的链接改成了 javascript 调用,没有 href。

不容易想到的是,弹窗内容靠接口加载,初始 HTML 里没有正文。

上来先看列表页链接是否还有 href

curl -s https://www.example.com/ | grep -o '<a [^>]*class="post-item"[^>]*>' | head

随后确认历史文章地址的返回码

curl -s -o /dev/null -w '%{http_code} %{redirect_url}' https://www.example.com/archives/123/

保留独立页面并让弹窗只做增强

add_action('wp', 'keep_single_page');

给列表项补可抓取的静态链接

add_filter('the_content', 'add_static_permalink');

恢复的判定其实很直接。列表项恢复带 href 的链接,文章页可独立访问并返回 200,收录在两周内恢复到改版前水平。

容易忽略的是,交互形式可以变,但每篇内容必须有可访问的独立地址,否则蜘蛛没有东西可收。报错文案容易误导,真正的原因往往在相邻那一层的日志里。

作者 9823189