报错是这么冒出来的。日志显示蜘蛛最多翻到 /cat/sub/page/ 这一层,再往下的文章地址一次都没有被访问,sitemap 里提交了也没用。
原因不止一个,得分开看。深层页面只能通过分页到达,路径过长。少数情况下是栏目页没有直接指向文章的聚合入口。
还有一种情况,sitemap 里虽然提交了,但缺少内链支撑。
第一件事是统计被抓页面的目录层级分布
awk '{print $7}' access.log | awk -F/ '{print NF}' | sort | uniq -c
给栏目增加热门文章聚合块
echo get_posts(array('numberposts'=>10));
等前面都确认过,再用相关文章把深层页面横向上连起来
curl -s https://www.example.com/post-1/ | grep -c 'related'
同样的操作我在测试机上先走了一遍,线上只做验证过的部分。
别只看报错消失,验证要多做一步。日志里开始出现深层文章的抓取记录,收录数量逐步上升,三周后覆盖到全部栏目。
提醒一点。蜘蛛的抓取深度受权重分配影响,链接层级越浅越容易被抓,重要文章尽量控制在三次点击以内。如果同一现象隔几天又出现,说明根因没找到,别当偶发处理。