Search Console: el SEO de todos tus dominios
El módulo Search Console de MuseDock CMS reúne en un solo panel los datos de Google Search Console de todos tus sitios: clics, impresiones, CTR y posición media de cada dominio, con su histórico, sus consultas, sus páginas, sus países y sus dispositivos. No hace falta entrar propiedad por propiedad en Google. Está pensado para plataformas con muchos sitios: puedes revisar el SEO de todos tus dominios a la vez, filtrarlos y compararlos, mientras que los dominios de tus clientes siguen siendo privados.
Qué puedes hacer con el módulo
- Ver todos tus dominios juntos, con filtros por dominio, color y estado, y la suma de clics e impresiones de lo que hayas filtrado.
- Abrir el informe de cada dominio: clics, impresiones, CTR y posición frente al periodo anterior, gráfico diario y las tablas de consultas, páginas, países y dispositivos.
- Ver oportunidades SEO: qué páginas y búsquedas te darían más clics con un pequeño empujón, y qué ha caído o está subiendo, con una frase de qué hacer.
- Descargar los datos de Google automáticamente, con hasta 16 meses de histórico la primera vez y una actualización cada pocas horas después.
- Dar de alta dominios en Search Console automáticamente si su DNS está en una de tus cuentas DNS (Cloudflare), sin tocar el DNS a mano, y reintentar solo si Google tarda.
- Ver también los dominios de tu Search Console que no son sitios del CMS (WordPress, otros servidores…), en un apartado aparte llamado «Otros dominios».
- Mantener privados los dominios de clientes: cada cliente conecta su propia cuenta de Google y solo él ve sus datos, salvo que tú decidas darlo de alta con tu cuenta (entonces lo ve sin hacer nada).
- Dar a cada tenant con subdominio su propio SEO, filtrado: ve solo el de su subdominio, nunca el del dominio principal ni el de otros.
- Dar acceso a cada tenant a los datos de su sitio desde su propio panel, con permisos específicos.
Cómo funciona
El módulo se conecta a Google con una cuenta de servicio. Es un «usuario robot» de Google Cloud con su propio email, del tipo nombre@proyecto.iam.gserviceaccount.com. No es tu usuario personal de Google, aunque la crees desde tu misma cuenta.
Elegimos la cuenta de servicio en lugar de OAuth por dos motivos:
- Funciona sin intervención: no depende de que alguien inicie sesión ni de que se renueven permisos, así que sirve para tareas automáticas como la descarga nocturna.
- No exige verificar una app ante Google: las apps OAuth sin verificar tienen permisos que caducan a los pocos días.
El robot solo ve las propiedades de Search Console a las que se le haya dado acceso. El módulo hace tres cosas con ese acceso:
- Lee las propiedades que ve el robot y asigna cada una al sitio del CMS correspondiente, buscando por el dominio principal y por los alias del tenant.
- Elige una propiedad por dominio. Si existen varias, da prioridad a la propiedad de dominio (
sc-domain:ejemplo.com) sobre las de prefijo de URL (https://www.ejemplo.com/), para no contar dos veces el mismo tráfico. - Guarda las métricas por día y por dimensión (sitio, página, consulta, país y dispositivo) tal como las da Google. No suma niveles distintos entre sí: los totales del sitio salen del total diario que publica Google, no de sumar consultas.
Requisitos
- Una cuenta de Google con acceso a Google Cloud Console (es gratis para este uso).
- El módulo Search Console activado en el CMS. Para los tenants, activado también en cada tenant que lo vaya a usar.
- Una clave de cifrado en el
.envdel CMS (APP_ENCRYPTION_KEYoAPP_KEY). Sin ella, el módulo no guarda claves. - Para el alta automática: que el DNS del dominio esté en una de las cuentas configuradas en Ajustes → Cuentas DNS (el registro único de cuentas DNS del CMS, que comparten Domain Manager, Cloud y este módulo).
- Para la descarga automática: el cron del servidor (
cli/cron-search-console.php, cada 15 minutos).
Configuración paso a paso
1. Crear la cuenta de servicio en Google Cloud
- Entra en Google Cloud Console y crea un proyecto, por ejemplo
musedock-gsc. - Activa estas dos APIs en el proyecto:
- Google Search Console API, para leer las propiedades y sus métricas.
- Site Verification API, para el alta automática de dominios.
- Ve a IAM y administración → Cuentas de servicio → Crear cuenta de servicio. Ponle un nombre y no le asignes ningún rol: no necesita permisos sobre el proyecto.
- Abre la cuenta creada, ve a Claves → Añadir clave → Crear clave nueva → JSON y descarga el fichero.
Importante: ese fichero JSON es la credencial del robot. No lo compartas, no lo pegues en chats ni en correos, y bórralo de tu ordenador cuando lo hayas subido.
2. Subir la clave al CMS
- En el panel de superadministración abre Ajustes → Search Console (también está en Módulos → Search Console y, por cada dominio, en el botón «SEO de mis dominios» de Tenants).
- Selecciona el fichero JSON y pulsa Conectar.
- El CMS prueba la clave contra Google antes de guardarla. Si es correcta, la guarda cifrada y lee las propiedades a las que el robot ya tiene acceso. La clave no se vuelve a mostrar nunca: el panel solo enseña el email del robot.
Justo después de conectar, lo normal es que el robot no vea todavía ningún dominio. El siguiente paso es darle acceso.
3. Dar acceso al robot a tus dominios
Hay dos formas, y puedes combinarlas:
| Método | Cuándo usarlo | Qué hace |
|---|---|---|
| Automático (botón «Dar de alta» o «Dar de alta todos») | El DNS del dominio está en una de tus cuentas DNS | Pide a Google un token de verificación, publica un registro TXT en la zona del dominio, confirma la verificación y añade la propiedad de dominio en Search Console. El robot queda como propietario verificado más. |
| Manual | El DNS está fuera de tus cuentas DNS, o prefieres no crear registros | En Search Console, abre la propiedad → Configuración → Usuarios y permisos → Añadir usuario, pega el email del robot y elige el permiso Completo. |
Cuando hayas dado acceso, pulsa «Releer propiedades» y los dominios aparecerán en la tabla.
Si Google todavía no ve el TXT recién publicado, el dominio queda como «Pendiente de Google». Ese estado se guarda: no se pierde si recargas o cierras la página. El servidor lo reintenta solo cada 5 minutos durante 48 horas, y también puedes pulsar «Reintentar ahora». Normalmente Google tarda unos segundos.
Para un dominio que no es un tenant del CMS (por ejemplo, un WordPress), usa el formulario «Añadir un dominio que no está en el CMS». Si su DNS está en una de tus cuentas, el TXT se publica solo; si no, el panel te muestra el registro TXT para que lo pongas tú en su DNS y vuelvas a pulsar «Dar de alta».
Descarga automática de datos
Una vez que una propiedad está activa, los datos se descargan solos; no hace falta conectarla de nuevo ni hacer nada más.
| Qué | Cómo |
|---|---|
| Primera descarga | Hasta 16 meses de histórico (lo máximo que conserva Google). |
| Después | Cada propiedad se actualiza cada unas 12 horas (cada 3 horas si el último intento falló) y se vuelven a bajar los últimos 4 días, porque Google los ajusta. |
| Retraso de Google | Los datos definitivos llegan con unos 2 días de retraso: el informe termina en el último día disponible, no en «hoy». |
| Qué se guarda | Por día: totales del sitio, países, dispositivos, páginas y consultas (clics, impresiones, CTR y posición). |
| Quién lo hace | Un cron del servidor (cli/cron-search-console.php, cada 15 minutos). También reintenta las verificaciones pendientes. |
| A mano | El botón «Descargar datos ahora» (en la página general y en la de cada dominio) fuerza la descarga al momento. La primera vez de un dominio puede tardar uno o dos minutos. |
Si una descarga falla, el CMS conserva todo lo anterior: nunca borra datos fuera del rango que está volviendo a descargar. Si Google responde que el robot ya no tiene acceso, la propiedad pasa a «Sin acceso».
El panel del superadministrador
La pantalla principal muestra una tabla con tus dominios. Para cada uno verás:
- el tenant al que pertenece, con su color;
- el estado de la propiedad;
- clics, impresiones, CTR y posición media de los últimos 28 días;
- la variación de clics frente a los 28 días anteriores;
- la fecha de la última sincronización.
Puedes filtrar por texto, por color del tenant y por estado, y la cabecera de la tabla suma lo filtrado. Por ejemplo, filtra por el color verde para ver juntos todos tus sitios de cine. Al pulsar el nombre de un dominio se abre su informe.
Debajo aparecen más apartados:
- Otros dominios de Search Console: propiedades que ve el robot pero que no son ningún sitio del CMS, por ejemplo un dominio antiguo o una web que tienes en otro sitio. Solo los ves tú, no se asignan a ningún tenant y no se mezclan con la tabla principal.
- Dominios propios sin acceso todavía: sitios del CMS que el robot aún no ve, cada uno con su botón de alta automática. Los que están esperando a Google lo indican y ofrecen «Reintentar ahora».
- Añadir un dominio que no está en el CMS, con la lista de los pendientes de verificar.
Estados de una propiedad
| Estado | Significado |
|---|---|
| Activa | El robot tiene acceso y la propiedad está asignada a un sitio. |
| Pendiente | El alta está a medias, normalmente esperando a que Google reconozca el TXT. El servidor lo reintenta solo durante 48 horas. |
| Sin acceso | El robot tenía acceso y ya no lo tiene, por ejemplo porque alguien lo quitó como usuario en Search Console. |
| Error | Google devolvió un error. El mensaje explica la causa. |
El informe de un dominio
Cada dominio activo tiene su propia página de SEO, en /musedock/search-console/domain/ID (y, para cada tenant, en su panel). Muestra:
- Cuatro indicadores: clics, impresiones, CTR y posición media, cada uno comparado con el periodo anterior de la misma duración.
- Un gráfico diario de clics e impresiones.
- Consultas: lo que la gente buscó en Google para llegar a ti (las 50 con más clics).
- Páginas que más tráfico reciben de Google.
- Países y dispositivos (ordenador, móvil, tableta).
El periodo se elige entre 7, 28, 90, 180 y 365 días. La posición media se pondera por impresiones, igual que hace Google. Los datos salen de lo ya descargado, así que la página abre al instante.
Oportunidades SEO
En el informe de cada dominio, la tarjeta «Oportunidades SEO» te dice dónde hay más que ganar. No usa inteligencia artificial: son reglas fijas sobre los datos que Google ya te ha dado, aplicadas a consultas y a páginas, y ordenadas por lo que podrías ganar.
| Oportunidad | Cuándo salta | Qué hacer |
|---|---|---|
| CTR bajo para su posición | Posición 1–10, pero con menos de la mitad de los clics que sería normal en esa posición | Reescribe el título y la meta descripción para que sean más atractivos. |
| A punto de despegar | Posición 4–20 con impresiones: en las dos primeras páginas, fuera del top 3 | Refuerza la página (contenido, enlaces internos, título) para subir. |
| Hay demanda, pero estás lejos | Posición por encima de 20 con impresiones | Crea o mejora una página pensada para esa búsqueda. |
| Caída | Menos de la mitad de clics (o de impresiones) que en el periodo anterior, o algo que sumaba clics y ha desaparecido | Revisa si cambiaste la página o si la competencia te ha adelantado. |
| En ascenso | Más del doble de impresiones que antes, o aparece por primera vez entre las 20 primeras posiciones | Aprovecha reforzando esa página mientras sube. |
Cómo se calcula lo que puedes ganar. Se compara tu CTR real con el CTR que suele tener cada posición en el sector (28 % en la 1.ª, 15 % en la 2.ª, 11 % en la 3.ª… 2 % en la 10.ª). Es una referencia aproximada, no un dato de Google. La cifra «≈ +N clics» es una estimación.
El mínimo de impresiones se adapta al tamaño del sitio (entre 3 y 50), para que un sitio pequeño no quede vacío ni uno grande se llene de ruido. Con tan pocos datos como los de un sitio nuevo, saldrán pocas oportunidades; irán apareciendo a medida que reciba más búsquedas. Las caídas y subidas solo se muestran cuando ya hay histórico descargado del periodo anterior para comparar.
Un ejemplo real: en un sitio pequeño, la página /domain acumulaba 34 impresiones en la posición 60 (hay demanda y estás lejos), y la portada estaba en la posición 7,9 con 39 impresiones y 3 clics (a punto de despegar). Una página legal en la posición 5,5 con 13 impresiones y ningún clic salía como «CTR bajo».
Lo que no puede detectar: si dos páginas tuyas compiten por la misma búsqueda (canibalización). Google da las consultas sin su página, así que el CMS no puede saberlo.
Qué datos de Google incluye… y cuáles no
El módulo descarga el informe de Rendimiento de Search Console (lo que Google llama Search Analytics): clics, impresiones, CTR y posición, por sitio, consulta, página, país y dispositivo. Los números coinciden con los que ves en Search Console.
No están incluidos, porque Google no los ofrece en su API pública (o solo para una URL suelta), estos otros informes que ves en la web de Search Console:
- Enlaces (sitios que enlazan a ti, páginas más enlazadas, texto de enlace);
- Indexación de páginas, Estadísticas y la inspección masiva de URLs;
- Core Web Vitals, HTTPS y los informes de Experiencia;
- Fragmentos de productos, fichas de comerciantes y otros resultados enriquecidos.
Para esos informes sigue usando la web de Search Console. Lo que el CMS te da es la parte que más se consulta (el rendimiento) de todos tus dominios juntos.
¿Por qué las consultas suman menos que el total? Consultas anónimas
Google no revela el texto de las búsquedas que hicieron muy pocas personas, para proteger su privacidad. Esas búsquedas sí cuentan en los totales de clics e impresiones, pero no aparecen con nombre en la lista de consultas. Es lo que Google llama consultas anónimas, y se ve igual en la web de Search Console y en el CMS.
Ejemplo real de un sitio pequeño: en tres meses tuvo 100 impresiones en total, pero las consultas con nombre sumaban 38. El resto (62 %) eran búsquedas anónimas. En sitios con poco tráfico es lo normal, porque casi todo son búsquedas raras («cola larga»). No es un fallo: los totales son correctos; solo que no se puede saber qué escribió exactamente esa gente.
Lo mismo ocurre con las páginas: las impresiones por página pueden sumar más o menos que el total del sitio, porque Google cuenta de forma distinta cuando una búsqueda muestra varias páginas tuyas.
Search Console y Web Analytics del CMS
El CMS tiene su propia analítica (Web Analytics, en el panel de superadministración). No es lo mismo que Search Console y se complementan:
| Web Analytics del CMS | Search Console | |
|---|---|---|
| Qué mide | Las visitas que llegan a tu web, vengan de donde vengan | Cómo te encuentran en Google, antes del clic |
| Datos | Visitantes, páginas vistas, países, dispositivos, navegadores, de dónde vienen | Impresiones, clics, posición media y qué buscaba la gente |
| Quién lo mide | Tu propio CMS (necesita el consentimiento de cookies) | |
| Se ve | El tráfico real, también el que no viene de Google | Solo la búsqueda de Google (no Bing ni otros buscadores) |
Se cruzan en un punto: las visitas «desde Google» de Web Analytics deberían parecerse a los clics de Search Console, pero no coinciden exactamente (cookies rechazadas, bots, bloqueadores de anuncios, retrasos de Google…). Usa Web Analytics para saber cuánta gente llega y qué hace, y Search Console para saber qué buscan y cómo apareces en Google.
Web Analytics guarda los resultados 10 minutos para cargar rápido; un botón «Actualizado hace X min» los recalcula al momento.
Dominios propios y dominios de clientes
En MuseDock CMS cada tenant puede marcarse como dominio de cliente desde el listado de tenants. El módulo aplica reglas estrictas a partir de esa marca, y solo tú, como superadministrador, puedes decidir compartir los datos de un cliente:
| Dominio propio | Cliente, sin autorizar | Cliente autorizado por ti | |
|---|---|---|---|
| Cuenta de Google que lo lee | La de la plataforma | La del propio cliente, que la sube desde su panel | La de la plataforma (la tuya) |
| Lo ve el superadministrador | Sí | No, en ninguna pantalla | Sí, marcado como «cliente autorizado» |
| Lo ve el tenant | Sí, en su panel | Sí, solo con su propia cuenta | Sí, sin hacer nada, y solo lo suyo |
| En Tenants y Domain Manager | Botón verde de SEO | Candado «SEO privado del cliente» | Botón de SEO |
Autorizar el dominio de un cliente
En Ajustes → Search Console, el apartado «Dominios de clientes» lista tus tenants cliente. Para cada uno puedes pulsar «Autorizar y dar de alta». Se te pide tu contraseña de administrador, porque es compartir datos de un cliente:
- Si su dominio es un subdominio de uno que ya tienes dado de alta (por ejemplo
cliente.musedock.com), no hay nada que verificar: se crea su propiedad filtrada (ver «Subdominios») y se descarga en el siguiente ciclo. - Si es un dominio propio del cliente (
cliente.com), se verifica con un registro TXT, igual que los tuyos (su DNS tiene que estar en tus cuentas DNS, o publicas tú el TXT).
Desde ese momento el cliente ve su SEO sin configurar nada y esos datos no se borran. «Retirar autorización» (también con tu contraseña) borra de la plataforma los datos de ese cliente: podrá conectar su propia cuenta si quiere. Si no lo autorizas, el cliente conserva el camino de siempre: conectar su propia cuenta de Google y verificar su dominio.
Hay además estas garantías:
- La cuenta de la plataforma nunca lee un dominio de cliente que tú no hayas autorizado. Ni siquiera aunque Google se lo muestre porque sigues siendo propietario en Search Console.
- Si marcas un tenant como cliente, se borran los datos que la plataforma hubiera leído de él, salvo que lo hubieras autorizado. Pasa lo mismo si un dominio de «Otros dominios» se da de alta después como tenant cliente o como alias de un cliente.
- Las claves de los clientes se cifran con una subclave distinta para cada tenant. No se pueden descifrar desde el ámbito de la plataforma ni desde el de otro tenant.
- Un cliente solo ve su dominio o subdominio: nunca el de otro cliente ni el dominio principal.
- El superadministrador no puede entrar en el panel de un tenant haciéndose pasar por él. Cada panel tiene su propio inicio de sesión.
Para ser transparentes: quien tenga acceso root al servidor puede técnicamente leer la base de datos. Lo que garantiza el CMS es que ninguna pantalla, ruta ni consulta del superadministrador muestra los datos de un cliente que no ha autorizado.
Subdominios: cada tenant ve solo lo suyo
Si vendes subdominios de tus dominios (por ejemplo cliente.musedock.com), Google los junta todos en la propiedad del dominio principal. Para que cada tenant vea solo el SEO de su subdominio, el CMS crea para cada uno una propiedad virtual:
- Sus datos son los de la propiedad del dominio que lo cubre, pero se descargan de Google con un filtro de página (solo las URL de ese subdominio). Así clics, impresiones, consultas, países y dispositivos son exactos, no una estimación.
- La crea el cron solo para tus tenants propios cuyo dominio es un subdominio de una propiedad activa. Para un cliente solo se crea si tú lo autorizas.
- Cada tenant solo ve su propiedad virtual; nunca la del dominio principal ni la de otro tenant.
- En tu tabla aparecen con la etiqueta subdominio y no se suman otra vez en los totales, porque ya están dentro del de su dominio.
El panel de cada tenant
Cada tenant con el módulo activado tiene la sección Search Console en su menú, en /admin/search-console (o en la ruta de administración que tenga configurada).
- Tenant propio cuyo dominio ya está dado de alta en la cuenta de la plataforma, o que tiene un subdominio de uno que lo está: ve sus datos y su informe sin configurar nada (en el caso del subdominio, filtrados a su subdominio). Si todavía no está dado de alta, verá un aviso de que aún no está conectado.
- Tenant cliente autorizado por ti: ve su SEO sin hacer nada, solo el suyo, y un aviso de que la plataforma lo gestiona.
- Tenant cliente sin autorizar: ve un aviso de privacidad y el formulario para conectar su propia cuenta de servicio, con los mismos pasos de esta guía. También puede dar de alta su dominio automáticamente si su DNS lo gestiona la plataforma. Solo ve lo que lee su propia cuenta.
Cada tenant ve únicamente su dominio: nunca el de otro tenant ni el de un cliente.
Hay dos permisos, que se asignan por rol o por usuario:
- Ver Search Console (
search_console.view): consultar las métricas. - Gestionar Search Console (
search_console.manage): conectar o cambiar la cuenta de Google del sitio y pedir la descarga. Incluye el permiso de ver.
Activación: el módulo aparece en la pantalla Módulos de cada tenant y su administrador (con el permiso de gestionar módulos y su contraseña) puede activarlo por sí mismo. Activarlo no da acceso a datos ajenos: solo verá su dominio.
Seguridad
- Las claves se guardan cifradas con AES-256-GCM y solo se descifran en memoria para hablar con Google.
- El fichero JSON se valida antes de guardarse: tiene que ser una clave de cuenta de servicio y Google tiene que aceptarla.
- Todas las acciones exigen sesión y protección CSRF. Las del superadministrador exigen además el rol de superadministrador.
- Desconectar la cuenta pide tu contraseña de administrador en un aviso emergente, porque borra la credencial y todas las métricas guardadas con ella.
- Los dominios de clientes y los de otros tenants se filtran en cada consulta: no basta con conocer el número de una propiedad para ver sus datos.
Próximamente
El módulo se desarrolla por fases. Ya están disponibles la conexión segura, el alta de propiedades (con reintentos), la descarga automática de datos, el informe por dominio, el detector de oportunidades, la autorización de clientes por parte del master y las propiedades por subdominio. Lo siguiente es:
- Que los tenants propios puedan conectar también su propia cuenta de Google.
- Descargar consulta y página juntas para detectar páginas que compiten por la misma búsqueda.
- Filtros por fecha, consulta y página, e informes exportables o enviados por correo.
- Avisos cuando una oportunidad importante aparece o una página cae.
Preguntas frecuentes
Si creo la cuenta de servicio con mi mismo usuario de Google, ¿ya tiene acceso a todos mis dominios?
No. La cuenta de servicio es un usuario independiente y no hereda tus permisos de Search Console. Tienes que darle acceso con el alta automática o añadiendo su email como usuario en cada propiedad. Por ejemplo, si gestionas miweb.com desde tu Gmail, el robot gsc@musedock-gsc.iam.gserviceaccount.com no la verá hasta que lo añadas.
¿Pierdo el acceso a Search Console de siempre?
No. Sigues siendo propietario de tus propiedades exactamente igual que antes. El robot es un propietario o usuario más, y puedes quitarlo cuando quieras desde Usuarios y permisos.
Mi dominio ya tiene un TXT de verificación de Google en Cloudflare. ¿Qué pasa con él?
Nada: se queda como está. Google da a cada propietario su propio token, así que el alta automática añade otro registro TXT para el robot. Un dominio puede tener varios TXT de verificación a la vez. Por ejemplo:
miweb.com. TXT "google-site-verification=AbC…tu-token"
miweb.com. TXT "google-site-verification=XyZ…token-del-robot"
¿Veré el tráfico que Search Console ya tenía recogido?
Sí. Los datos pertenecen a la propiedad, no al usuario: el CMS descarga hasta 16 meses de histórico la primera vez, aunque el dominio lleve años en Search Console.
Si ya tengo el dominio en Search Console, ¿por qué hay que «darlo de alta» otra vez?
Porque «estar en el CMS» y «tener acceso en Google» son cosas distintas. El robot es un usuario nuevo y empieza sin acceso a ningún dominio, ni siquiera a los que ya tienes tú. «Dar de alta» le da acceso a ese dominio (poniendo un TXT para demostrar que es tuyo). Tu acceso no cambia.
¿Puedo cerrar o recargar la página mientras se verifica un dominio?
Sí. El estado «Pendiente de Google» se guarda en la base de datos y el servidor sigue reintentando durante 48 horas, aunque no tengas el panel abierto.
¿Cada cuánto se actualizan los datos?
Cada propiedad, aproximadamente cada 12 horas. Google publica los datos definitivos con unos 2 días de retraso, así que el informe termina en ese último día disponible. Si no quieres esperar, usa «Descargar datos ahora».
¿Por qué no veo el informe de «Enlaces» ni «Core Web Vitals»?
Porque Google no los ofrece en su API pública. Esos informes solo están en la web de Search Console. El módulo cubre el informe de Rendimiento (clics, impresiones, posición, consultas, páginas, países y dispositivos).
¿Por qué las consultas suman menos que el total de clics e impresiones?
Por las consultas anónimas: Google oculta el texto de las búsquedas hechas por muy pocas personas, aunque las cuenta en el total. Pasa igual en la web de Search Console. Más detalles en la sección «Consultas anónimas».
Tengo en Search Console dominios que no están en el CMS. ¿Aparecen?
Sí, en el apartado «Otros dominios de Search Console». Solo los ve el superadministrador y no se asignan a ningún tenant. Si más adelante das de alta uno de esos dominios como tenant propio, pasa solo a la tabla principal. Para añadir uno nuevo, usa el formulario «Añadir un dominio que no está en el CMS» o añade el email del robot como usuario en Search Console.
¿Qué ocurre si marco como cliente un tenant que ya tenía datos?
Los datos que la cuenta de la plataforma había leído de ese dominio se borran y desaparece de tu panel. A partir de ese momento solo el cliente, con su propia cuenta, puede ver su SEO. Si lo vuelves a marcar como propio, basta con pulsar «Releer propiedades» y «Descargar datos ahora» para recuperarlo, porque el historial sigue estando en Google.
Como superadministrador, ¿puedo ver el SEO de un cliente?
No desde el CMS. No hay ninguna pantalla, botón ni ruta que lo muestre, y su clave está cifrada con una subclave que solo funciona en su ámbito.
¿Qué propiedad usa si tengo varias para el mismo dominio?
Una sola, para no duplicar el tráfico. La preferencia es: propiedad de dominio (sc-domain:), luego https://www., luego https:// y por último http://.
¿Funciona con subdominios del CMS, como misitio.musedock.com?
Sí. Una propiedad de dominio del dominio principal cubre a todos sus subdominios, y el CMS crea para cada tenant una propiedad virtual filtrada, de modo que cada uno ve solo el SEO de su subdominio. Mira la sección «Subdominios».
Si autorizo a un cliente, ¿ve el SEO de los demás subdominios o del dominio principal?
No. Un tenant solo ve su propia propiedad, y la de un subdominio está filtrada por página desde que se descarga de Google: los datos de otros subdominios ni siquiera llegan a su propiedad.
¿Qué pasa si retiro la autorización a un cliente?
Los datos de ese cliente se borran de la plataforma y deja de verlos desde tu cuenta. Puede conectar su propia cuenta de Google y verificar su dominio. Necesitas tu contraseña de administrador.
¿Cómo decide el CMS qué es una oportunidad?
Con reglas fijas, sin IA: compara la posición, los clics y las impresiones de cada consulta y página con lo habitual para esa posición y con el periodo anterior. El detalle está en la sección «Oportunidades SEO».
¿Qué pasa si desconecto la cuenta de servicio?
El CMS borra la clave y todas las métricas guardadas con ella. En Google no se toca nada: tus propiedades y su historial siguen igual. Si conectas otra cuenta de servicio distinta, las propiedades de la anterior se eliminan del CMS y se leen de nuevo con la nueva. Desconectar pide tu contraseña de administrador.
Solución de problemas
| Mensaje o síntoma | Causa y solución |
|---|---|
| «El fichero no es una clave de cuenta de servicio» | Has subido otro tipo de credencial, por ejemplo un cliente OAuth. Descarga la clave JSON desde Cuentas de servicio → Claves. |
| «Google rechazó la clave: Invalid grant: account not found» | La cuenta de servicio o su clave se ha borrado en Google Cloud. Crea una clave nueva y súbela. |
| «Activa Site Verification API y Google Search Console API» | Falta activar alguna de las dos APIs en el proyecto de Google Cloud. |
| «El DNS de … no está en ninguna cuenta DNS del CMS» | El dominio no está en las cuentas de Ajustes → Cuentas DNS. Añade esa cuenta allí, o publica el TXT que muestra el panel en el DNS del dominio y vuelve a pulsar «Dar de alta». Como alternativa, añade el email del robot como usuario en Search Console. |
| «TXT publicado en el DNS; Google aún no lo ve» | Google tarda unos segundos en reconocer el registro. El dominio queda como «Pendiente de Google» y el servidor lo reintenta solo durante 48 horas; también puedes pulsar «Reintentar ahora». |
| Un dominio aparece como «Sin acceso» | Alguien ha quitado al robot de esa propiedad. Vuelve a añadirlo y pulsa «Releer propiedades». |
| Un dominio activo muestra «—» y «sin datos aún» | Todavía no se ha descargado. Pulsa «Descargar datos ahora» o espera al siguiente ciclo del cron. Si es un dominio nuevo en Search Console, Google puede tardar unos días en tener datos. |
| Los datos no se actualizan | Comprueba que el cron cli/cron-search-console.php está programado cada 15 minutos y mira el último intento de la propiedad: si falló, el motivo aparece en la página del dominio. |