常见问题

入口页把目标链接放进 iframe 或 noscript:搜索蜘蛛还能发现吗

iframe 和 noscript 是入口页里常见的两种“间接”放链接方式。它们不是完全读不到,而是稳定性差:iframe 的 src 一般能被发现,但内部链接依赖渲染;noscript 里的链接各引擎处理不一致。本文说明二者差异、容易被漏掉的原因、更稳的放链接方式和验证思路。

常见问题

入口页把目标链接放进 iframe 或 noscript:搜索蜘蛛还能发现吗

做蜘蛛池或站群入口页时,为了排版整洁、避免访客直接点走,有人会把目标链接放进 iframe,或者写进 noscript 里。这两种写法对人来说“看得见但不显眼”,对搜索蜘蛛来说却属于边界情况:有时能被发现,有时完全读不到,而且不同搜索引擎的处理并不一致。

iframe 里的链接:src 好发现,内部链接难说

iframe 本质上是在入口页里嵌入另一个文档。搜索蜘蛛解析入口页 HTML 时,会看到 iframe 的 src 地址,通常会把它当作一个需要抓取的资源,也就是说,iframe 的 src 本身一般能被发现。

真正不确定的是 iframe 内部那层文档里的链接:

  • iframe 的 src 地址:一般会被请求,发现概率较高。
  • iframe 内部文档里继续嵌套的链接:需要搜索引擎愿意为这个 iframe 启动渲染,发现概率明显下降。
  • 跨域 iframe、多层嵌套 iframe:大概率只抓第一层,里面不再跟进。
  • src 由 JavaScript 动态写入:要先完成渲染才拿得到地址,比静态写法更晚被发现,也可能压根不渲染。
  • 懒加载 iframe、进入视口才加载:部分抓取器会直接跳过。

noscript 里的链接:更像是“备胎”

noscript 的语义是“浏览器不支持或关闭 JavaScript 时显示的内容”。主流搜索引擎抓取时通常执行 JavaScript,渲染后的页面里 noscript 内容未必生效;但原始 HTML 里写的链接是否会被解析,各引擎做法并不统一,也没有对外承诺。

结论很简单:可以把 noscript 当作补充,但不要把它当作目标 URL 的唯一入口。如果整页链接只放在 noscript 里,那发现与否基本靠运气。

为什么这两类链接容易被漏掉

  • 需要渲染才能拿到,在抓取队列里排在主文档静态链接之后。
  • iframe 是独立文档,继承不到入口页的正文上下文,蜘蛛判断链接价值时缺少依据。
  • 爬虫预算有限时会优先抓主文档里、层级更浅的链接。
  • 搜索质量团队对隐藏内容、异常嵌套结构有专门的识别逻辑,这类写法天然处于不利位置。

更稳的放法

  1. 目标链接优先写在入口页正文的普通 a 标签里,href 直接输出在静态 HTML 源码中,不依赖 JS。
  2. 如果确实要用 iframe,至少把目标 URL 同时放在 iframe 的 src 和 iframe 之外的普通链接里,两条路径互为备份。
  3. 需要 noscript 就保留,但同一批 URL 必须在常规可见区域再出现一次。
  4. 控制单页的 iframe 数量与嵌套层级,几十个 iframe 混在一个入口页里,抓取体验会很差。
  5. 把 sitemap、站内链接、URL 提交渠道作为补充发现通道,不要把希望压在一个入口页上。

怎么验证蜘蛛有没有真的读到

判断依据应该是日志和实际抓取记录,而不是猜测:

  • 在服务器日志里搜目标 URL,看是否有来自搜索蜘蛛的请求,注意请求时间是否紧跟入口页被抓取之后。
  • 对比入口页与目标页的抓取时间差;时间差过大,或目标页从未出现,说明这条链接没被跟进。
  • 用搜索引擎官方工具查看渲染后的 HTML,确认链接在渲染结果里确实存在。
  • 把 iframe 页面单独拿出来,用抓取工具的“获取并渲染”功能对比静态源码与渲染结果。
隐藏或嵌套的链接并不是“一定读不到”,而是“不能稳定地读到”。蜘蛛池要的是可预测,而不是靠某一次运气刚好被发现。

小结

iframe 的 src 通常能被发现,iframe 内部链接、noscript 里的链接则不确定。想让搜索蜘蛛稳定发现目标 URL,最省事的做法仍然是:把链接放在静态 HTML 正文里,其余形式只当补充。另外要记住,发现不等于收录,发现之后能否被抓取、被索引,还取决于目标页本身的状态和质量。