RepoDaily · 2026-06-27 · Self-hosted app

OpenSEO:可自托管的按量付费版 Semrush 与 Ahrefs 替代方案

#12 Self-hosted app TypeScript +635 every-app/open-seo 打开仓库

一款 TypeScript SEO 工具包,支持 Docker 或 Cloudflare Workers 部署,内置 MCP 服务器供 AI Agent 调用,并将关键词研究与外链数据的成本转嫁到按量计费的 DataForSEO API 上,而非按月订阅。

项目类型Self-hosted app
最适合独立 SEO 从业者和小型团队,希望获得 Semrush 级别的关键词研究、排名追踪和外链分析,但不想承担每月 100 美元以上的订阅费用。
风险等级中等
评估时间本地 Docker 运行约 30 分钟(使用 DataForSEO 免费 1 美元额度);Cloudflare Workers 部署约 1-2 小时。

核心问题: 按你实际的调用量,DataForSEO 的按量计费模式是否比现有的 Semrush 或 Ahrefs 订阅更划算?

91/100

RepoDaily 采用评分

RepoDaily 将该项目的采用分评为 91/100(强):分数来自文章来源、安装路径、生产风险、差异化、许可证清晰度以及 AI/Agent 适配度。

基于 RepoDaily 来源和采用说明的方向性评分,不是基准测试。风险: 中
100证据质量

包含 5 个来源、覆盖 4 类来源;如有 RepoDaily 独有模块,会进一步提高证据分。

100可安装/可试用性

检测到 6 个工作流步骤、5 个下一步动作,以及 7 个命令/安装信号。

65维护可信度

趋势热度为 +635 stars;如内容中有 release、issue 或维护信号,会提高维护可信度。

93生产准备度

采纳风险标记为 medium,并包含 5 条安全说明与 4 条跳过条件。

100差异化

3 个机会视角、4 个替代方案,以及 3 个类型化模块支撑差异化判断。

82许可证清晰度

文章中包含许可证来源或许可证表述。

84Agent / AI 适配度

文章正文和元数据中检测到 6 个 AI/Agent 相关信号。

项目概览

OpenSEO 是一个 TypeScript 应用,将六大核心 SEO 工作流——关键词研究、排名追踪、竞争对手洞察、外链分析、站点审计和 AI 可见性——整合到一个可自托管的 Web UI 中。应用本身基于 MIT 许可证免费开源,通过 DataForSEO 的按量付费 API 代理获取 SEO 数据。你只需携带自己的 API Key,按实际请求量直接向 DataForSEO 付费。

项目当前版本为 0.0.21,提供 Docker 镜像(ghcr.io/every-app/open-seo:latest)和一键 Cloudflare Workers 部署路径。同时内置 Model Context Protocol(MCP)服务器,让 Claude Code、OpenClaw 或 Hermes 等 Agent 直接读取你的 SEO 数据,并通过七个预置 Agent Skills(如 keyword-clustering 和 link-prospecting)执行引导式工作流。

需要权衡的是成本的可预测性。OpenSEO 本身免费,但 DataForSEO 的按量计费意味着大量的排名追踪或深度外链探索可能快速累积费用。README 提供了具体的成本示例——默认 150 条结果下 100 次关键词研究请求费用为 3.50 美元,100 次完整外链域名搜索约为 10.94 美元——让你在投入前就能建模月度支出。

解决什么问题

  • Semrush 和 Ahrefs 订阅通常从每月 100 美元起步,将自由职业者和小企业挡在门外。
  • 封闭的 SaaS 工具无法自定义工作流、编写脚本或集成 AI Agent。
  • 自托管 SEO 套件长期以来缺乏精致的 UI 或 MCP/Agent 集成能力。
  • 团队需要成本透明——确切知道每次关键词查询或外链爬取的花费——而非固定费率的不透明计费。

