Loomaly

2026年10月18日 · 作者:@limitlessdeng

我让 AI 在仓库里把 SEO 问题修完了,我只负责点合并

SEO 工具报出问题后,修还得自己来。我把 Loomaly 接进 Claude Code 和 Cursor,让编程助手自己拿问题、改代码、上线后复查。这篇是完整流程和它做不到的地方。

做独立站的人,大多用过 SEO 检查工具。报告一打开,几十上百条问题,标题太短、缺 canonical、图片没 alt。

看完报告,问题还得一条条自己去修。

我的网站代码在仓库里,每天写代码用的 Claude Code、Cursor 也在仓库里。它们改个 <title> 只要几秒,难的是知道先改哪条、改成什么样、改完线上到底好没好。

所以我把 Loomaly 做成了一个 MCP 服务。编程助手连上之后,在对话里就能拿到同一份按优先级排好的清单,按顺序一条条修,部署后再让 Loomaly 去复查线上页面。我在这个过程里只做两件事:看 PR,点合并。

先接上

Claude Code 里一行命令:

claude mcp add --transport http loomaly https://loomaly.com/mcp

Cursor 可以直接点文档里的「添加到 Cursor」,Codex 是 codex mcp add loomaly --url https://loomaly.com/mcp。不需要 API Key。

助手第一次调用时会打开浏览器,让你登录 Loomaly(没有账号可以当场免费注册),然后勾选它能做什么。读问题始终开启;添加站点、扫描、复查默认勾选,这几步会用到套餐额度,助手动手前会先问你。

还没加过网站的话,直接跟它说「用 Loomaly 检查 example.com」。它会调用 add_site(或带域名的 status)把网站加进来,开始第一次扫描,并轮询 status 直到结束。

一条问题是怎么被修掉的

扫描完成后,我一般只说一句:「用 Loomaly 看看最该先修什么,修第一个。」

接下来助手会走这几步:

  1. todo:先修什么。 返回的顺序和 Loomaly 到处用的排序一样。置顶待办已带 fixPrompt、证据、url、verify。接了 Search Console 的网站,按受影响页面的真实点击和展示排;没接的,按修好后健康分能涨几分排。默认每条规则只列一项,因为同一个问题出现在几十个页面上,通常是同一个模板造成的,改一处就够了。
  2. 可选的 problem。 需要更多细节时再展开一条:问题说明、受影响的网址、证据,以及按网站框架写好的修复说明(Next.js、Nuxt、Astro、SvelteKit 这类会分别写)。
  3. 改代码,开 PR。 这一步是助手自己的本事,它在仓库里找到模板文件改掉。
  4. check(target: fix)。 开完 PR 立刻把 PR 链接放进 ref。Loomaly 会稍等;线上页面没变就进入等待上线并自行复查。下次 status 宣布。问题真的没了才会关闭;还在的话,保持「未解决」并带上新证据,助手接着改。

最后这一步最重要。它看的是线上页面,不是本地代码,所以「我改了」和「线上好了」分得很清楚。

拿 loomaly.com 自己试一次

10 月 18 日的扫描报了 /docs,也就是我们文档的首页。它的 <title> 只有「Loomaly Docs」,12 个字符,不到这条规则要求的 20 个。todo 把它排在全站第 3,排序依据是 Search Console 数据:

{
  "position": 3,
  "ruleId": "title-too-short",
  "severity": "warning",
  "affectedPages": 4,
  "sampleUrl": "https://loomaly.com/docs",
  "reason": "costs_traffic",
  "searchImpressions": 11,
  "scoreGain": 0.4
}

problem 给出了证据("snippet": "Loomaly Docs"、"actual": "12 chars"),以及按我们的框架 TanStack Start 写的修复说明:在路由的 head() 里设置标题,写到 50 到 60 个字符,把主题说清楚。

助手发现文档首页没有自己的页面标题,所以整个 <title> 用的就是栏目名。它的改动如下:

+const INDEX_TITLE: Record<DocsLocale, string> = {
+	en: "Loomaly Docs — fix SEO issues with your AI coding agent",
+	zh: "Loomaly 文档 — 用你的 AI 编程助手修复 SEO 问题",
+};
 ...
-	if (!data) return { meta: [{ title: SECTION[lang] }], links: [stylesheet] };
+	if (!data)
+		return { meta: [{ title: INDEX_TITLE[lang] }], links: [stylesheet] };

我看完 PR 合并,上线。之后助手用 check(target: fix,ref = PR 链接)。大约一分钟后返回:

{
  "status": "verified",
  "findingState": "fixed",
  "verdict": "fixed"
}

问题关闭了。关闭的依据是线上页面已经换成了长标题,不是谁说了一句「改好了」。

复查前健康分是 96,复查后还是 96。这不是 bug:todo 给整条规则估的提升是 0.4 分,而同一条规则在三个中文页面上还没修。四个页面修了一个,凑不到 1 分。

它做不到的事

这套流程我自己天天用,也清楚它的边界:

  • Loomaly 不改你的网站。 改的是你仓库里的代码,由你审核、由你部署。MCP 工具能改的只有 Loomaly 里的东西,比如问题状态和改动记录。
  • 修复说明不保证能直接用。 它是根据公开页面写的,猜不到你项目的文件结构。助手在仓库里能看到真实代码,比单看说明靠谱得多,但 PR 还是要看。
  • 有些问题复查关不掉。 比如「两个页面在抢同一个搜索」这类靠 AI 判断的问题,要等下一次整站扫描重新判断。
  • Claude 网页版和手机 App 不能改代码。 它们也能连 Loomaly,会告诉你在 Shopify、WordPress 后台怎么改。想让 AI 直接改代码,要用 Claude Code、Codex 或 Cursor。

免费能做到哪一步

免费版是一个网站、一次完整扫描,月度数据预算为 $0(没有付费排名或 AI 提及)。修复后的复查仍在修复检查额度里。修几个最要紧的问题,是够用的。详见套餐。

接入的完整说明,包括 Codex、ChatGPT、Claude 应用和其他客户端,都在接入 AI 助手。

想先看看你的网站会报出什么,不用注册,也不用装任何东西:

查查你自己的网站

免费,无需注册。我们会读取你的 sitemap 和约 20 个页面。