Auditoría SEO Unificada — fibrolab.cl (v3 — 2026-04-28)

Re-auditoría con 8 subagentes especializados (Technical, Content/E-E-A-T, Schema, Sitemap, Performance, GEO, Local, Visual). Compara contra seo-audit-2026-04-27-v2.md (v1 día anterior). Auditoría hecha sobre el sitio LIVE en producción y cruzada con el árbol de archivos local que tiene cambios SIN DESPLEGAR.


Puntaje de Salud SEO: 61 / 100

Categoría Peso v3 v2 Δ Ponderado
SEO Técnico 22% 64 68 −4 14.08
Contenido / E-E-A-T 23% 59 54 +5 13.57
SEO On-Page (visual+local+sitemap) 20% 55 65 −10* 11.00
Datos Estructurados (Schema) 10% 71 68 +3 7.10
Rendimiento (CWV) 10% 58 60 −2 5.80
Búsqueda con IA (GEO) 10% 70 67 +3 7.00
Imágenes 5% 50 45 +5 2.50
Total 61.05

* La caída de "On-Page" refleja un desglose más granular esta vez: visual=62, local=44, sitemap=72. En v2 era un único score consolidado.

Hallazgo central: el equipo hizo cambios significativos en disco (functions.php +622 líneas, single-product.php reescrito, front-page.php 45 líneas, page-bombas/bordes/cobertor) pero ninguno está desplegado a producción. El score real al deploy + 3 fixes de panel (Rank Math/LiteSpeed) sería ~75/100.

Tipo de negocio: Negocio local híbrido — fábrica (Los Álamos 2538, La Pintana, RM) + área de servicio nacional. Vertical: construcción (HomeAndConstructionBusiness + LocalBusiness). RUT 77.424.952-4. Fundada 2020.


Δ Verificado vs v2 (2026-04-27)

✅ Resuelto en LIVE

Issue v2 Estado v3
/spa-y-jacuzzi/ competía con /spas/ (C3) PARCIAL: /spa-y-jacuzzi/ → 301 → /jacuzzi/. Ya no es duplicado. PERO /spas/ sigue 200 con canonical self → conflicto migrado a /spas/ vs /jacuzzi/ (ambos 200, ambos en sitemap). Sin redirect canónico.
/tienda2/ indexable (C2) PARCIAL: ahora 301 → /piscinas-de-fibra/. Eliminado de page-sitemap.xml. Sigue presente en product-sitemap.xml como primera entrada.
Author enumeration (M2) PARCIAL: robots.txt bloquea /?author= y /author/. El 301 va al home sin exponer username. Falta el filtro PHP.

🔄 Aún OPEN en LIVE (verificado nuevamente)

