mrkeyoor.com_
Fri 14 Aug 15:01 UTC
Webevaluationupdated 14 Aug 2026

open-seo

OpenSEO is an open-source dashboard and MCP server for keyword research, rankings, competitors, backlinks, site audits, Google data, and AI-search visibility. It replaces much of the everyday workflow of Semrush or Ahrefs with a simpler interface, but it buys the underlying commercial SEO data from DataForSEO rather than building its own web index.

Verdict

OpenSEO is a compelling middle ground between a spreadsheet full of API calls and a costly enterprise SEO subscription. Its clean workflows, Docker path, Cloudflare deployment, MCP tools, and Agent Skills make it especially attractive to technical consultants. Choose it with clear eyes: you are self-hosting the application and paying an external data vendor, and the current release still needs careful monitoring around credits, integrations, and upgrades.

Setup4/5One-container local start, with paid data credentials required
Docs4/5Clear Docker, Cloudflare, MCP, skills, and credential guides
Community4/5Strong interest and current activity, with a growing PR backlog
Maturity3/5Fast-moving v0.1 release with live audit and OAuth edge cases

Who it’s for

Solo consultants and small teams priced out of broad SEO subscriptions.
Developers who want SEO data available to Claude Code, Codex, or another MCP client.
Users comfortable paying DataForSEO per request and managing their own API credentials.
Cloudflare users who want an internet-facing shared workspace, or individuals who can keep the no-auth Docker edition private.
Teams that want to adapt an MIT-licensed TypeScript SEO application to their own workflow.

Who it’s NOT for

Anyone seeking a completely free, self-contained SEO index: every self-hosted installation requires DataForSEO, whose documented minimum top-up is $50.
Operators who want to swap data vendors today: issue #219 requests provider choice, while the current application is built around DataForSEO.
Users who might expose the default Docker port publicly: Docker mode disables application authentication and requires a protected reverse proxy, tunnel, or private network.
Agencies that need proven billing and audit recovery: issue #222 reports a hosted Lighthouse audit failing after partial work, retaining incomplete results, and still charging 70 credits.
Teams expecting mature Semrush or Ahrefs parity: v0.1.4 is young, and GitHub listed 35 open issues plus 61 open pull requests on August 14.

Setup reality

Personal Docker setup is refreshingly short: copy the environment template, add a DataForSEO credential, and start one published container with a persistent volume. That container deliberately runs without app authentication and binds only to localhost by default. Team access through Cloudflare is more involved: Node 22.6 or newer, pnpm, a Cloudflare account, R2 activation with a payment method, D1, KV, R2, Workers, Access configuration, secrets, migrations, and deploy-time updates. Google Search Console, Analytics, the in-app agent, and public MCP use add their own OAuth or model credentials.

The honest pitch is smaller than Semrush

OpenSEO calls itself an open-source alternative to Semrush and Ahrefs, but it is not trying to recreate their global crawling and keyword infrastructure. It is a modern application on top of DataForSEO, Google Search Console, Google Analytics, and optional model services. The core workflows cover keyword research, position tracking, competitor research, backlinks, site audits, and visibility in AI answers.

That distinction is not a weakness if you understand it. Building a useful interface, project database, schedules, exports, OAuth layer, and agent API is substantial work. Buying raw data per request can be far cheaper for a light user than maintaining a large subscription every month. It also means self-hosting OpenSEO does not eliminate third-party cost or data flow. The repository's setup guide says a DataForSEO account is mandatory, new accounts get $1 in testing credit, and the minimum top-up is $50.

The result feels better aimed at a developer, consultant, or small internal team than at a large agency demanding every historical dataset and report template. Focus is the attraction.

The interface and agent layer fit together

OpenSEO provides a normal web dashboard for saving keywords, inspecting domains, monitoring positions, auditing sites, and connecting first-party Google properties. It also exposes an HTTP MCP server. Compatible agents can research keyword volume, difficulty, cost, and intent; inspect live results; compare competitors; query local businesses; read backlink summaries; manage saved keywords and rank trackers; and fetch Search Console performance or URL index status.

The MCP support is not an afterthought. Hosted users authorize through login, while headless tools can use a personal API key. Documentation includes exact commands for Claude Code and Codex plus configuration for Cursor and Claude Desktop. Release v0.1.4 added Google Analytics and rank-tracking management to MCP, and fixed credentials expiring after the first day.

