必须静态写在HTML源码内,不可动态注入;noindex与nofollow独立生效,需按需组合;X-Robots-Tag响应头优先级更高且适用于非HTML资源;robots.txt仅限制抓取,不阻止索引。

meta name="robots" 必须写在 里,且不能动态插入
爬虫不执行 JavaScript,也不会等页面渲染完再读取 <meta> 标签。如果你用 Vue 的 mounted、React 的 useEffect 或 document.write 动态注入 <meta name="robots">,绝大多数搜索引擎(Google、Bing、百度)根本看不到它。
验证是否生效:右键网页 →「查看网页源代码」→ 搜索 <meta name="robots">,必须出现在原始 HTML 中,且位于 <code> 内部最上方附近。
- 静态站点:手写进 HTML 模板的
即可 - SSR 框架(如 Next.js、Nuxt):确保该标签由服务端首次渲染输出,而非 hydration 后补
- CSR 应用(纯前端路由):无法靠此标签控制单页内不同路由,需改用
X-Robots-Tag或服务端路由级控制
noindex 和 nofollow 不是绑定关系,组合要按需选
noindex 只影响当前页面是否被收录;nofollow 只影响当前页面上所有 <a href></a> 链接是否被跟踪爬取。两者独立,但常被误配。
典型错误场景:
立即学习“前端免费学习笔记(深入)”;
- 搜索结果页加了
noindex却没加nofollow→ 爬虫虽不存这页,却顺着页内链接发现并抓取大量子页面 - 登录页加了
noindex, nofollow,但页脚有「关于我们」「帮助中心」链接 → 这些重要页面反而失去入口权重 - 仅设
nofollow而不设noindex→ 页面仍会被索引,只是不传递链接权重
常用组合含义:
-
noindex, nofollow:彻底隐身(不收录、不追踪) -
noindex, follow:页面不收录,但页内链接可被爬取(适合临时活动页、A/B 测试页) -
index, nofollow:页面照常收录,但页内链接不传递权重(慎用,易被视作操纵)
X-Robots-Tag 比 meta robots 更可靠,尤其对非 HTML 资源
X-Robots-Tag 是 HTTP 响应头,优先级高于 <meta name="robots">。当两者冲突时,爬虫以响应头为准。
把任意文章或文档内容转换成精美的全屏翻页 HTML 演示文件(幻灯片风格)。当用户发来一篇文章、文档链接、Markdown 内容、或粘贴的文本,并且希望生成演示用的 HTML 时触发。支持任意内容来源:iWiki 链接、KM 链接、本地文件路径、直接粘贴的文本。生成的 HTML 文件保存到本地工作区,并通过企微直接发送给用户。触发词示例:帮我把这篇文章做成PPT、转成演示文档、生成HTML幻灯片、做个演示、转成可以演示的格式、article to deck、make a slide。
它能用于任何资源类型:
- PDF、图片、视频等非 HTML 文件(
<meta>根本无效) - API 返回的 HTML 片段(比如 SSR 渲染失败 fallback 页面)
- 需要根据用户身份或请求参数动态控制索引行为的场景(如会员专享页)
示例响应头:
X-Robots-Tag: noindex, noarchive X-Robots-Tag: noindex X-Robots-Tag: none
注意:none 等价于 noindex, nofollow,但语义更简洁;若需多值,必须每行一个 X-Robots-Tag 字段(HTTP/1.1 规范要求)。
robots.txt 和 meta robots 不是同一层机制,别混用替代
robots.txt 是“请勿访问”的礼貌请求,meta robots 或 X-Robots-Tag 才是“请勿收录”的明确指令。前者拦不住已知 URL 的抓取,后者才能真正阻止索引。
常见误解:
- 以为在
robots.txt里写了Disallow: /private/就安全了 → 实际上只要其他网站链向/private/xxx.html,Google 仍可能索引它(哪怕没抓到内容) - 只靠
robots.txt屏蔽敏感路径,却不加noindex→ 爬虫可能通过日志、引用或推测发现该路径,然后尝试抓取 - 把
noindex当防火墙用 → 它不防爬虫访问,只防索引;敏感数据仍需服务端鉴权或网络层防护
真正需要隐藏的内容,必须同时满足:服务端拒绝未授权访问 + 响应头含 X-Robots-Tag: noindex(或 HTML 中对应 <meta>)。


















