很多站长盯着 sitemap 和蜘蛛池推送,却忽略了一件更基础的事:蜘蛛进入一个页面之后,是沿着页面上的链接决定下一步去哪的。内链稀少的页面,等于站在一条没有岔路的死胡同里,蜘蛛抓完这一页,就没有理由继续往别的 URL 走。
蜘蛛靠链接分配抓取资源
搜索引擎的抓取能力是有上限的,不会无限量地爬完一个站点的所有地址。它会根据链接结构给页面排出一个大致的优先级:被多次链接到的页面更容易被反复抓取,几乎没有入口的页面则排在队伍后面。
这里说的链接,不只是网站导航和页脚。正文里自然出现的链接、分类列表、相关文章模块、面包屑,都在向蜘蛛传递“这个地址值得走一趟”的信号。一个页面如果只有顶部导航那几个链接,蜘蛛抓到之后能获得的下一步线索就非常有限。
什么样的页面容易变成抓取死角
- 只在某个列表的第 60 页以后出现,前面的分页又没有稳定入口
- 页面本身内容不多,正文里没有任何指向其他相关页面的链接
- 只靠 sitemap 提交,站内没有任何页面链接到它
- 链接被放在 JS 生成的下拉菜单里,展开才出现
- 全站所有页面都指向首页和几个频道页,深层页面之间互不相连
这些情况共同点是一样的:蜘蛛即使抓到了这一页,也没有继续前进的路。久而久之,这类 URL 会长期停在“已发现但未抓取”或者干脆没被发现的状态。
内链不是越多越好
既然链接重要,是不是每个页面都塞满链接?不是。链接数量和链接质量是两回事,页面里堆几十个无关链接,反而会稀释每个链接的分量,也会让蜘蛛把抓取预算花在低价值地址上。
更实际的做法是让链接和内容有关系。讲同一个主题的页面互相链接,操作步骤里提到某个功能就链到对应说明页,案例里提到某个产品就链到产品页。这种链接蜘蛛能理解,用户也愿意点。
内链的作用不是把所有页面串成一团,而是让每条链接都有存在的理由。
让深层页面被走到的几个做法
- 稳定分页入口。列表页翻到后面的内容,最好有可以直接到达的路径,或者用分类、标签把内容分散到更浅的层级,不要只靠无限滚动往下加载。
- 正文里做主题互链。同主题的文章之间互相引用,形成一个小范围的链接网,蜘蛛抓到其中一篇,就有机会顺路抓到其他几篇。
- 相关推荐别用纯 JS 渲染。如果相关文章模块是靠前端请求才生成的,蜘蛛未必能看到这些链接,改成服务端输出更稳妥。
- 面包屑保持可点击。面包屑指向分类和上级页面,是成本很低的一条抓取通道。
- 检查孤立页面。站内搜索一下站点的 URL 数量,再对比有多少页面至少被一条内链指向,差距往往能说明问题。
配合 sitemap 和推送,但不要依赖它们
sitemap 和主动推送能帮蜘蛛知道有哪些 URL 存在,但它们解决的是“发现”,不解决“值不值得继续抓”。蜘蛛从 sitemap 里看到一个地址,抓完发现页面没有出口,下一次是否还来就不好说了。
把内链结构理顺,再配合 sitemap 覆盖那些确实不好从页面走到的地方,两者才能互相补位。只做推送不做内链,长期看抓取量很难稳定下来。
观察抓取是否真的在往下走
做调整之后不要只看收录数字。可以观察服务器日志里蜘蛛的访问路径:它是集中在首页和几个热门页反复抓,还是能一路走到分类页、详情页;被抓取的 URL 是不是集中在某几个目录。如果抓取始终停在上层,说明内链还没有把路径打通。
内链优化不会立刻让页面进索引,它更像是把路修好。路修好了,蜘蛛愿不愿意常来,还取决于内容本身是否值得反复抓取。这两件事分开看,思路会清楚很多。