做网站的时候,很多人都会遇到一个问题:
CMS 到底应该怎么选?

WordPress、Ghost、Halo、Drupal、Strapi、Directus、Payload......
名字一大堆,看起来都能"管理内容",但真正开始做项目之后才会发现,它们其实是完全不同的产品。
有些 CMS 适合博客。
有些适合企业官网。
有些适合做内容付费。
还有一些根本不负责前端页面,只负责给你的 Next.js、Vue、App、小程序提供内容 API。
所以选 CMS,最重要的并不是:
哪个 CMS 最强?
而是:
你的项目到底需要什么?
这篇文章就把目前比较主流的 CMS 梳理一遍。
一、先搞清楚:CMS 到底是什么?
CMS,全称:
text
Content Management System
内容管理系统
最简单理解:
CMS 就是帮你解决"网站内容怎么发布、修改、分类和管理"的后台系统。
比如你现在有一个网站。
如果没有 CMS,每发布一篇文章,可能都需要:
text
修改 Markdown
↓
提交 Git
↓
重新构建
↓
重新部署
有了 CMS 以后,运营人员可以直接进入后台:
text
登录后台
↓
写文章
↓
上传图片
↓
设置分类
↓
点击发布
文章就上线了。
所以 CMS 最核心的价值不是"做网页",而是:
text
管理内容
包括:
- 文章
- 页面
- 图片
- 视频
- 分类
- 标签
- 作者
- SEO
- 权限
- 发布流程
复杂一点的 CMS,还可以管理:
- 商品
- 用户
- 会员
- 课程
- 文档
- 新闻
- 产品资料
- 多语言内容
二、现在的 CMS 其实已经分成两大流派
今天选 CMS,首先要搞清楚两个概念。
第一类:传统 CMS
典型代表:
text
WordPress
Ghost
Halo
Drupal
Joomla
它们通常是:
text
后台管理
+
数据库
+
前端页面
+
主题系统
一整套全部帮你做好。
比如 WordPress。
安装完成以后,你直接就有:
text
网站前台
+
管理后台
+
文章系统
+
用户系统
+
主题系统
+
插件系统
这种模式最大的优点就是:
快。
特别适合:
- 个人博客
- 企业官网
- 新闻网站
- 内容网站
- 营销网站
三、第二类:Headless CMS
这几年越来越流行的是:
text
Headless CMS
典型代表:
text
Strapi
Directus
Payload
Headless 的意思其实非常简单:
CMS 只负责管理内容,不管你前端长什么样。
比如:
text
┌── Next.js 网站
│
CMS → API ────┼── Vue 网站
│
├── 微信小程序
│
├── App
│
└── AI Agent
后台只负责存:
json
{
"title": "Codex 入门教程",
"author": "王仕宇",
"category": "AI 编程",
"content": "..."
}
前端通过 API 获取。
Strapi 官方目前同时支持 REST 和 GraphQL API,并允许开发者自定义内容结构,非常典型地代表了 Headless CMS 的思路。
这种架构最大的优势就是:
前后端彻底分离。
你的网站可以用 Next.js。
App 可以用 Flutter。
小程序可以用 Taro。
内容却共用同一个后台。
四、主流 CMS 怎么选?
先直接给大家一个结论。
| CMS | 类型 | 技术栈 | 最适合 |
|---|---|---|---|
| WordPress | 传统 CMS | PHP | 博客、官网、营销站 |
| Ghost | 内容 CMS | Node.js | 博客、Newsletter、付费内容 |
| Halo | 传统 CMS | Java | 中文博客、企业网站 |
| Drupal | 企业 CMS | PHP | 大型网站、政府、企业 |
| Joomla | 传统 CMS | PHP | 企业网站、门户 |
| Strapi | Headless CMS | Node.js | Next.js/Vue/App |
| Directus | Headless CMS | Node.js | 数据驱动项目 |
| Payload | Headless / Full Stack | TypeScript | Next.js 项目 |
如果只看这张表还是不知道怎么选,下面逐个说。
五、WordPress:不知道选什么的时候,先看它
如果要说 CMS 里面最绕不开的产品,还是 WordPress。
WordPress 官方目前仍表示,其驱动的网站占整个 Web 的 43% 以上。
它最大的优势可以总结成两个字:
生态。
WordPress 有大量:
text
主题
插件
模板
教程
开发者
托管服务
你想做一个企业官网?
有插件。
你想做商城?
WooCommerce。
你想做 SEO?
有大量 SEO 插件。
你想做会员系统?
也有插件。
你甚至想:
text
课程
论坛
招聘
知识库
预约
支付
表单
基本都能找到现成方案。
WordPress 适合谁?
我会推荐给:
- 个人博客
- 企业官网
- SEO 网站
- 营销网站
- 外贸网站
- 内容网站
- 不想自己开发后台的人
优点
text
生态极其成熟
主题多
插件多
教程多
SEO 成熟
部署方案成熟
缺点
WordPress 最大的问题其实也来自插件生态。
项目很容易变成:
text
WordPress
+ 页面插件
+ SEO 插件
+ 缓存插件
+ 安全插件
+ 表单插件
+ 会员插件
+ 十几个其他插件
最后维护成本反而越来越高。
所以 WordPress 很适合:
快速搭站。
但如果你准备开发的是一个高度定制化 SaaS,我通常不会优先考虑它。
六、Ghost:做内容网站的人非常值得看看
如果你的核心业务就是:
text
写文章
+
做 Newsletter
+
做会员
+
做付费内容
那么 Ghost 非常值得考虑。
Ghost 本身就是一个面向专业内容发布的平台,基于 Node.js 技术栈,同时支持 API 和 Headless 模式。
它和 WordPress 最大的区别是:
WordPress 更像:
text
万能建站工具
Ghost 更像:
text
专业内容发布系统
Ghost 原生就提供:
- Newsletter
- 会员
- 付费订阅
- 内容权限
- SEO
- 作者
- 标签
- 邮件发送
尤其是会员和 Newsletter,是 Ghost 非常核心的能力。官方的 Members 系统支持免费会员、付费会员、内容访问等级以及 Stripe 订阅。
所以如果你的目标类似:
text
个人博客
科技媒体
Newsletter
独立作者网站
付费专栏
会员内容平台
我会优先考虑 Ghost。
七、Halo:国内开发者非常值得关注
如果你的用户主要在国内,而且希望:
text
开源
+
自部署
+
中文体验好
+
后台现代
Halo 是一个值得考虑的方案。
Halo 是基于 Java / Spring Boot 生态构建的开源建站工具,目前定位已经不仅仅是博客,还包括:
text
博客
知识库
企业官网
在线商城
等场景。
对于国内开发者来说,它有几个比较明显的优势:
text
中文生态友好
Docker 部署方便
后台比较现代
Java 技术栈
插件体系
主题体系
如果你本身就是 Java 开发者,Halo 的学习和二次开发成本也比较低。
所以:
国内博客
我通常会在:
text
WordPress
Ghost
Halo
这三个里面选。
八、Drupal:大型企业项目再考虑
Drupal 也是 CMS 老牌选手。
但它和 WordPress 的定位已经越来越不一样。
Drupal 更偏:
text
Enterprise CMS
也就是企业级内容管理。
特别适合:
- 政府网站
- 大型门户
- 大型企业
- 多语言网站
- 多角色协作
- 内容审核流程
- 复杂权限系统
Drupal CMS 2.0 已经在 2026 年发布,并进一步加强了可视化页面构建、AI 能力和 Site Templates。
Drupal 官方最新产品战略也非常明确:
它重点服务的是:
text
专业开发者
数字化服务公司
中大型企业
复杂内容系统
而不是跟 Wix 之类的入门建站工具竞争。
所以普通个人博客,我基本不会推荐 Drupal。
有点杀鸡用牛刀。
九、Joomla:依然存在,但优先级已经没那么高
Joomla 也是非常经典的 CMS。
它依然提供:
- 多语言
- 用户权限
- 模板
- 扩展
- SEO
- 响应式网站
等完整 CMS 能力。
但是今天如果让我从零开始做一个普通网站:
text
WordPress
Halo
Ghost
通常会排在 Joomla 前面。
Joomla 更适合已经有:
text
Joomla 技术积累
Joomla 老项目
Joomla 模板资源
的团队继续使用。
十、Strapi:Headless CMS 的代表选手
如果你是开发者,我建议一定要了解 Strapi。
它和 WordPress 的逻辑完全不同。
假设我要开发一个:
text
AI 工具导航网站
前端使用:
text
Next.js
但是后台需要管理:
text
工具名称
Logo
价格
官网地址
分类
标签
介绍
模型
我其实没有必要自己开发一个 Admin。
直接 Strapi 建 Content Type:
text
Tool
├── name
├── logo
├── description
├── category
├── website
└── price
Strapi 就可以自动帮你提供内容管理后台,并通过 REST 或 GraphQL 提供给前端。
所以:
text
Next.js
Vue
Nuxt
React
App
小程序
这类项目非常适合使用 Strapi。
十一、Directus:如果你的核心是"数据",它很好用
Directus 和 Strapi 有点像。
但是两个产品的思路不完全一样。
可以简单理解:
text
Strapi:
先设计 CMS 内容模型
↓
生成数据库结构
↓
生成 API
Directus 更像:
text
数据库
↓
Directus
↓
自动变成后台 + API
Directus 可以根据数据库结构动态生成 REST 和 GraphQL API。
同时提供可视化 Data Studio,让非技术人员管理数据。
比如你已经有:
text
PostgreSQL
里面几十张表。
现在突然想:
给运营人员弄一个后台。
Directus 就非常合适。
十二、Payload:Next.js 开发者重点关注
如果你的技术栈是:
text
Next.js
+
TypeScript
那我现在反而非常推荐关注 Payload。
Payload 官方现在已经把自己定位成:
Next.js Fullstack Framework。
配置好 Payload 以后,可以直接获得:
text
Admin Panel
数据库
Migration
REST API
GraphQL
身份认证
权限控制
文件管理
Live Preview
而且全部在自己的 TypeScript 代码库里面。
这也是 Payload 和很多传统 Headless CMS 最大的区别。
它更像:
text
Next.js
+
后台
+
CMS
+
API
+
数据库层
直接融合成一个项目。
对于现在用 AI 编程、Cursor、Codex、Claude Code 做 Web 项目的人来说,这种技术栈其实非常舒服。
比如:
text
Next.js
Payload
PostgreSQL
Vercel / Docker
已经可以覆盖非常多 SaaS 和内容项目。
十三、如果让我重新选,我会怎么选?
如果不考虑历史包袱,我自己的选择逻辑会非常简单。
个人博客
优先:
text
Ghost
Halo
WordPress
如果只是写文章:
text
Ghost
非常舒服。
企业官网
优先:
text
WordPress
Halo
尤其是企业没有专业开发团队的时候。
WordPress 的模板和生态优势非常明显。
SEO 内容站
优先:
text
WordPress
原因很简单:
成熟。
生态太完善。
Newsletter / 付费内容
直接优先:
text
Ghost
因为:
text
文章
会员
Newsletter
订阅
付费内容
这一套基本就是 Ghost 的核心场景。
十四、Next.js 网站怎么选?
如果你本身就在开发:
text
Next.js
React
Nuxt
Vue
我反而不建议再套一个传统 CMS。
优先看:
text
Payload
Strapi
Directus
具体怎么选?
内容驱动
text
Strapi
数据驱动
text
Directus
Next.js + TypeScript 深度集成
text
Payload
这是一个很好记的选择方法。
十五、App、小程序、多端项目怎么选?
这种项目基本直接:
text
Headless CMS
因为你可能同时存在:
text
官网
App
微信小程序
H5
管理后台
AI Agent
如果用传统 CMS:
text
CMS → 网站
扩展起来比较麻烦。
Headless CMS 则是:
text
→ 官网
→ App
CMS → REST / GraphQL → 小程序
→ H5
→ AI
一份内容,多端复用。
这才是它最大的价值。
十六、千万不要因为"功能多"选择 CMS
这是 CMS 选型里面最容易踩的坑。
看到:
text
支持商城
支持会员
支持论坛
支持支付
支持课程
支持 SEO
支持 AI
支持工作流
就觉得:
这个肯定厉害。
实际上 CMS 功能越多,意味着:
text
升级成本
维护成本
安全成本
学习成本
二开成本
也可能越高。
真正应该先问的是:
text
我到底需要什么?
而不是:
text
它到底支持多少功能?
十七、还有一种情况:你甚至根本不需要 CMS
如果你的网站只有:
text
首页
关于
产品
价格
联系方式
一年可能改两次。
那么:
根本没有必要为了 CMS 而 CMS。
直接:
text
Next.js
+
Markdown
甚至:
text
纯静态页面
可能就是最好的方案。
CMS 最有价值的场景是:
text
内容需要持续更新
+
非开发人员需要修改
+
多人需要协作
否则 CMS 本身反而可能成为负担。
十八、最终选型表
如果你不想研究那么多,可以直接保存下面这张表。
| 需求 | 推荐 |
|---|---|
| 个人博客 | Ghost / Halo |
| 企业官网 | WordPress / Halo |
| SEO 内容站 | WordPress |
| 外贸网站 | WordPress |
| Newsletter | Ghost |
| 付费专栏 | Ghost |
| 中文博客 | Halo |
| 大型企业 CMS | Drupal |
| Next.js CMS | Payload |
| Vue / Nuxt CMS | Strapi |
| App 内容后台 | Strapi |
| 小程序内容后台 | Strapi |
| 已有数据库做后台 | Directus |
| 多端内容平台 | Strapi / Directus |
| Next.js 全栈项目 | Payload |
| 纯静态网站 | 可能不需要 CMS |
总结
今天已经不存在一个:
"最好的 CMS"。
真正应该讨论的是:
"最适合这个项目的 CMS"。
如果只是做普通网站:
text
WordPress
Halo
Ghost
已经足够覆盖绝大多数需求。
如果是现代 Web 开发:
text
Next.js
Vue
Nuxt
App
小程序
那么应该重点研究:
text
Strapi
Directus
Payload
如果是大型企业内容平台,再考虑:
text
Drupal
而如果你的项目一年都更新不了几次内容,那么最后一个建议反而是:
别急着上 CMS。
因为技术选型真正重要的,从来都不是"功能最多"。
而是:
用最简单的技术,把真正的问题解决掉。