如何用 Gemini CLI Checkpointing 安全修复 SEO

用 checkpoint、diff、tests、rollback 与 human approval,让 Gemini CLI 的 SEO fixes 不破坏 production。

你会建立什么

这篇教学会示范如何用 Gemini CLI 更安全地处理 technical SEO fixes:每次有风险的修改之前,都先建立 checkpoint。目标不是「让终端机 agent 自动修 SEO」,而是做到一个 risk class、一个 branch、一个 diff、一份 validation report,以及一条 rollback path。

你会建立:

seo-geo/checkpoints/
YYYY-MM-DD-task-name/
before-git-status.txt
before-changed-files.txt
diagnosis.md
approval.md
after-validation.md
rollback.md
scripts/
seo-geo-checkpoint.mjs

Gemini CLI 安全 SEO 修复流程:checkpoint、诊断、核准、验证与 rollback

图说:安全修 SEO 的核心不是让 agent 更快动手,而是让每一步都能回溯。

这个 workflow 适合 metadata helpers、schema、internal links、sitemap generation、robots rules、canonical logic、redirects 与 page templates。

步骤 1:建立 checkpoint folders 与 script

从你的网站 repo root 开始:

mkdir -p seo-geo/checkpoints scripts
cat > scripts/seo-geo-checkpoint.mjs <<'EOF2'
#!/usr/bin/env node
import { execSync } from 'node:child_process';
import { mkdirSync, writeFileSync } from 'node:fs';
import { join } from 'node:path';

const name = process.argv[2] || 'seo-geo-task';
const date = new Date().toISOString().slice(0, 10);
const dir = join('seo-geo', 'checkpoints', `${date}-${name}`.replace(/[^a-zA-Z0-9._/-]/g, '-'));
mkdirSync(dir, { recursive: true });

function run(cmd) {
try { return execSync(cmd, { encoding: 'utf8' }); }
catch (err) { return `COMMAND FAILED: ${cmd}
${err.message}
${err.stdout || ''}
${err.stderr || ''}`; }
}

writeFileSync(join(dir, 'before-git-status.txt'), run('git status --short'));
writeFileSync(join(dir, 'before-changed-files.txt'), run('git diff --name-only HEAD'));
writeFileSync(join(dir, 'rollback.md'), `# Rollback

Branch: ${run('git branch --show-current').trim()}

Before applying edits, commit or stash unrelated work. To inspect changes after Gemini edits, run:

\`\`\`bash
git diff
git status --short
\`\`\`
`);
console.log(`Created checkpoint: ${dir}`);
EOF2
chmod +x scripts/seo-geo-checkpoint.mjs

执行它:

node scripts/seo-geo-checkpoint.mjs metadata-test

步骤 2:从干净 branch 开始

在 Gemini CLI 修改任何东西之前,先检查状态:

git status --short

如果看到无关改动,先停下来,把它 commit 或 stash。接著建立 branch:

git checkout -b seo-geo/fix-metadata-example
node scripts/seo-geo-checkpoint.mjs fix-metadata-example

Checkpoint 只有在你知道 agent 动手前是什么状态时才有用。

步骤 3:先要求 Gemini CLI 只做诊断

在 repo root 开启 Gemini CLI,贴上:

We are doing a safe SEO/GEO fix.

First, do diagnosis only. Do not edit files.

Task: inspect metadata/title/description handling for one target page: [URL or local file].

Return:
1. Files that likely control this page's title, meta description, canonical, Open Graph, and schema.
2. The exact risk class: metadata, schema, internal links, sitemap, robots, canonical, redirects, analytics, or content.
3. The smallest safe fix.
4. Validation commands available in this repo.
5. Rollback plan.
6. Files you would edit if approved.

Write the diagnosis to `seo-geo/checkpoints/YYYY-MM-DD-fix-metadata-example/diagnosis.md`.
Wait for approval before editing.

把 checkpoint folder name 换成你的 script 刚刚建立的名称。

步骤 4:一次只核准一个 risk class

不要在同一次 run 里核准 metadata、schema 和 redirects。使用这种 approval format:

