OpenSEO

OpenSEO

Docker app from TeeCodeDev's Repository

Overview

OpenSEO is an open-source, self-hosted alternative to Semrush and Ahrefs. It provides a focused, modern toolkit for keyword research, SERP analysis, backlink discovery, and site audits with a pay-as-you-go architecture (bring your own DataForSEO API key). Also features native Model Context Protocol (MCP) and AI SEO agent integration (SAM) for Claude Code, OpenClaw, and ChatGPT.

Key Features:

  • Keyword Research & SERPs: Real-time search volumes, keyword difficulty, search intent, and live SERP rank tracking.
  • Backlink Analysis: Audit referring domains, anchor text distribution, and link authority.
  • Site Audits: Comprehensive technical SEO crawler checking broken links, meta tags, redirects, and Core Web Vitals.
  • AI Agent Integration (MCP): Connect AI coding assistants and use SAM (in-app SEO assistant powered by OpenRouter).
  • Pay-As-You-Go: No expensive monthly subscriptions; pay only for what you query using your own DataForSEO API credentials.
  • Privacy & Self-Hosted: All research data and local databases remain securely on your server.

Initial Setup:

  1. Set AUTH_MODE to [inline]local_noauth[/inline] for local trusted network access (auto-logs in as admin@localhost), or use [inline]cloudflare_access[/inline] for Cloudflare Zero Trust.
  2. Provide your DATAFORSEO_API_KEY in the template settings or enter it directly inside the web UI.
  3. Open [inline]http://[IP]:[PORT:3001]/[/inline] after starting the container.

Credits & Support:

OpenSEO

Open source alternative to Semrush and Ahrefs

OpenSEO is an SEO tool for the people. If tools like Semrush or Ahrefs are too expensive or bloated, OpenSEO is a pay-as-you-go alternative that you actually control.

All-in-one SEO tool for you and your AI agent.

Connect with any agent like Claude Code, OpenClaw or Hermes. We have pre-built skills, but you can build your own to tailor OpenSEO to your needs.

openseo-keyword-research

Hosted Version

Try OpenSEO for free on our website. If you want to support the project, a hosted subscription is $10/month.

openseo.so

Why use OpenSEO?

  • Best in class MCP and AI Skills.
  • Modern, simple UI.
    • Focused workflows instead of a bloated, complex SEO suite.
  • No subscriptions.
    • Bring your own DataForSEO API key and pay only for what you use.
  • Fork and vibe code your own custom tool.

Main SEO Workflows

  • Keyword research
  • Rank tracking
  • Competitor Insights
  • Backlinks
  • Site Audits
  • AI Visibility

OpenSEO MCP & Agent Skills

OpenSEO exposes an MCP server so AI agents like Claude Code, OpenClaw, and Hermes can use your SEO data directly. Agent Skills are reusable workflows that guide your agent through SEO tasks using the MCP.

Self-Hosting

OpenSEO supports two self-hosting paths:

  • Simple: Docker (Best for testing it out) - For personal use on your own machine. See docs/SELF_HOSTING_DOCKER.md.
    • Unless you already are self-hosting other apps and are confident doing so, we recommend self-hosting with Cloudflare as opposed to Railway, Coolify or Dokploy.
    • We plan to make it simpler to host on those platforms in the next few months.
  • Recommended: Cloudflare - For internet-facing self-hosting across multiple devices or with your team (works on the free plan). See docs/SELF_HOSTING_CLOUDFLARE.md.

Either way, you need a DataForSEO API key to get SEO data. See docs/DATAFORSEO_API_KEY.md.

Costs

OpenSEO needs a DataForSEO API key so that you can get SEO data. You pay them directly when self hosting.

See openseo.so/pricing

When you self host, your costs will be slightly lower than the estimates on our website. The way the hosted service makes money is by charging 28% extra for every request we make to DataForSEO.

Local Development

See docs/LOCAL_DEVELOPMENT.md.

Contributing

Creating clear issues is the best way to contribute.

Read more here: docs/CONTRIBUTING.md

We have this skill: /simple-issue-description which helps.

npx skills add every-app/open-seo --skill simple-issue-description

Community

Join Discord to chat: Discord

Follow along for updates:

Media gallery

Related apps

Details

Repository
ghcr.io/every-app/open-seo:latest
Last Updated2026-10-23
First Seen2026-10-23

Runtime arguments

Web UI
http://[IP]:[PORT:3001]/
Network
bridge
Shell
sh
Privileged
false

Template configuration

WebUI PortPorttcp

The port for the OpenSEO web interface (internal container port is 3001).

Target
3001
Default
3001
AppDataPathrw

Storage path for local database and configuration files.

Target
/app/.wrangler
Default
/mnt/user/appdata/open-seo
DataForSEO API KeyVariable

DataForSEO API key (Base64 login:password). Required for live keyword search, SERP data, and backlink analysis.

Target
DATAFORSEO_API_KEY
Authentication ModeVariable

Authentication mode: 'local_noauth' for local trusted network (admin@localhost auto-login), 'cloudflare_access' for Cloudflare Access Zero Trust, or 'hosted' for email/password.

Target
AUTH_MODE
Default
local_noauth
Allowed HostVariable

Optional domain name or IP used to access OpenSEO when running behind a reverse proxy (e.g. seo.yourdomain.com).

Target
ALLOWED_HOST
OpenRouter API KeyVariable

Optional OpenRouter API key for SAM, the in-app AI SEO assistant.

Target
OPENROUTER_API_KEY
OpenRouter ModelVariable

Model identifier for the AI assistant.

Target
OPENROUTER_MODEL
Default
anthropic/claude-3.5-sonnet
Disable TelemetryVariable

Set to 'true' to disable anonymous usage heartbeat telemetry.

Target
OPENSEO_TELEMETRY_DISABLED
Default
true
Better Auth SecretVariable

Random secret (32+ characters) used to encrypt stored OAuth credentials (required for Google Search Console).

Target
BETTER_AUTH_SECRET
Google Client IDVariable

Optional Google OAuth Client ID for Google Search Console integration.

Target
GOOGLE_CLIENT_ID
Google Client SecretVariable

Optional Google OAuth Client Secret for Google Search Console integration.

Target
GOOGLE_CLIENT_SECRET
Cloudflare Include Process EnvVariable

Exposes Compose/Docker environment variables to cloudflare:workers runtime bindings.

Target
CLOUDFLARE_INCLUDE_PROCESS_ENV
Default
true