Caso A1 · Medicina estética · Colombia

andreadiazmd.com: la web que Google ve vacía

Una consulta de medicina estética con dos sedes —Bogotá, en Chicó Norte, y Cali— y una web impecable en lo que casi nadie mira: certificado, HSTS con preload, seis cabeceras de seguridad y un servidor que responde en 76 ms. Y aun así, cuando un buscador pide una de sus quince páginas, recibe un contenedor vacío. El texto llega después, si el visitante tiene JavaScript y paciencia para descargar medio megabyte.

15 URLs 59 / 100 13 hallazgos · 2 críticos Informe original incluido

Contexto y alcance

El sitio vende procedimientos de medicina estética en dos ciudades colombianas, y en ese sector la búsqueda local decide la cita. La auditoría no partió de una queja de tráfico —no había analítica conectada que la sustentara— sino de una pregunta más incómoda: ¿qué recibe exactamente un buscador cuando pide una página de este sitio?

La respuesta se obtuvo descargando el HTML sin ejecutar JavaScript, que es lo primero que hace un rastreador. El resultado es el hallazgo F-01 y condiciona todo lo demás: si el contenido no está en el HTML, ninguna optimización de títulos, encabezados o enlaces internos puede compensarlo.

Sector
Salud privada · medicina estética
Alcance
15 URLs del sitemap oficial + rutas inexistentes y URLs antiguas
Entregable
Informe de 7 hojas con 13 hallazgos y plan en 3 fases
Puntuación
59 / 100 — media simple de ocho categorías

Cada dato de esta página proviene de una hoja del informe que se abre más abajo. La puntuación no es una nota de opinión: es la media aritmética de las ocho categorías puntuadas, y la comprobación se puede repetir con la tabla de la siguiente sección.

El informe original, consultable aquí

Todo lo que sigue está en este archivo. Se abre dentro de la página, con sus siete hojas navegables —portada, resumen, hallazgos, auditoría por página, rendimiento técnico, plan de acción y puntos fuertes— y también se puede descargar para leerlo por separado.

Auditoría SEO profesional — andreadiazmd.com Auditoria_SEO_andreadiazmd.xlsx · 7 hojas · 13 hallazgos

El visor lee el archivo original y lo pinta en el navegador: no es una captura ni una reconstrucción. Cada pestaña es una hoja del libro entregado al cliente, con sus columnas, su evidencia y sus notas metodológicas tal como se escribieron.

Hojas
7 (incluye plan de acción)
Hallazgos
13, priorizados P0 a P3
URLs auditadas
15 del sitemap
Formato
XLSX · 33 KB
Documento del cliente, publicado con su autorización. Descargar el XLSX original

Una precisión sobre las fechas: la portada del informe y la hoja de hallazgos no declaran la misma. Lo relevante para leerlo no es el día, sino la ventana de medición y el hecho de que todos los datos —incluido el TTFB y el peso de los paquetes— se tomaron en la misma sesión de rastreo. Lo dejamos escrito en lugar de elegir una fecha y presentarla como definitiva.

Puntuación por categoría

Ocho categorías, cada una con su nota sobre cien. La media simple da 59. El perfil es revelador: el sitio es excelente en lo que depende del proveedor de infraestructura y malo en lo que depende de cómo se construyó la aplicación.

Rastreo e indexabilidad
65soft-404 y URLs antiguas
Contenido visible
35el HTML no trae texto
SEO on-page
70títulos largos con emojis
Datos estructurados
20cero bloques JSON-LD
Velocidad
70TTFB 76 ms, 502 KB de JS
Experiencia móvil
80responsive verificado
Seguridad
95HSTS preload y 6 cabeceras
SEO local
40sin página por tratamiento

Fuente: hoja «Resumen» del informe. Las dos categorías con nota más baja no son las más caras de arreglar: los datos estructurados se resuelven en cuatro a ocho horas y son la vía más rápida para que un motor de respuesta tenga algo que citar.

