入口页要承担“让搜索蜘蛛发现目标 URL”的任务,但很多入口页为了排版或防爬,会把链接放在图片热区、iframe、按钮或 JS 事件里。这些形式对普通访客也许能点,对搜索蜘蛛不一定等价于一条可发现的链接。下面按常见承载方式拆开说。
先分清“发现 URL”和“抓取、收录”
搜索蜘蛛发现 URL 通常来自几个渠道:页面里的可抓取链接、XML sitemap、历史抓取记录、外部链接等。入口页里的链接形式,主要影响的是“能不能从当前页面发现这个地址”。发现之后,是否抓取、何时抓取、是否收录,还取决于目标 URL 本身的质量、服务器响应、robots.txt、canonical 等因素。所以不要把一个链接形式的差异直接等同于收录结果。
几种承载形式,搜索蜘蛛实际能读到什么
1. 标准 a 标签:最稳定
把目标 URL 写成 a href,并且 href 是真实地址,是搜索蜘蛛识别成本最低的形式。它不需要执行 JS,也不依赖渲染,通常能直接进入链接发现流程。如果入口页有多个目标 URL,建议每个都至少有一条这样的链接。
2. 图片链接和图片热区
如果图片外层包着 a 标签,图片本身只是可点击区域,搜索蜘蛛读到的仍然是 a 标签里的 href,这种情况通常可以按普通链接处理。但如果只在图片上做热区,或者用 JS 监听图片点击再跳转,href 不存在,搜索蜘蛛一般不会把图片坐标当成 URL 来发现。img 的 alt 是文本描述,不是链接地址,不能替代 href。
3. iframe 内嵌页面
iframe 里的内容是否被抓取,取决于搜索引擎的渲染能力和 iframe 的可访问性。同域 iframe 相对容易被渲染,跨域 iframe 可能因为安全策略、加载失败或延迟加载而读不到。即使能渲染,iframe 内链接的发现稳定性通常也不如主文档里的普通链接。把关键目标 URL 只放在 iframe 里,是风险较高的做法。
4. 表单按钮和 onclick 事件
按钮提交表单、onclick 跳转、下拉菜单选择后跳转,这些交互依赖 JS 执行和用户操作。搜索蜘蛛一般不会主动点击按钮,也不会把 form action 或 onclick 里的 URL 当作页面链接来发现。除非渲染后生成了真实 a 链接,否则这些形式对 URL 发现帮助很有限。
如果必须用非标准形式,怎么降低风险
- 每个目标 URL 至少保留一条可抓取的 a href,不要只放图片热区或按钮。
- iframe 尽量同域、静态、不要延迟加载,并在 iframe 外也给出普通链接。
- JS 跳转的地址,可以在 noscript 或页面底部用 a 标签列一份。
- 入口页本身不要被 robots.txt 误拦,也不要给关键链接加 nofollow。
- 用 sitemap 作为补充,但 sitemap 不能替代页面内的链接结构。
怎么验证搜索蜘蛛到底读到了没有
最直接的是看服务器日志:入口页被抓取后,目标 URL 有没有出现来自搜索蜘蛛的请求。如果没有,先确认入口页返回的是 200,且链接不是只在 JS 里生成。其次可以用搜索引擎的抓取测试或富媒体测试工具,查看渲染后的 HTML 里是否存在目标链接。也可以用同域测试页,把不同链接形式放在一起,观察日志差异。注意,日志里出现请求只能说明被发现和抓取过,不能保证收录。
入口页的链接形式,决定的是“发现概率”,不是“收录结果”。标准 a 标签是基本盘,iframe、图片热区和按钮只能算辅助,而且需要日志验证。
如果你正在做蜘蛛池入口页,优先把目标 URL 用普通 a 标签写清楚,再考虑其他展示形式。这样对搜索蜘蛛最友好,也方便后续排查。