工作原理

  1. 在 DataForSEO 注册账号,从 API Access 页面复制 Base64 格式的凭据,将其设为 .env 文件中的 DATAFORSEO_API_KEY。
  2. 运行 cp .env.example .env,填入 Key 后执行 docker compose up -d,在 http://localhost:3001 打开应用。
  3. 可选:创建 Google OAuth 客户端(约 10 分钟),设置 GOOGLE_CLIENT_ID 和 GOOGLE_CLIENT_SECRET 以连接 Google Search Console。
  4. 在页面头部点击 'AI & Agents',将 Claude Code、OpenClaw 或 Hermes 连接到 MCP 服务器。
  5. 从文档安装 Agent Skills(如 keyword-research 或 competitive-landscape),引导 Agent 执行结构化 SEO 任务。
  6. 如需多设备或团队使用,通过 Cloudflare Workers 按钮部署,并将 AUTH_MODE 设为 cloudflare_access 以启用认证。

架构解读

OpenSEO 基于 TanStack Start(v1.167.16)、TanStack Router、TanStack Query 和 React 19 构建单页应用,使用 Vite 7 打包。生产构建通过 @cloudflare/vite-plugin 运行在 Cloudflare Workers 上,数据库为 D1(SQLite),通过 drizzle-orm 0.44 访问。认证由 better-auth 1.5.5 处理,AUTH_MODE 在 local_noauth 和 cloudflare_access 之间切换。

SEO 数据通过 dataforseo-client(v2.0.19)包获取。MCP 服务器使用 @modelcontextprotocol/sdk 1.29.0 和 @cloudflare/workers-oauth-provider 0.4.0,OAUTH_KV 作为 KV 命名空间存储 MCP 客户端注册信息。分析和错误追踪使用 PostHog(posthog-js 1.363.5 和 posthog-node 5.28.5),项目还提供了专门的 PostHog sourcemap 上传 npm 脚本。

Docker 镜像运行时设置 CLOUDFLARE_INCLUDE_PROCESS_ENV=true,使 Compose 环境变量映射到 Workers bindings,D1 状态持久化到名为 open_seo_data 的 Docker 卷,挂载于 /app/.wrangler。

部署注意事项

  • Docker 快速启动:cp .env.example .env → 设置 DATAFORSEO_API_KEY → docker compose up -d → 打开 http://localhost:3001。
  • 默认 Docker 模式以 AUTH_MODE=local_noauth 运行——单用户、无认证、仅绑定 127.0.0.1,请勿直接暴露到互联网。
  • 更新方式:docker compose pull && docker compose up -d。
  • Cloudflare 部署使用指向 deploy.workers.cloudflare.com 的部署按钮,兼容免费计划。
  • 所需 Cloudflare 绑定:AUTH_MODE、TEAM_DOMAIN、POLICY_AUD、DATAFORSEO_API_KEY 以及用于 MCP OAuth 的 OAUTH_KV。
  • 数据库迁移:npm run db:migrate:local(本地)或 npm run db:migrate:prod(远程 Cloudflare D1)。

命令速览

  • pnpm dev — 本地 Vite 开发服务器。
  • pnpm dev:agents — 带 portless 和日志捕获的 Agent 开发服务器,日志输出到 .logs/dev-server.log。
  • pnpm build — vite build && tsc --noEmit。
  • pnpm deploy — db:migrate:prod && build && wrangler deploy。
  • pnpm test — vitest run;pnpm test:e2e — Playwright 端到端测试。
  • pnpm billing:backlinks — 运行 tsx scripts/backlinks-cost-profile.ts 进行 DataForSEO 支出分析。
  • pnpm ci:check — 执行 prettier --check && knip && tsc --noEmit && oxlint . --type-aware。

谁适合关注

适合关注

  • 每月在 DataForSEO API 上花费不超过 50 美元的自由职业 SEO 顾问。
  • 希望将 Claude Code 或其他 MCP 兼容 Agent 连接到真实 SEO 数据的开发者。
  • 已在 Cloudflare 上的团队,想要可部署到 Workers 的 SEO 仪表盘并享受 D1 自动备份。
  • 对关键词研究和外链数据的单次请求成本感到好奇的人。

可以先跳过

  • 需要 SLA、多用户 RBAC 或白标客户门户的企业团队。
  • 需要 DataForSEO 未覆盖的 SERP 数据源的用户。
  • 不习惯管理 API 余额和监控单次请求成本的人。
  • 需要本地部署或离线环境的团队——DataForSEO 是云端 API。

风险与注意事项