La prueba del hallazgo F-03 se hizo pidiendo una ruta que no existe: /esta-pagina-no-existe-xyz-123 respondió HTTP 200 con los mismos 5.851 bytes del inicio. Para un buscador, esa dirección es una copia más de la portada. Hoja «Hallazgos», fila F-03 · evidencia medida en la misma sesión de rastreo

Los 13 hallazgos, por severidad

El informe usa cuatro niveles. Dos críticos —los que están dañando la visibilidad en ese momento—, tres altos, cinco medios y tres bajos. Esta es la tabla completa con la evidencia que la respalda y el esfuerzo estimado de cada corrección.

Hallazgos de la auditoría de andreadiazmd.com · hoja «Hallazgos»
ID Severidad Problema Evidencia medida Esfuerzo
F-01 Crítico El HTML inicial llega con el cuerpo vacío: el texto se construye con JavaScript. 15 URLs sin <h1>, sin texto y sin imágenes; 9 a 12 palabras. Un artículo del blog aparece en Google con el título «Cargando…». 2-5 días
F-02 Crítico Ningún dato estructurado en todo el sitio. Conteo de bloques application/ld+json = 0 en las 15 URLs. 4-8 h
F-03 Alto Las rutas inexistentes devuelven 200 con el HTML del inicio (soft-404). Ruta de prueba: HTTP 200 y 5.851 bytes idénticos a la portada. 2-4 h
F-04 Alto Tres URLs antiguas siguen indexadas y responden duplicando la portada. /terminos-condiciones, /politica-privacidad y un artículo de 2025 con el título «Cargando…». 1-2 h
F-05 Alto /politicas es un duplicado de la portada y su canónica apunta al inicio. Título y descripción idénticos; canónica = https://andreadiazmd.com/. 1 h
F-06 Medio La versión con www redirige con 307 temporal en vez de 301. curl a https://www.andreadiazmd.com/ devuelve HTTP/2 307. 30 min
F-07 Medio Los títulos de los nueve artículos superan los 70 caracteres y llevan emojis. El artículo de bótox mide unos 105 caracteres e incluye «💉✨» dentro del <title>. 2-3 h
F-08 Medio Descripciones meta de hasta 420 caracteres. Las nueve del blog miden entre 280 y 420; Google corta hacia 155. 1-2 h
F-09 Medio Todo el catálogo de tratamientos vive en una sola URL. El sitemap solo contiene /servicios; no existen páginas por procedimiento ni por ciudad. 1-2 días
F-10 Medio Para mostrar cualquier contenido hay que ejecutar 502 KB de JavaScript. Paquetes: 294 KB + 141 KB (animaciones) + 51 KB + 15 KB, más 78 KB de CSS. 4-8 h
F-11 Bajo El lastmod del sitemap es la fecha de compilación, no la del contenido. Seis URLs comparten exactamente la misma fecha. 30 min
F-12 Bajo Meta keywords y etiquetas geo sin efecto desde hace años. 9 términos en keywords y tres etiquetas geo en la portada. 15 min
F-13 Bajo hreflang autorreferente sin variantes de idioma. Cada página se declara es-CO a sí misma. 15 min

Por qué F-01 manda sobre todas las demás

Los trece hallazgos son reales, pero no pesan igual. Si el texto no está en el HTML, da igual que el título mida 63 caracteres o 105: el buscador tiene un título, una descripción y nada más. La prueba está en la propia hoja de auditoría por página, donde las quince entradas muestran «H1 en HTML = 0» y entre 9 y 19 palabras, mientras el mismo documento reconoce que el contenido real existe y se verificó renderizándolo.

Ese matiz importa y conviene no exagerarlo: no es que la web esté vacía, es que su contenido depende de una ejecución. Google ejecuta JavaScript, pero en una segunda fase, con presupuesto limitado y con retraso. Los motores generativos, en cambio, casi nunca lo hacen: cuando un asistente pide una página para resumirla, recibe el mismo contenedor vacío. Por eso el arreglo de rendering no es una mejora de rendimiento, es la condición para que exista cualquier otra cosa.