Issue Estado
C1 — Swiper render-blocking en <head> OPEN. En LIVE: <script src=".../swiper-bundle.min.js" data-no-defer="1"> sin defer/async. Hallazgo nuevo: functions.php local marca in_footer=true (línea 185), pero LiteSpeed Cache lo está sobreescribiendo y subiéndolo al <head>. El deploy del archivo no basta — requiere ajuste en panel LiteSpeed.
C5 — Contradicción +500 vs +1.000 instalaciones OPEN en LIVE. Fix en disco (front-page.php) pendiente deploy.
H1 — Google Fonts + Font Awesome render-blocking OPEN. Sin técnica media="print" onload. cdnjs FA ~19 KB + 3 familias Fonts síncronas.
H2 — H1 enterrado en home OPEN en LIVE — confirmado visualmente. El hero no tiene <h1> HTML; el único <h1> aparece en byte 103.826 de 110.000 (penúltimo heading). Fix en disco pendiente deploy.
H4 — /nosotros/ thin sin fundador PARCIAL: ahora 495 palabras (era 289). Sigue thin (mínimo 600). Fundador continúa sin nombre público.
H5 — Service schema faltante PARCIAL en LIVE: presente en /piscinas-de-fibra/, /bombas-de-calor/, /jacuzzi/. Sigue ausente en /spas/, /bordes-de-piscina/, /paneles-solares/. Fix en disco pendiente deploy.
H6 — FAQPage en /bordes-de-piscina/ OPEN. La página tiene 5 items FAQ HTML sin emitir JSON-LD.
H7 — Article en páginas comerciales OPEN. Rank Math sigue emitiendo Article en /spas/, /jacuzzi/, /bombas-de-calor/, /bordes-de-piscina/, /paneles-solares/, /nosotros/.
H8 — Testimonios reciclados sin fechas AGRAVADO. Detectado: testimonio de Katherine Meller sobre "bomba de calor" aparece en /jacuzzi/ (contexto incorrecto). Isabela Mora habla de "borde atérmico" en /jacuzzi/. Patrón clásico de testimonios manipulativos según QRG Sept 2025.
H9 — Sin captación de Google Reviews OPEN. fl-reviews.php solo captura WC reviews on-site.
H10 — 0 service-area pages publicadas OPEN AGRAVADO. local-sitemap.xml solo apunta a locations.kml. Cero comunas.
M3 — IndexNow ausente OPEN. /indexnow.txt 404.
M4 — sameAs solo FB+IG OPEN. Sin GBP, YouTube, LinkedIn, Wikidata.
M5 — FAQPage /bombas-de-calor/ cubre solo 4 de 5 Q-A OPEN.
M7 — Sin AboutPage / Organization.taxID / founder OPEN.
M9 — Sin dateModified OPEN.
M10 — Tono coloquial / AI patterns OPEN. /reparacion/ con redacción circular.
M11 — Boilerplate garantías idéntico OPEN. Verbatim entre home y /nosotros/.
M13 — Sin embed Google Maps OPEN.
M14 — Geo 5 decimales OPEN (precisión OK, posición pin no verificada).
M15 — priceRange "$$" OPEN.
M6 — llms.txt URLs rotas PARCIAL. /bordes-de-piscinas/ y /cotizar/ arreglados. Nuevas roturas detectadas: /spa-y-jacuzzi/ (301 → /jacuzzi/) y /cobertor-de-seguridad/ (301 → /modelo/cobertor-de-seguridad-para-piscinas/).

🔴 CRÍTICO

C1. Meta description "más de 10 años de experiencia" es factualmente falsa

Hallazgo nuevo no detectado en v2. La meta description del home y de /revestimiento-fibra-de-vidrio/ afirma "más de 10 años de experiencia". El propio <h1> del home dice "desde 2020" (= 6 años en 2026). Misma contradicción aparece en OG description y Twitter card.

Impacto: Riesgo directo de Trustworthiness. Un quality rater verifica "About this result" → ve texto contradictorio en una sola página.

Cómo: Rank Math → Titles & Meta → Homepage description: cambiar a "desde 2020" o "+5 años de experiencia". Revisar también page-revestimiento-fibra-de-vidrio.php:26. 5 minutos.

C2. Swiper render-blocking — fix en disco pero LiteSpeed lo sobreescribe

Hallazgo refinado. functions.php (disco) marca Swiper con in_footer=true (línea 185) y excluye de defer/optimize de LiteSpeed (líneas 219-238). En LIVE el <script> sigue en <head> sin defer porque LiteSpeed Cache mueve scripts excluidos al head para evitar conflictos. El deploy del archivo solo no resuelve el issue.

Cómo: 1. Desplegar functions.php. 2. En LiteSpeed Cache → Page Optimization → JS Settings: confirmar que swiper-bundle.min.js no esté en una regla que lo fuerce al head. Idealmente usar defer desde el enqueue:

// En functions.php, en wp_enqueue_script: usar argumento $in_footer = true Y filtro de defer:
add_filter( 'script_loader_tag', function( $tag, $handle ) {
    if ( $handle === 'swiper' ) {
        return str_replace( '<script ', '<script defer ', $tag );
    }
    return $tag;
}, 10, 2 );
  1. Si Swiper debe estar listo antes de DOMContentLoaded para evitar FOUC: pintar el primer slide como <picture> estático y diferir Swiper.

Impacto LCP esperado: −0.4 a −0.8 s.

C3. /spas/ y /jacuzzi/ en competencia (C3 v2 migrado)

Tras el 301 de /spa-y-jacuzzi//jacuzzi/, ahora /spas/ (200, canonical self, en sitemap) y /jacuzzi/ (200, canonical self, en sitemap) compiten por la misma intent ("hot tub / spa / jacuzzi"). El home enlaza a /spas/; /jacuzzi/ es la página más rica.