Approved risk class: metadata only.
Approved files:
- src/pages/features/reporting.astro
- src/lib/seo.ts only if this page already uses that helper

Not approved:
- schema changes
- canonical policy changes
- robots/noindex changes
- redirects
- sitemap generation
- analytics changes
- unrelated page rewrites

Apply the smallest patch and stop after validation.

如果 Gemini 说必须修改 shared helper,要求它先做第二份 diagnosis,列出这个 helper 会影响哪些页面。

步骤 5:先验 diff,再看 summary

Gemini 修改后,先跑:

git diff --stat
git diff --name-only

Changed files 应该和 approval 一致。如果不一致,停下来,要求 Gemini 解释为什么多改了其他档案。

接著跑你 repo 内可用的 checks:

npm run build
npm run lint

如果 repo 没有这些 commands,请 Gemini 从 package.json、framework config 或 docs 判断正确的 validation commands。

步骤 6:要求 Gemini 产生 after-validation report

Create `seo-geo/checkpoints/YYYY-MM-DD-fix-metadata-example/after-validation.md`.

Include:
- changed files
- exact SEO/GEO issue addressed
- diff summary
- commands run and outcomes
- manual checks still needed
- rollback command or rollback steps
- what metrics to watch for 14 days

Do not continue to another fix.

好的 report 会列出 files 和 commands。弱的 report 只会说「SEO improved」,但没有任何证据。

步骤 7:高风险修复要使用更严格规则

Fix class

初学者规则

Metadata

一次只修一页或一个 template group

Schema

merge 前验证 rendered JSON-LD

Internal links

只加入与使用者有关的连结

Sitemap

merge 前检查 generated sitemap

Robots/noindex

每次都需要人工核准

Canonical

每个 locale/template 至少测一个代表 URL

Redirects

使用 migration plan,不要 quick patch

Analytics

不要和内容修改放在同一个 task

只要 task 会碰 robots、canonicals、redirects 或 analytics,就让 Gemini 停留在 diagnosis mode,直到人工核准 policy。

初学者可直接复制的 prompt

I want to use Gemini CLI for one safe SEO/GEO technical fix.

Rules:
- Create or use a checkpoint under `seo-geo/checkpoints/`.
- Diagnose before editing.
- Work on one risk class only.
- Wait for approval before changing files.
- Do not touch robots, noindex, sitemap, redirects, canonical helpers, analytics, or shared templates unless explicitly approved.
- After editing, run validation and write an after-validation report.
- Do not continue to another fix.

Start by inspecting git status and writing the diagnosis only.

FAQ

Git 本身就足够当 checkpoint 吗?

对多数网站 repo 来说,干净 branch 加 checkpoint folder 就足够。对 generated sites,也要保存 before/after crawl outputs 或 rendered HTML snapshots。

一个 task 可以同时修 metadata、schema 和 redirects 吗?

不要。把 risk classes 拆开,rollback 才会简单。

如果 Gemini 修改了无关档案怎么办?

停下来。用 git diff --name-only 对照 approved file list,要求 Gemini 只针对未核准变更 revert 或解释。不要继续下一步。

AI coding agents for SEO/GEO 学习路径

这篇属于 Gemini CLI SEO/GEO track。先完成这些 terminal-focused tutorials,再用 operating model 把它和 editor / workflow agents 组合起来:

  1. Cursor vs Windsurf vs Gemini CLI:SEO/GEO 自动化怎么选
  2. 如何设定 Gemini CLI SEO/GEO Automation 工作区
  3. 如何用 MCP 将 Gemini CLI 接上 SEO 资料
  4. 如何用 Gemini CLI 做每日 SEO/GEO Monitoring
  5. 如何用 Gemini CLI Checkpointing 安全修 SEO
  6. Cursor、Windsurf、Gemini CLI、Codex、Claude Code 的 SEO/GEO 营运模型

Sources and notes

Author: Julian Mercer, Auspia 14 年 Technical SEO Practitioner。Julian 撰写 crawlability、schema、rendering,以及 AI-readable content 的 technical foundations。

探索此主题

继续阅读同一增长脉络