PDF

Informe completociclosdelpuerto.example

Las IAs solo ven el 0% de tu contenido. Están leyendo una web casi vacía.

Analizado el 24 de septiembre de 2026 a las 20:17 · 24 problemas · 36 comprobaciones

Lo que ve una persona y lo que recibe una IA

0%de coincidencia

Si las dos columnas dicen lo mismo, vas bien. Lo marcado en rojo existe en tu pantalla pero nunca llega al rastreador.

Captura de ciclosdelpuerto.example tal y como se ve en un navegador
Captura de ciclosdelpuerto.example con JavaScript desactivado, que es como la recibe un rastreador de IA
Lo que ve una persona181 palabrasLo que recibe una IA0 palabras
La misma página, con JavaScript a un lado de la raya y sin él al otro. Lo que se queda en blanco es lo que no le llega al rastreador.

Nota por bloques

  • Acceso de las IAs83/100

    ¿Pueden los rastreadores de ChatGPT, Claude, Perplexity y Gemini entrar en tu web? · pesa un 26% · 2 avisos

  • Contenido visible para la IA15/100

    ¿Lo que ve una persona en pantalla llega también al rastreador que no ejecuta JavaScript? · pesa un 26% · 4 avisos

  • Estructura y semántica35/100

    ¿Puede el modelo entender la página y trocearla en fragmentos citables? · pesa un 15% · 5 avisos

  • Datos estructurados14/100

    ¿Le dices a la IA quién eres y qué ofreces en un formato que no tiene que adivinar? · pesa un 15% · 5 avisos

  • Contenido que responde5/100

    ¿Hay respuestas concretas que una IA pueda extraer y citar tal cual? · pesa un 12% · 6 avisos

  • Técnico71/100

    Velocidad, transporte e higiene básica del servidor. · pesa un 6% · 2 avisos

Acceso de los buscadores de IA

Buscador de IArobots.txtServidor
ChatGPT SearchOAI-SearchBotPermitidoHTTP 200
ChatGPT (navegación en vivo)ChatGPT-UserPermitidoHTTP 200
OpenAI GPTBotGPTBotBloqueadoDisallow: /HTTP 200
Anthropic ClaudeBotClaudeBotPermitidoHTTP 200
Claude SearchClaude-SearchBotPermitidoHTTP 200
Claude (navegación en vivo)Claude-UserPermitidoHTTP 200
PerplexityPerplexityBotPermitidoHTTP 200
Google GeminiGoogle-ExtendedPermitidoHTTP 200
Apple IntelligenceApplebot-ExtendedPermitidoHTTP 200
Meta AImeta-externalagentPermitidoHTTP 200
Copilot / Bing (fuente de muchas IAs)BingbotPermitidoHTTP 200

Lo que mide Google en tu web

Lighthouse · PageSpeed Insights · móvil

Rendimiento
38
Accesibilidad
91
Buenas prácticas
100
SEO
83
Mayor elemento visible (LCP)
4,1 s
Primer contenido (FCP)
2,6 s
Tiempo bloqueado (TBT)
620 ms
Saltos de maquetación (CLS)
0,02
Índice de velocidad
5,8 s

Estas cifras cambian con la red y el servidor. Sirven para comparar antes y después de un cambio, no para perseguir el 100 exacto. No entran en tu nota de visibilidad para IA.

Los 24 problemas y cómo se arreglan

Crítico

La IA solo ve el 0% de tu web

Una persona lee 181 palabras en pantalla; un rastreador de IA recibe 0. La diferencia es contenido que se genera en el navegador.

Por qué te afecta

Cuando un modelo decide a quién citar, compara el contenido que ha podido leer. Si le falta la mitad de tu página, compites con la mitad de tus argumentos.

Cómo se arregla

Pasa a renderizado en servidor el contenido principal: textos, precios, fichas de producto, preguntas frecuentes y enlaces de navegación. Deja en el cliente solo lo interactivo (carritos, filtros, mapas).

Crítico

Solo 0 palabras llegan a la IA

El HTML que devuelve el servidor contiene 0 palabras de texto real, frente a 181 que ve una persona en pantalla.

Por qué te afecta

Los modelos necesitan texto para extraer una respuesta y citarte. Con menos de 300 palabras difícilmente tienen material con el que responder a nada.

Cómo se arregla

Renderiza el contenido en el servidor (SSR/SSG) o pre-renderiza el HTML: la IA tiene que recibir el texto ya escrito en la respuesta, no un contenedor vacío.

Crítico

Hay contenido que la IA nunca llega a leer

Estos textos se ven en pantalla pero no están en el HTML que recibe un rastreador: • Reparación de bicicletas en Málaga • Revisión completa en 24 horas. • Recogemos la bici en tu casa y te la devolvemos a punto. • Ajuste de cambios y frenos, centrado de ruedas, engrase y revisión de tornillería. • Cadena nueva de 11 o 12 velocidades, con comprobación del desgaste de piñones. • Purgado de los dos frenos, pastillas nuevas y ajuste de las manetas. • Montaje de bici nueva • Si la compraste por internet, te la dejamos lista y ajustada a tu talla.

Por qué te afecta

GPTBot, ClaudeBot y PerplexityBot leen el HTML tal cual llega. No esperan a que se ejecute tu JavaScript. Todo lo de arriba es, literalmente, invisible para ellos.

Cómo se arregla

Sirve ese contenido desde el servidor. Según tu stack: • Next.js: usa Server Components o getStaticProps/generateStaticParams en lugar de useEffect + fetch. • Nuxt: ssr: true y useAsyncData en vez de onMounted. • React/Vue SPA puro: añade pre-renderizado (vite-plugin-prerender, react-snap) o migra a SSR. • WordPress/CMS con widgets JS: sustituye el widget por HTML estático o añade el texto en el propio contenido. Comprueba el resultado con: curl -s http://ciclosdelpuerto.example/ | grep -i "un trozo del texto"

Lo que hemos encontrado en tu web
Reparación de bicicletas en Málaga
---
Revisión completa en 24 horas.
---
Recogemos la bici en tu casa y te la devolvemos a punto.
---
Ajuste de cambios y frenos, centrado de ruedas, engrase y revisión de tornillería.
---
Cadena nueva de 11 o 12 velocidades, con comprobación del desgaste de piñones.

Grave

No hay encabezado H1

