给个人博客做技术选型:我为什么最终选择了 Astro 静态站
做个人博客的第一件事不是买主题,而是想清楚:内容写在哪、页面怎么生成、谁来负责发布。这决定了后面几年的维护体验。
为什么优先考虑纯静态
对以中文内容分享为主的个人站点,纯静态(SSG)几乎是 SEO 的最优解:
- 搜索引擎拿到的是完整 HTML,无需执行 JS 即可索引正文,对百度尤其友好;
- 页面加载快、服务器压力小,一台低配云主机就够;
- 没有数据库与运行时漏洞面,安全维护成本低。
候选方案怎么对比
我重点比较过几类方案:动态博客系统(WordPress / Halo / Typecho)、静态生成器(Hugo / Astro)、以及自建全栈应用。
| 维度 | 动态博客 | Hugo | Astro |
|---|---|---|---|
| SEO 可控性 | 中 | 高 | 高 |
| 后台写作体验 | 开箱即用 | 需自配 | 需自配 |
| 内容模型灵活度 | 中 | 中 | 高 |
| 前端扩展 | 受主题限制 | 模板语言 | 组件化 |
选择 Astro 的三个理由
1. 内容集合(Content Collections)足够规范。 文章以 Markdown 文件 + frontmatter 管理,字段可以校验,SEO 的标题、描述、摘要都能作为一等公民存在:
---
title: "文章标题"
description: "meta 描述"
pubDate: 2026-01-18
category: tech
tags: ["SEO"]
---
2. 构建产物干净且可扩展。 默认零 JS 输出,RSS、sitemap、JSON-LD 都以组件或接口形式生成,结构化的东西不靠插件黑盒。
3. 生态与我的发布链路匹配。 我的发布方式是「后台写 Markdown → 触发构建 → 原子切换目录」,Astro 构建是纯 Node 进程,方便被一个轻量后台服务调用。
几个容易被忽视的点
- canonical 与规范域名要在第一天定好,否则后面迁移 URL 代价很大;
- 内容与代码分离:文章是纯文本文件,意味着任何一天脱离后台也能人工维护;
- 为 AI 预留机器可读入口:构建时同步输出 sitemap、RSS 与文章 Markdown 源,供搜索引擎和 AI 爬虫各取所需。
选型没有标准答案,适合自己的写作频率、技术水平和维护意愿,就是好答案。