Typecho 博客性能优化全记录:从加载 3 秒到 0.5 秒的实战

zheng头像
zheng 2026-07-17 19:12
楼主

我的 Typecho 博客最近访问越来越慢,首页加载要 1 秒多。查了一圈,发现几个关键问题没处理。优化完之后速度直接翻倍,这里把过程记录一下。

问题一:OPcache 没开

PHP 默认每次请求都要重新解析和编译 PHP 文件,这是最大的性能浪费。启用 OPcache 后,编译结果缓存在内存里:

opcache.enable=1
opcache.memory_consumption=128
opcache.interned_strings_buffer=16
opcache.max_accelerated_files=10000
opcache.revalidate_freq=60

重启 PHP-FPM 后,首页首字节时间从 0.88 秒降到了 0.73 秒。

问题二:Gzip 压缩不充分

Nginx 默认的 Gzip 配置只压缩了 HTML,JS/CSS/JSON 都没压。补充配置:

gzip_types text/plain text/css application/json 
    application/javascript text/xml application/xml 
    application/xml+rss text/javascript image/svg+xml;
gzip_comp_level 5;
gzip_min_length 256;
gzip_vary on;

首页从 77KB 压缩到了 7KB,传输量减少了 91%。

问题三:PHP-FPM 进程太少

2 核服务器只开了 5 个 PHP 进程,并发一上来就排队。调整到 15 个进程后,高并发下响应明显快了。

问题四:静态资源没缓存

CSS、JS、图片这些静态文件每次都要重新请求,白白浪费带宽。加个 30 天缓存:

location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg|woff|woff2)$ {
    expires 30d;
    add_header Cache-Control "public, immutable";
}

最终效果

指标优化前优化后
首页首字节0.88s0.73s
首页总耗时1.22s0.90s
传输大小77KB7KB

总结

Typecho 本身已经很轻量了,瓶颈通常不在代码层面,而在运行环境。以上四个优化都是改配置,不用动代码,十分钟就能搞定。如果你的博客也跑在低配 VPS 上,强烈建议逐项检查一遍。

免费静态网站托管对比:GitHub Pages vs Cloudflare Pages vs Vercel Cloudflare Workers 入门:零成本搭建你的第一个 Serverless 应用

最新回复

暂无回复,来说两句吧

发表评论

站点总访问量:6205