传统 SEO 套件的问题,不只是贵,而是数据、操作和决策彼此割裂:人在网页里翻表,AI 在聊天框里猜数字。OpenSEO 的解法很直接:把关键词、SERP、域名、外链、排名、审计和 Google Search Console(GSC)放进同一项目,再通过 MCP 交给 AI 调用。
不只是“开源版 Semrush/Ahrefs”,更像一套可检查、可改造、可自托管的 SEO 数据与 Agent 工作台。
OpenSEO 功能全景

功能不是六项,而是三层
第一层:研究工具
关键词研究支持 1~200 个输入、150/300/500 条结果,自动在 related、suggestions、ideas 三种 DataForSEO Labs 数据源间补足,也可手动指定;部分市场转用 Google Ads 数据。结果包含搜索量、月度趋势、CPC、竞争度、KD 和四类意图,可按包含/排除词、量级、CPC、KD、意图过滤,旁边直接拉实时自然 SERP。选中的词可保存、批量打彩色标签、刷新指标、分页排序,并导出 CSV 或 Google Sheets。
Domain Overview 查询任意域名或页面,给出预估自然流量、排名词数量、Top Keywords、Top Pages,再按排名、流量、搜索量、CPC、意图和 SERP 类型筛选。Backlinks 提供总外链、引用域、Top Pages 和历史趋势;明细包含来源/目标 URL、锚文本、dofollow/nofollow、rank、spam、lost、broken 等信号,支持一域一条或完整列表、筛选、排序和导出。
AI Visibility 会查 ChatGPT 与 Google AI Overview 的品牌/域名提及、引用页面、来源域、相关 Prompt,并可把目标与最多 9 个竞争组计算 Share of Voice。Prompt Explorer 则把同一问题并排发给 GPT-5、Claude Sonnet 4.5、Gemini 2.5 Pro、Perplexity Sonar Reasoning Pro,可开关联网搜索、选择国家、查看引用与 fan-out queries,并高亮品牌是否被答案或引用命中。
OpenSEO 官方关键词研究界面

