我删掉了站点的 90% 功能
上一个版本的博客有 14 个页面、3 个第三方脚本、一套后台、还有评论系统。
我每个月写两篇文章。
这两件事之间存在严重的不匹配。
先算笔账
我把访问数据拉出来看了看:
| 页面 | 月访问 | 占比 |
|---|---|---|
| 首页 | 1,240 | 41% |
| 文章详情 | 1,510 | 50% |
| 归档 | 180 | 6% |
| 其他所有页面 | 90 | 3% |
「其他所有页面」包括:分类索引、标签云、友链、关于、搜索页、404、两个我忘了当初为什么建的空页面。
它们加起来占了 3% 的流量,却占了我 70% 的维护时间。
删掉的清单
- 后台管理 —— 我用 Vim 写 markdown 比用任何后台都快
- 评论系统 —— 一年收到 4 条评论,其中 3 条是垃圾
- 访问统计的第三方脚本 —— 一个用了 8 年的静态博客,我不需要实时看板
- 搜索独立页 —— 搜索应该是弹窗,不该是一次页面跳转
- 分类页的独立布局 —— 它和标签页长得一模一样,为什么要写两遍
- 暗色模式的切换动画库 —— 我写了 40 行
clip-path替代了它
保留的东西
删完之后剩下这些,一个都不能少:
/ 首页,最新文章列表
/posts/[slug] 文章
/archive 归档
/categories 分类
/tags 标签
/links 友链
/about 关于
/rss.xml 订阅
九个路由。其中三个(分类、标签、归档)共用同一个列表组件——它们本来就是同一个东西的不同切片。
性能是删出来的
改动前后,用 Lighthouse 在同一台机器上测:
| 指标 | 改前 | 改后 |
|---|---|---|
| FCP | 1.8s | 0.4s |
| LCP | 2.3s | 0.6s |
| JS 体积 | 284 KB | 41 KB |
| 首屏请求数 | 23 | 6 |
没有做任何「优化」。没有拆包、没有预加载、没有 CDN 调优。
我只是不再发送用户不需要的代码。
// 删之前:每个页面都加载完整运行时
import { Analytics } from '@heavy/analytics'
import { Comments } from '@heavy/comments'
import { AdminWidget } from '@heavy/admin'
// 删之后:什么都没有
// 静态 HTML + 一个 3KB 的搜索索引(首次搜索才加载)
一个反直觉的发现
删功能最难的从来不是技术,是心理。
每删一个东西,我都会想:「万一以后要用呢?」
后来我给自己定了个规则:如果要重新加回来,成本低于 2 小时,那就先删掉。
后台管理?重写要 8 小时,不删。评论系统?接第三方要 20 分钟,删。搜索页?改成弹窗要 1 小时,删。
这条规则让我删掉了大约 60% 的东西,而没有任何一个功能被真的加回来过。
结论
一个博客的核心是:让人能读到文章。 其他一切都是配角。
我现在写一篇新文章的工作流是:新建一个 .md 文件,写 frontmatter,写正文,git push。
三十秒后它就在线上了,带 RSS、带搜索索引、带 OG 图。
这才是写博客该有的摩擦系数。
评论暂未开放