很多站长把注意力放在 sitemap 和各类提交入口上,却忽略了一个更日常的问题:搜索引擎平时是怎么顺路走到一个新 URL 的。URL 发现、抓取、收录是三件不同的事,而站内链接主要影响的是第一件。
先把发现、抓取、收录分开看
发现,是搜索引擎知道这个 URL 存在;抓取,是爬虫真的把页面取回来;收录,是内容进入索引,有机会被搜到。三者是递进关系,前一步没打通,后面就无从谈起。sitemap 和外链能帮着发现,但真正稳定、可持续的发现路径,通常是站内链接。
爬虫常见的几条发现路径
- 外部链接:别的站点指向你,爬虫顺着过来。
- Sitemap:你主动告诉它站点里有哪些 URL。
- 站内链接:从已经抓取的页面顺着 a 标签继续往下走。
- 历史记录:之前抓过的 URL,改版后仍可能被再次访问。
外链不完全可控,sitemap 更像一份清单,而站内链接是你能天天调整的那条路。如果一个页面在站内没有任何入口,它就只能依赖 sitemap 或外链被发现,稳定性要差不少。
内链上的几个常见断点
孤立页
页面直接输入网址能打开,但站内没有任何链接指向它。这类页面往往要等很久,甚至一直等不到下一次抓取。
链接不是链接
用 div、span 加点击事件来实现跳转,或者目标地址由脚本在点击那一刻才拼出来。爬虫读到的 HTML 里可能根本看不到可跟随的目标。
重要页面藏得太深
从首页要点五六层才能到,中间还夹着筛选页和分页。层级越深,被抓取的频率通常越低,更新也更慢被发现。
把链接属性用得太狠
整站导航、栏目列表上大面积使用 nofollow,或者用脚本整段屏蔽站内链接,等于自己把路堵掉一部分。nofollow 更适合用在确实不想背书的链接上,而不是站内导航。
可以马上自查的几件小事
- 重要页面尽量保证从首页三次点击内可达。
- 新内容上线后,在相关的老页面正文里补一个上下文链接。
- 面包屑、栏目列表、相关推荐,都是比较自然的内链位置。
- 分页和归档页不必全部放行,但通往正文的路径要留一条。
- 用抓取工具或服务器日志看看爬虫实际访问了哪些 URL,比凭感觉猜更靠谱。
内链的作用不是堆量,而是让爬虫和用户都能沿着合理的路径走到该看的页面。
别把内链做成另一场堆量
有人一听说内链有用,就在每个页面底部挂上几十上百条链接,或者用大量低质站点互相链接来引导爬虫。这类做法短期可能带来一些访问,但页面质量、用户体验和链接自然度都不占优,长期反而会拖累整体抓取效率。把有限的抓取机会留给真正有价值的页面,比铺满链接更有意义。
内链解决不了的那部分
回到开头:URL 发现只是第一步。内链铺得合理,爬虫更容易走到新页面;但页面本身值不值得收录,仍然取决于内容质量、重复程度和 URL 规范。换句话说,内链决定的是能不能被找到,决定不了值不值得留下。两件事都做,效果才稳。