Detrás de mi pantalla derecha, entre cables, soportes y cacharros, hay un mini PC.
Ahí vive OpenSEO: una herramienta de código abierto que he instalado en mi propio servidor para investigar palabras clave, seguir posiciones, auditar webs y consultar datos SEO desde Claude y Codex.
Llevo varias semanas usándola con proyectos reales. No es una maqueta, ni una prueba de diez minutos para escribir un artículo. La he puesto a trabajar, he medido lo que gasta y ya me ha dado algún susto de los que solo aparecen cuando una herramienta deja de ser una demo y entra en tu rutina.
No espero que OpenSEO sustituya hoy a Ahrefs o a Semrush en todo, porque no lo hace. Lo que quería medir era cuánto de esa factura podía llevarme ya a mi propio servidor y pagar solo los datos que consumo.
He venido con la instalación, la factura y la letra pequeña.
De la suscripción al pago por uso
Las suites SEO llevan años siendo el peaje del sector. Ahrefs, Semrush, Sistrix: pagas o te quedas fuera. Facturas de tres cifras al mes por herramientas de las que, muchas veces, utilizas una parte pequeña.
Hace no tanto, para acceder a herramientas serias de marketing tenías que pasar por narices por una agencia, trabajar en una empresa con presupuesto o compartir cuentas de aquella manera. Eso está cambiando. Hoy puedes montar tu propia herramienta, conectarla a proveedores de datos y adaptarla a tu forma de trabajar.
No es teoría. Lo he hecho y cada vez pago menos por este tipo de infraestructura. Lo que antes eran varias suscripciones ahora son API que cobran por el uso real. Un año de seguimiento de mis posiciones puede costarme menos que dos meses de una suite.
Hay un filtro técnico, claro. Necesitas saber lo que estás haciendo o tener ganas de aprender. Pero la IA también ha rebajado esa barrera: un SEO con criterio, un servidor y una tarde libre puede levantar algo que hace cinco años estaba reservado a equipos con bastante más presupuesto.
Qué hay dentro de OpenSEO
De dónde sale
OpenSEO lo creó Ben Senescu, ex-Klaviyo. En otoño de 2025 estaba trabajando el SEO de EveryApp y se hartó de las herramientas que encontraba: caras, recargadas o poco fiables. Él mismo contó que empezó a construirlo por puro despecho. Me parece un origen bastante digno para una buena herramienta.
El repositorio es público, tiene licencia MIT y la comunidad creció muy rápido. OpenSEO llegó a ser el producto número uno del día en Product Hunt.
El modelo de negocio también se entiende a la primera. La versión alojada cuesta unos 8,57 euros al mes e incluye aproximadamente esa misma cantidad de consumo. OpenSEO aplica un 28% de recargo sobre las peticiones a DataForSEO, su proveedor de datos. Si lo instalas en tu servidor, el programa es gratis y pagas la API directamente.
Ahí está el chiste: el servicio que estaba a punto de contratar compraba los datos al mismo proveedor al que yo ya podía pagar sin intermediarios.
Un recorrido rápido
No voy a convertir esto en un catálogo. Lo importante es lo siguiente:
- Investigación de palabras clave: volumen, dificultad, intención de búsqueda y resultados de Google en directo. Usa datos de Google Ads y DataForSEO Labs, permite abrir hasta ocho búsquedas en paralelo y filtrar por intención.
- Análisis de dominios y competidores: palabras clave posicionadas, estimación de tráfico orgánico y páginas principales.
- Enlaces: análisis por dominio o URL, dominios de referencia, páginas principales y filtros avanzados.
- Seguimiento de posiciones: histórico y comprobaciones programadas, incluido el seguimiento local.
- Auditoría técnica: rastreo de indexabilidad, encabezados y Core Web Vitals, con Lighthouse y PageSpeed Insights.
- Visibilidad en IA: menciones de marca en ChatGPT y Google AI Overviews, fuentes citadas y cuota de voz frente a competidores.
- Proyectos: un panel por dominio que reúne Search Console, auditoría y enlaces.