Cómo: Decidir canónica única. Recomendado: 301 /spas//jacuzzi/. Actualizar enlaces internos. Sacar /spas/ del sitemap.

C4. Contradicción +500 vs +1.000 instalaciones (C5 v2 sin desplegar)

Persiste en LIVE: page-nosotros.php:47 muestra "+500 Proyectos"; front-page.php:331 afirma "+1.000 instalaciones". Fix existe en disco — desplegar.

Cómo: Deploy de front-page.php + cambio del data-counter en page-nosotros.php:47 a 1000 (o aclaración explícita "+500 piscinas / +1.000 trabajos totales").

C5. /producto/minipiscina/ sin Product schema

Hallazgo nuevo. Single-product LIVE emite solo CollectionPage (Rank Math) — sin Product, sin Offer, sin AggregateRating. Sin schema Product no hay elegibilidad para rich results de Google Shopping.

Cómo: Desplegar /wp-content/themes/fibrolab/woocommerce/single-product.php (reescrito). Verificar que fibrolab_schema_product se dispare en is_singular('product').

C6. /page/2/ duplicado exacto del home, indexable

Hallazgo nuevo. https://www.fibrolab.cl/page/2/ retorna 200, <meta name="robots" content="follow, index">, canonical apunta al home. Contenido prácticamente idéntico al home (119.614 vs 119.725 bytes). Señal contradictoria: canonical correcto pero indexable.

Cómo: En functions.php:

add_filter( 'rank_math/robots', function( $robots ) {
    if ( is_paged() ) { $robots[] = 'noindex'; }
    return $robots;
});

C7. Imágenes generadas por ChatGPT en producción (C4 v2)

9 archivos ChatGPT-Image-Apr-*.png confirmados en /wp-content/uploads/2025/04/. Si están en galerías de productos, contradicen "fábrica real" → señal E-E-A-T negativa directa.

Cómo: find /root/Proyecto_compartido/fibrolab.cl/wp-content/uploads/ -iname "ChatGPT-Image*" -delete y reemplazar por fotos reales en wp-admin.


🟠 ALTO

H1. CSS render-blocking (Google Fonts 3 familias + Font Awesome cdnjs)

Sin técnica media="print" onload. Tamaño FA ~19 KB comprimido + latencia 2 conexiones externas.

Cómo: Patrón print/onload swap o reemplazar FA por SVGs inline para los 4-6 íconos efectivamente usados:

<link rel="stylesheet" href="..." media="print" onload="this.media='all'">
<noscript><link rel="stylesheet" href="..."></noscript>

H2. Hero PNG de 1.75 MB como fallback activo

Existe otono.png.webp (148 KB) servido vía <picture>, pero el <img src> apunta al PNG. Browsers que negocien el WebP están bien; el PNG sigue descargable y es la imagen que algunos parsers de Lighthouse miden como LCP.

Cómo: Convertir otono.png a AVIF (target <80 KB) y WebP (existe). Cambiar <img src> al WebP. Activar LiteSpeed Image Optimization para el resto del media library (64 imágenes aún sin WebP).

H3. Cache-Control no-store, private en páginas de producto WooCommerce

