最佳实践清单
整理 Hugo 建站、写作、主题定制、资源管理、SEO、部署和维护的实用检查表
最佳实践清单
这一节把前面章节浓缩成日常可执行的检查表。新建站点、写文章、改主题、上线部署前,都可以按这里快速过一遍。
建站阶段
- 使用 Hugo Extended,除非主题明确不需要
- 本地和线上固定同一个 Hugo 主版本
- 新项目优先使用
hugo.toml - 配置
baseURL、title、defaultContentLanguage - 中文站点启用
hasCJKLanguage = true - 开启
enableRobotsTXT = true - 配置
[pagination],不要继续使用旧式分页字段 public/、resources/加入.gitignore- 主题用 submodule 或 Hugo Modules 管理,不直接复制一份后长期失控
示例:
baseURL = 'https://example.org/'
title = '我的博客'
theme = 'ananke'
defaultContentLanguage = 'zh'
languageCode = 'zh-CN'
hasCJKLanguage = true
enableRobotsTXT = true
[pagination]
pagerSize = 10
内容组织
- 博客文章放
content/posts/ - 文档教程放
content/docs/ - 栏目首页使用
_index.md - 有图片和附件的文章使用 Page Bundle
- 文档类页面用
weight排序 - 博客类页面用
date排序 - 中文标题可以保留,URL 用英文
slug - 分类少而稳定,标签灵活但定期整理
文章模板建议:
---
title: "文章标题"
slug: "article-slug"
date: 2026-06-10T10:00:00+08:00
draft: false
description: "一句话说明文章内容"
categories: ["技术"]
tags: ["Hugo", "静态网站"]
---
写作习惯
- 每篇文章写清楚
description - 长文使用二级、三级标题
- 代码块标注语言
- 图片写
alt - 摘要不理想时使用
summary或 `
`
- 引用外部资料时保留链接
- 迁移旧文章时配置
aliases - 发布前检查
draft
代码块:
```bash
hugo server -D
```
旧链接:
aliases:
- /old-post/
- /2024/old-post.html
配置管理
- 小站用单个
hugo.toml - 配置变多后拆到
config/_default/ - 生产和开发配置分开
- 密钥只放环境变量,不提交到仓库
- 主题参数按文档填写,不保留大量无效字段
- 用
hugo config查看最终配置
目录示例:
config/
├── _default/
│ ├── hugo.toml
│ ├── menus.toml
│ └── params.toml
└── production/
└── hugo.toml
主题定制
- 优先使用主题配置项
- 其次在站点
layouts/覆盖模板 - 不直接修改第三方主题源码
- 公共 UI 拆成 partial
- Markdown 中重复结构用 shortcode
- 自定义 CSS/JS 放主题约定入口
- 改模板后用
--disableFastRender排查缓存错觉
覆盖示例:
layouts/partials/head.html
layouts/_default/single.html
layouts/posts/list.html
资源管理
- 需要处理的资源放
assets/ - 不处理的附件放
static/ - 文章私有图片放 Page Bundle
- CSS/JS 生产环境使用
minify和fingerprint - 图片生成合适尺寸和格式
- 图片标签写
width、height - 首屏资源控制体积
- 第三方脚本尽量延迟加载
生产资源示例:
{{ $css := resources.Get "css/main.css" | minify | fingerprint }}
<link rel="stylesheet" href="{{ $css.RelPermalink }}" integrity="{{ $css.Data.Integrity }}" crossorigin="anonymous">
SEO 检查
- 首页标题和描述清晰
- 每篇文章有唯一标题和描述
- canonical 指向正确 URL
- 生成
sitemap.xml - RSS 可访问
- Open Graph 图片尺寸合适
- 图片有
alt - 旧链接有
aliases - 不发布无意义标签页和重复内容
- Search Console 或站长平台提交站点地图
Head 基础:
<title>{{ if .IsHome }}{{ site.Title }}{{ else }}{{ .Title }} - {{ site.Title }}{{ end }}</title>
<meta name="description" content="{{ .Description | default .Summary | default site.Params.description }}">
<link rel="canonical" href="{{ .Permalink }}">
性能检查
- 执行
hugo --gc --minify - 图片不使用超大原图直出
- CSS/JS 带 fingerprint
- JS 加
defer - 字体文件数量和字重可控
- 评论、统计、广告不阻塞首屏
- 使用 Lighthouse 或 PageSpeed Insights 检测
- 大型站点查看
--templateMetrics
命令:
hugo --gc --minify
hugo --templateMetrics --templateMetricsHints
部署检查
- 线上 Hugo 版本固定
- 需要 Extended 就明确安装 Extended
- Node/Go/Dart Sass 依赖安装完整
- submodule 使用 recursive checkout
- Hugo Modules 提交
go.mod和go.sum - 发布目录是
public - 生产构建不包含草稿
baseURL是线上域名- 自定义域名 DNS 和 HTTPS 正常
环境变量:
HUGO_VERSION=0.163.0
HUGO_ENVIRONMENT=production
TZ=Asia/Shanghai
Git 工作流
- 写作和代码改动分开提交更清晰
- 大图压缩后再提交
- 不提交
public/ - submodule 更新后提交 submodule 指针
- 主题大版本升级前先建分支测试
- 重要配置改动写在提交信息里
常用命令:
git status --short
hugo --gc --minify
git add .
git commit -m "Update Hugo content"
git push
维护节奏
每次写文章:
- 创建内容
- 补齐 Front Matter
- 本地
hugo server -D - 检查图片和链接
- 改
draft: false - 运行
hugo --gc --minify - 提交并推送
每月维护:
- 检查死链
- 合并重复标签
- 更新主题或 Hugo 前看 changelog
- 检查 Lighthouse 关键页面
- 备份仓库和图片资源
大版本升级:
- 新建分支
- 升级 Hugo 或主题
- 运行完整构建
- 检查首页、文章页、文档页、RSS、搜索
- 部署预览环境
- 确认无误后合并
推荐阅读顺序
到这里,你已经具备维护一个 Hugo 站点的完整知识框架。后续真正提升效率的关键,是把自己的主题配置、内容模板和部署流程逐渐固化下来。
评论