站点里有不少页面,内容不差,但访问日志里几乎看不到蜘蛛的身影。排查时大家习惯先看 Sitemap、robots.txt,却容易忽略一个更基础的问题:从首页出发,蜘蛛要经过几条链接才能走到这个页面。
蜘蛛靠链接移动,链接层级就是距离
蜘蛛没有站内搜索框,它进入站点后能依靠的只有链接。首页是绝大多数抓取的起点,之后每跟一条链接,就往外走一层。层级越深,被走到的概率越低,这不是哪条规则写死的,而是抓取量和路径损耗叠加的结果。
所以“页面能不能被抓到”这件事,一半取决于内容本身,另一半取决于它离入口有多远。
目录层级和链接层级是两回事
URL 里的斜杠数量(例如 /a/b/c/d/page.html)只是地址写法,蜘蛛不会因为 URL 长就放弃。真正决定距离的是链接跳数:首页有没有指向它,中间要经过几次点击。
不过两者常常相关。目录越深的页面,往往也只被同级栏目链接到,于是链接层级也跟着变深。把重要内容放在较浅的目录里,再用内链补足路径,是更省事的做法。
三种真正有效的内链入口
首页与一级栏目页
首页的链接位置最值钱,但数量有限。与其把所有分类都堆在首页,不如让首页指向栏目页,栏目页再指向下一级,形成清晰的树状结构。每一层都要有返回上一级的链接,别让蜘蛛走到叶子页面后无路可走。
面包屑导航
面包屑的另一个作用是给蜘蛛提供一条从深层页面回到首页的路径。它同时把页面的归属关系写清楚,链接文本通常就是栏目名,指向也稳定。注意面包屑里的每一级都应该是可点击的真实链接,而不是纯文本。
正文里的上下文链接
文章中提到相关主题时顺手加一条内链,往往是发现效率最高的入口。它带给蜘蛛的不只是地址,还有语义线索。相比在页脚堆几十条全站链接,几条放在正文里的相关链接通常更容易被跟到。
几个容易被忽略的细节
- 链接用 a 标签和 href 写出来,依赖 JS 点击事件的跳转,蜘蛛不一定能执行到位。
- 列表页分页、筛选条件都会生成新链接,注意别让它们把深层详情页挤到抓取队列后面。
- 重要页面尽量在多个位置出现,比如栏目页、相关推荐、面包屑,路径越多越不容易断。
- 页面改版或调整目录后,老链接要做跳转,别让内链指向已失效的地址。
- 同一页面重复指向同一个地址,收益有限,数量不必刻意追多。
深层页面太多时,加一层聚合入口
如果一个栏目下有上千条详情页,靠栏目页逐个链接并不现实。可以按主题、时间或标签做聚合页,让蜘蛛从栏目页走到聚合页,再从聚合页走到详情页。聚合页本身要有实际内容,避免变成只有链接的空壳。
用日志验证,而不是凭感觉
改完内链,最直接的验证方式是看服务器日志:蜘蛛访问深层页面的次数有没有变化,哪些层级长期没有记录。也可以自己在浏览器里从首页点进去,看看需要几步、有没有断链、有没有跳转到不希望被抓的地址。这一步比反复调整 Sitemap 更实在。
内链不会让页面必然被收录,但它决定了蜘蛛有没有机会看到这个页面。把路径铺平,剩下的交给内容本身。