Hallazgo nuevo. /producto/* devuelve cache-control: no-store, private aunque x-litespeed-cache: hit. El cliente no cachea. TTFB observado en /producto/minipiscina/: 1.71 s.

Cómo: Verificar en LiteSpeed Cache → Cache → Do Not Cache que las páginas de producto no estén excluidas para cookies de carrito vacío. Investigar si WC fuerza cookie de sesión a usuarios anónimos.

H4. /tienda2/ sigue en product-sitemap.xml

Tras el 301, sigue siendo la primera entrada del sitemap de productos.

Cómo: Rank Math → Sitemap → Excluir página /tienda2/. 5 minutos.

H5. Service schema faltante en /spas/, /bordes-de-piscina/, /paneles-solares/

El fix en fibrolab_schema_service (functions.php disco) cubre algunos pero no todos. Desplegar y verificar mapeo de slugs.

H6. FAQPage en /bordes-de-piscina/ sin emitir

La página tiene 5 items FAQ HTML ricos (200+ palabras por respuesta) que no son machine-readable. Pierde elegibilidad SGE/AI Overviews.

Cómo: Añadir bloque JSON-LD antes de get_footer():

$faq = [
  ['q'=>'¿Qué es un borde atérmico?', 'a'=>'Los bordes atérmicos son piezas prefabricadas en hormigón polimérico reforzado...'],
  // ... 5 items
];
$schema = ['@context'=>'https://schema.org','@type'=>'FAQPage','mainEntity'=>array_map(fn($i)=>['@type'=>'Question','name'=>$i['q'],'acceptedAnswer'=>['@type'=>'Answer','text'=>$i['a']]],$faq)];
echo '<script type="application/ld+json">'.wp_json_encode($schema, JSON_UNESCAPED_SLASHES|JSON_UNESCAPED_UNICODE).'</script>';

H7. Rank Math Article en páginas comerciales

6 páginas comerciales (/spas/, /jacuzzi/, /bombas-de-calor/, /bordes-de-piscina/, /paneles-solares/, /nosotros/) emiten @type: Article. Misrepresenta el propósito.

Cómo: En cada página, Rank Math → Schema → cambiar a WebPage/CollectionPage. O filtro:

add_filter( 'rank_math/json_ld', function( $data, $jsonld ) {
    if ( is_page( ['spas','jacuzzi','bombas-de-calor','bordes-de-piscina','paneles-solares','nosotros'] ) ) {
        unset( $data['richSnippet'] );
    }
    return $data;
}, 99, 2 );

H8. Testimonios fuera de contexto en /jacuzzi/ (H8 v2 agravado)

Testimonio de Katherine Meller habla de "bomba de calor" en página de jacuzzi. Isabela Mora menciona "borde atérmico" en página de jacuzzi. Patrón QRG Sept 2025 = manipulativo.

Cómo: Anclar cada testimonio a su servicio. Añadir fecha + comuna + foto verificable. Mínimo 3 testimonios contextuales por página, no boilerplate rotado.

H9. /paneles-solares/ afirmación sin fuente "hasta 90%"

"Reduce hasta un 90% tu cuenta de electricidad" sin referencia técnica, sin perfil del cliente. Sin certificación SEC visible. Recomendación "Off Grid es la mejor opción" sin criterio. Riesgo de contenido oportunista fuera del core business.

Cómo: Citar fuente (CNE / Fraunhofer / SEC), agregar disclaimer "depende del consumo y radiación zonal", y aclarar el partner instalador SEC si existe.

H10. /revestimiento-super-brite/ thin (601 palabras) sin H1

Hallazgo nuevo. La primera sección es un H2; sin diferenciador vs fibra de vidrio, sin precios m², sin proceso. Genérico.

Cómo: Añadir H1, expandir a 800+ palabras con tabla comparativa Super Brite vs fibra de vidrio, costo por m² orientativo, fotos del proceso.

H11. 0 service-area pages publicadas + local-sitemap solo con KML (H10 v2)

local-sitemap.xml solo apunta a locations.kml. Cero comunas. template-comuna.php listo. Es la mayor brecha local.

Cómo: Lanzar 4 comunas iniciales del Gran Santiago (Maipú, Puente Alto, La Florida, San Bernardo) usando template-comuna.php, cada una con 1 testimonio real + fl_comuna_distancia_km. Después: Las Condes, Viña del Mar, Quilpué, Rancagua. No superar 15 sin instalación citable por ciudad.

H12. Sin proceso de captación de Google Reviews (H9 v2)

Sin shortlink GBP en flujo post-venta. La regla 18-day de Sterling Sky implica caída en local pack si pasan >3 semanas sin nueva review.

Cómo: En fl-reviews.php, tras WC order completed + 7 días, añadir email/WhatsApp con https://g.page/r/XXXXX/review. Meta: 2+ reviews/mes.


🟡 MEDIO

M1. Redirect /tienda2/ apunta a /piscinas-de-fibra/ (semánticamente incorrecto)

Debería redirigir a /tienda/ (shop archive real) o recibir noindex + canonical.

M2. Sin hreflang es-CL ni x-default

Sitio nacional chileno sin geotargeting explícito. Solo og:locale=es_CL.

<link rel="alternate" hreflang="es-CL" href="https://www.fibrolab.cl/" />
<link rel="alternate" hreflang="x-default" href="https://www.fibrolab.cl/" />

M3. Sin Vary: Accept-Encoding en headers

LiteSpeed → Cache → Browser Cache → activar Vary, o .htaccess:

Header append Vary Accept-Encoding

M4. priceRange "$$" poco informativo (M15 v2)

Cambiar a "Desde CLP 1.790.000" o rango explícito CLP.

M5. NAP inconsistente: 3 variantes de name

<title> home: "Fabrica de Piscinas FIBROLAB". Schema/footer: "Fibrolab". Añadir alternateName en schema:

"name": "Fibrolab",
"alternateName": "Fábrica de Piscinas Fibrolab"

M6. Schema LocalBusiness incompleto: faltan taxID, founder, hasMap

RUT 77.424.952-4 solo en footer HTML, no en JSON-LD. Sin hasMap (URL GBP). Sin nombre del fundador.

M7. sameAs: ausente GBP, YouTube, LinkedIn, Wikidata (M4 v2)

Correlación YouTube ↔ citaciones AI ~0.737. Crear canal con 3 videos + perfil LinkedIn corporativo.

M8. llms.txt con 2 URLs en 301 (M6 v2 parcial)

M9. Sin dateModified (M9 v2)

Bajo expectativas freshness Dec 2025, páginas con precios lucen estáticas.

M10. Embed Google Maps ausente (M13 v2)

CSP ya permite frame-src google.com. Añadir iframe en footer//contacto/.

M11. Boilerplate garantías idéntico home/nosotros (M11 v2)

3 cards de garantía verbatim entre front-page.php:302-318 y page-nosotros.php:167-191.

M12. /reparacion/ redacción circular AI-generated (M10 v2)

"Muchas veces la suerte no se encuentra de nuestro lado..." → reescribir con plazos, materiales, precios orientativos.

M13. /spas/ sin H1 propio + sin diferenciador técnico

Empieza con "SPA Hot Tub" sin explicar diferencia. Sin specs jets/litros/potencia.

M14. /instrucciones-de-uso/ (410 palabras) — solo enlace a PDF

Inserir contenido del manual como HTML inline (filtrado, química, mantenimiento semanal) para indexación.

M15. post-sitemap.xml estancado 17 meses

Lastmod 2024-11-17. Reactivar blog (1 post/mes en temporada): "precio piscina fibra Chile 2026", "mantenimiento invierno", comparativas Aquark.

M16. product_cat-sitemap.xml solo 1 URL

Solo /producto/minipiscina/. Faltan categorías esperadas (piscinas, bombas, spas, cobertores). Revisar visibilidad de catálogo en WooCommerce.

M17. local-sitemap.xml indexa locations.kml no páginas

Si no hay comunas publicadas, desactivar el sub-sitemap en Rank Math hasta tenerlas.

M18. IndexNow ausente (M3 v2)

/indexnow.txt 404. Instalar Bing URL Submissions Plugin o hook transition_post_status.

M19. Author entity = "Admin" en /nosotros/

JSON-LD emite "name":"Admin" como Person. Para AI E-E-A-T, "Admin" no aporta credibilidad. Cambiar display name del usuario WP a nombre real del responsable.

M20. /financiamiento-salvum/ no identifica operador en H1

Salvum (operado por Forum Servicios Financieros S.A.) — la CMF exige identificar al acreedor en prominencia. H1 actual: "Financiamiento de hasta el 100%".


🟢 BAJO

ID Hallazgo Fix
L1 X-XSS-Protection: 1; mode=block obsoleto Eliminar header en LiteSpeed/Apache
L2 PDF de manual link no-www (page-instrucciones-de-uso.php:41) Añadir www.
L3 Inconsistencia formato teléfono (+56 9 8225 6792 vs +56982256792) Estandarizar
L4 data-counter="6" (años experiencia) hardcoded en page-nosotros.php:63 <?php echo date('Y') - 2020; ?>
L5 paneles-solares-familia-1024x683.png apariencia stock-photo Verificar / reemplazar
L6 RSS feed link en <head> con post sitemap stale Decidir si publicar blog o remove_action('wp_head','feed_links',2)
L7 64 imágenes sin WebP/AVIF Activar LiteSpeed Image Optimization
L8 <noscript> opacity hack WC Default WC, no SEO issue
L9 WhatsApp bubble z-index check en mobile Testear superposición con CTAs
L10 /nosotros/ H1 genérico ("Nosotros") Cambiar a "Fábrica chilena de piscinas de fibra de vidrio"

Inventario Schema (LIVE — actualizado v3)

Página @types live Service FAQPage Notas
/ LocalBusiness, HomeAndConstructionBusiness, WebSite, WebPage, ImageObject n/a n/a OK, sameAs incompleto
/piscinas-de-fibra/ Article, Service, FAQPage, BreadcrumbList Article a remover
/bombas-de-calor/ Article, Service, FAQPage, BreadcrumbList ⚠️ 4/5 Q-A Article a remover
/spas/ Article, FAQPage, BreadcrumbList Article + Service faltantes
/jacuzzi/ Article, Service, FAQPage, BreadcrumbList Article a remover
/bordes-de-piscina/ Article, BreadcrumbList + Article a remover
/cobertor-de-seguridad/ (301 → producto) n/a n/a Redirige a producto WC
/paneles-solares/ Article, FAQPage, BreadcrumbList Article + Service faltantes
/nosotros/ Article, BreadcrumbList n/a n/a + AboutPage a añadir
/producto/minipiscina/ CollectionPage, BreadcrumbList n/a n/a Sin Product schema

Inventario Sitemap (v3)

Sub-sitemap URLs Δ vs v2 Issues
page-sitemap.xml 12 −1 /tienda2/ removido ✅; /spas/ y /jacuzzi/ ambos presentes
product-sitemap.xml 30 0 Primera entrada sigue /tienda2/
product_cat-sitemap.xml 1 0 Solo /producto/minipiscina/
post-sitemap.xml 6 0 Lastmod 2024-11-17 (stale)
local-sitemap.xml 1 (KML) 0 Sin páginas reales

Plan de acción priorizado

Hoy / 1 día — Deploy + 3 ajustes de panel (impacto +12-14 puntos de score)

  1. Deploy del árbol local (functions.php, front-page.php, single-product.php, page-bombas-de-calor.php, page-bordes-de-piscina.php, page-cobertor-de-seguridad.php, assets/) — resuelve H2/C4/C5/H5(parcial)/M5(parcial).
  2. Rank Math → Titles & Meta → Home description: cambiar "10 años" por "desde 2020". (C1)
  3. Rank Math → Sitemap → Excluir /tienda2/ del product-sitemap. (H4)
  4. LiteSpeed Cache → JS Settings: validar que Swiper no se fuerce al head; añadir defer por filtro PHP. (C2)

1 semana — Críticos restantes + altos

  1. 301 /spas//jacuzzi/. (C3)
  2. noindex en is_paged(). (C6)
  3. Eliminar ChatGPT-Image-*.png y reemplazar fotos. (C7)
  4. Filtro Rank Math para suprimir Article en páginas comerciales. (H7)
  5. Optimizar PNG hero a AVIF + WebP (eliminar fallback PNG 1.75 MB). (H2)
  6. Investigar Cache-Control: no-store en productos. (H3)
  7. Añadir FAQPage JSON-LD a /bordes-de-piscina/. (H6)
  8. Anclar testimonios al servicio correcto (eliminar Katherine Meller / Isabela Mora de /jacuzzi/). (H8)
  9. Añadir disclaimer / fuente al "90%" de /paneles-solares/. (H9)

1 mes — Altos restantes + medios

  1. Publicar 4 service-area pages: Maipú, Puente Alto, La Florida, San Bernardo. (H11)
  2. Implementar shortlink GBP en flujo post-venta. (H12)
  3. Pattern media="print" onload para fonts/FA. (H1)
  4. Expandir /nosotros/ con fundador, RUT inline, anécdota 2020, certificaciones. Añadir AboutPage schema + Organization.taxID/founder. (M6)
  5. Añadir GBP/YouTube/LinkedIn a sameAs. Crear canal YouTube con 3 videos. (M7)
  6. Embed Google Maps en footer. (M10)
  7. Reescribir /reparacion/ y /spas/ con specs reales. (M12, M13)
  8. Inline contenido del manual en /instrucciones-de-uso/. (M14)
  9. Añadir hreflang es-CL + x-default. (M2)
  10. Corregir 2 URLs en llms.txt + dirección completa. (M8)
  11. Implementar IndexNow. (M18)
  12. Reactivar blog: 1 post/mes en temporada. (M15)
  13. Cambiar author entity de "Admin" a nombre real. (M19)

Tracking


Limitaciones del reporte