La integración con Search Console
La conexión se hace por OAuth y es de solo lectura. Puedes consultar clics, impresiones, CTR y posición media, con desgloses por consulta, página, país y dispositivo. Además, permite vincular una cuenta de Google distinta de la que usas para entrar, algo útil si trabajas con clientes.
Lo importante: los datos de Search Console son gratuitos y no consumen créditos de DataForSEO.
La letra pequeña del autoalojamiento es que tienes que crear tu propia aplicación OAuth de Google. Son unos diez minutos siguiendo la guía oficial del repositorio. Hay, eso sí, una trampa: Google no acepta una IP privada como dirección de retorno. Si la instancia está dentro de tu red, el alta se puede completar mediante un túnel a localhost.
También integra Google Analytics. Search Console está disponible por MCP; Analytics, por ahora, se queda en la interfaz.
Cómo lo puse en marcha
Necesitas un servidor o un ordenador con Docker. Puede ser un mini PC, un equipo viejo o un VPS modesto con dos vCPU, 4 GB de memoria y unos 15 GB de disco.
Este es el archivo de Docker Compose que estoy usando:
services:
open-seo:
image: ghcr.io/every-app/open-seo:latest
restart: unless-stopped
env_file:
- .env
environment:
CLOUDFLARE_INCLUDE_PROCESS_ENV: "true"
ports:
- "3001:3001"
volumes:
- open_seo_data:/app/.wrangler
volumes:
open_seo_data:
Hay tres detalles que no son obvios.
- La aplicación corre sobre el entorno de Cloudflare Workers. De ahí sale la variable CLOUDFLARE_INCLUDE_PROCESS_ENV. Suena raro, pero funciona.
- El segundo es crítico: todo se guarda en /app/.wrangler. Proyectos, palabras clave, seguimientos y configuración. Si no montas ese volumen, una actualización con docker compose pull puede borrar el histórico entero.
- El tercero: usa el puerto 3001 por defecto.
Las variables del archivo .env son pocas: DATAFORSEO_API_KEY, PORT, AUTH_MODE y un par de opciones de telemetría. La clave de DataForSEO no es un token corriente, sino la cadena base64(email:password) que explica el repositorio.
Y un aviso que no pienso esconder: el modo autoalojado arranca sin autenticación, con AUTH_MODE=local_noauth. Quien llegue al puerto puede entrar en la instancia y gastar tus créditos. Si lo expones a internet sin un proxy autenticado o una VPN, no estás abriendo solo tus datos: estás abriendo tu tarjeta. No seas esa persona.
Red local o VPN. Sin excusas.
El primer arranque tarda un par de minutos. En una tarde dejé listo el servidor, el proyecto, las palabras clave y el seguimiento. Tardé más en decidir si merecía la pena que en instalarlo.

Lo que he gastado en datos
Estos son los costes que he medido en mi instancia con un proyecto personal activo. Son importes de API: no incluyen el mini PC, la electricidad ni el tiempo que he dedicado a montarlo.
| Operación | Coste aproximado |
| Comprobación semanal de posiciones (36 palabras clave, España, top 40) | ≈0,26 € |
| Investigación de palabras clave (74 términos iniciales) | Unos céntimos |
| Comprobación de marca en ChatGPT | ≈0,93 € |
| Resultado de Google en DataForSEO | Entre 0,0005 y 0,0017 € por consulta |
Ahrefs Lite cuesta 119 euros al mes antes de impuestos. Semrush SEO Toolkit Pro ronda los 120 euros al cambio actual.
DataForSEO funciona por consumo. La cuenta incluye unos 0,86 euros de crédito y la recarga mínima ronda los 50 euros. No caduca ni tiene cuota mensual.
El proveedor de OpenSEO publica ejemplos que encajan con mis pruebas: unos 0,46 euros por 217 comprobaciones de posiciones y alrededor de 0,04 euros por determinadas búsquedas de palabras clave.
El cambio de chip es este: una suite te cobra el dato, la herramienta, el soporte y su margen dentro de una suscripción. Aquí compras el dato al proveedor y la herramienta ya es tuya.
Para convertir los precios he usado el cambio de referencia del Banco Central Europeo del 2026-08-25: 1 euro = 1,1662 dólares. Las cifras pueden variar con el cambio y con el tipo de consulta.
OpenSEO incluye también un asistente propio, SAM, que utiliza una clave separada de OpenRouter. Yo lo descarté. Si voy a conectar Claude o Codex por MCP, ese agente me sobra.
Las comprobaciones de marca de la sección de visibilidad en IA no necesitan OpenRouter: salen directamente de DataForSEO.
El cron fantasma
Primer día con el seguimiento configurado. Frecuencia semanal. Todo bonito. Me voy tranquilo. A la mañana siguiente me hago la pregunta que nadie se hace: ¿quién dispara esa comprobación cada semana?
OpenSEO nació para Cloudflare Workers. Sus tareas programadas son disparadores cron que, en la nube, ejecuta Cloudflare. En Docker, el manejador existe en el código. Está ahí, esperando. Pero nadie lo llama.
No aparece un error. No hay un aviso. El seguimiento se queda en semanal para siempre, con los datos de la semana cero. Un fantasma educadísimo y “eficiente”: no rompe nada, simplemente no trabaja.
El fantasma apareció a las diez horas de la instalación. Así funciona el autoalojamiento: el primer susto siempre llega.
La solución fue bastante elegante. El entorno expone una dirección local que ejecuta la tarea programada. Basta con enviar un POST a /cdn-cgi/handler/scheduled. Un cron del servidor cada quince minutos reproduce lo que haría la nube:
*/15 * * * * root curl -fsS -m 120 http://127.0.0.1:3001/cdn-cgi/handler/scheduled >/dev/null 2>&1
La operación es escalable. Llamarla de más no fuerza comprobaciones: solo despierta el planificador interno. Si no toca hacer nada, no hace nada.
La lección va más allá de OpenSEO. Cada vez hay más aplicaciones autohospedables que, en realidad, son aplicaciones de nube metidas en Docker. La nube les regalaba tareas programadas, colas y estado persistente. Cuando te las llevas a tu servidor, alguien tiene que hacerse cargo de todo eso.
La pregunta que conviene hacerse siempre es: ¿qué hacía la nube por esta aplicación y quién lo hace ahora en mi máquina?
Desde el arreglo, las comprobaciones semanales llegan solas. Lleva varias semanas estable. Ese es el trato: ahorras dinero y ganas control, pero el mantenimiento también es tuyo.
Eh. Algo de curro había que meter.
Claude y Codex dentro de la herramienta
MCP es un protocolo abierto que permite a un modelo de IA utilizar herramientas externas. OpenSEO expone un servidor MCP en /mcp mediante HTTP y JSON-RPC.
Darlo de alta en Claude Code requiere una línea:
claude mcp add --transport http openseo http://TU-SERVIDOR:3001/mcp
En mi instalación aparecen 24 herramientas. Se agrupan en investigación de palabras clave, métricas, análisis de dominios y competidores, resultados locales, enlaces, auditoría técnica, Search Console y búsqueda de negocios locales.
También hay habilidades oficiales con procedimientos SEO escritos en Markdown: agrupación de palabras clave, análisis competitivo y prospección de enlaces, entre otros. La idea es buena: MCP pone los datos y la habilidad pone el procedimiento.
La lista concreta importa menos que el clic que hace en la cabeza. OpenSEO es mi herramienta. Como tiene API y MCP, puedo conectarla a una IA para consultar datos, cruzarlos, aplicar filtros que la interfaz no trae y buscar patrones que a mano tardaría horas en detectar.
Esto es exactamente lo que hago en mi trabajo como consultor de IA para marketing: la herramienta aporta los datos y el modelo ayuda a aplicar el criterio.
Hay límites. Los seguimientos se crean y se activan desde el panel; por MCP, de momento, son de solo lectura. Claude puede consultar las posiciones, pero todavía no configura el seguimiento.
Otra trampa: si pruebas las herramientas con curl, los acentos en datos escritos en la propia línea de comandos pueden corromperse y guardarse así. Para JSON con tildes, mejor un archivo UTF-8 y –data-binary @fichero. A mí me dejó dos palabras clave ilegibles que tuve que borrar a mano.