第二层:自己网站的持续运营
GSC Insights 展示点击、展现、CTR、平均排名及环比,按查询/页面、国家、桌面/移动/平板、7天/28天/3个月筛选。它会把最佳页面平均位置在 5~20 的查询自动列为“Striking Distance”,可批量复制或存入关键词库。MCP 还能读取最长 16 个月数据,并一次检查最多 10 个 URL 的收录、最后抓取、声明/Google 选择的 canonical、移动与富结果状态;全程只读、零积分,最近约 3 天可能不完整。
Rank Tracking 可按国家或城市建配置,选择桌面、移动或两者,设 SERP 深度与手动/每日/每周/每月计划;记录排名 URL、位置变化、SERP Features、趋势图、历史矩阵,以及按搜索量加权的可见度。单配置最多 1000 个词,单项目最多 500 个配置。手动检查走即时接口,计划任务走更便宜的队列接口。
Site Audit 从 robots.txt 与 sitemap 开始,只抓同源 URL,逐页提取状态码、跳转、响应时间、title、description、canonical、robots、OG、H1~H6、正文词数、图片 alt、内外链、JSON-LD、hreflang;再做跨页去重、孤儿页、断链、跳转链/环等检查。源码当前定义 27 类问题,分 critical/warning/info,并为每项附修复办法。可选 Lighthouse 同时跑移动与桌面,保存 Performance、SEO、Accessibility、Best Practices、LCP、CLS、INP、TTFB。免费方案每次最多 50 页,付费上限 1 万页。
27 项没有用“更多”糊弄过去:被拦截、5xx、4xx、内部断链、标题缺失/重复/过长/过短、描述缺失/重复/过长/过短、正文重复、H1 缺失/多个、标题层级跳级、跳转链/环、canonical 冲突或指向别页、内容过薄、图片缺 alt、孤儿页、无出链、响应慢、noindex、层级过深。
此外项目 Dashboard、项目/市场切换、审计与外链快照、GSC 连接、Saved Keywords,以及 Beta 版内置智能体 SAM。SAM 能读取站点页面,复用 MCP 工具,在项目级共享“长期记忆”和“研究日志”;不同聊天不会从零开始。
MCP 才是项目的技术核心
实际注册了 24 个工具,完整覆盖:
• 身份与项目:whoami、list_projects、create_project
• 关键词:research_keywords、get_keyword_metrics、list_saved_keywords、save_keywords
• SERP/本地 SEO:get_serp_results、find_serp_competitors、search_local_businesses、get_local_serp_results、get_google_business_questions
• 域名/外链/排名:get_domain_overview、get_domain_keyword_suggestions、get_ranked_keywords、get_backlinks_overview、get_backlinks_profile、get_rank_tracker
• GSC:get_search_console_performance、inspect_urls
• 审计:run_site_audit、get_audit_status、get_audit_issues、get_audit_pages
MCP 只负责“给数据与动作”;8 套 Agent Skills 负责“怎样做事”:SEO 项目设置、SEO 教练、SEO 审计、关键词研究、关键词聚类、竞争版图、单竞品分析、链接拓展。两者分离很关键:工具不会强行替你做策略,技能把可复用流程、输出格式和护栏交给 Claude Code、Codex 等客户端。
一套省钱、可复用的高效打法
1.先建项目并设默认国家/语言,连接 GSC;让 Agent 先跑 whoami、list_projects,确认项目与余额。
2.先吃免费第一方数据:从 GSC 的 5~20 位查询中找已有展现的机会,再用 get_keyword_metrics一次补全最多 700 个词的量、KD、意图和趋势。
3.宽搜时每次给 1~5 个明确 seed,默认取 150 条;只对高价值或意图模糊的词拉 SERP。聚类依据应是“排名页面重合”,不是字面相似。
4.保存前先人工确认,再用 topic:、intent:、page:标签形成“Cluster → URL”地图,避免两个页面争同一意图。
5.竞品分析按 Domain Overview → Ranked Keywords → 关键 SERP → 必要时 Backlinks 顺序推进;不要一上来全量查外链。
6.排名跟踪只放正在建设或变现相关的词,优先周更和单设备;需要即时验证再手动查。重复域名查询利用 12 小时缓存,品牌查询缓存 24 小时,Prompt 结果缓存 7 天。
7.审计先跑 50 页验证规则,再扩大;问题按严重度处理,不能把被 WAF 拦截误判成坏页。
三种安装方式
最快体验:官方托管版可免费试用,当前基础计划 10 美元/月,含每月 10 美元用量积分;调用 DataForSEO 的功能扣积分,已缓存数据、项目设置和 GSC 不扣。自托管时直接向 DataForSEO 付费。
Docker 本机自托管:
●●●bash git clone https://github.com/every-app/open-seo.git
cd open-seo
cp .env.example .env
DATAFORSEO_API_KEY=你的密钥
docker compose up -d
浏览器打开 http://localhost:3001。镜像默认为 ghcr.io/every-app/open-seo:latest。Docker 强制 AUTH_MODE=local_noauth,没有登录保护,只应绑定本机、私网或带认证的反向代理。需要 SAM 时加 OPENROUTER_API_KEY;需要 GSC 时再配 Google OAuth 三项。
从源码运行/构建:
●●●bash corepack enable
pnpm install --frozen-lockfile
cp .env.example .env.local
pnpm run db:migrate:local
pnpm run dev
pnpm run build
本地开发要求 Node.js 20+,默认 D1/SQLite。提交前官方要求运行 pnpm ci:check、pnpm test:ci、pnpm vite build。如要测试本地镜像:
●●●bash docker build -f Dockerfile.selfhost -t open-seo:local .
OPEN_SEO_IMAGE=open-seo:local docker compose up -d
Cloudflare 互联网部署:要求 Node 22.6+、pnpm、已启用 R2 的 Cloudflare 账户和 DataForSEO。pnpm alchemy login后 bootstrap 状态存储,填写 .env.selfhost,运行 pnpm deploy:selfhost --yes;它会一次创建 D1、KV、R2、Workflows、Worker 和 Cloudflare Access。MCP 还需在 Access 中开启 Managed OAuth,并放行客户端回调 URI。
源码架构:适合二次开发
OpenSEO 技术架构

前端是 React 19、TanStack Start/Router/Query/Form/Table、Tailwind 4 与 DaisyUI;服务端遵循“Server Function → Service → Repository”,Zod 在输入边界校验,Drizzle 负责持久化。默认数据库是 Cloudflare D1;规模增大时可切 Postgres,但 Worker 只通过 Hyperdrive、按请求创建连接。项目用 schema parity test 防止 SQLite 与 Postgres 漂移。
耗时任务不堵请求:站点审计和排名检查运行在 Cloudflare Workflows,步骤可重试且已完成阶段不重做;SAM 与入门聊天用 Durable Objects 的 SQLite 保存会话;R2 缓存 DataForSEO/Lighthouse,KV 保存 OAuth 与进度,Cron 每 15 分钟寻找到期排名任务。SAM 直接适配同一批 MCP handler,并由服务器注入 projectId,所以 Web、MCP、内置 Agent 的权限、计费和数据语义不会各写一套。
边界
开源不等于数据免费:核心 SEO 数据依赖 DataForSEO,外链接口还需账户启用;新账户虽有测试余额,但最低充值额由供应商决定。Docker 默认无认证;Cloudflare 的 R2 即使用免费额度也要求绑定付款方式。自托管 GSC 必须自建 Google OAuth,托管版才免这一步。SAM 仍标为 Beta,且依赖 OpenRouter。审计器用 Cheerio 分析返回的 HTML,不执行浏览器端 JavaScript,纯客户端渲染站点可能出现“正文过少”。ChatGPT 品牌提及库目前按源码固定为美国/英语;AI 可见性数据也不是实时排名替代品。
OpenSEO 最有价值的地方,是把同一份真实数据同时交给人和 Agent。想做内部 SEO 工具、客户工作台或可审计的 AI 工作流,比从 DataForSEO API 和 MCP 零搭一遍更务实。
夜雨聆风