El HTML crudo no contiene ningún <h1>.

Por qué te afecta

El H1 le dice al modelo cuál es el tema principal. Sin él (o con varios), la página pierde foco y el modelo no sabe qué está resumiendo.

Cómo se arregla

Añade un único <h1> con el tema principal de la página, escrito como lo diría un cliente.

Grave

La página no tiene encabezados

No se ha encontrado ningún H1-H6 en el HTML servido.

Por qué te afecta

Los encabezados son los puntos de corte que usa un modelo para trocear la página en fragmentos citables. Sin ellos, tu contenido es un muro de texto y se cita entero o nada.

Cómo se arregla

Estructura el contenido con un H1 y varios H2/H3, cada uno formulado como la pregunta que responde esa sección.

Grave

No tienes datos estructurados

El HTML no contiene ningún <script type="application/ld+json"> con schema.org.

Por qué te afecta

El JSON-LD es la ficha de identidad que un modelo lee sin ambigüedad: nombre, servicios, precios, horario, valoraciones. Sin él, la IA tiene que adivinar a partir del texto y se equivoca más (o te ignora y cita a quien sí se lo pone fácil).

Cómo se arregla

Añade en el <head> un bloque como este, ajustando los valores a tu negocio:

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Organization",
  "name": "TU MARCA",
  "url": "http://ciclosdelpuerto.example",
  "logo": "http://ciclosdelpuerto.example/logo.png",
  "description": "Qué haces, para quién y dónde, en una frase.",
  "sameAs": ["https://www.linkedin.com/company/…", "https://www.instagram.com/…"],
  "contactPoint": {
    "@type": "ContactPoint",
    "contactType": "customer service",
    "email": "hola@ciclosdelpuerto.example",
    "availableLanguage": ["es"]
  }
}
</script>

Grave

La web no usa HTTPS

http://ciclosdelpuerto.example/ se sirve sin cifrado.

Por qué te afecta

Sin HTTPS pierdes posiciones en buscadores clásicos y varios rastreadores directamente descartan el dominio como fuente fiable.

Cómo se arregla

Instala un certificado TLS (Let's Encrypt es gratis), redirige todo el tráfico HTTP a HTTPS con un 301 y activa HSTS.

Medio

No hay sitemap.xml

No responde http://ciclosdelpuerto.example/sitemap.xml y robots.txt no declara ninguno.

Por qué te afecta

Sin sitemap, un rastreador solo encuentra lo que esté enlazado desde la portada. Las páginas profundas —justo las que responden preguntas concretas— se quedan sin indexar.

Cómo se arregla

Genera un sitemap.xml con todas tus URLs públicas y su <lastmod> real, publícalo en http://ciclosdelpuerto.example/sitemap.xml y decláralo en robots.txt con la línea:

Sitemap: http://ciclosdelpuerto.example/sitemap.xml

Medio

No hay contenido alternativo sin JavaScript

La página depende de JS y no incluye un <noscript> con el contenido esencial.

Por qué te afecta

Mientras arreglas el renderizado en servidor, un <noscript> bien hecho da a la IA al menos el texto principal en vez de nada.

Cómo se arregla

Como parche temporal, incluye dentro de <noscript> el titular, los dos o tres párrafos clave y los enlaces principales. La solución definitiva sigue siendo servir el HTML ya renderizado.

Medio

Falta la meta description

El HTML no incluye <meta name="description">.

Por qué te afecta

Muchos sistemas de IA usan la descripción como resumen de referencia de la página antes de leer el cuerpo.

Cómo se arregla

Añade una descripción de 140-160 caracteres que responda en una frase qué haces, para quién y dónde:

<meta name="description" content="…">

Medio

La página no usa HTML semántico

No hay <main>, <article>, <nav> ni <header>: todo son <div>.

Por qué te afecta

Las etiquetas semánticas le dicen al extractor qué parte es el contenido y qué parte es menú o pie. Sin ellas, tu texto se mezcla con el de navegación y el modelo cita peor.

Cómo se arregla

Envuelve el contenido principal en <main>, cada pieza autónoma en <article>, el menú en <nav> y el pie en <footer>. Es sustituir divs por etiquetas con significado, sin tocar estilos.

Medio

No hay enlaces en el HTML servido

El documento no contiene ningún <a href>.

Por qué te afecta

Si la navegación se genera con JavaScript, un rastreador de IA no encuentra el resto de tu web: solo indexa esta página suelta.

Cómo se arregla

Sirve el menú como enlaces <a href> reales en el HTML, no como botones con onClick.

Medio

La IA no sabe quién eres

No hay ningún schema de tipo Organization, LocalBusiness ni Person.

Por qué te afecta

Las IAs recomiendan entidades, no URLs sueltas. Si no declaras nombre, ámbito y datos de contacto, no te asocian a tu sector ni a tu ciudad.

Cómo se arregla

Añade un bloque Organization (o LocalBusiness si atiendes a clientes en una dirección física) con name, url, logo, description, sameAs con tus perfiles sociales y, si aplica, address y areaServed.

Medio

Tus subtítulos no responden a las preguntas que hace la gente

La página no tiene subtítulos H2/H3.

Por qué te afecta

Las IAs buscan el trozo de texto que responde literalmente a la pregunta del usuario. Un H2 que dice "Nuestros servicios" no casa con nada; "¿Cuánto cuesta reformar un baño en Valencia?" casa con una pregunta real.

Cómo se arregla

Reescribe al menos 3 subtítulos como la pregunta exacta que te haría un cliente, y responde en el primer párrafo debajo, en 2-3 frases. Ejemplo: "## ¿Cuánto tarda una reforma de baño?" seguido de "Entre 2 y 3 semanas en un baño estándar de 5 m²…".

Medio

Falta una respuesta directa en las primeras líneas

La página empieza sin un párrafo que resuma de qué va.

Por qué te afecta

Un modelo suele citar los primeros 40-60 palabras que responden a la consulta. Si empiezas con relleno de marketing, se queda sin nada que extraer.

Cómo se arregla

Abre la página con un párrafo de 40-70 palabras que responda de forma literal: qué es, para quién, cuánto cuesta o cuánto tarda. Los adornos, después.

Medio

No tienes bloque de preguntas frecuentes

No se ha detectado ninguna sección de preguntas frecuentes.

Por qué te afecta

Una FAQ marcada es el formato pregunta-respuesta que consumen directamente los motores de IA: cada par es una respuesta lista para servir con tu marca al lado.

Cómo se arregla

Añade 5-8 preguntas reales de clientes con su respuesta (2-4 frases cada una) y márcalas así:

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "FAQPage",
  "mainEntity": [{
    "@type": "Question",
    "name": "¿Cuánto cuesta el servicio?",
    "acceptedAnswer": {"@type": "Answer", "text": "Desde 300 € para un proyecto estándar…"}
  }]
}
</script>