Lo que todavía no sustituye
OpenSEO no tiene un índice propio de enlaces. Todo el dato viene de DataForSEO y el propio fundador lo reconoce. ¿Es peor que el índice de Ahrefs, que lleva años rastreando la web con sus propios sistemas? Probablemente. Es el mercado, amigos.
Tampoco dispone de datos de navegación propios. Sus estimaciones de tráfico son más pobres que las de suites con fuentes adicionales. La visibilidad en IA cubre ChatGPT, y de forma limitada, y Google AI Overviews, que ya es un campo de batalla en sí mismo. No incluye Perplexity ni Gemini en la comprobación de marca. Tampoco analiza anuncios ni sustituye a un rastreador como Screaming Frog.
Es un proyecto joven y todavía depende mucho de su fundador. La comunidad abre incidencias y propone cambios, pero la instalación en Docker exige ocuparse del cron, la autenticación y las integraciones.
Ahrefs tiene un equipo profesional detrás. OpenSEO tiene una comunidad y un código que puedo tocar. No son lo mismo. Ahora puedo elegir qué necesito y dejar de pagar una suite completa por defecto.
A quién le compensa OpenSEO
No se lo recomendaría a quien no quiera mancharse las manos. No hace falta montar un laboratorio en casa, aunque aviso de que estas cosas enganchan. Vale un ordenador viejo, un mini PC o un VPS barato.
Lo que necesitas de verdad es un rato, una máquina donde instalar Docker, paciencia para resolver algún marrón y una cuenta en un proveedor de datos. Ya está.
Por precio no es. La barrera real es el tiempo y las ganas de mantenerlo. Si tienes ambas cosas y trabajas en SEO, merece mucho la pena probarlo. No porque vaya a sustituir mañana todo tu arsenal, sino porque cambia la relación con tus herramientas: dejas de alquilarlo todo y empiezas a poseer una parte.
Las suites tendrán que evolucionar. Si ofrecen algo claramente mejor, seguirán teniendo sitio. Si ofrecen lo mismo que una herramienta abierta y controlada por quien la usa, lo van a tener más difícil.
El cerebro ya lo teníamos. Ahora el músculo cabe detrás de una pantalla.


