先看现象。面包屑最后一级是当前页面标题,模板里用 span 渲染,前几级都是 a 标签,蜘蛛从列表页进详情页时少了这条回链,深页面的抓取频次明显偏低。
原因不止一个,得分开看。模板把当前页当成不可点击项,直接输出 span。另一种情况是列表页到详情页只有一条入口,没有其他回链。
还有一种情况,详情页底部的相关推荐也用了 JS 加载。
末级保留文本但补上指向自身的链接
curl -s https://www.example.com/p/1024 | grep -o '<span class="current">[^<]*</span>'
接着改为带 aria-current 的链接
<a href="/p/1024" aria-current="page">标题</a>
随后在详情页补一条回列表页的链接
curl -s https://www.example.com/p/1024 | grep -c 'href="/category/seo/"'
等前面都确认过,再观察深页面的抓取频次
grep -c '/p/' access.log
改之前我把相关日志按时间截了一段存着,事后对时间线用得上。
恢复的判定其实很直接。补上回链后,详情页的日均抓取从 900 次涨到 1500 次,新发布的文章当天就能被抓到。
容易忽略的是,末级不加链接在体验上没错,但蜘蛛少了一条路径,用 aria-current 的 a 标签两头都能兼顾。如果同一现象隔几天又出现,说明根因没找到,别当偶发处理。
