404 是全站挫败感密度最高的一页:访客带着一个具体的目的来,扑了个空。大多数网站的回应是一行冰冷的"404 Not Found"加一张苦脸插画。这次给我的站重做 404,把思考过程记下来。
别道歉,先解释
"抱歉页面不存在"是句废话——访客已经知道不存在了。有用的是解释原因并给出口:页面可能被移动、改名,或者从来没存在过。三句话说清处境,比十句道歉更能安抚人。视觉上我加了一行服务器口吻的回应:ERR 404 · NOT FOUND——错误是站在服务器视角发生的,让它自己说出来。
出口要三个,不是十个
- 回首页(主按钮,最常见的去向);
- 去门户(次按钮,给想找内容的人);
- 读博客(次按钮,给闲逛的人)。
三个按钮对应三种意图:迷路的、找东西的、随便看看的。再多的选项只会把挫败感变成选择困难。
状态码是给机器的温柔
404 页面要有设计,但 HTTP 状态码必须诚实地是 404。漂亮页面配 200 状态码,等于骗搜索引擎说"这里什么都有"。
所以 nginx 里配的是 error_page 404 /404.html;——页面内容换成友好的,状态码一个字节都不让步。这是给爬虫的温柔,也是给自己的 SEO 一点基本的自尊。
彩蛋经济学
最后加了一个小细节:迷路页的标题是"这个地址没有部署过",用的是部署术语而不是"丢失"。成本为零,但让懂行的人会心一笑——彩蛋不需要人人都懂,只需要懂的人觉得"这个站有自己人"。