Usa las preguntas que ya te llegan por email o WhatsApp: esas son las que la gente le escribe a la IA.

Menor

No tienes un archivo llms.txt

http://ciclosdelpuerto.example/llms.txt no existe.

Por qué te afecta

llms.txt es un estándar emergente (aún no lo usan todos los motores) para decirle a un modelo qué páginas tuyas importan y en qué orden leerlas. Cuesta diez minutos y te posiciona para cuando se generalice.

Cómo se arregla

Crea http://ciclosdelpuerto.example/llms.txt en Markdown:

# ciclosdelpuerto.example

> Una frase describiendo qué hace tu negocio y a quién sirve.

## Páginas principales
- [Servicios](http://ciclosdelpuerto.example/servicios): qué ofreces exactamente.
- [Precios](http://ciclosdelpuerto.example/precios): tarifas y planes.
- [Contacto](http://ciclosdelpuerto.example/contacto): cómo contratarte.

Menor

Faltan metadatos Open Graph

Falta: og:title, og:description, og:image.

Por qué te afecta

Varios asistentes usan Open Graph como resumen rápido cuando enseñan tu enlace dentro de una respuesta.

Cómo se arregla

Añade en el <head>:

<meta property="og:title" content="…">
<meta property="og:description" content="…">
<meta property="og:image" content="http://ciclosdelpuerto.example/portada.jpg">
<meta property="og:url" content="http://ciclosdelpuerto.example/">
<meta property="og:type" content="website">

Menor

Falta la tarjeta al compartir el enlace

No se ha encontrado <meta name="twitter:card">.

Por qué te afecta

Cuando alguien pega tu enlace en X, Slack, WhatsApp o Discord, sin tarjeta aparece una línea de texto gris que nadie pulsa. Con imagen ocupa diez veces más y se comparte mucho más.

Cómo se arregla

Añade en el <head>:

<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:title" content="…">
<meta name="twitter:description" content="…">
<meta name="twitter:image" content="http://ciclosdelpuerto.example/twitter-image.png">

La imagen debe medir 1200×630 px. Si usas Next.js puedes generarla desde el código con un archivo opengraph-image.tsx y otro twitter-image.tsx; así nunca se queda obsoleta.

Menor

Falta la URL canónica

La página no declara <link rel="canonical">.

Por qué te afecta

Sin canónica, el mismo contenido servido en varias URLs (con y sin www, con parámetros, http y https) se cuenta como páginas distintas y tu autoridad se reparte entre todas.

Cómo se arregla

Añade en el <head>: <link rel="canonical" href="http://ciclosdelpuerto.example/">

Menor

Poco contenido en listas o tablas

La página solo tiene 0 elementos de lista y 0 tablas.

Por qué te afecta

Las listas y las tablas son el formato que un modelo copia con más fidelidad, porque ya vienen troceadas en unidades comparables (precios, pasos, características).

Cómo se arregla

Convierte en listas los pasos de tu proceso y los elementos incluidos en cada servicio, y en tabla la comparativa de planes o precios. Es reformatear lo que ya tienes escrito.

Menor

El contenido no aporta datos concretos

Solo se han detectado 0 cifras con unidad en toda la página.

Por qué te afecta

Las IAs prefieren citar afirmaciones verificables. "Somos líderes del sector" no se puede citar; "entregamos en 48 h y la instalación cuesta 149 €" sí, y arrastra tu marca con el dato.

Cómo se arregla

Añade cifras reales: precios desde, plazos de entrega, años de experiencia, número de proyectos, porcentajes de ahorro. Una cifra por sección.

Menor

El contenido parece desactualizado

No hay fechas ni referencias al año actual.

Por qué te afecta

Ante dos fuentes que dicen lo mismo, los buscadores de IA citan la que demuestra ser reciente. Una página sin marcas temporales se asume vieja.

Cómo se arregla

Revisa y actualiza el contenido, muestra la fecha de última revisión en pantalla y actualiza "dateModified" en el JSON-LD. Si tus datos cambian poco, indica igualmente "Actualizado en 2026" donde sea cierto — nunca lo pongas si no lo has revisado. Página analizada: /

Menor

El HTML se envía sin comprimir

La respuesta no incluye la cabecera Content-Encoding.

Por qué te afecta

Comprimir reduce el HTML un 70-80 %. Menos bytes es menos tiempo de descarga por página, y más páginas tuyas rastreadas con el mismo presupuesto.

Cómo se arregla

Activa gzip o brotli en tu servidor (Nginx: gzip on; Apache: mod_deflate) o ponte detrás de una CDN que lo haga por ti.

¿Y tu competencia?

Cuando alguien le pregunta a una IA por tu sector, no compite tu web contra un ideal: compite contra las webs de los demás. Analiza dos y compruébalo. Va incluido en tu informe.

WebNota
1tallerbicimalaga.example612 palabras (97%) · ningún buscador de IA bloqueado81/100 · B
2ruedasdelsur.example248 palabras (71%) · 1 buscador de IA bloqueado58/100 · C
3ciclosdelpuerto.exampletú0 palabras (0%) · ningún buscador de IA bloqueado38/100 · F

Quedas 3.º de 3. Ante la misma pregunta, una IA tiene otras 2 webs que lee mejor que la tuya.

Llévatelo

Dos formas de arreglarlo

Opción A · tú con tu IA

Lo arreglas tú, sin pagar nada más

Copia el prompt de aquí abajo y pégalo en Claude, ChatGPT, Cursor o Copilot. Lleva dentro el diagnóstico entero, así que la IA no necesita ver tu web: te dice qué archivo tocar y acaba con los comandos para comprobar que funcionó.

Opción B · lo hacemos nosotros

Lo arreglamos juntos

Si no quieres pelearte con SSR, schemas y robots.txt, nos mandas este informe y lo implementamos nosotros. Te decimos antes qué haríamos y cuánto cuesta.

Escríbenos a hello@gettarsier.com

Pégale esto a tu IA y que lo arregle

Este prompt lleva dentro todo el diagnóstico: el contexto de tu web, los problemas ordenados por impacto, las instrucciones de arreglo y los comandos para comprobar que ha funcionado. No necesita que la IA vea tu web.

Cuál usar:En tu idioma se lee con más naturalidad; en inglés gasta alrededor de un 25 % menos de tokens, lo que ayuda si tu IA cobra por uso o se queda corta de contexto.

Prompt para tu IA534 líneas
# Tarea: hacer que mi web sea legible para los buscadores de IA

Actúa como un ingeniero especializado en SEO técnico y en GEO (optimización para motores generativos: ChatGPT Search, Claude, Perplexity, Google AI Overviews, Copilot).

## Contexto

- Web analizada: http://ciclosdelpuerto.example/
- Fecha del análisis: 24/9/2026
- Puntuación actual de visibilidad para IA: 38/100 (nota F)
- Paridad humano/IA: un visitante ve 181 palabras y un rastreador de IA recibe 0 (0%).
- Título actual: "Ciclos del Puerto"
- Datos estructurados presentes: ninguno

## Puntuación por bloques

- Acceso de las IAs: 83/100
- Contenido visible para la IA: 15/100
- Estructura y semántica: 35/100
- Datos estructurados: 14/100
- Contenido que responde: 5/100
- Técnico: 71/100

## Con quién compites

Ante la misma pregunta, una IA elige entre estas webs. Los números son de un análisis real hecho con los mismos criterios:

- tallerbicimalaga.example: 81/100, 612 palabras legibles
- ruedasdelsur.example: 58/100, 248 palabras legibles
- ciclosdelpuerto.example (mi web): 38/100, 0 palabras legibles

## Qué necesito que hagas

Resuelve los problemas de la lista siguiente **en el orden en que aparecen** (están ordenados por impacto real en si una IA puede citarme o no).
Para cada problema:

1. Localiza en mi proyecto el archivo o la plantilla donde se origina.
2. Aplica el cambio adaptándolo a mi stack real (no copies literalmente los ejemplos: úsalos como referencia).
3. Explícame en una frase qué has cambiado y por qué.
4. Dime cómo verificar que ha funcionado.

Si algo requiere una decisión de negocio (precios, textos comerciales, datos de contacto reales), no te lo inventes: pregúntame.

## Bloqueantes (sin esto, nada más importa)

### 1. La IA solo ve el 0% de tu web

**Gravedad:** Crítico

**Qué pasa:** Una persona lee 181 palabras en pantalla; un rastreador de IA recibe 0. La diferencia es contenido que se genera en el navegador.

**Por qué importa:** Cuando un modelo decide a quién citar, compara el contenido que ha podido leer. Si le falta la mitad de tu página, compites con la mitad de tus argumentos.

**Qué hay que hacer:**

Pasa a renderizado en servidor el contenido principal: textos, precios, fichas de producto, preguntas frecuentes y enlaces de navegación. Deja en el cliente solo lo interactivo (carritos, filtros, mapas).

### 2. Solo 0 palabras llegan a la IA

**Gravedad:** Crítico

**Qué pasa:** El HTML que devuelve el servidor contiene 0 palabras de texto real, frente a 181 que ve una persona en pantalla.

**Por qué importa:** Los modelos necesitan texto para extraer una respuesta y citarte. Con menos de 300 palabras difícilmente tienen material con el que responder a nada.

**Qué hay que hacer:**

Renderiza el contenido en el servidor (SSR/SSG) o pre-renderiza el HTML: la IA tiene que recibir el texto ya escrito en la respuesta, no un contenedor vacío.

### 3. Hay contenido que la IA nunca llega a leer

**Gravedad:** Crítico

**Qué pasa:** Estos textos se ven en pantalla pero no están en el HTML que recibe un rastreador:

• Reparación de bicicletas en Málaga
• Revisión completa en 24 horas.
• Recogemos la bici en tu casa y te la devolvemos a punto.
• Ajuste de cambios y frenos, centrado de ruedas, engrase y revisión de tornillería.
• Cadena nueva de 11 o 12 velocidades, con comprobación del desgaste de piñones.
• Purgado de los dos frenos, pastillas nuevas y ajuste de las manetas.
• Montaje de bici nueva
• Si la compraste por internet, te la dejamos lista y ajustada a tu talla.

**Por qué importa:** GPTBot, ClaudeBot y PerplexityBot leen el HTML tal cual llega. No esperan a que se ejecute tu JavaScript. Todo lo de arriba es, literalmente, invisible para ellos.

**Qué hay que hacer:**

Sirve ese contenido desde el servidor. Según tu stack:
• Next.js: usa Server Components o getStaticProps/generateStaticParams en lugar de useEffect + fetch.
• Nuxt: ssr: true y useAsyncData en vez de onMounted.
• React/Vue SPA puro: añade pre-renderizado (vite-plugin-prerender, react-snap) o migra a SSR.
• WordPress/CMS con widgets JS: sustituye el widget por HTML estático o añade el texto en el propio contenido.
Comprueba el resultado con: curl -s http://ciclosdelpuerto.example/ | grep -i "un trozo del texto"

<details><summary>Fragmento detectado en la web</summary>

```
Reparación de bicicletas en Málaga
---
Revisión completa en 24 horas.
---
Recogemos la bici en tu casa y te la devolvemos a punto.
---
Ajuste de cambios y frenos, centrado de ruedas, engrase y revisión de tornillería.
---
Cadena nueva de 11 o 12 velocidades, con comprobación del desgaste de piñones.
```

</details>

## Importantes

### 1. No hay encabezado H1

**Gravedad:** Grave

**Qué pasa:** El HTML crudo no contiene ningún <h1>.

**Por qué importa:** El H1 le dice al modelo cuál es el tema principal. Sin él (o con varios), la página pierde foco y el modelo no sabe qué está resumiendo.

**Qué hay que hacer:**

Añade un único <h1> con el tema principal de la página, escrito como lo diría un cliente.

### 2. La página no tiene encabezados

**Gravedad:** Grave

**Qué pasa:** No se ha encontrado ningún H1-H6 en el HTML servido.

**Por qué importa:** Los encabezados son los puntos de corte que usa un modelo para trocear la página en fragmentos citables. Sin ellos, tu contenido es un muro de texto y se cita entero o nada.

**Qué hay que hacer:**

Estructura el contenido con un H1 y varios H2/H3, cada uno formulado como la pregunta que responde esa sección.

### 3. No tienes datos estructurados

**Gravedad:** Grave

**Qué pasa:** El HTML no contiene ningún <script type="application/ld+json"> con schema.org.

**Por qué importa:** El JSON-LD es la ficha de identidad que un modelo lee sin ambigüedad: nombre, servicios, precios, horario, valoraciones. Sin él, la IA tiene que adivinar a partir del texto y se equivoca más (o te ignora y cita a quien sí se lo pone fácil).

**Qué hay que hacer:**

Añade en el <head> un bloque como este, ajustando los valores a tu negocio:

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Organization",
  "name": "TU MARCA",
  "url": "http://ciclosdelpuerto.example",
  "logo": "http://ciclosdelpuerto.example/logo.png",
  "description": "Qué haces, para quién y dónde, en una frase.",
  "sameAs": ["https://www.linkedin.com/company/…", "https://www.instagram.com/…"],
  "contactPoint": {
    "@type": "ContactPoint",
    "contactType": "customer service",
    "email": "hola@ciclosdelpuerto.example",
    "availableLanguage": ["es"]
  }
}
</script>

### 4. La web no usa HTTPS

**Gravedad:** Grave

**Qué pasa:** http://ciclosdelpuerto.example/ se sirve sin cifrado.

**Por qué importa:** Sin HTTPS pierdes posiciones en buscadores clásicos y varios rastreadores directamente descartan el dominio como fuente fiable.

**Qué hay que hacer:**

Instala un certificado TLS (Let's Encrypt es gratis), redirige todo el tráfico HTTP a HTTPS con un 301 y activa HSTS.

## Mejoras adicionales

### 1. No hay sitemap.xml

**Gravedad:** Medio

**Qué pasa:** No responde http://ciclosdelpuerto.example/sitemap.xml y robots.txt no declara ninguno.

**Por qué importa:** Sin sitemap, un rastreador solo encuentra lo que esté enlazado desde la portada. Las páginas profundas —justo las que responden preguntas concretas— se quedan sin indexar.

**Qué hay que hacer:**

Genera un sitemap.xml con todas tus URLs públicas y su <lastmod> real, publícalo en http://ciclosdelpuerto.example/sitemap.xml y decláralo en robots.txt con la línea:
Sitemap: http://ciclosdelpuerto.example/sitemap.xml

### 2. No hay contenido alternativo sin JavaScript

**Gravedad:** Medio

**Qué pasa:** La página depende de JS y no incluye un <noscript> con el contenido esencial.

**Por qué importa:** Mientras arreglas el renderizado en servidor, un <noscript> bien hecho da a la IA al menos el texto principal en vez de nada.

**Qué hay que hacer:**

Como parche temporal, incluye dentro de <noscript> el titular, los dos o tres párrafos clave y los enlaces principales. La solución definitiva sigue siendo servir el HTML ya renderizado.

### 3. Falta la meta description

**Gravedad:** Medio

**Qué pasa:** El HTML no incluye <meta name="description">.

**Por qué importa:** Muchos sistemas de IA usan la descripción como resumen de referencia de la página antes de leer el cuerpo.

**Qué hay que hacer:**

Añade una descripción de 140-160 caracteres que responda en una frase qué haces, para quién y dónde:
<meta name="description" content="…">

### 4. La página no usa HTML semántico

**Gravedad:** Medio

**Qué pasa:** No hay <main>, <article>, <nav> ni <header>: todo son <div>.

**Por qué importa:** Las etiquetas semánticas le dicen al extractor qué parte es el contenido y qué parte es menú o pie. Sin ellas, tu texto se mezcla con el de navegación y el modelo cita peor.

**Qué hay que hacer:**

Envuelve el contenido principal en <main>, cada pieza autónoma en <article>, el menú en <nav> y el pie en <footer>. Es sustituir divs por etiquetas con significado, sin tocar estilos.

### 5. No hay enlaces en el HTML servido

**Gravedad:** Medio

**Qué pasa:** El documento no contiene ningún <a href>.

**Por qué importa:** Si la navegación se genera con JavaScript, un rastreador de IA no encuentra el resto de tu web: solo indexa esta página suelta.

**Qué hay que hacer:**

Sirve el menú como enlaces <a href> reales en el HTML, no como botones con onClick.

### 6. La IA no sabe quién eres

**Gravedad:** Medio

**Qué pasa:** No hay ningún schema de tipo Organization, LocalBusiness ni Person.

**Por qué importa:** Las IAs recomiendan entidades, no URLs sueltas. Si no declaras nombre, ámbito y datos de contacto, no te asocian a tu sector ni a tu ciudad.

**Qué hay que hacer:**

Añade un bloque Organization (o LocalBusiness si atiendes a clientes en una dirección física) con name, url, logo, description, sameAs con tus perfiles sociales y, si aplica, address y areaServed.

### 7. Tus subtítulos no responden a las preguntas que hace la gente

**Gravedad:** Medio

**Qué pasa:** La página no tiene subtítulos H2/H3.

**Por qué importa:** Las IAs buscan el trozo de texto que responde literalmente a la pregunta del usuario. Un H2 que dice "Nuestros servicios" no casa con nada; "¿Cuánto cuesta reformar un baño en Valencia?" casa con una pregunta real.

**Qué hay que hacer:**

Reescribe al menos 3 subtítulos como la pregunta exacta que te haría un cliente, y responde en el primer párrafo debajo, en 2-3 frases. Ejemplo: "## ¿Cuánto tarda una reforma de baño?" seguido de "Entre 2 y 3 semanas en un baño estándar de 5 m²…".

### 8. Falta una respuesta directa en las primeras líneas

**Gravedad:** Medio

**Qué pasa:** La página empieza sin un párrafo que resuma de qué va.

**Por qué importa:** Un modelo suele citar los primeros 40-60 palabras que responden a la consulta. Si empiezas con relleno de marketing, se queda sin nada que extraer.

**Qué hay que hacer:**

Abre la página con un párrafo de 40-70 palabras que responda de forma literal: qué es, para quién, cuánto cuesta o cuánto tarda. Los adornos, después.

### 9. No tienes bloque de preguntas frecuentes

**Gravedad:** Medio

**Qué pasa:** No se ha detectado ninguna sección de preguntas frecuentes.

**Por qué importa:** Una FAQ marcada es el formato pregunta-respuesta que consumen directamente los motores de IA: cada par es una respuesta lista para servir con tu marca al lado.

**Qué hay que hacer:**

Añade 5-8 preguntas reales de clientes con su respuesta (2-4 frases cada una) y márcalas así:

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "FAQPage",
  "mainEntity": [{
    "@type": "Question",
    "name": "¿Cuánto cuesta el servicio?",
    "acceptedAnswer": {"@type": "Answer", "text": "Desde 300 € para un proyecto estándar…"}
  }]
}
</script>

Usa las preguntas que ya te llegan por email o WhatsApp: esas son las que la gente le escribe a la IA.

### 10. No tienes un archivo llms.txt

**Gravedad:** Menor

**Qué pasa:** http://ciclosdelpuerto.example/llms.txt no existe.

**Por qué importa:** llms.txt es un estándar emergente (aún no lo usan todos los motores) para decirle a un modelo qué páginas tuyas importan y en qué orden leerlas. Cuesta diez minutos y te posiciona para cuando se generalice.

**Qué hay que hacer:**

Crea http://ciclosdelpuerto.example/llms.txt en Markdown:

# ciclosdelpuerto.example

> Una frase describiendo qué hace tu negocio y a quién sirve.

## Páginas principales
- [Servicios](http://ciclosdelpuerto.example/servicios): qué ofreces exactamente.
- [Precios](http://ciclosdelpuerto.example/precios): tarifas y planes.
- [Contacto](http://ciclosdelpuerto.example/contacto): cómo contratarte.

### 11. Faltan metadatos Open Graph

**Gravedad:** Menor

**Qué pasa:** Falta: og:title, og:description, og:image.

**Por qué importa:** Varios asistentes usan Open Graph como resumen rápido cuando enseñan tu enlace dentro de una respuesta.

**Qué hay que hacer:**

Añade en el <head>:
<meta property="og:title" content="…">
<meta property="og:description" content="…">
<meta property="og:image" content="http://ciclosdelpuerto.example/portada.jpg">
<meta property="og:url" content="http://ciclosdelpuerto.example/">
<meta property="og:type" content="website">

### 12. Falta la tarjeta al compartir el enlace

**Gravedad:** Menor

**Qué pasa:** No se ha encontrado <meta name="twitter:card">.

**Por qué importa:** Cuando alguien pega tu enlace en X, Slack, WhatsApp o Discord, sin tarjeta aparece una línea de texto gris que nadie pulsa. Con imagen ocupa diez veces más y se comparte mucho más.

**Qué hay que hacer:**

Añade en el <head>:
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:title" content="…">
<meta name="twitter:description" content="…">
<meta name="twitter:image" content="http://ciclosdelpuerto.example/twitter-image.png">

La imagen debe medir 1200×630 px. Si usas Next.js puedes generarla desde el código con un archivo opengraph-image.tsx y otro twitter-image.tsx; así nunca se queda obsoleta.

### 13. Falta la URL canónica

**Gravedad:** Menor

**Qué pasa:** La página no declara <link rel="canonical">.

**Por qué importa:** Sin canónica, el mismo contenido servido en varias URLs (con y sin www, con parámetros, http y https) se cuenta como páginas distintas y tu autoridad se reparte entre todas.

**Qué hay que hacer:**

Añade en el <head>: <link rel="canonical" href="http://ciclosdelpuerto.example/">

### 14. Poco contenido en listas o tablas

**Gravedad:** Menor

**Qué pasa:** La página solo tiene 0 elementos de lista y 0 tablas.

**Por qué importa:** Las listas y las tablas son el formato que un modelo copia con más fidelidad, porque ya vienen troceadas en unidades comparables (precios, pasos, características).

**Qué hay que hacer:**

Convierte en listas los pasos de tu proceso y los elementos incluidos en cada servicio, y en tabla la comparativa de planes o precios. Es reformatear lo que ya tienes escrito.

### 15. El contenido no aporta datos concretos

**Gravedad:** Menor

**Qué pasa:** Solo se han detectado 0 cifras con unidad en toda la página.

**Por qué importa:** Las IAs prefieren citar afirmaciones verificables. "Somos líderes del sector" no se puede citar; "entregamos en 48 h y la instalación cuesta 149 €" sí, y arrastra tu marca con el dato.

**Qué hay que hacer:**

Añade cifras reales: precios desde, plazos de entrega, años de experiencia, número de proyectos, porcentajes de ahorro. Una cifra por sección.

### 16. El contenido parece desactualizado

**Gravedad:** Menor

**Qué pasa:** No hay fechas ni referencias al año actual.

**Por qué importa:** Ante dos fuentes que dicen lo mismo, los buscadores de IA citan la que demuestra ser reciente. Una página sin marcas temporales se asume vieja.

**Qué hay que hacer:**

Revisa y actualiza el contenido, muestra la fecha de última revisión en pantalla y actualiza "dateModified" en el JSON-LD. Si tus datos cambian poco, indica igualmente "Actualizado en 2026" donde sea cierto — nunca lo pongas si no lo has revisado. Página analizada: /

### 17. El HTML se envía sin comprimir

**Gravedad:** Menor

**Qué pasa:** La respuesta no incluye la cabecera Content-Encoding.

**Por qué importa:** Comprimir reduce el HTML un 70-80 %. Menos bytes es menos tiempo de descarga por página, y más páginas tuyas rastreadas con el mismo presupuesto.

**Qué hay que hacer:**

Activa gzip o brotli en tu servidor (Nginx: gzip on; Apache: mod_deflate) o ponte detrás de una CDN que lo haga por ti.

## Contenido que hoy la IA no puede leer

Estos textos se ven en el navegador pero NO están en el HTML que devuelve el servidor. Asegúrate de que, al terminar, todos aparezcan en el HTML inicial:

- "Reparación de bicicletas en Málaga"
- "Revisión completa en 24 horas."
- "Recogemos la bici en tu casa y te la devolvemos a punto."
- "Ajuste de cambios y frenos, centrado de ruedas, engrase y revisión de tornillería."
- "Cadena nueva de 11 o 12 velocidades, con comprobación del desgaste de piñones."
- "Purgado de los dos frenos, pastillas nuevas y ajuste de las manetas."
- "Montaje de bici nueva"
- "Si la compraste por internet, te la dejamos lista y ajustada a tu talla."
- "Más de 3.000 bicis revisadas desde 2016."
- "Presupuesto cerrado antes de tocar nada."

## Cómo hacer la imagen que se ve al compartir el enlace

Tu enlace necesita una imagen de 1200×630 px para Open Graph (Facebook, LinkedIn, WhatsApp, Slack) y otra para Twitter Card (X). Pueden ser el mismo archivo.

**Si el proyecto usa Next.js (App Router), genéralas desde el código** para que no se queden nunca obsoletas. Crea `app/opengraph-image.tsx`:

```tsx
import { ImageResponse } from "next/og";

export const alt = "Ciclos del Puerto";
export const size = { width: 1200, height: 630 };
export const contentType = "image/png";

export default function Image() {
  return new ImageResponse(
    (
      <div
        style={{
          width: "100%",
          height: "100%",
          display: "flex",
          flexDirection: "column",
          justifyContent: "center",
          padding: "80px",
          // Un degradado en diagonal da profundidad sin necesitar imágenes.
          background: "linear-gradient(135deg, #0b1020 0%, #1b1038 60%, #2a1458 100%)",
          color: "#ffffff",
          fontFamily: "sans-serif",
        }}
      >
        <div style={{ fontSize: 26, opacity: 0.75 }}>ciclosdelpuerto.example</div>
        <div style={{ marginTop: 32, fontSize: 64, fontWeight: 700, lineHeight: 1.08, letterSpacing: -2 }}>
          TU AFIRMACIÓN PRINCIPAL, LA MISMA QUE EL H1
        </div>
        <div style={{ marginTop: 34, fontSize: 28, color: "#c4b5fd", maxWidth: 940 }}>
          Una línea de apoyo: qué ofreces y para quién.
        </div>
      </div>
    ),
    size,
  );
}
```

Después crea `app/twitter-image.tsx` reexportando lo mismo, para que las dos tarjetas coincidan:

```tsx
export { default, alt, size, contentType } from "../opengraph-image";
```

Next emite entonces las etiquetas `og:image` y `twitter:image` solo. Define `metadataBase: new URL("https://TU-DOMINIO")` en el layout raíz para que las URLs salgan absolutas: las relativas las ignoran casi todos los rastreadores.

**Si el proyecto no usa Next.js**, exporta un PNG de 1200×630 de menos de 1 MB, ponlo en `/og-image.png` y declara las etiquetas a mano:

```html
<meta property="og:title" content="…">
<meta property="og:description" content="…">
<meta property="og:image" content="https://TU-DOMINIO/og-image.png">
<meta property="og:image:width" content="1200">
<meta property="og:image:height" content="630">
<meta property="og:url" content="https://TU-DOMINIO/">
<meta property="og:type" content="website">
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:title" content="…">
<meta name="twitter:description" content="…">
<meta name="twitter:image" content="https://TU-DOMINIO/og-image.png">
```

Las reglas que marcan la diferencia:

- Exactamente 1200×630 px. Otras proporciones se recortan y el texto se pierde.
- Legible en miniatura: la frase a 60 px o más, tres líneas como máximo.
- La imagen repite la promesa de la página. No es un logo sobre un fondo.
- URLs absolutas y con protocolo. Una ruta relativa falla sin avisar.
- Menos de 1 MB, en PNG o JPEG. WebP todavía no lo leen todos los rastreadores.
- Compruébalo en https://cards-dev.twitter.com/validator y pegando el enlace en un chat de Slack o WhatsApp contigo mismo.

## Cómo comprobar que está arreglado

Cuando termines, ejecuta estas comprobaciones y enséñame el resultado:

```bash
# 1. Esto es LITERALMENTE lo que ve un rastreador de IA (sin ejecutar JavaScript).
curl -sL "http://ciclosdelpuerto.example/" | sed 's/<script[^>]*>.*<\/script>//g; s/<[^>]*>//g' | tr -s ' \n' | head -60

# 2. El servidor no debe bloquear a los bots de IA (espera un 200 en todos).
curl -sL -o /dev/null -w "OAI-SearchBot: %{http_code}\n" -A "OAI-SearchBot" "http://ciclosdelpuerto.example/"
curl -sL -o /dev/null -w "Claude-SearchBot: %{http_code}\n" -A "Claude-SearchBot" "http://ciclosdelpuerto.example/"
curl -sL -o /dev/null -w "PerplexityBot: %{http_code}\n" -A "PerplexityBot" "http://ciclosdelpuerto.example/"

# 3. robots.txt no debe tener un Disallow que afecte a esos agentes.
curl -s "http://ciclosdelpuerto.example/robots.txt"
```

El objetivo es que el texto del punto 1 contenga todo el contenido importante de la página. Si ahí no aparece, para la IA no existe.

---

Informe generado por AI visibility analyzer · http://ciclosdelpuerto.example/ · 38/100

Cómo comprobar que ha funcionado

Arreglar es la mitad. Estos son los pasos para saber que cada arreglo ha llegado, en el orden en que conviene hacerlos, y solo los que tu análisis pide. Cada uno termina en una línea que dice cómo se ve cuando está bien: cuando la veas, lo tachas.

  1. Da de alta tu web en Google Search Console y en Bing Webmaster Tools

    Son las dos ventanas desde las que se ve tu web como la ven los buscadores. Casi todas las comprobaciones de abajo pasan por una de ellas, y es gratis.

    1. Entra en search.google.com/search-console y pulsa «Añadir propiedad».
    2. Elige «Dominio» (no «Prefijo de URL»): así cubre la web con y sin www, y por http y https.
    3. Google te da un registro TXT. Añádelo en la zona DNS de tu dominio, en el panel de donde lo compraste, y pulsa «Verificar». Puede tardar unos minutos.
    4. Después, en bing.com/webmasters, elige «Importar desde Google Search Console». Se verifica solo y te ahorras repetirlo. Bing es el índice del que tira Copilot.

    Está bien cuando Las dos consolas muestran tu dominio como verificado.

  2. Tu contenido llega sin ejecutar JavaScript

    Es el problema más grave de tu análisis: hoy, lo que lee una persona en tu web no está en el HTML que recibe el rastreador.

    1. Esta frase es tuya y hoy no le llega a la IA: «Reparación de bicicletas en Málaga». El comando de abajo la busca en el HTML que se sirve, sin navegador.
    2. En Search Console, abre «Inspección de URLs», pega tu dirección y pulsa «Probar URL publicada».
    3. Cuando termine, «Ver página probada» → pestaña «HTML». Busca con Ctrl+F una frase de tu página: tiene que estar ahí.
    En la terminal
    curl -s http://ciclosdelpuerto.example/ | grep -c -F "Reparación de bicicletas en Málaga"

    Está bien cuando El comando devuelve 1 o más. Si devuelve 0, la frase sigue sin llegar.

  3. Hay un sitemap y los buscadores lo han leído

    Tu web no tiene sitemap.xml. Sin él, los buscadores encuentran tus páginas cuando las encuentran, no cuando las publicas.

    1. Casi seguro que tu plataforma ya lo sabe hacer: WordPress lo genera solo en /wp-sitemap.xml, y Shopify y Wix en /sitemap.xml.
    2. Añade una línea al final de tu robots.txt: «Sitemap: http://ciclosdelpuerto.example/sitemap.xml» (o la dirección que te dé tu plataforma).
    3. En Search Console, «Sitemaps» → pega la dirección → «Enviar». En Bing Webmaster Tools, lo mismo en «Sitemaps».
    En la terminal
    curl -s -o /dev/null -w "%{http_code}\n" http://ciclosdelpuerto.example/sitemap.xml

    Está bien cuando El comando devuelve 200, y en Search Console el sitemap sale con estado «Correcto» y un número de páginas descubiertas.

  4. llms.txt responde con tu contenido

    No tienes llms.txt: el resumen de tu web pensado para que una IA la entienda sin recorrerla entera.

    1. Súbelo a la raíz, junto a robots.txt. Tiene que servirse como texto, no como una página de tu web.
    En la terminal
    curl -s http://ciclosdelpuerto.example/llms.txt | head -5

    Está bien cuando La primera línea empieza por «# » seguido del nombre de tu negocio. Si ves HTML o tu página de error, no se está sirviendo el archivo.

  5. Tus datos estructurados se leen sin errores

    Tu web no declara datos estructurados: la IA tiene que adivinar quién eres, qué vendes y dónde.

    1. Abre search.google.com/test/rich-results y pega http://ciclosdelpuerto.example/.
    2. Para ver todos los tipos, no solo los que Google premia con resultados enriquecidos, pásala también por validator.schema.org.

    Está bien cuando Los dos detectan tu Organization o LocalBusiness con nombre, dirección y contacto, sin errores. Los avisos amarillos no impiden nada.

  6. La prueba de verdad

    Todo lo anterior comprueba piezas. Esto comprueba el resultado.

    1. Vuelve a analizar tu web en https://gettarsier.com/es. El segundo análisis es gratis durante 30 días desde la compra, desde el mismo navegador.
    2. Dentro de dos o tres semanas, que es lo que tardan los rastreadores en volver, hazle a ChatGPT con búsqueda, a Perplexity y a Claude la pregunta que tu página responde, con tu ciudad o tu sector. Mira las fuentes que citan.

    Está bien cuando La nota sube, las dos columnas del comparador dicen lo mismo y, con el tiempo, tu web aparece entre las fuentes.

Todas las comprobaciones

ComprobaciónNotaResultado
La página responde correctamente100HTTP 200 en 15 ms.
robots.txt permite a los buscadores de IA100Ningún rastreador de IA de respuestas está bloqueado en robots.txt.
El servidor no bloquea a los bots de IA100El servidor responde igual a un bot de IA que a un navegador.
Sin etiquetas que impidan indexar100Sin restricciones de indexación.
Archivo llms.txt0No tienes /llms.txt.
Sitemap disponible0No se ha encontrado sitemap.xml ni está declarado en robots.txt.
Lo que ve la IA ≈ lo que ve una persona0La IA recibe el 0% del contenido que ve una persona (0 de 181 palabras).
Hay texto suficiente en el HTML00 palabras legibles sin ejecutar JavaScript.
Nada importante depende de JavaScript018 bloques de texto solo existen después de ejecutar JavaScript.
El HTML no es un cascarón vacío100El HTML llega con contenido escrito.
Alternativa sin JavaScript0No hay alternativa para quien no ejecuta JavaScript.
Título de la página100"Ciclos del Puerto" (17 caracteres).
Descripción de la página0No hay meta description.
Un único H1 descriptivo0No hay ningún H1 en el HTML servido.
Jerarquía de encabezados0No hay encabezados.
HTML semántico0La página está construida solo con <div>.
Texto alternativo en imágenes100La página no tiene imágenes.
Enlaces con texto descriptivo50No hay enlaces en el HTML.
Datos estructurados (JSON-LD)0No hay datos estructurados schema.org en la página.
Identidad declarada (quién eres)0No declaras quién está detrás de la web.
Metadatos Open Graph00 de 3 etiquetas Open Graph principales.
Tarjeta al compartir el enlace0No hay tarjeta ni imagen: el enlace se comparte como texto pelado.
URL canónica40No hay link rel=canonical.
Autoría y fecha de actualización60Sin autor declarado; sin fecha de actualización.
Secciones que responden preguntas reales0Ninguno de los 0 subtítulos está formulado como una pregunta.
Resumen directo al principio0No hay un párrafo introductorio con contenido.
Listas y tablas00 elementos de lista y 0 tablas.
Datos concretos y verificables00 datos cuantificados (precios, plazos, porcentajes) en el texto.
Bloque de preguntas frecuentes0No hay bloque de preguntas frecuentes.
Contenido actualizado50No hay ninguna referencia temporal en el contenido.
Velocidad de respuesta del servidor100El HTML tarda 15 ms en llegar completo.
Conexión segura (HTTPS)0La web se sirve por HTTP sin cifrar.
Compresión del HTML40El HTML se sirve sin comprimir.
Peso del documento HTML1004 KB de HTML.
Adaptado a móvil100Declara viewport responsive.
Idioma declarado100Idioma declarado: es.

¿Prefieres que lo hagamos nosotros?

Si no quieres implementarlo tú ni pelearte con tu desarrollador, mándanos este informe y te decimos qué cuesta dejarlo resuelto.

Resumen de gravedad: 3 críticos · 4 graves · 9 medios · 8 menores