Lo que ya estaba bien y no había que tocar

Un informe que solo enumera defectos no sirve para decidir. Este dedica una hoja entera a lo que funciona, porque es lo que no debe romperse al arreglar el resto:

  • Seguridad de primer nivel. HTTPS permanente con redirección 308, HSTS con preload y max-age de dos años, y las seis cabeceras de seguridad presentes: X-Frame-Options, X-Content-Type-Options, Referrer-Policy y Permissions-Policy.
  • Servidor muy rápido. 76 ms de tiempo hasta el primer byte, servido desde la red de borde. El cuello de botella no es el hosting, es el JavaScript que viene después.
  • Rastreo bien configurado. Un robots.txt que permite el rastreo, bloquea las rutas internas y declara el sitemap; un sitemap válido con las quince URLs.
  • Metadatos de la portada bien escritos. Título de 63 caracteres con marca, servicio y las dos ciudades; descripción completa. El criterio existe: solo falta aplicarlo al resto.
  • Contenido real de calidad. El renderizado confirma textos médicos extensos y bien estructurados en servicios y en el blog, con temáticas que la gente busca de verdad.
  • Etiquetas sociales completas. og:title, og:image y twitter:card presentes en las páginas.

Plan de acción: tres fases y doce acciones

El informe no entrega una lista de tareas: entrega una secuencia. Cada acción lleva la hoja que resuelve, el esfuerzo, el responsable sugerido y el indicador con el que se verificará. Se reproduce aquí el orden, no el texto completo.

  1. Fase 1 · 0-30 días: desbloquear la indexación Renderizado en servidor o pre-generado (F-01), datos estructurados con MedicalClinic, Physician, Article y FAQPage (F-02), página 404 real (F-03), redirecciones de las URLs antiguas (F-04) y conexión de Search Console y GA4, que no estaban. Cinco acciones, dos de ellas de horas.
  2. Fase 2 · 30-60 días: ordenar lo que ya se rastrea Arreglar /politicas (F-05), reescribir los nueve títulos a 50-60 caracteres sin emojis y las descripciones a 150-160 (F-07, F-08), convertir la redirección de www en permanente (F-06) y aplicar división de código por ruta para bajar el JavaScript (F-10).
  3. Fase 3 · 60-90 días: crecer donde hay demanda Crear una página por tratamiento —bótox, ácido hialurónico, rinomodelación, bioestimuladores, PRP— con esquema y preguntas frecuentes (F-09), actualizar el lastmod real (F-11) y retirar las señales inútiles: meta keywords, etiquetas geo y hreflang autorreferente (F-12, F-13).

Hay una decisión de criterio en ese orden que merece explicarse: los datos estructurados van en la fase 1 y no en la fase 3, aunque su nota sea la peor de todas. La razón es que el marcado es lo único que un motor de respuesta puede leer como atributo verificable —dirección, coordenadas, especialidad, teléfonos, horarios— y su coste es de horas, no de semanas.

Lo que este informe no mide, y decimos

Este es un informe de SEO técnico y on-page. No tiene hojas de GEO ni de AEO, a diferencia de los otros dos casos de este bloque, y no vamos a rellenar ese hueco con una sección genérica sobre inteligencia artificial. Lo que sí se puede afirmar, porque está en el documento, es qué consecuencias tiene lo medido sobre la visibilidad en asistentes:

  • Sin HTML con texto no hay nada que citar. Un modelo que recupera la página recibe el contenedor vacío. Esto no es una hipótesis sobre GEO: es el mismo F-01 leído desde otro ángulo.
  • Sin marcado no hay atributos. Cero bloques JSON-LD significa que la especialidad, las dos sedes y los teléfonos solo existen como prosa. Un asistente que necesite responder «¿dónde atiende esta médica en Cali?» tiene que inferirlo de un párrafo, o no responder.
  • Sin páginas por tratamiento no hay entidad por procedimiento. Mientras todo el catálogo viva en /servicios, no existe una URL que un motor pueda asociar a «rinomodelación en Bogotá». F-09 es, en la práctica, el prerrequisito de cualquier trabajo de AEO.

