Hexo 博客性能优化指南

Hexo 博客性能优化指南
周言志Hexo 博客性能优化指南(精简版)
随着内容增长,静态博客仍可能面临首页加载慢、首屏阻塞和流量浪费等问题。以下按策略列出可落地的优化点与示例,便于在 Hexo 主题中快速应用。
一、图片优化(优先级最高)
- 压缩与格式
- 先使用工具压缩(TinyPNG、ImageOptim)。生产环境尽量输出 WebP/AVIF,备份保留原图。
- 响应式与 srcset
- 用 picture + srcset 提供多分辨率图,减少移动端带宽:
1
2
3
4
5<picture>
<source media="(max-width:600px)" srcset="image-480.webp">
<source media="(max-width:1200px)" srcset="image-800.webp">
<img fetchpriority="high" src="image-1200.webp" alt="封面">
</picture>
- 懒加载
- 首页与列表使用懒加载库(lazysizes / lozad),文章内首图除外。
- CDN 与缓存
- 将图片上 CDN(七牛/又拍/OSS),设置长缓存与合适的 Cache-Control。
二、CSS / JS 优化
- 移除不必要依赖
- 把 jQuery + fancybox 替换为轻量 PhotoSwipe 或原生实现,减少包体积。
- 按需加载第三方功能
- 仅在需要的文章页加载 mermaid、katex 等:
1
2
3<% if (theme.mermaid.enable && page.mermaid) { %>
<script src="<%= vendorCdn(theme.vendor.js.mermaid)[0] %>" defer></script>
<% } %>
- 异步与延迟加载
- 全站脚本使用 defer;低优先级(评论、统计)用动态加载:
1
2
3
4
5
6
7
8
9<script src="/js/main.js" defer></script>
<script>
// 延迟加载评论示例
window.addEventListener('load', () => {
const s = document.createElement('script');
s.src = '/js/comments.js';
document.body.appendChild(s);
});
</script>
- Critical CSS 与预加载
- 提取首屏关键样式,其他样式使用 rel=”preload” + onload 方式加载:
1
2<link rel="preload" href="/css/app.css" as="style" onload="this.onload=null;this.rel='stylesheet'">
<noscript><link rel="stylesheet" href="/css/app.css"></noscript>
三、字体与图标
- 使用 iconfont 自定义子集或 SVG 图标,避免全量 FontAwesome。
- 预连接与预加载第三方字体:
1
2<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link rel="preload" href="https://fonts.gstatic.com/s/xxx.woff2" as="font" type="font/woff2" crossorigin>
四、第三方与低优先资源
- 评论、统计、搜索、社交脚本置为延迟加载或按需触发(用户交互后加载)。
- 使用 localStorage / indexedDB 缓存少变更数据(如标签缓存)。
五、构建与部署
- 构建优化
- 在 Hexo build 阶段启用压缩、合并资源(gulp/webpack/rollup)。
- 传输优化
- 启用服务器 gzip / brotli,设置静态文件长缓存并配合版本化(文件指纹)。
- 部署方式
- 推荐使用 HTTPS Git 部署或 CI/CD(GitHub Actions + CDN 同步)避免 SSH 端口限制。
六、测试与监控
- 使用 Lighthouse、WebPageTest、Pingdom 测量首页与文章页性能。
- 关注 LCP、CLS、FID/INP、TTFB 并以 LCP 与交互延迟为优化目标。
小结(执行顺序建议)
- 图片(WebP + srcset + CDN)
- 移除/替换大依赖(jQuery/fancybox)
- 懒加载与按需加载(mermaid、评论等)
- 字体预加载与首屏 CSS 优化
- 启用压缩、缓存与 CDN;使用 Lighthouse 验证
本文为实践型要点集合,可根据主题结构在模板(layout/partial)中逐项改造并通过 hexo cl && hexo g 本地验证效果。
评论
匿名评论隐私政策
TwikooWaline
✅ 你无需删除空行,直接评论以获取最佳展示效果









