鞋匠的孩子:我们把自家官网 GEO 评分从 39 拉起来的全过程
一家做 GEO 的公司,自己官网却掉进了「改造后回退」的坑——llms.txt 变空、JSON-LD 丢失、证书过期。这是我们用自家 Cite Scanner 评测、修复、并加上部署守卫的完整复盘:39 → 复评 51 → 目标 74。
鞋匠的孩子没有鞋穿。我们是一家帮企业「被 AI 大模型引用」的 GEO 公司——结果用自家的 Cite Scanner 一扫,发现 keco.vip 自己只有 39 分。更尴尬的是:低分不是因为没做,而是做完之后悄悄回退了。
这篇文章把全过程原原本本写出来:怎么发现、根因是什么、怎么修、以及我们如何用一道「部署冒烟检查」让同样的坑不再出现。所有分数都来自自家 Cite Scanner v1.1 的真实抓取。
一、起点:自评 39 分,比承诺低了 21 分
2026-06-27,我们用 Cite Scanner 给 keco.vip 跑了一次完整诊断。结果很难看:
| 维度 | 当前分 | 之前自评预估 | 差距 |
|---|---|---|---|
| 总分 | 39 | 60+ | -21 |
| D1 AI 可见性 | 11 | 40 | -29 |
| D2 内容结构化 | 31 | 70 | -39 |
| D3 SEO 基础 | 67 | 80 | -13 |
D1 偏低是正常的——keco.vip 2026 年才成立,LLM 训练数据还没收录我们,这个只能靠时间。真正刺眼的是 D2 内容结构化只有 31 分,而我们之前明明做过 llms.txt、sitemap、Schema 改造。
二、真实抓取:四件「做过的事」全回退了
直接 curl 线上,证据冰冷:
$ curl https://keco.vip/llms.txt
→ 200 OK,但 body 是空字符串
$ curl https://keco.vip/sitemap-index.xml
→ 200 OK,body 也是空
$ curl -I https://keco.vip/
→ 302 跳到 www.keco.vip(方向反了)
# 首页 head 里:找不到任何 application/ld+json
四件事——llms.txt、sitemap、主域 redirect 方向、首页 JSON-LD——源码里全是对的,但线上全回退了。这是典型的「改造做完没人持续盯,6 个月内必然出现部署回退 / 配置漂移 / 内容失效」。
我们卖给客户的 Cite Radar 月度监测,正是为了防这种事。结果我们自己没用它盯自家产品。鞋匠的孩子,第二季。
三、修复清单:能用代码/配置解决的,一次清零
我们把所有「能用工程手段直接解决」的扣分项逐个修掉:
内容结构化(D2)
- robots.txt 加
Content-Signal: search=yes,ai-train=yes,ai-input=yes——作为 GEO 服务方,我们对 LLM 训练全开放。 - 首页 JSON-LD 重新注入并扩展:除了 Organization + WebSite,还补上 4 条子品牌的
Service、Cite Scanner 的SoftwareApplication、首页FAQPage(6 问)、BreadcrumbList,以及创始人founder(EEAT)。 - markdown 协商:新增
/index.md与/insights/<slug>.md端点,让 LLM 爬虫能直接拿到干净的纯文本结构化正文,而不是从 HTML 里抠。 - og-image / twitter:card / meta keywords 补全——之前 og-image 文件甚至是 404 的。
SEO 基础(D3)
- 修复 sitemap 链路:
sitemap-index.xml+sitemap-0.xml重新生效。 - 修复主域 redirect:确立
keco.vip为规范主域,www.keco.vip → 301 → keco.vip,和所有 canonical / Schema sameAs 一致。 - HTTP
Link: rel="llms"响应头,显式指向/llms.txt。
还有一个差点要命的发现:证书过期
修复过程中,curl 一度报 SSL certificate problem: certificate has expired。我们用的是 90 天免费证书,到期没人手动续,也没配自动续期。证书过期期间,所有校验证书的客户端——包括 GPTBot、Claude-Web、PerplexityBot 等 LLM 爬虫——TLS 握手直接失败,根本抓不到内容。对 GEO 来说这是釜底抽薪。
解法:切到 acme.sh + Let's Encrypt 通配符证书,自带自动续期 cron,再也不会无声过期。
四、真正的产出:一道「部署冒烟检查」
修完不是终点。这次回退的本质是没有守卫——改造上线后没有任何机制在它悄悄失效时报警。
所以我们给部署脚本加了一道部署后冒烟检查,每次部署完自动 curl 线上验证:
- llms.txt 非空?
- sitemap-index.xml 有效?
- 首页含
application/ld+json? - 主域 redirect 方向正确(www → 301 → 主域,而非反向)?
- TLS 证书有效期还剩几天?(≤14 天告警,已过期直接报错)
任何一项不通过,部署脚本直接以非零退出,让操作者立刻看到。失败时它还会自诊断——比如首页缺 JSON-LD 时,自动判断是「部署了旧构建」还是「nginx 指错文件」还是「渲染 bug」。
这道检查本身,就是「持续监测」理念的最小化落地。它不能替代 Cite Radar 的月度全量复评,但能在每次部署的瞬间挡住回退。
我们还顺手处理了一个云主机常见的坑:服务器访问自己的公网 IP 会失败(hairpin NAT),导致冒烟检查误报。现在检查会在公网取空时自动回退到 --resolve 127.0.0.1 直连本地 nginx 验证 origin,并提示「需从外网复核」。
五、24 小时复评:39 → 51,对照三家客户
巧的是,同期我们也给两家客户做了首测和 24 小时复评。结果很说明问题:
| 对象 | 首测 | 24h 复评 | 变化 |
|---|---|---|---|
| 客户 A | 37 | 37 | 0(一动未动) |
| 客户 B | 43 | 43 | 0(一动未动) |
| keco.vip(自家) | 39 | 51 | +12 |
两家客户在 24 小时内没有任何可观测改动——口头承诺要改 ≠ 真的会改。而 keco.vip 至少自己动手了:llms.txt 从空升级为 200+ 行的完整版(含品牌定位、4 大产品线、GEO 概念、服务流程、行业基准、引用约定),llms_txt_exists 子项从 20 分跳到 95 分,直接带动 D2 与总分上升。
随着上面其余修复(JSON-LD、sitemap、redirect、Content-Signal、markdown 端点)全部上线,下一次完整重扫的目标是 74 分(B2B AI SaaS 行业 P75 水平)。
六、我们学到的三件事
- 改造不是一次性的。 部署回退、配置漂移、证书过期,是按月发生的常态,不是意外。没有监测,再好的 GEO 改造都会在半年内悄悄归零。
- 守卫要做在流程里。 一道部署冒烟检查的成本是几十行脚本,但它能在回退发生的第一时间拦住。这比「三个月后被客户发现」便宜太多。
- 能自动化的执行,不要依赖人手动做。 客户的 24 小时零变化证明了:诊断报告给得再清楚,不替他们执行就不会落地。这也是我们从「卖诊断」转向「卖执行(Cite Studio + Cite Agent)」的原因。
给同样在做 GEO 的你
如果你也做过 llms.txt / Schema / sitemap 改造,建议现在就 curl 一下自己的线上,确认它们还活着。十有八九,你会发现至少一项已经悄悄回退了。
想知道自己网站当前的 GEO 可见性得分?用 Cite Scanner 跑一次——30 秒,100 分制 5 维报告,免费、无需注册。我们用它扫自己,也用它扫了 120+ 家企业。
鞋匠的孩子,这次得有鞋穿了。