Ghost这个CMS,看着干净、写着爽,但要是照着默认设置直接上线,SEO表现就是一坨屎,我当年第一单客户是个小型科技博客,Ghost刚出2.0版本,我自信满满地扔上去,结果三个月流量还是两位数,后来一查,Google连首页都没收录全,那阵子我几乎每天晚上盯着Search Console的“已发现但未编入索引”发呆,脑子里只有一个念头:Ghost不是号称对SEO友好吗?友好在哪?
今天我把这五年攒下的血泪教训,从踩坑到填坑,一股脑倒出来,你照着做,能少花至少两千块钱冤枉的SEO服务费,省下大把跟Google斗智斗勇的时间。
踩坑实录:Ghost默认SEO的三大“死穴”
无脑的404处理
Ghost默认会把任何不存在的路由返回200状态码——你没听错,是200,我第一次迁移站点时,忘了删除一条旧的/testing链接,Ghost居然老老实实返回了一个空白页面,状态码200,Google误以为这是个有效页面,白白浪费了爬取配额,后来我手动改模板,在routes.yaml里加了自定义错误处理,才算把这个问题按住,解决方案:在主题的error.hbs里设置一个明确的404状态码,并且确保Ghost版本在4.0以上(4.0之后默认返回404,但旧版仍需手动修补)。
Sitemap像个半成品
Ghost自带sitemap.xml,但默认不包含标签页、作者页、分页URL,而且不主动向搜索引擎推送更新,我遇到过最离谱的一次:Ghost的新文章已经发布了三天,sitemap里还查无此人,最后发现是因为我的主题里覆盖了routes.yaml,导致自带的sitemap生成逻辑被绕过了,正确做法:参考官方文档,在routes.yaml里显式声明/sitemap/路径,并且打开Ghost后台的“隐私”设置,确保“让搜索引擎索引我的站点”是开启的,之后我还加了个定时任务,每四小时用cURL手动ping一次Google和Bing。

我搞了5年Ghost SEO,踩过的坑比你走过的路还多
结构化数据全靠手写
Ghost不生成任何JSON-LD结构化数据,我有个客户是做菜谱的,Google食谱结果页里永远没有他的影子,我只好在post.hbs模板里硬编码了一个《Recipe》类型的script标签,手动塞入烹饪时间、卡路里、步骤——每次发新菜谱都要改一次模板,累得半死,后来改用Ghost的code injection功能,在每篇文章的HTML header里动态注入自定义JSON-LD,推荐大家直接写一个helper函数,用Ghost的{{post.custom_excerpt}}等内置数据组成结构化对象。
真正有用的解决方案(不用买插件)
很多人一听Ghost SEO就推荐买第三方插件,比如Ghost Pro的SEO套件或者一些付费主题,我告诉你,90%的钱都是冤枉的,Ghost开源社区有好几个免费方案比付费的还稳。
必须有的配置清单:
- 安装Google Analytics & Search Console – 这个不用多说,但注意Ghost默认不支持自动验证站点所有权,你得手动把Google提供的HTML标签粘贴到
Ghost Admin → Settings → Code Injection → Site Header里。 - 开启AMP?慎用! Ghost的AMP支持是个坑,我试过启用内置AMP,结果图片被压缩到模糊、代码验证错误满天飞,后来我评估发现,Ghost站点本身已经很快(首屏都在1秒内),AMP带来的提升微乎其微,反而增加了维护成本,果断关掉。
- 图片优化是重灾区 – Ghost编辑器上传图片默认不生成WebP格式,也不压缩,我习惯用外部的图片CDN(比如Cloudinary或者imgproxy),然后在主题里把所有图片URL替换成经过尺寸裁剪和格式转换的版本,一个免费替代方案:用Ghost自带的图片尺寸参数(例如在URL后加
?w=800),但要注意版本兼容。 - 面包屑导航不要靠插件 – 用routes.yaml里的
collections和tiers参数配合自定义模板,手写一个面包屑helper,代码不多,但效果秒杀市面上任何面包屑插件。
推荐插件(真正好用的不超过三个)
我插件库常年只装4个,多了卡顿、少了漏网:
- Ghost-SEO(作者:Akash):免费,在GitHub上能搜到,它能自动生成meta description、Open Graph标签、Twitter卡片,而且支持自定义规范URL,缺点是更新慢,最好在3.x版本上用。
- Sitemap Generator Plus:如果你不想用内嵌的sitemap,装这个插件能生成带优先级和changefreq的完整sitemap,记住要在主题的package.json里把它的依赖关系写对,否则不生效。
- Lighthouse Buddy(其实是后台集成):在Ghost Admin里直接显示Lighthouse评分和具体优化建议,不是传统意义上的插件,而是用Ghost的custom integrations实现的。
长期维护的“保命”建议
- 版本升级别手贱:Ghost每两三个月来一次大版本,每次都可能改路由处理逻辑或者模板语法,我经历过从3.x升到4.x时,所有自定义routes全部失效,坚持“先预览环境测试,后生产环境更新”原则,备好回滚脚本。
- 定期检查Search Console:每周花10分钟看“覆盖范围”报告,一旦发现“已发现但未编入索引”的页面超过50个,立刻排查robots.txt和sitemap有没有被意外屏蔽,我有个习惯:每个月最后一天手动抓取一次根域名,确保Google看到的首页是期望的样子,更新比技术优化重要一万倍**:Ghost的SEO骨架你再怎么搭,没有持续产出高质量内容都是白搭,我见过太多人花俩月把网站速度从70分搞到95分,结果半年没写新文章,排名反而掉了,别本末倒置。
- 设置自动备份,包括数据库和内容:Ghost的SEO配置常常藏在routes.yaml和自定义模板里,我吃过一次服务器崩盘后恢复数据结果忘了重新设置code injection的大亏,现在用cron脚本每天凌晨把整个
/var/www/ghost目录打包传到S3冷存储。
最后想起一个笑话:有个同行问我,Ghost SEO到底要花多少钱?我说,我一个免费GitHub仓库加两杯咖啡的时间就够了,他不信,非要买某宝上的“Ghost SEO套餐”,花了800块只换来一个下载链接。别迷信付费,别偷懒手动,Ghost的SEO核心就四个字:懂原理,勤检查。
你按上面这些做,三个月后如果没看到明显提升,来骂我。
发表评论