SEOmatic
Agente SEO para tu propio sitio: datos reales de Search Console, palabras clave, backlinks y visibilidad de IA en Claude, ChatGPT o Cursor, además de correcciones con aprobación previa.
Documentación
NEWCheckea nuestros plantillas GRATIS →
Un servidor de Model Context Protocol alojado que expone las herramientas de SEOmatic a cualquier cliente MCP. Conéctate interactivamente mediante OAuth 2.1, o con una clave de API del espacio de trabajo como token Bearer. Las herramientas se consolidan en un pequeño conjunto de herramientas de resultados, cada una anotada como de solo lectura o de actuación.
Conexión
| Campo | Valor |
|---|---|
| Endpoint | https://app.seomatic.ai/api/mcp |
| Transporte | Streamable HTTP (stateless, POST JSON-RPC 2.0) |
| Protocolo | 2025-06-18 (2024-11-05 through 2026-07-28 accepted; newer versions negotiate down) |
| Servidor | seomatic v1.0.0 |
| Autenticación | OAuth 2.1 (interactive clients) or Authorization: Bearer smk_live_... |
Instalar en tu asistente (aproximadamente un minuto)
Tres pasos, iguales en todas partes: abre la configuración de conectores de tu asistente, pega la URL de SEOmatic, luego inicia sesión y elige tu sitio cuando aparezca la pantalla de SEOmatic. No hay clave de API que copiar. Después de instalar, hay un paso que la gente suele omitir: en un chat NUEVO, abre el menú de herramientas en el cuadro de mensaje y asegúrate de que SEOmatic esté habilitado para esa conversación.
| Asistente | Requiere | Dónde instalar |
|---|---|---|
| Claude (web/escritorio) | Plan de Claude de pago | Configuración > Conectores > Añadir conector personalizado |
| ChatGPT | Plus o superior, luego activa el modo Desarrollador (Configuración > Apps > Avanzado). El menú Apps solo aparece en planes de pago. | Configuración > Conectores > Crear |
| Claude Code / Cursor / Cline | Nada extra | Un comando o entrada de configuración (abajo) |
Dos cosas que parecen problemas pero no lo son: la pantalla de consentimiento te pide iniciar sesión o crear una cuenta de SEOmatic (la gratuita funciona), y el conector es independiente de cualquier skill de SEOmatic que puedas tener instalado: el skill necesita el conector para acceder a tus datos.
URL: https://app.seomatic.ai/api/mcp
Auth: OAuth (the client discovers it automatically)
Camino más rápido: pega esto en tu asistente de IA y deja que haga la configuración (los agentes que pueden ejecutar comandos o editar configuraciones, como Claude Code y Cursor, lo instalarán ellos mismos; los asistentes de chat te darán los clics exactos):
Set up the SEOmatic MCP server for me. Instructions:
https://seomatic.ai/developers/mcp
Server URL: https://app.seomatic.ai/api/mcp (Streamable HTTP, OAuth).
If you can edit MCP config or run commands in this client, do the setup
yourself. Otherwise, give me the exact steps for this client.
Por cliente, los pasos exactos:
Settings -> Connectors -> Add custom connector
Name: SEOmatic
URL: https://app.seomatic.ai/api/mcp
Then click Connect and approve in the SEOmatic consent screen.
claude mcp add --transport http seomatic https://app.seomatic.ai/api/mcp
# then inside a session: /mcp -> seomatic -> Authenticate
{
"mcpServers": {
"seomatic": { "url": "https://app.seomatic.ai/api/mcp" }
}
}
{
"mcpServers": {
"seomatic": {
"url": "https://app.seomatic.ai/api/mcp",
"type": "streamableHttp",
"headers": { "Authorization": "Bearer smk_live_..." }
}
}
}
// Agent-guided setup: point the agent at
// https://github.com/Minh42/seomatic-mcp
Settings -> Apps -> Advanced settings -> enable Developer mode
Then: Settings -> Connectors -> Create
Name: SEOmatic
URL: https://app.seomatic.ai/api/mcp
Auth: OAuth, then approve in the SEOmatic consent screen.
(On Business/Enterprise an admin must allow custom MCP connectors first.)
El descubrimiento sigue la especificación MCP: el endpoint devuelve 401 con un WWW-Authenticate que apunta a /.well-known/oauth-protected-resource (RFC 9728), cuyos metadatos del servidor de autorización viven en /.well-known/oauth-authorization-server (RFC 8414). PKCE (S256) es obligatorio; los tokens están vinculados a este recurso. Se admiten tanto el registro dinámico de clientes como los documentos de metadatos de ID de cliente.
Conectar con una clave de API (headless)
Para agentes headless y clientes que aceptan un token estático, crea una clave de API del espacio de trabajo y envíala como token Bearer. Así es también como se autentica el conector de Claude Messages API, mediante su campo authorization_token.
{
"mcpServers": {
"seomatic": {
"url": "https://app.seomatic.ai/api/mcp",
"headers": { "Authorization": "Bearer smk_live_..." }
}
}
}
Pruébalo en 30 segundos (curl)
Dos solicitudes demuestran toda la superficie: lista las herramientas que tu clave puede llamar, luego llama a una. Los fallos regresan como resultados isError con una razón en lenguaje claro, nunca errores de transporte opacos.
curl -s https://app.seomatic.ai/api/mcp \
-H "Authorization: Bearer smk_live_..." \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'
curl -s https://app.seomatic.ai/api/mcp \
-H "Authorization: Bearer smk_live_..." \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{
"name":"keyword_research",
"arguments":{"action":"metrics","keywords":["seo tools"]}}}'
Cada llamada exitosa devuelve la carga útil dos veces: content (texto, para cada cliente) y structuredContent (un objeto JSON que cumple con el outputSchema declarado, para clientes que quieren datos tipados).
Métodos
| Método | Qué hace |
|---|---|
initialize | Negocia la versión del protocolo y obtiene serverInfo. |
tools/list | El repertorio de herramientas filtrado por alcance que esta clave puede llamar. |
tools/call | Invoca una herramienta. Los fallos regresan como un resultado isError, no como un error de transporte, para que el agente pueda reaccionar. |
Qué puede llamar cada clave
El repertorio tools/list está filtrado por los alcances de la clave, por lo que un cliente solo ve herramientas que realmente puede llamar.
| Alcance | Carril | Herramientas que desbloquea |
|---|---|---|
read:gsc | Gratis | Lecturas directas de Search Console. |
chat:ask | Gratis | Todas las herramientas de insights: GSC, palabras clave, backlinks, SERP, analíticas, anuncios, Business Profile, conjuntos de datos, plantillas. |
agents:act | De pago | Las herramientas de actuación: tareas de SEO, campañas, ediciones masivas, redacción de blog, skills. Funciona en cualquier plan de pago mediante MCP. |
Actuar mediante MCP funciona en cualquier plan de pago; las mismas herramientas de actuación a través de la API REST requieren Infraestructura.
Referencia de herramientas (13 herramientas consolidadas)
Mediante MCP, la superficie completa se agrupa en 13 herramientas de resultados, cada una con un action que selecciona la operación. Cada herramienta lleva anotaciones MCP, por lo que un cliente sabe de un vistazo si solo lee (readOnlyHint) o puede preparar un cambio. Nada es destructivo por defecto: las herramientas de actuación preparan propuestas que un humano aprueba en SEOmatic. Esta referencia se genera desde el catálogo real del servidor, por lo que es exactamente lo que sirve tools/list. Cada herramienta ya está limitada al espacio de trabajo conectado y su sitio; las pocas herramientas que aceptan un domain usan por defecto tu propio sitio cuando se omite, y analizan a un competidor cuando pasas uno.
gsc_performanceSolo lectura
Lee el rendimiento de Google Search Console (clics, impresiones, CTR, posición) por consulta, página, dimensión o comparación de períodos. Tu propia propiedad conectada.
| Acción | Qué hace | Parámetros |
|---|---|---|
top_queries | principales consultas de búsqueda | days, limit |
top_pages | principales páginas | days, limit |
dimension_breakdown | por dispositivo/país/fecha | dimension*, days, filterQuery, filterPage, limit |
query_page_matrix | canibalización / mapa consulta-página | days, maxRows |
compare_periods | decaimiento/crecimiento vs el período anterior | dimension, days, limit |
trend | clics/impresiones diarios a lo largo del tiempo | days |
Detalles de parámetros
days(número) Ventana de retroceso en días (por defecto ~28). 1-90 para la mayoría de acciones; 7-90 para tendencia.limit(número) Límite de filas. top_queries/top_pages/dimension_breakdown por defecto 50; compare_periods filas por período por defecto 500. Ignorado por query_page_matrix (usa maxRows) y trend.dimension(cadena) OBLIGATORIO para dimension_breakdown (device|country|date). Para compare_periods: query|page (por defecto page). Ignorado en otros casos. Uno de: device, country, date, query, page.filterQuery(cadena) Solo dimension_breakdown: restringe a una consulta exacta.filterPage(cadena) Solo dimension_breakdown: restringe a una URL de página exacta.maxRows(número) Solo query_page_matrix: máximo de pares consulta-página (por defecto 2000).
gsc_indexingSolo lectura
Comprueba el estado de indexación de Google y los diagnósticos de cobertura para una URL o un lote de URLs (estado de cobertura, estado de rastreo, problemas de robots/canónicos).
| Acción | Qué hace | Parámetros |
|---|---|---|
inspect | una URL, diagnósticos completos | url* |
batch_inspect | muchas URLs, resumen de cada una | urls* |
Detalles de parámetros
url(cadena) Solo inspect: la URL completamente calificada a inspeccionar.urls(matriz) Solo batch_inspect: las URLs a inspeccionar.
keyword_researchSolo lectura
Investiga la demanda de palabras clave: volumen de búsqueda, dificultad, CPC e intención, además de ideas de palabras clave, interés de Google Trends y consultas relacionadas, y rendimiento de palabras clave de Google Ads. Úsalo para saber qué atacar y cuánta demanda existe; para saber quién rankea hoy usa serp_competitors.
| Acción | Qué hace | Parámetros |
|---|---|---|
metrics | volumen/dificultad/CPC/intención | keywords* |
suggestions | ideas de palabras clave desde semillas | keywords*, limit |
compare_trends | interés de Trends, palabras clave lado a lado | keywords* |
trend | interés de Trends a lo largo del tiempo para una palabra clave | keyword* |
related | consultas relacionadas de Trends | keyword* |
ads_performance | rendimiento de palabras clave de Google Ads | days, limit |
Detalles de parámetros
keywords(matriz) metrics/suggestions/compare_trends: las palabras clave semilla o objetivo.keyword(cadena) trend/related: la única palabra clave a analizar.days(número) ads_performance: ventana de retroceso en días.limit(número) suggestions/ads_performance: máximo de resultados.
keyword_clustersSolo lectura
El mapa de clústeres de palabras clave en caché del agente, construido desde el universo de consultas GSC del espacio de trabajo (clústeres pilar, de canibalización, de brecha y cubiertos).
| Acción | Qué hace | Parámetros |
|---|---|---|
list | ninguno |
backlink_profileSolo lectura
Lee el perfil de backlinks de tu propio sitio o de cualquier competidor: dominios de referencia, distribución de texto ancla, velocidad de enlaces e intersecciones de prospectos de enlaces. Úsalo para preguntas de autoridad y enlaces; para rankings usa serp_competitors.
| Acción | Qué hace | Parámetros |
|---|---|---|
summary | totales, dominios de referencia, rango/spam | domain |
anchors | distribución de texto ancla | domain, limit |
velocity | dominios de referencia nuevos vs perdidos mensuales | domain, months |
referring_domains | principales dominios que enlazan | domain, limit |
link_prospects | intersección de enlaces: enlazan a competidores pero no a nosotros | competitors*, limit |
Detalles de parámetros
domain(cadena) El dominio a analizar, p. ej. "example.com". Omítelo para analizar el propio sitio del espacio de trabajo conectado (el servidor lo completa); pásalo solo para analizar un competidor.limit(número) anchors (por defecto 25) y referring_domains (por defecto 50).months(número) Solo velocity: meses hacia atrás (por defecto 6).competitors(matriz) Solo link_prospects: 1-3 dominios de competidores para intersectar.
serp_competitorsSolo lectura
Inspecciona el panorama de búsqueda en vivo: qué características de SERP (AI Overview, snippet, PAA, paquete local, video) aparecen para una palabra clave, además de rankings principales a nivel de dominio, distribución de visibilidad y dominios competidores. Úsalo para saber quién rankea y por qué; para demanda de palabras clave usa keyword_research.
| Acción | Qué hace | Parámetros |
|---|---|---|
features | qué características de SERP aparecen para una palabra clave | keywords* |
domain_rankings | principales palabras clave por las que rankea un dominio | domain, limit |
domain_overview | distribución de visibilidad orgánica | domain |
domain_competitors | dominios que rankean por palabras clave similares | domain, limit |
Detalles de parámetros
keywords(matriz) Solo features: la(s) palabra(s) clave a inspeccionar.domain(cadena) domain_rankings/domain_overview/domain_competitors: el dominio. Omítelo para el propio sitio del espacio de trabajo conectado (el servidor lo completa); pásalo solo para un competidor.limit(número) Máximo de resultados cuando corresponda.
traffic_analyticsSolo lectura
Tráfico de Google Analytics (GA4) y rendimiento de cuenta, campañas y términos de búsqueda de Google Ads.
| Acción | Qué hace | Parámetros |
|---|---|---|
overview | sesiones/usuarios/pageviews/rebote de GA4 | days |
sources | sesiones de GA4 por canal | days |
landing_pages | principales páginas de entrada de GA4 | days, limit |
top_pages | páginas más vistas de GA4 | days, limit |
ads_account | totales de cuenta de Google Ads | days |
ad_campaigns | rendimiento de campañas de Google Ads | days, limit |
ads_search_terms | términos de búsqueda reales que activaron Ads | days, limit |
Detalles de parámetros
days(número) ventana de retroceso en días.limit(número) máximo de filas cuando corresponda.
local_presenceSolo lectura
Lee la presencia de búsqueda local del negocio conectado: ubicaciones de Business Profile, ranking local para palabras clave de dinero y calificaciones de reseñas. Las acciones disponibles dependen de lo que esté conectado para este espacio de trabajo. Úsalo para preguntas locales y de paquete de mapas; para rankings nacionales usa serp_competitors.
| Acción | Qué hace | Parámetros |
|---|---|---|
list_locations | ubicaciones de GBP en la cuenta | ninguno |
visibility | posición orgánica local para palabras clave | keywords* |
reviews | calificación promedio + número de reseñas | location* |
Detalles de parámetros
keywords(matriz) Solo visibility: las palabras clave de dinero a medir.location(cadena) Solo reviews: el id de ubicación de Business Profile.
site_pagesSolo lectura
Analiza páginas: puntuación de SEO on-page y problemas críticos para una URL, metadatos de rastreo en bruto (título, meta, encabezados, enlaces) e inventario de páginas del sitio. Úsalo para diagnóstico a nivel de página; para el rendimiento de búsqueda de esas páginas usa gsc_performance.
| Acción | Qué hace | Parámetros |
|---|---|---|
analyze | Puntuación SEO + problemas críticos | url* |
crawl | título/meta/encabezados/enlaces | url* |
inventory | las páginas reales sincronizadas del usuario | limit |
Detalles de parámetros
url(cadena) analyze/crawl: la URL a inspeccionar.limit(entero) solo inventory: máximo de páginas a devolver.
dataset_librarySolo lectura
La biblioteca de datasets y las plantillas de página que impulsan las páginas programáticas: listar datasets, muestrear filas, listar plantillas y leer una plantilla.
| Acción | Qué hace | Parámetros |
|---|---|---|
list_datasets | datasets disponibles | ninguno |
dataset_rows | filas de muestra de un dataset | datasetId*, limit |
list_templates | plantillas de página integradas | ninguno |
get_template | una plantilla completa | templateId* |
Detalles de parámetros
datasetId(cadena) solo dataset_rows: el dataset a muestrear.templateId(cadena) solo get_template: la plantilla a leer.limit(entero) solo dataset_rows: cuántas filas muestrear.
strategy_insightsSolo lectura
El diagnóstico en caché del agente para este espacio de trabajo: una instantánea compacta, la estrategia actual, una señal bruta completa y puntuaciones de contenido para búsqueda con IA.
| Acción | Qué hace | Parámetros |
|---|---|---|
snapshot | resumen compacto de señales en caché | ninguno |
strategy | temas + grandes jugadas clasificadas | ninguno |
signal | una señal en caché completa | signal* |
content_scores | puntuaciones de búsqueda con IA para artículos generados | ninguno |
Detalles de parámetros
signal(cadena) solo signal: qué señal en caché leer (p. ej. index_coverage, backlink_profile).
task_managePuede preparar cambios
Lee el tablero de planificación del agente y prepara nuevas propuestas de tareas SEO. Las propuestas NUNCA se ejecutan: cada una es una tarjeta sujeta a aprobación que el usuario revisa.
| Acción | Qué hace | Parámetros |
|---|---|---|
list | el tablero de planificación (filtrable) | status, type |
get | una tarea con detalle completo | taskId* |
create prepara | prepara hasta 5 propuestas de tareas | tasks* |
decide prepara | aprueba o descarta una propuesta preparada (el bucle de aprobación) | taskId*, decision* |
Detalles de parámetros
status(cadena) solo list: filtrar por estado de tarea (proposed, approved,...).type(cadena) solo list: filtrar por tipo de tarea.taskId(cadena) get/decide: la tarea a leer o decidir.decision(cadena) solo decide: approve libera la tarea al pipeline con compuerta; dismiss la archiva. Los tipos destructivos de indexación se rechazan a través de la API. Uno de: approve, dismiss.tasks(matriz) solo create: hasta 5 objetos de tarea para preparar como propuestas (consulta la documentación de SEOmatic para la forma de la tarea).
campaign_managePuede preparar cambios
Lee campañas y prepara campañas a escala de página, barridos de contenido o ediciones masivas, y artículos de blog. Toda preparación se basa en propuestas y está sujeta a aprobación; nada se publica sin el usuario.
| Acción | Qué hace | Parámetros |
|---|---|---|
list | campañas con estado + recuentos de tareas | status |
manage prepara | pausar/reanudar/abandonar/actualizar una campaña | campaignId*, manageAction*, confirm, brief |
propose_page_scale prepara | páginas de aterrizaje programáticas a escala | title*, kind*, brief*, rowSourceKind*, rowPrompt, rows, libraryDatasetId, rowTarget, allowGenText, publishAsDraft, pageTemplate |
propose_content_sweep prepara | N artículos de blog distintos como campaña | title*, topics*, brief |
propose_bulk_edit prepara | una instrucción en muchas páginas | taskType*, instruction, title, selectorKind, urls, pathPrefix, segments, maxPages |
write_articles prepara | preparación directa de N artículos | topics*, autoPublish |
save_article prepara | guardar un borrador completo de artículo (pasa title/content/slug) para publicación con un clic | title*, content*, slug*, excerpt*, metaTitle, metaDescription, featuredImagePrompt* |
Detalles de parámetros
status(cadena) solo list: filtrar campañas por estado. Uno de: proposed, approved, active, paused, done, abandoned.campaignId(cadena) solo manage: la campaña sobre la que actuar.manageAction(cadena) solo manage: qué hacer con la campaña. Uno de: pause, resume, abandon, update_brief.confirm(booleano) solo manage + abandon: debe ser true para confirmar la acción irreversible.brief(cadena) manage+update_brief: brief de reemplazo. También propose_page_scale (brief de plantilla) y propose_content_sweep (dirección compartida).title(cadena) propose_page_scale (obligatorio), propose_content_sweep (obligatorio), propose_bulk_edit (opcional).kind(cadena) solo propose_page_scale (obligatorio): tipo de página, p. ej. "location pages".rowSourceKind(cadena) solo propose_page_scale (obligatorio): de dónde provienen las filas de página. Uno de: ai, user, library, gbp_locations.rowPrompt(cadena) propose_page_scale, rowSourceKind=ai: dataset a generar.rows(matriz) propose_page_scale, rowSourceKind=user: un objeto por página.libraryDatasetId(cadena) propose_page_scale, rowSourceKind=library: id del dataset a adjuntar.rowTarget(entero) solo propose_page_scale: número objetivo de filas/páginas.allowGenText(booleano) solo propose_page_scale: permitir texto de IA por fila (cuesta créditos).publishAsDraft(booleano) solo propose_page_scale: publicar páginas como borradores.pageTemplate(cadena) solo propose_page_scale: id de plantilla integrada.topics(matriz) propose_content_sweep (obligatorio, hasta 50) y write_articles (obligatorio, 2-50). Un artículo distinto por tema.taskType(cadena) solo propose_bulk_edit (obligatorio): el tipo de barrido, p. ej. ctr_fix, schema, content_refresh.instruction(cadena) solo propose_bulk_edit: brief compartido por página.selectorKind(cadena) solo propose_bulk_edit: cómo seleccionar páginas. Uno de: urls, path_prefix, all_pages.urls(matriz) propose_bulk_edit, selectorKind=urls: las páginas.pathPrefix(cadena) propose_bulk_edit, selectorKind=path_prefix: el prefijo.segments(matriz) propose_bulk_edit: selectores avanzados de plantilla mixta (anula selectorKind/instruction).maxPages(entero) solo propose_bulk_edit: limitar el tamaño del barrido.autoPublish(booleano) solo write_articles: false por defecto (preparar como borradores).content(cadena) solo save_article (obligatorio): cuerpo completo en Markdown.slug(cadena) solo save_article (obligatorio): el slug de la URL.excerpt(cadena) solo save_article (obligatorio): el extracto.metaTitle(cadena) solo save_article: meta título.metaDescription(cadena) solo save_article: meta descripción.featuredImagePrompt(cadena) solo save_article (obligatorio): prompt de imagen.
* = obligatorio para esa acción. La lista completa de herramientas detalladas detrás de estas, con cada esquema de entrada, está en la referencia REST.
Límites del plan gratuito
Las llamadas a herramientas de un espacio de trabajo gratuito se descuentan de la misma cuota mensual de preguntas que ChatSEO, compartida entre chat, MCP, el puente de herramientas REST y la CLI, por lo que hay un único medidor en todas partes. initialize y tools/list son siempre gratuitas; solo tools/call consume una pregunta. Tu primera conexión acumula 10 preguntas de bonificación además de la asignación mensual, suficientes para una primera auditoría completa. Cuando la cuota se agota, la llamada devuelve un resultado isError con un enlace de actualización de un clic, además de un enlace de referencia que acumula preguntas gratuitas extra para ambas partes. Los espacios de trabajo de pago no se miden por preguntas.
Independientemente del plan, cada clave tiene un límite de 60 llamadas a herramientas por minuto y 1.000 por hora, suficiente para cualquier sesión real y un respaldo contra bucles descontrolados. Para revocar el acceso: elimina el conector en tu asistente, o revoca la clave o la concesión OAuth en Ajustes de SEOmatic. Cualquiera de las dos corta la conexión de inmediato.
Solución de problemas
- El modelo pide tu dominio. Nunca lo necesita: cada herramienta está limitada al espacio de trabajo conectado. Dile que llame a la herramienta directamente. Las herramientas que aceptan un
domainusan tu propio sitio por defecto cuando se omite. - Sin herramientas de acción en tools/list. Es lo esperado en un espacio de trabajo gratuito o con una clave sin
agents:act: el repertorio solo muestra lo que la clave puede llamar. Las herramientas de acción aparecen en cualquier plan de pago. - Faltan herramientas de acción en un plan de pago. El agente SEO puede estar desactivado para el espacio de trabajo, o la conexión que una acción necesita (por ejemplo, tu CMS) no está configurada. Revisa los Ajustes en SEOmatic y vuelve a conectar.
- Espacio de trabajo incorrecto conectado. La concesión OAuth está limitada al espacio de trabajo que elegiste al dar consentimiento. Elimina el conector y vuelve a conectar, eligiendo el espacio de trabajo correcto.
- ¿Quieres una auditoría guiada? Instala la habilidad gratuita seomatic-seo-audit junto al conector: guía a tu asistente a través de una auditoría completa y metódica de tu sitio en lugar de preguntas improvisadas.
- Fallos de herramientas. Los fallos vuelven como resultados
isErrorcon una razón en lenguaje claro sobre la que el modelo puede actuar, nunca como errores de transporte opacos.

Cada página de área local solía llevarnos medio día crear y optimizar.
Con SEOmatic, podemos crear cientos de páginas en el mismo tiempo, lo que ayuda a nuestros clientes a aprovechar mejor su presupuesto.
Ha transformado cómo entregamos soluciones SEO escalables.
Will Hawkins
Director de Marketing, Digi-Business UK
Dale a tu Sitio un Equipo SEO
Los agentes leen tus datos de Search Console, hacen el trabajo y demuestran qué movió realmente. Tú decides qué se publica.
Prueba gratuita de 14 días. Verificación de tarjeta de $1, reembolsada. Cancela cuando quieras.