用 OpenClaw 打造本地化 SEO 数据查询系统
作为一个管理着多个网站的独立开发者,我每周都要花大量时间登录 Google Search Console、Google Analytics 和 Bing Webmaster Tools,导出数据,复制粘贴到表格里,然后盯着数字发呆。
直到有一天,我突然意识到:我有一个本地运行的 AI Agent (OpenClaw),为什么不让它帮我干这些重复劳动?
于是我花了一个下午,搭建了一套完全本地化的 SEO 数据查询系统。现在,我只需要对 AI 说一句话,它就能自动帮我分析所有网站的 SEO 表现,并给出可执行的优化建议。
这篇文章记录了整个实现过程,以及我踩过的所有坑。
现在的工作流是什么样的?
早上起床,泡杯咖啡,然后随口问 AI:
“帮我看看 slitherlinks.com 最近一周的 SEO 表现”
30 秒后,AI 给我一份完整的分析报告:
📊 slitherlinks.com 近 7 天 SEO 数据分析
Google Search Console:
• 总点击: 892 次 (↑ 12% vs 上周)
• 总展示: 34,521 次 (↑ 8%)
• 平均 CTR: 2.6% (↑ 0.3%)
• 平均排名: 15.2 (↑ 2.1)
⚠️ 发现机会:
“slither link solver” 展示 3,200 次但点击率仅 1.2%
→ 建议优化 meta description,突出“免费在线求解器”
Google Analytics:
• 活跃用户: 1,234 (↑ 15%)
• 主要流量来源: Organic Search (68%), Direct (22%)
• 热门页面: /puzzle-generator (45% 流量)
Bing Webmaster:
• 爬取页面: 156 (无错误)
• Top 关键词: “slitherlink online” 排名第 3
💡 行动建议:
为 “slither link solver” 优化标题和描述
/puzzle-generator 页面表现优秀,考虑增加内链
Bing 排名稳定,可以考虑针对性优化
不用登录任何后台,不用导出 CSV,不用手动对比数据。AI 自动帮我完成了所有分析工作,甚至还能发现我自己可能忽略的优化机会。
这就是我想要的工作方式。
技术架构:极简主义
整个系统的设计哲学是:不需要云服务,不需要数据库,不需要复杂的中间层。
工作流程非常简单:
- AI Agent 收到我的请求
- 通过
exec工具调用本地 Node.js 脚本 - 脚本直接调用 Google / Bing 的官方 API
- 返回纯文本结果给 AI
- AI 分析数据并给出建议
所有代码都放在本地 Mac mini 上,密钥文件也在本地,完全不依赖任何第三方服务。
文件结构:
~/.openclaw/workspace/
├── scripts/
│ ├── gsc-report.cjs # Google Search Console 查询
│ ├── ga4-report.cjs # Google Analytics 4 查询
│ └── bing-report.cjs # Bing Webmaster 查询
└── credentials/
├── gcp-service-account.json # Google 服务账号密钥
└── bing-webmaster-api-key.txt # Bing API Key
三个脚本文件,两个密钥文件,就这么简单。
配置过程:一步步来
整个配置过程大约需要 60 分钟,主要时间花在 Google Cloud Console 的各种授权上。我把它拆成了 6 个步骤,每个步骤都标注了预计时间:
步骤 1: Google Cloud 配置 (15 分钟)
创建 Service Account 并启用 API
步骤 2: GSC 授权 (10 分钟)
为每个站点添加权限
步骤 3: GA4 授权 (10 分钟)
配置 Property 访问权限
步骤 4: Bing 配置 (5 分钟)
生成并保存 API Key
步骤 5: 安装依赖 (5 分钟)
npm 安装必要的库
步骤 6: 脚本实现 (15 分钟)
创建三个查询脚本
总计: 约 60 分钟 | 难度: ⭐⭐⭐☆☆
下面我会详细讲解每一步,以及我踩过的坑。
💡 准备工作:创建所需文件夹
在开始之前,我们需要在电脑上创建存放配置和脚本的文件夹,因为里面涉及安全凭证。打开终端(Terminal)并复制运行以下命令:
mkdir -p ~/.openclaw/workspace/scripts
mkdir -p ~/.openclaw/workspace/credentials
注:~/.openclaw 是一个隐藏文件夹,它不会直接展示在桌面上,但你可以后续在此目录内存放所有 AI 相关的数据。
第一步:Google Cloud Console 配置 (15 分钟)
Google 的 API 访问需要通过 Service Account 来实现。这是一个“机器人账号”,专门用于程序化访问。
创建 Service Account
- 打开 Google Cloud Console (console.cloud.google.com)
- 创建新项目(我取名叫 openclaw-seo)
- 进入 IAM & Admin → Service Accounts
- 点击「Create Service Account」,名字随意(比如 openclaw-seo-reader)
- 角色可以不选,后续在各平台单独授权
- 创建好后,点击该 SA → Keys → Add Key → Create new key → JSON
- 下载 JSON 文件,保存到
~/.openclaw/workspace/credentials/gcp-service-account.json
JSON 文件里有一个 client_email 字段,长这样:
openclaw-seo-reader@your-project.iam.gserviceaccount.com
记住这个邮箱地址,后面 GSC 和 GA4 授权都要用到它。
启用 API
在 Google Cloud Console 的「APIs & Services → Library」中搜索并启用:
- Google Search Console API
- Google Analytics Data API
两个都要启用,否则脚本会报 “API has not been enabled” 错误。
第二步:Google Search Console 授权 (10 分钟)
这里有个容易混淆的地方:GSC 的权限不是在 Google Cloud 设置的,而是在 Search Console 网站本身。
- 打开 Google Search Console (search.google.com/search-console)
- 选择你的站点(每个站都要单独操作)
- 左侧「设置」→「用户和权限」→「添加用户」
- 输入刚才的
client_email - 权限选择「受限」即可(只读,够用了)
第三步:Google Analytics 4 授权 (10 分钟)
GA4 的授权流程和 GSC 类似:
- 打开 Google Analytics (analytics.google.com)
- 左下角「管理」→ 选择目标媒体资源(Property)
- 「媒体资源」栏 →「媒体资源访问权限管理」
- 右上角「+」→「添加用户」
- 输入
client_email,角色选「查看者」
- Property ID: 在「媒体资源」→「媒体资源详情」里看,是一串纯数字,比如
489888837 - 数据流 ID: 在「数据流」里看,也是数字但不同
脚本里用的是 Property ID,格式为 properties/489888837,别填成数据流 ID! 我第一次配置的时候就搞混了,调试了半天才发现是 ID 填错了。
第四步:Bing Webmaster Tools 配置 (5 分钟)
Bing 的方式简单多了,不需要 Service Account,直接用 API Key:
- 打开 Bing Webmaster Tools (bing.com/webmasters)
- 右上角「设置」(齿轮图标)→「API access」
- 点击「Generate API Key」
- 复制 API Key,保存到
~/.openclaw/workspace/credentials/bing-webmaster-api-key.txt
文件里直接放纯文本的 key,一行即可。
第五步:安装依赖 (5 分钟)
在脚本目录里初始化 npm 并安装依赖:
cd ~/.openclaw/workspace/scripts
npm install googleapis google-auth-library
如果你的 package.json 有 "type": "module", Node.js 会把所有 .js 文件当作 ES Module 处理,导致
“require is not defined” 报错。
解决方案:把脚本文件命名为 .cjs 而不是 .js,这样无论 package.json 怎么配置,Node.js 都会用
CommonJS 模式加载。这就是为什么我的脚本叫 gsc-report.cjs 而不是 gsc-report.js。
第六步:脚本实现 (15 分钟)
现在到了最核心的部分:写出可以运行的查询脚本。
🔨 GSC 脚本: gsc-report.cjs
这个脚本查询关键词排名、点击、展示、CTR 和 Top 页面。
完整代码示例(可直接复制):使用你喜欢的文本编辑器(如 VS Code,或记事本),将下面的代码保存到 ~/.openclaw/workspace/scripts/gsc-report.cjs 文件中:
const { google } = require('googleapis');
const path = require('path');
// 指向你在第一步下载的秘钥文件
const KEY_PATH = path.join(__dirname, '../credentials/gcp-service-account.json');
async function getGscData(siteUrl) {
const auth = new google.auth.GoogleAuth({
keyFile: KEY_PATH,
scopes: ['https://www.googleapis.com/auth/webmasters.readonly'],
});
const searchconsole = google.searchconsole({ version: 'v1', auth });
const res = await searchconsole.searchanalytics.query({
siteUrl: siteUrl,
requestBody: {
startDate: '2024-01-01', // 你可以修改为你需要的时间
endDate: '2024-01-28',
dimensions: ['query'],
rowLimit: 5,
},
});
console.log(`=== ${siteUrl} ===`);
console.log(res.data.rows);
}
// 获取命令行传入的网站参数
const targetSite = process.argv[2] || 'sc-domain:example.com';
getGscData(targetSite).catch(console.error);
⚠️ 重要踩坑:GSC 资源名格式有两种,必须跟 Search Console 里一致!
- 「域名资源」(Domain property): 格式为
sc-domain: example.com - 「网址前缀资源」(URL-prefix property): 格式为
https://example.com/(注意末尾斜杠)
如果格式不对,API 会返回 “403 User does not have sufficient permission” 错误,实际上是资源名写错了。
运行测试:# 打开终端,替换为真实域名测试运行:
node ~/.openclaw/workspace/scripts/gsc-report.cjs "sc-domain:yoursite.com"
🔨 GA4 脚本: ga4-report.cjs
这个脚本查询用户、会话、页面浏览等(限于篇幅,这里不展开完整代码,用 google.analyticsdata 类比 GSC 实现即可)。
node ~/.openclaw/workspace/scripts/ga4-report.cjs slitherlinks 7
🔨 Bing 脚本: bing-report.cjs
Bing API 用 HTTPS 请求,不需要 OAuth,代码极其简单。
完整代码示例:const https = require('https');
const fs = require('fs');
const key = fs.readFileSync('../credentials/bing-webmaster-api-key.txt', 'utf8').trim();
const siteUrl = process.argv[2] || 'https://yoursite.com';
https.get(`https://ssl.bing.com/webmaster/api.svc/json/GetRankAndTrafficStats?siteUrl=${siteUrl}&apikey=${key}`, (res) => {
let data = '';
res.on('data', chunk => data += chunk);
res.on('end', () => console.log(JSON.parse(data)));
});
第七步:让 AI Agent 使用这些脚本
很多纯小白配置完脚本后,依然不知道 AI 是怎么调用的。事实上,我们需要通过创建一份 Skill (技能) 文件授权给 OpenClaw:
在我们系统的 ~/.openclaw/skills/ 目录下新建文件 seo-assistant.yaml,输入以下内容并保存:
name: "SEO 数据监控"
description: "调用本地 Node.js 脚本读取 Google Search Console 数据"
version: "1.0.0"
triggers: ["SEO表现", "分析网站流量"]
steps:
- action: execute_command
command: "node ~/.openclaw/workspace/scripts/gsc-report.cjs {{site_url}}"
- action: respond
message: "我已成功查询了您的后台日志,结合数据,分析建议如下:\n\n{{stdout}}"
完成并保存后,在终端运行 openclaw skills reload 让配置生效。
💬 最终实战对话测试:
你:通过新创建的 SEO 技能,帮我看看最近 “sc-domain:yoursite.com” 的 SEO 表现
OpenClaw: (接收到指令,自动调用 execute_command 去执行代码,等待返回日志)
“我已成功查询了您的后台,根据最新分析… 网站点击上升… 建议重点关注…”
进阶玩法:定时报告
如果你想让 AI 每天早上自动给你发送 SEO 报告,可以用 cron:
设置方法:
- 编辑 crontab:
crontab -e - 添加定时任务:
0 8 * * * node /Users/yourname/.openclaw/workspace/scripts/gsc-report.cjs >> /tmp/seo-report.log 2>&1
这样每天早上 8 点,脚本就会自动运行并生成报告。或者在 OpenClaw 的 HEARTBEAT.md 里加入 SEO 检查任务,让 Agent 定期主动查询。
安全注意事项
虽然这套系统完全本地化,但密钥管理还是要注意:
credentials/目录已在.gitignore中,绝对不要上传到 GitHub- Service Account 只申请了只读权限(readonly scope),即使密钥泄露也无法修改数据
- Bing API Key 是纯文本文件,注意文件权限
推荐设置更严密的权限:
chmod 600 ~/.openclaw/workspace/credentials/bing-webmaster-api-key.txt
chmod 600 ~/.openclaw/workspace/credentials/gcp-service-account.json
我踩过的所有坑
配置过程中我遇到了不少问题,这里总结一下:
解决: 文件改名为 .cjs
解决: 用 sites.list() 确认正确格式
解决: 域名资源用 sc-domain:, URL 前缀用完整 URL
解决: 去「媒体资源详情」确认纯数字 Property ID
解决: 去 Library 搜索并启用对应 API
解决: 每个站都要单独授权
sc-domain: 和 https://
的区别。
总结
整套流程下来大约需要 30-60 分钟,主要时间花在 Google Cloud Console 配置和各站点授权上。
但一旦配置完成,你就拥有了一个完全自动化的 SEO 数据分析系统:
- [x] 不用登录任何后台
- [x] 不用导出 CSV
- [x] 不用手动对比数据
- [x] AI 自动发现优化机会
- [x] 所有数据都在本地处理
对我来说,这是一个巨大的效率提升。现在我每天早上只需要问 AI 一句话,就能了解所有网站的 SEO 表现,然后专注于真正重要的优化工作。
如果你也在管理多个网站,强烈推荐试试这套方案。
📚 相关资源:
- Google Search Console API 文档: developers.google.com/webmaster-tools
- Google Analytics Data API 文档: developers.google.com/analytics/devguides/reporting/data/v1
- Bing Webmaster API 文档: docs.microsoft.com/en-us/bingwebmaster
未经允许不得转载:Scrape SEO » Let OpenClaw auto analyze SEO data

Scrape SEO