Si el objetivo incluyera ser citado por asistentes, el siguiente paso sobre este mismo sitio sería un informe con las dimensiones de GEO y AEO aplicadas a las páginas nuevas. No está en este documento.

Qué cambia con cada arreglo

No hay resultados posteriores que publicar, y esta tabla no los simula. Lo que compara es el estado medido con el estado que el propio informe declara como verificable al cerrar cada fase. La columna «después» es un criterio de aceptación, no una promesa de tráfico.

Estado medido

Lo que un rastreador recibe hoy

  • HTML inicial de 9 a 12 palabras por página.
  • Cero H1 en el código de las 15 URLs.
  • Cero bloques de datos estructurados.
  • Rutas inexistentes que responden 200.
  • Tres URLs antiguas indexadas con contenido erróneo.
  • 502 KB de JavaScript antes del primer texto.
  • Sin Search Console ni analítica conectadas.
Criterio de aceptación

Lo que el informe exige al cerrar cada fase

  • «Prueba de URL en vivo» de Search Console muestra el texto completo.
  • Un H1 y jerarquía de encabezados en cada página.
  • MedicalClinic, Physician y Article validados en el test de resultados enriquecidos.
  • Informe de soft-404 de Search Console a cero.
  • Índice limpio: solo las 15 URLs vigentes.
  • División de código por ruta y una librería de animaciones revisada.
  • Datos reales de clics e impresiones desde la primera semana.

Preguntas frecuentes

Porque el navegador y el rastreador no reciben lo mismo. En este sitio el HTML inicial llega como un contenedor vacío y el texto se construye después con JavaScript. Google puede ejecutar JavaScript, pero lo hace en una segunda fase, con presupuesto limitado y con retraso; el resto de rastreadores y casi todos los motores generativos no lo ejecutan. La medición fue directa: sin ejecutar JavaScript, las quince URLs tienen entre nueve y diecinueve palabras y ningún H1.

El informe estima entre dos y cinco días de trabajo técnico: activar renderizado en servidor o pre-generado —migrar a Next.js o Astro, usar un plugin de pre-render— o instalar pre-renderizado específico para bots si no hay presupuesto para migrar. Es la intervención con mejor relación entre esfuerzo e impacto de todo el informe, y la única que desbloquea el resto.

No bastan, pero sin ellos es prácticamente imposible. El marcado no crea autoridad: le da a un motor un conjunto de atributos verificables —nombre, especialidad, dirección, coordenadas, teléfonos, horarios, autoría— que puede citar sin interpretar tu diseño. Aquí había cero bloques en las quince URLs, así que un asistente solo podía describir la consulta leyendo texto suelto, si lograba leerlo.

No, y por eso esta página no muestra un porcentaje de mejora. El informe es el diagnóstico con su plan priorizado; cualquier cifra de resultado exigiría una medición posterior con fecha y fuente, y no la tenemos. Preferimos enseñar el documento completo antes que inventar la comparación.

La auditoría aplica los criterios de JavaScript SEO de Google Search Central, la especificación de tipos de schema.org y los umbrales de Core Web Vitals.

Servicio y método relacionados

Este caso corresponde al servicio de auditoría SEO técnica. Las comprobaciones que se aplicaron están en el checklist técnico, y el problema de fondo —contenido que depende de una ejecución— se explica en cómo aparecer en ChatGPT.

¿Tu web también depende de JavaScript para mostrar el texto?

La auditoría gratuita lee el HTML de tu portada como lo haría un rastreador, sin ejecutar scripts, y te dice qué encuentra y qué falta.