很多站点运营者会把“提交站点地图”当成 URL 发现的全部手段:只要 URL 出现在 sitemap.xml 里,就认为搜索引擎一定会知道它、并且会去抓。实际运行一段时间后常常发现,地图里列了几千条 URL,日志里被爬的却总是那几百条。
原因通常不在站点地图,而在链接结构。一个页面如果没有任何站内链接指向它,只能通过站点地图或外部链接被发现,这类页面一般被称为孤岛页面。它们不一定不被收录,但被发现和被重访的概率明显更低。
站点地图解决“知道有这个地址”,不解决“值得抓”
站点地图的作用是声明地址和更新信号,它本质上是一份被动清单。搜索引擎读到清单之后,仍然要判断这个 URL 在站点中处于什么位置:有多少页面链接它、链接出现在什么页面、链接锚文本是什么。
内链承担的是另一种信息:它说明这个页面对站点结构有多重要。一个被首页或栏目页链接的页面,通常比只在站点地图里出现过一次的页面更容易被优先抓取。站点地图和站点结构不是互相替代的关系,但如果只有前者,页面的发现效率会明显打折。
孤岛页面常见于哪几种情况
- 改版或迁移后,旧列表页被删除,正文页的入口链接一并消失,但页面本身还返回 200。
- 后台生成的页面(标签组合、筛选结果、活动落地页)只存在于数据库和站点地图里。
- 内容被移动到新路径并设置了跳转,但没有任何页面链接到新地址。
- 分页列表只放出第一页的链接,后续页面的内容没有其他入口。
- 由程序批量生成的页面,模板里有导航,但导航指向的是另一套路径规则。
自查顺序:先确认是不是孤岛,再确认有没有被爬
排查不要一上来就改模板,先按下面的顺序确认问题卡在哪一步。
- 在日志里筛选目标 URL,看它是否被访问过。如果长期零访问,说明发现环节就没走通。
- 检查站内是否有链接指向该 URL,包括导航、面包屑、正文内链、相关推荐和列表页,统计入链数量与来源层级。
- 确认这些链接是可抓取的普通链接。用 JS 事件跳转、需要交互才渲染的链接,发现效果会弱很多。
- 确认该 URL 没有被 robots.txt 拦截,也没有在页面里被 noindex,这两者会造成“能发现但不能索引”的错觉。
- 如果曾经被抓取过但很久没再访问,看内容是否有实质更新、页面是否长期返回错误状态或超时。
抓取和收录是两件事。孤岛页面通常先卡在“发现与抓取”这一步,而不是“内容质量”这一步。先解决入口,再讨论质量。
修复时优先做这几件事
- 给栏目页或聚合页补充指向详情页的稳定入口,避免只依赖分页加载或搜索框。
- 面包屑保持可点击、可抓取,不要用纯文本或图片代替链接。
- 相关内容模块尽量输出真实的主题关联,而不是随机推荐,随机链接的传递作用有限。
- 站点地图仍然保留,但把它当作补充手段,而不是唯一入口。
- 如果页面确实没有保留价值,用 404 或 410 明确处理,不要让它长期以孤岛状态存在。
一个容易被忽略的细节:入链的位置也在起作用
同样是孤岛变有链,从首页加一个链接,和从深层页面加十个链接,效果往往不一样。首页和栏目页被抓取更频繁,链接被重新发现的速度也更快。反过来,如果链接全部来自本身就很少被抓取的页面,发现速度提升有限。
另外,内链数量不是越多越好。短时间内给一个页面塞进大量重复链接,并不会让抓取变快,反而可能让页面结构显得混乱。更实际的做法是让每个重要页面都从一到两个稳定的上游页面可达,并且这条路径在站点结构里长期存在,而不是靠一次性的活动页带流量。
最后提醒一句:孤岛页面是结构问题,修复后通常需要几周时间才能在抓取日志上看到变化。与其反复追问某一篇内容为什么还没收录,不如先确认它在站内到底有没有被“指路”。