# 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 `
` | **OPEN**. En LIVE: `';
```
### 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:
```php
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`.
```html
```
### 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
`` home: "Fabrica de Piscinas FIBROLAB". Schema/footer: "Fibrolab". Añadir `alternateName` en schema:
```json
"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)
- `/spa-y-jacuzzi/` → reemplazar por `/jacuzzi/`
- `/cobertor-de-seguridad/` → reemplazar por `/modelo/cobertor-de-seguridad-para-piscinas/` o eliminar
- Añadir dirección completa "Los Álamos 2538, La Pintana, RM" (hoy truncada).
### 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` | `` |
| L5 | `paneles-solares-familia-1024x683.png` apariencia stock-photo | Verificar / reemplazar |
| L6 | RSS feed link en `` 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 | `