404页面必须返回404状态码并添加标签,否则搜索引擎可能将其当作普通页面收录;常见错误包括返回200状态码、Nginx配置导致fallback、静态托管平台未正确触发404逻辑或meta标签缺失/位置错误。

404页面必须主动告诉爬虫“别收录”,否则它会当普通页抓取、建索引、稀释权重——光靠返回404状态码不够,还得加meta声明。
为什么404.html会被搜索引擎收录
很多团队发现 Google Search Console 里出现了 /404.html 的索引条目,甚至被标记为“可访问”。这不是爬虫错了,是你没明确拒绝它。HTTP 404 状态码只表示“资源不存在”,不等于“禁止索引”;爬虫看到 404 页面内容正常、title 可读、链接可点,就可能把它当作一个特殊但合法的页面来处理。
- 常见错误现象:
curl -I https://yoursite.com/404.html返回HTTP/1.1 200 OK—— 这说明你直接访问了该文件,不是服务器拦截后返回的错误响应体 - 另一个坑:
location / { try_files $uri $uri/ /index.html; }在 Nginx 中把/404.html请求也 fallback 到了/index.html,导致真实 404 响应根本没发出去 - 静态托管平台(如 GitHub Pages)虽自动返回 404 状态码,但若你在
404.html里漏写了noindex,它仍可能被收录
必须加的meta标签和位置
<meta name="robots" content="noindex"> 要放在 里,且不能被 JS 动态插入(JS 可能不执行)。它不是可选装饰,而是防误抓的第一道防线。
生成可在 deepbi 沙箱 iframe 内运行或作为独立文件运行的交互式 HTML 页面,使用 `window.deepbi` JS SDK 实现数据查询、空间管理、文件浏览及用户操作。当用户提出以下需求时启用该能力: - 创建 KPI 仪表盘、数据表格、文件浏览器、成员列表、管理页面; - 明确要求“转成 dhtml”、“转译成 HTML”、“把 XX 页面转成……”、“控制台页面”、“管理后台”、“DeepBI 页面迁移”; - 提及位于 `apps/console/src/featur
- 放在
<title></title>后、<style></style>前最稳妥,避免因解析顺序导致忽略 - 不要写成
content="noindex, follow"——follow没意义,404 页面不该传递链接权重 - 如果用 Jekyll/Hugo 等静态生成器,确保这个
meta没被模板引擎删掉或覆盖(检查构建后输出的 HTML 源码) - 禁用
<meta name="googlebot" content="noindex">单独写法,robots已覆盖主流爬虫
配合状态码验证才真正生效
加了 noindex 不代表万事大吉。如果服务器根本没返回 404 状态码,或者返回的是 302 跳转,那这行 meta 就是废代码。
立即学习“前端免费学习笔记(深入)”;
- 验证三要素缺一不可:
curl -I https://yoursite.com/nonexistent-path必须同时满足:第一行是HTTP/1.1 404 Not Found、响应头含Content-Type: text/html、响应体开头有<meta name="robots" content="noindex"> - GitHub Pages 用户特别注意:只有根路径
/404.html被识别为错误页;/pages/404.html或/404.htm都不会触发该逻辑,更不会带noindex - Netlify 用户需在
_redirects文件中写/* /404.html 404,末尾的404是关键,漏掉就会变成 200 + 重定向 - 本地测试必须起 HTTP 服务(如
npx serve -s),双击打开file://协议下meta标签完全无效
最容易被忽略的其实是路径一致性:你的 404.html 文件名必须小写、无空格、无 BOM,且和服务器配置中写的路径完全一致——少一个斜杠、多一个点,noindex 就永远进不了真实 404 响应流。


