应用版本为 0.0.21,MIT 许可证,Docker 路径清晰,但 DataForSEO 成本可变性、Docker 模式下缺乏多用户认证以及早期阶段成熟度带来中等采纳风险。

  • 版本 0.0.21 表明处于 pre-1.0 阶段——大概率会有破坏性变更。
  • Docker 默认模式以 AUTH_MODE=local_noauth 运行,无认证,README 明确警告不适合面向互联网使用。
  • DataForSEO 成本随使用量增长;深度外链探索每 100 次请求可达 10 美元以上。
  • Cloudflare 部署需要手动配置绑定(TEAM_DOMAIN、POLICY_AUD、OAUTH_KV),Workers UI 不会引导你完成这些步骤。
  • 目前为单人维护者(Ben Senescu),社区规模尚小。
  • Docker 模式默认绑定 127.0.0.1 并使用 AUTH_MODE=local_noauth——仅限本地单用户使用。
  • 可通过 AUTH_MODE=cloudflare_access 集成 Cloudflare Access,对 cf-access-jwt-assertion 头进行 JWT 验证。
  • MCP 客户端的 OAuth Provider 使用专用 KV 命名空间(OAUTH_KV)存储令牌。
  • Google Search Console 集成使用你自己的 Google OAuth 客户端凭据——无共享密钥。
  • PostHog 分析已通过 posthog-js 内置;团队部署前请审查隐私影响。

替代方案比较

方案适用场景代价
Semrush
需要成熟的综合平台,具备历史数据深度、内容工具和付费支持。约 130 美元/月起
Ahrefs
外链索引广度和站点探索器深度是主要需求。约 129 美元/月起
SerpApi
仅需通过 API 抓取 SERP 并自建 UI。按量计费,约 75 美元/月起
DataForSEO 直接使用
只需原始 API 访问,不需要 UI 封装。按量计费,1 美元免费额度,最低充值 50 美元

这个趋势说明了什么

Agent 原生 SEO 工作流

七个预置 Agent Skills(seo-project-setup、seo-coach、keyword-research、keyword-clustering、competitive-landscape、competitor-analysis、link-prospecting)随 MCP 服务器发布,让 Claude Code 或 Hermes 自主执行多步骤 SEO 研究。

通过 'AI & Agents' 头部连接 Claude Code,对目标域名运行 keyword-research skill 进行测试。

低频用户的成本套利

按 DataForSEO 定价,每周追踪 100 个关键词约 1.20 美元/月。对于月 API 支出低于 50 美元的用户,OpenSEO 比任何 100 美元以上的订阅都便宜。

在迁移前使用 pnpm billing:backlinks 脚本分析你的预期 DataForSEO 支出。

Cloudflare Workers 定制空间

Cloudflare 部署路径配合 D1、KV 和 Workers 绑定,为自定义 Skills、定时审计和面向团队的仪表盘打开了大门,且兼容免费计划。

通过 Workers 按钮部署,设置 AUTH_MODE=cloudflare_access,邀请队友验证多用户访问。

下一步建议

使用 DataForSEO 免费额度运行 Docker 快速启动

评估 OpenSEO 最快的方式是本地 Docker 路径,约需 10 分钟,如果使用 DataForSEO 的 1 美元起始额度则完全不花钱。

  1. 在 app.dataforseo.com/api-access 创建 DataForSEO 账号,复制 Base64 格式凭据。
  2. 克隆仓库,运行 cp .env.example .env,设置 DATAFORSEO_API_KEY。
  3. 运行 docker compose up -d,打开 http://localhost:3001。
  4. 对目标词执行一次关键词研究查询,检查 DataForSEO 仪表盘中的实际花费。
  5. 如果成本合理,点击 'AI & Agents' 连接 Claude Code 并尝试 keyword-clustering skill。

RepoDaily 判断

OpenSEO 在 0.0.21 版本阶段已经是一个实用的自托管 SEO 工具包——MCP 集成和 DataForSEO 按量付费模式使其成为中低频量用户替代 Semrush 或 Ahrefs 的真正省钱方案。Docker 快速启动很快,Cloudflare 路径对团队可行,Agent Skills 实用性强。主要风险在于规模化后 DataForSEO 成本的不可预测性和 pre-1.0 的成熟度。对于月 API 支出 50 美元以下的自由职业者和独立 SEO 从业者,今天就值得试一试。

信息来源