Separate Agent Skills supply procedures for keyword research, clustering, competitive landscape work, competitor analysis, link prospecting, project setup, and coaching. That separation is sensible: MCP provides data and actions, while each SKILL.md tells an agent how to conduct a bounded job. Users can install one skill, choose interactively, or copy the folders manually. OpenSEO is therefore more interesting than a dashboard with a chat box bolted onto it.

The optional in-app agent still requires an OpenRouter key in self-hosted Docker. Google Search Console and Analytics need their own OAuth setup. Agent access also raises the usual permission question: a personal MCP API key acts as its owner, so it belongs in a secret store and should not be pasted into prompts or checked into configuration.

Docker is simple because it trusts the machine

The personal setup is one of OpenSEO's strengths. Copy .env.example, provide the DataForSEO credential, and run Docker Compose. A single published image stores its local Cloudflare-compatible state in a named volume and listens on localhost port 3001 by default. The health endpoint reports configuration and database status. Pinning a release image is documented and preferable to tracking latest.

There is an important catch: Docker forces AUTH_MODE=local_noauth and creates a local admin identity. The project explicitly warns users to expose it only through their own authenticated reverse proxy, tunnel, or private network. Changing the allowed hostname is not authentication. This mode is excellent for one trusted workstation and risky as a quick public server.

Self-hosted telemetry sends aggregate installation and feature counts on a limited schedule, tied to a random install ID. The guide says it excludes URLs, keywords, prompts, emails, and IP-derived location. OPENSEO_TELEMETRY_DISABLED=1 or DO_NOT_TRACK=1 disables it. Teams with strict policies should set that before first launch.

Cloudflare is the team deployment

The advanced route provisions a Worker, D1 database, KV namespaces, R2 bucket, migrations, and a Cloudflare Access gate through one deployment command. It works within free-plan allowances, but R2 activation requires a payment method. The install also requires Node 22.6 or newer, pnpm, an Alchemy bootstrap Worker, Cloudflare OAuth scopes, environment secrets, and an allowed-email list.

Every approved user enters one shared workspace and sees the same projects. That is useful for a small team, but it is not fine-grained agency tenancy. Operators who manage Access separately can provide their own team domain and audience identifier. Updates are a pull, dependency install, and redeploy, so forks need a plan for merging upstream changes and testing migrations.

OpenSEO supports local D1-compatible storage by default and an optional Postgres backend for larger installations. The Cloudflare path avoids running servers, but it ties deployment operations to Workers, D1, KV, R2, Access, and the project's current infrastructure tooling.

Young, useful, and visibly unfinished

The repository was pushed on August 12, 2026, and v0.1.4 arrived on August 9. Fourteen tagged releases landed between July 6 and August 9, which shows fast iteration. GitHub listed 11,848 stars, 1,358 forks, 35 open issues, and 61 open pull requests on August 14. Recent code and issue activity continued that day.

Current reports reveal the cost of that pace. Issue #222 describes a hosted audit that completed its crawl and part of its Lighthouse sampling, then failed with an internal workflow error after charging 70 credits. Issue #221 describes a Google Search Console grant stuck against an old user with no self-service unlink route. An open request asks for providers other than DataForSEO. These are specific gaps in billing recovery, OAuth administration, and vendor flexibility, all important in an unattended SEO operation.

OpenSEO is already useful if its current workflows match your work and you can watch spending. Start locally, estimate DataForSEO calls, set project budgets, pin the image, and verify scheduled checks and exports before relying on them for clients. It does not replace everything in Semrush or Ahrefs, but it can replace the part many technical users actually touch.

Alternatives

ProjectWhat it isPick it when
SemrushA mature commercial suite with its own datasets, reporting, advertising, content, and agency features.pick this instead when breadth, support, polished reporting, and a bundled data subscription matter more than cost or source access.
AhrefsA commercial SEO platform best known for its backlink index and competitive research tools.pick this instead when backlink depth and a long-established proprietary index are central to the work.
SerpBearA focused self-hosted application for tracking search positions over time.pick this instead when rank tracking is the main job and an all-in-one research suite would add clutter.
SEOnautA self-hosted crawler that audits websites for technical SEO problems.pick this instead when you mainly need your own crawl and audit data without a paid keyword or backlink provider.

What people are saying

  1. [github-trending] every-app/open-seo

Sources

  1. OpenSEO README
  2. Docker self-hosting guide
  3. Cloudflare self-hosting guide
  4. DataForSEO credential and cost guide
  5. v0.1.4 release notes
  6. Hosted Lighthouse audit failure report