404页面必须返回真实404状态码、使用根目录小写404.html文件名、含语义化404 Not Found,三者缺一不可,否则被平台忽略或判定为软404。

404页面不是“做个HTML放上去就完事”,它必须被服务器真实返回 404 Not Found 状态码,且文件名、路径、语义结构全部合规,否则平台(GitHub Pages / Vercel / Netlify)会直接忽略,用户看到的仍是默认灰页。
404.html 文件名和位置必须严格小写且在根目录
所有主流静态托管平台只识别 404.html 这个确切文件名——不能是 404.htm、error-404.html、pages/404.html,也不能是 404.HTML(大小写敏感)。Windows 记事本保存时可能插入 BOM 头,导致 Git 提交后实际文件内容异常。
- 用
git ls-files | grep 404确认仓库里真有这个文件,且名字全小写 - Jekyll 用户需在
404.html开头加 YAML front matter:---\npermalink: /404.html\npublished: false\n---,否则会被当作普通页面渲染 - 构建产物(如
dist/或_site/)中也必须存在该文件,且路径为根级
服务端必须返回真实 404 状态码,不能是 200 或 302
浏览器控制台若显示 Failed to load resource: the server responded with a status of 200 OK,说明你写的 404.html 被当成了普通页面加载,搜索引擎也会把它当有效内容索引——这叫“软 404”,完全失效。
- Apache:在
.htaccess中写ErrorDocument 404 /404.html,路径必须以/开头 - Nginx:在
server块中加error_page 404 /404.html;,并确保location = /404.html存在且未被rewrite规则覆盖 - SPA 应用(React/Vue):
location / { try_files $uri $uri/ /index.html; }这类 fallback 会吞掉所有 404,必须显式排除:try_files $uri $uri/ /index.html =404;或用if (!-e $request_filename) { return 404; }
里必须含“404”文字,且不能靠 JS 或图片生成
搜索引擎和屏幕阅读器依赖 HTML 结构判断页面意图。<h1>404 Not Found</h1> 是硬性要求——用 SVG 渲染“404”、用 JS 插入文本、或仅靠 CSS 伪元素显示,都会让可访问性和 SEO 失效。
生成可在 deepbi 沙箱 iframe 内运行或作为独立文件运行的交互式 HTML 页面,使用 `window.deepbi` JS SDK 实现数据查询、空间管理、文件浏览及用户操作。当用户提出以下需求时启用该能力: - 创建 KPI 仪表盘、数据表格、文件浏览器、成员列表、管理页面; - 明确要求“转成 dhtml”、“转译成 HTML”、“把 XX 页面转成……”、“控制台页面”、“管理后台”、“DeepBI 页面迁移”; - 提及位于 `apps/console/src/featur
立即学习“前端免费学习笔记(深入)”;
-
<h1></h1>必须是唯一、不可省略的顶级标题,不能藏在<div class="title"> 里<li>整个页面核心内容应包裹在 <code><main></main>中,提升语义清晰度 - 即使加了跳转逻辑(如
location.replace("/")),也要保留可见的<h1>404</h1>和说明文案,否则 Google 会判定为误导性跳转 - 跳转必须用
location.replace("/"),而非location.href = "/",避免用户点「返回」又回到空白或卡顿页 - JS 必须等 DOM 加载完成再启动定时器:
document.addEventListener('DOMContentLoaded', () => { setTimeout(() => { location.replace('/'); }, 600); }); - CSS 动画时长(如
0.6s)和 JS 的setTimeout延迟必须严格一致,否则动画中断或跳转过早 - 页面
<title></title>仍要是<title>404 - 页面未找到</title>,不能改成“正在跳转…”
带动画跳转首页时,JS 执行时机和 SEO 底线不能破
“趣味跳入”动画本身不难,但容易因执行过早、缓存干扰或状态码错误而白屏或被降权。关键不是动效多炫,而是动画结束那一刻才跳转,且用户能明确感知这是 404。
最容易被忽略的是:你以为 404.html 放对了,其实服务器根本没把它当错误页用;你以为加了跳转就很友好,其实搜索引擎已经把你标为“软 404”。状态码、文件名、<h1></h1> 文字,三者缺一不可,少一个,整个 404 页面就等于没搭。


















