先看现象。列表页的卡片用 onclick 跳转,没有 a 标签,用户点击正常,蜘蛛完全看不到这些文章入口。

把日志和配置对完,能解释这个现象的基本就这几处。卡片用 div 绑定点击事件。另一种情况是框架路由接管了跳转。

另外,a 标签的 href 写成了 javascript:void(0)。

先检查源码里有没有真实链接

curl -s https://www.example.com/list/ | grep -o '<a href="[^"]*"' | wc -l

接着改成带 href 的 a 标签

echo '<a href="' . get_permalink() . '">';

等前面都确认过,再确认点击与抓取都正常

curl -sI https://www.example.com/a/ | head -1

白天有业务在跑,能验证的部分都压到了晚上做。

当时还开着另一个排查窗口,两边日志对照着看才定位到。

改完先别撤,确认这几项。源码里出现可抓取的链接,文章页的抓取量上升。

这里还有个坑。把链接放进 JS 是现代前端最常见的收录障碍,样式可以保留,但 href 必须存在且可访问。用无痕窗口关掉 JS 打开页面,能看到多少链接,蜘蛛基本也就看到多少,数量对不上时先查模板循环。监控比日志更早给出信号,事后回看经常能提前半小时发现异常。

作者 9823189