搜索引擎处理一个 URL,通常要经过发现、抓取、索引三个阶段。抓取和索引的问题容易被讨论,发现这一步反而常被忽略:如果一个页面在整站里没有任何一条可抓取的链接指向它,它就只能靠 sitemap 或外链被知道,而这种被知道的强度,和从站内正常链接进入的页面并不在一个量级。
孤岛页面一般是怎么形成的
孤岛往往不是刻意做出来的,多数是运营过程中自然产生的。
- 活动专题页上线时挂在首页,活动结束后入口被撤,URL 还留在服务器上;
- 文章只在列表页第一页出现过,后来被新内容挤到很深的分页后面,甚至改版后不再展示;
- 页面只写进了 sitemap 文件,站内没有任何链接指向;
- 链接是 JS 运行时插入的,服务端返回的 HTML 里看不到;
- 只有外部站点链进来,站内从不引用;
- 内容需要登录、提交表单或点击某个按钮之后才会生成。
sitemap 能不能顶替内部链接
不能完全顶替。sitemap 的主要作用是告诉搜索引擎这些 URL 存在,它解决的是发现问题,不解决这个页面对站点来说重不重要。一个只能从 sitemap 被发现的页面,通常抓取频率更低,内容更新后被发现的时间也更长。真实的内链除了提供路径,还带着上下文信息:它位于哪个栏目、周围是什么内容、用什么文字描述,这些都会影响搜索引擎对这个页面主题的判断。
sitemap 是补充入口,不是主入口。把唯一入口放在 sitemap 上的页面,等于把发现权交给了文件更新时间。
补链的几种实际做法
- 在相关内容的正文里加自然链接。链接出现在正文中,上下文清晰,也最容易被跟随;
- 让栏目页、标签页或聚合页收录入口,使页面至少有一个稳定的上级路径,而不是只在时效性列表里出现;
- 检查导航和面包屑。层级不一定要浅,但路径要固定,不要因为改版就断掉;
- 相关阅读、推荐模块可以用,但别让所有页面都指向同一批 URL,那会变成新的集中化问题;
- 如果站内实在没有合适的引用位置,外部链接也能提供一条发现路径。
怎么确认站内确实有孤岛
几种方式可以互相印证:
- 用站内爬虫工具跑一遍全站,看有多少 URL 只能通过 sitemap 到达,或者根本没有入链;
- 查看服务器抓取日志,某些 URL 是否从未出现过蜘蛛请求;
- 对比 sitemap 里的 URL 数量和实际被爬取过的 URL 数量,差额明显就值得排查;
- 抽查重要页面:从首页入口开始点,看能否在三次点击内到达。
补链之后看什么
补链不会立刻带来收录。合理的观察顺序是:日志里先出现对该 URL 的抓取请求,再看索引状态是否从已发现转为已抓取,最后才是是否进入索引。这个过程可能几天,也可能几周,取决于站点整体抓取频率和页面本身的质量。如果补链后很久日志里仍然没有请求,优先检查是不是被 robots.txt 挡住、链接本身是渲染后才出现的,或者这个 URL 在站点里仍处于不被信任的状态。
最后一点:孤岛页面往往不只是发现问题。一个长期没有任何内部引用的页面,通常也缺少维护,内容陈旧、信息过时。补链之前先判断这个页面值不值得留,不值得的直接下线或合并,比硬给它找入口更省事。