Sitemap 是入口,不是通道
Sitemap 的作用是告诉蜘蛛这些 URL 存在,它解决的是发现问题,不解决发现之后的路径问题。蜘蛛按 Sitemap 抓过一次之后,如果没有别的页面链向这个地址,下次想再来,基本只能等 Sitemap 被重新读取。相比之下,一个从首页经过两三次点击就能到达的页面,蜘蛛在例行爬行时会顺路经过。
结果就是这类页面不是抓不到,而是抓取频率明显偏低,更新后被发现的时间被拉长。如果站点规模不大、蜘蛛来访本身就有限,这种差距会更明显。
三种常见的形成原因
1. 上线流程只走 Sitemap
新页面由程序生成后直接写进 Sitemap,没有人去列表页、导航或相关推荐里放链接。短期看省事,长期看这些页面只能靠 Sitemap 维持存在感。
2. 改版时删掉了旧入口
栏目结构调整、导航精简、模板替换,都可能把原本指向某批页面的链接去掉。页面本身还在,Sitemap 也还在,但站内已经没有任何路径能走到它。这类问题通常在改版后一两个月才从抓取数据里看出来。
3. 链接由脚本生成
列表页用点击后再加载的方式填充内容,或者链接写在脚本里由前端渲染。蜘蛛能不能顺着走,取决于渲染方式是否被正确处理。如果默认返回的 HTML 里没有对应的 a 标签,这批页面在站内就等于孤立。
怎么把这类页面找出来
- 把 Sitemap 里的 URL 列表和站内可点击链接指向的 URL 列表做差集,只出现在 Sitemap 一边的就是候选。
- 在服务器日志里按 URL 统计来访次数,观察这批地址是不是集中在 Sitemap 更新后的那几天,之后长期没有访问。
- 抽几个样本页面,用不执行脚本的方式看返回的 HTML,确认有没有一行 a 标签指向它们。
修复顺序:先补内链,再决定 Sitemap
如果页面确实需要被搜索流量看到,优先给它补一个真实的内链入口。位置不用多,一到两个相关位置就够:相关列表页、正文里的自然引用、面包屑或上一级栏目。Sitemap 可以继续保留,但不要再把它当作唯一入口。
补完入口后,还要确认这个页面自己有出口链接。孤岛页面即使被访问,如果页面里没有指向其他内容的链接,蜘蛛走到这里也只能原路返回,对整站抓取的贡献有限。
对于确实不需要内链的场景,比如纯工具页、临时活动页、只在特定渠道投放的落地页,可以继续只放在 Sitemap 里。但要接受它抓取频率低、更新被发现得慢这个前提,不必为此反复调整模板。
一个可以立刻做的检查
从 Sitemap 里随机抽二十条 URL,逐条确认它是否能从站内正常点击路径到达。找不出来的先记下来。这一步不需要额外工具,几分钟就能看出大概比例。
Sitemap 负责让蜘蛛知道页面在哪,内链负责让蜘蛛一次次回到页面。两者只留一个,页面就会长期处在半休眠状态。