入口页在蜘蛛池里的任务很明确:让搜索蜘蛛进来,发现更多 URL,并顺着链接继续走。但很多抓取问题不是出在内容质量和链接数量上,而是出在几行 meta 标签里。标签配置不当,蜘蛛可能直接跳过页面,或者抓了页面却不跟进链接。
meta robots 最常见的几种误配
meta robots 决定页面能否被索引、链接能否被追踪。入口页通常希望蜘蛛抓取并跟进链接,因此模板里默认应该是 index,follow。实际工作中,问题往往来自复制粘贴和模板遗留。
- noindex 残留:从测试环境或旧模板继承来的 noindex,会让入口页不进入索引。虽然蜘蛛仍可能抓取并发现链接,但页面本身失去积累,长期看并不划算。
- nofollow 全站化:为了防止权重传递,有些站点在入口页所有链接上加 nofollow。蜘蛛可能因此减少甚至不追踪这些链接,URL 发现的效率会明显下降。
- noarchive、nosnippet 误用:这类指令主要影响摘要和缓存展示,一般不会阻断抓取,但没必要在入口页叠加,容易让标签检查变得混乱。
canonical 写错,等于告诉搜索引擎“别抓这里”
入口页批量生成时,最容易犯的错误是把 canonical 统一指向主站首页或某个不相关的页面。搜索引擎会认为当前入口页不是规范版本,可能减少抓取,至少不会把它当作需要认真对待的发现入口。
比较稳妥的做法是让每个入口页 self-canonical,也就是 canonical 指向自身 URL。如果入口页本身不打算被收录,也可以不写 canonical,但要接受搜索结果中可能出现各种版本,或者页面不进入索引。不要在多个入口页之间互相 canonical,也不要把所有入口页 canonical 到同一个目标。
nofollow 用在哪,不用在哪
nofollow 不是完全禁止抓取,但它会削弱蜘蛛对链接的追踪意愿。入口页的主要出口链接,尤其是希望被发现的 URL,不建议加 nofollow。真正需要控制的通常是广告、登录、用户评论等与 URL 发现无关的区域。
如果某个链接只是为了让用户点击,不打算让蜘蛛跟进,可以加 nofollow;但如果整个入口页的链接都加了 nofollow,入口页就失去了主要作用。
X-Robots-Tag 与 meta 标签冲突
HTTP 响应头里的 X-Robots-Tag 优先级高于页面内的 meta 标签。有时页面源码里写的是 index,follow,但服务器全局加了 X-Robots-Tag: noindex,蜘蛛看到的仍是不索引。排查时不能只看 HTML,还要看响应头。
robots.txt 与 meta robots 不是一回事
robots.txt 的 Disallow 会阻止蜘蛛抓取页面。页面既然抓不到,里面的 meta robots 也就不会被读取。如果入口页被 robots.txt 屏蔽,蜘蛛无法进入,链接发现自然中断。入口页一般不应在 robots.txt 里被禁止抓取;如果确实要禁止索引,用 meta robots 或 X-Robots-Tag 的 noindex 更直接。
抓取、索引和排名是三件事。meta 标签主要影响前两步,不能指望它解决排名问题,但写错会直接拖累抓取。
上线前可以做的检查
- 查看入口页源码,确认没有 noindex、nofollow 残留。
- 检查 canonical 是否指向自身,是否出现批量错误。
- 查看 HTTP 响应头,确认没有意外的 X-Robots-Tag。
- 检查 robots.txt,确认入口页路径没有被 Disallow。
- 用抓取工具或日志确认蜘蛛是否真的访问了出口链接,而不只是抓了入口页。
- 模板改动后抽查一批域名,避免只检查主站。
简单原则
入口页的标签越简单越好:能索引就 index,follow,需要跟进链接就不要全站 nofollow,canonical 尽量自指。不要在一个页面上叠加互相矛盾的指令,也不要把测试环境的标签带到线上。定期抽查比一次性配置更重要。