做入口页时,很容易把「被发现」和「被抓取、被收录」混成一件事。目标 URL 能不能被搜索蜘蛛发现,与它有没有被 robots.txt 挡住、有没有设 noindex,是两套完全不同的机制。这篇文章把三者拆开讲。
先分清三个阶段:发现、抓取、索引
- 发现:搜索蜘蛛在入口页 HTML 里看到一条指向目标 URL 的链接,把它放进待抓取队列。
- 抓取:蜘蛛实际发出请求并拿到响应。这一步受 robots.txt、访问频率、服务器状态影响。
- 索引:抓到的内容经过评估后进入索引库,受 noindex、内容质量、重复度影响。
入口页能帮上忙的主要是第一步。后面两步的决定权,在目标站自己的配置和内容上。
目标 URL 被 robots.txt 屏蔽会怎样
robots.txt 里的 Disallow 是「请求抓取」的约定,不是「禁止发现」。蜘蛛从入口页解析出一条被 Disallow 的 URL 后,通常仍会知道这个地址存在,但不会去抓它的正文。
于是常见两种结果:
- URL 可能仍出现在搜索结果里,但没有标题描述和摘要,各搜索引擎表现并不一致。
- 更多时候它只是躺在待抓取队列里,长期不产生任何抓取记录。
入口页解决的是「让蜘蛛知道有这个地址」,解决不了「蜘蛛愿不愿意抓」。被规则挡住的 URL,加多少入口页都推不动。
noindex 和 robots.txt 一起用,反而会失效
noindex 通过 meta 标签或 X-Robots-Tag 响应头传达,前提是蜘蛛能抓到页面、读到这个标签。如果同时用 robots.txt 屏蔽了这个 URL,蜘蛛根本不会请求它,也就看不到 noindex,标签等于白写。这是很常见的配置错误。正确做法是:想让页面退出索引,允许抓取并加 noindex;想彻底禁止抓取(比如后台目录),才用 robots.txt。
对入口页运营的实际影响
不少人在入口页里铺满目标 URL,却忘了先检查目标站自己的 robots.txt。典型踩坑有这些:
- 目标站测试阶段写了 Disallow: /,上线后忘了删,入口页怎么推都没用。
- 目标 URL 带参数,被 robots.txt 里的通配规则误伤。
- 目标页为了临时下架设了 noindex,之后忘了改回来。
这三类问题的共同点是:入口页工作正常,目标 URL 本身却处在不可抓取状态。
怎么验证
第一步,直接在浏览器打开目标站的 robots.txt,逐条看规则是否覆盖到你的目标 URL。搜索蜘蛛按域名匹配规则,一条 Disallow: / 就能把整站挡掉。
第二步,用日志核对。如果抓取日志里长时间没有针对这些目标 URL 的请求,而入口页本身有稳定的蜘蛛访问,那问题基本不在入口页,而在目标站的抓取规则或页面状态上。
第三步,用站长平台的 URL 检查工具看抓取结果,它会直接告诉你「已被 robots.txt 屏蔽」还是「可抓取」。
几条实用建议
- 入口页只负责发现,不负责绕过规则。先确认目标 URL 本身可被抓取,再考虑怎么让它更快被发现。
- robots.txt 和 noindex 别用在同一组 URL 上,否则 noindex 不生效。
- sitemap 和入口页可以配合使用,但两者都替代不了目标站的可抓取状态。
- 入口页每天稳定放出少量新链接,通常比一次性堆几百条更容易让蜘蛛形成规律访问。
把「发现」和「抓取」分清之后,很多看起来是入口页无效的问题,其实根源在目标站自己的配置上。先排查规则,再谈推送节奏,顺序反了会白花很多时间。