iframe 实测:27 个首页只有 6 个,其中 5 个是 0×0 的隐藏统计信标
iframe 到底影不影响收录,先看它在不在。27 个首页交付的 HTML 里一共只有 6 个,5 个是 0×0 隐藏统计信标,没有一个装着读者会看的内容,22 个站一个都没有。

实测 · 2026-08-29 · 27 个首页 · 单次抓取 · 6 个 iframe 元素
样本 / 口径:2026-08-15 起沿用的同一批 30 个站,2026-08-29 13:27(+0800)各抓一次,用浏览器 UA,不执行 JavaScript。交付的 HTML 里每一个 <iframe> 都记下来,连同它的 src、loading、title、sandbox 和宽高,以及它在不在 <noscript> 块里。
做出海站的人担心 iframe 影响收录,一般是因为页面上嵌了视频、地图或者表单工具。这批 27 个首页给出的结果是:交付的 HTML 里一共只有 6 个这种元素,其中 5 个是 0×0 的隐藏统计信标,没有一个装着读者会看的内容。22 个站一个都没有。
怎么测的
每个站一次请求,不渲染、不重试。纳入规则跑数前写死:最终 200、解压后至少 10,000 字节、含 <body。stackoverflow.com 与 medium.com 返回 403,www.reddit.com 返回 8,393 字节空壳,剩 27 个站。
解析器数完一遍之后,又对 27 份落盘的字节跑了一遍纯正则再数一次,两次都是 6。总数这么小的时候,一种数法不够。
这 6 个 iframe 分别是什么
其中 5 个是同一样东西,出现在 5 个不同的站上。
| 站点 | 个数 | 是什么 |
|---|---|---|
| webflow.com | 2 | 一个统计信标,一个 src 是空的 |
| www.netlify.com | 1 | 统计信标 |
| www.wired.com | 1 | 统计信标 |
| arstechnica.com | 1 | 统计信标 |
| www.nytimes.com | 1 | 统计信标 |
这 5 个信标形态完全一样:装在 <noscript> 里,src 指向 googletagmanager.com/ns.html,写着 width="0" height="0",样式是 display:none。它们存在的理由是访客关掉 JavaScript 时统计还能打上。第 6 个在 webflow.com,有 src 属性,但值是空字符串 —— 一个指向空处的框。
所以,27 个首页里装着可读内容的框,数量是零。
属性一栏一行读完
只有六个元素,这张表读起来更像一份缺席清单。
| 属性 | 有 | 没有 |
|---|---|---|
title | 1 | 5 |
loading | 0 | 6 |
sandbox | 0 | 6 |
allow | 0 | 6 |
| 在 head 里 | 0 | 6 |
唯一那个 title 在 www.wired.com 上,写的是 "Google Tag Manager"。MDN 的说法是读屏软件用户靠 title 来识别这个框装了什么,不过挂在一个隐藏信标上,写不写都没影响,所以这一行说明不了谁的习惯。
真正和收录相关的是最后一行。Google 那页列了 head 里允许出现的元素 —— "title, meta, link, script, style, base, noscript, template" —— 并把这个框列为无效元素之一,还写明 "Once Google detects one of these invalid elements, it assumes the end of the <head> element and stops reading any further elements"。放错一个,它后面的所有声明就都读不到了。这一批是 6 个里 0 个放错。
那些框其实藏在脚本里
它们是运行时才拼出来的。27 份正文里,字符串 iframe 一共出现 66 次,分布在 13 个站,而真实元素只有 6 个,另外 14 个站一次都没提过。
最典型的是 www.theverge.com:真实标签 0 个,但有 5 处转义写法 \u003ciframe 躺在 JSON 数据里,等着被写进页面。www.netlify.com 是 13 次提及对 1 个元素。读者看见的那些嵌入 —— 视频、地图、预约表单 —— 都是 HTML 到达之后才拼起来的,也就是说不执行脚本的爬虫既看不见这个框,也看不见框里的东西。
脚本拼出来的嵌入是双重不可见:框不在 HTML 里,框里的内容本来也不算你的。
独立站按这个顺序查
两步,别调换。
- 先别问它伤不伤收录,先查你自己的页面在不执行脚本时到底有没有这个框。抓一次自己的页面数一遍,如果框不在,那这件事的本质是渲染问题,方法在 AI 爬虫会执行 JavaScript 吗 那篇里。
- 永远不要把这种框放进
<head>。官方明写读到它就当 head 结束了,而被跳过的那些声明,恰恰是你最在乎的几条。
有一种情况它确实直接影响收录:Google 的 robots 规则里有一条 indexifembedded,原文是允许 Google 在页面被别的页面通过这种框嵌入时收录它的内容,"in spite of a noindex rule",并且这条 "only has an effect if it's accompanied by noindex"。如果你做的是被别人嵌进去的挂件,这一对就是那个机制。至于爬虫能不能到你这儿,那是更下面一层,用 AI 爬虫可达性检查 单独跑一遍。同一批面板上还有一篇 禁用 JavaScript 之后网页还剩什么。
这次没测出来的几件事
这些站在真实浏览器里到底显示了几个嵌入,不知道。整轮没有执行 JavaScript,所以渲染后插进来的一个都看不见,那 66 次字符串出现是线索,不是计数。也没有请求过任何一个框的地址,所以它们返回什么说不了。这一轮只看了首页,文档页和文章页可能完全是另一幅样子。6 这个数太小,我们不打算把它读成趋势。
常见问题
你们是怎么测的?
2026-08-29 用桌面浏览器 UA 对每个首页各抓一次,解析交付的 HTML 里的这类元素与它们的属性,再对同一批落盘字节跑一遍正则复数一次。两次都是 6。
嵌入的框会不会拖累 SEO?
这次的数据回答不了。它给出的是另一件事:这些元素在交付的首页 HTML 里几乎不存在,所以对多数站来说,要讨论的是脚本插进来的内容,不是这个标签本身。
Google 会收录框里的内容吗?
官方只有一条规则直接说到这件事,就是 indexifembedded,它作用在被嵌入的那个页面上,而且要和 noindex 一起用才生效。至于框里的内容算在哪一页头上,我们没找到现行的官方文档写这件事,所以不给结论。
要不要给它加 loading="lazy"?
MDN 给 lazy 的定义是推迟到它接近可视区域再加载,默认值是 eager。这批里 6 个都没写,不过其中 5 个是隐藏信标,写了也没意义。
为什么五个站拿这个框做统计?
那是标签管理工具自带的无脚本兜底。框是 0×0 且隐藏的,只有脚本不可用时才会触发。


