Auditoría SEO — fibrolab.cl
Fecha: 2026-04-29 URL: https://www.fibrolab.cl/ Tipo de negocio: Local Service / Manufacturer híbrido (fábrica de piscinas de fibra de vidrio + instalación nacional) Stack: WordPress + WooCommerce + Rank Math + LiteSpeed Cache + GTM (GTM-W6DGGKK) + PixelYourSite Idioma: es-CL NAP: Fibrolab · Los Álamos 2538, La Pintana, Región Metropolitana · +56 9 8225 6792 · RUT 77.424.952-4
SEO Health Score — 68 / 100
| Categoría | Peso | Score | Ponderado |
|---|---|---|---|
| Technical SEO | 22% | 74 | 16.28 |
| Content Quality / E-E-A-T | 23% | 61 | 14.03 |
| On-Page SEO | 20% | 70 | 14.00 |
| Schema / Datos estructurados | 10% | 78 | 7.80 |
| Performance (CWV) | 10% | 60 | 6.00 |
| AI Search Readiness (GEO) | 10% | 61 | 6.10 |
| Imágenes | 5% | 75 | 3.75 |
| Total | ~68 |
Local SEO Score (informativo, fuera de la fórmula): 61 / 100 — debilidad principal: ausencia de embed de Google Maps y sameAs apuntando al GBP.
Plan de acción priorizado
CRÍTICO (esta semana)
- Garantía contradictoria 5 años vs 1 año — Home/Nosotros declaran "Garantía 5 años" mientras
/reparacion/dice "Garantía 1 año". Bajo Ley 19.496 esto es ambiguo legalmente y el QRG de Google lo penaliza como inconsistencia de Trustworthiness. Aclarar alcance: 5 años estructural de fabricación / 1 año servicio de reparación. - FAQ de
/reparacion/con contenido genérico — Las 4 respuestas (~280 palabras totales, mínimo recomendado 800) contienen frases auto-referenciales sin información técnica ("Fibrolab hace las cosas bien y por consiguiente vale totalmente la pena"). Marcador clásico QRG Sept-2025 de "unhelpful content". Reescribir con proceso real: inspección, marca de gel coat, tiempo de cura, plazo de llenado. - Sin referencia a Sernac / derechos del consumidor — Requisito legal en Chile para venta a consumidor sobre $100K CLP y gap de Trustworthiness.
@idLocalBusiness vs Organization desincronizados — Rank Math emiteOrganization @id=#organizationy el tema emiteLocalBusiness @id=#localbusiness. Google los trata como entidades distintas. Fix: filtrorank_math/json_ldpara alinear el@id.- IndexNow no configurado — Rank Math Pro lo soporta nativo; archivo de verificación devuelve 404. Configurar en Rank Math → General → IndexNow para notificación automática a Bing/Yandex.
ALTO (2 semanas)
- jQuery 3.7.1 sin defer en
<head>— Render-blocking confirmado (functions.php:175). Único impacto más alto en LCP móvil. Excluir de defer LiteSpeed solo si rompe; alternativa: cargar en footer. - CSS crítico no inlineado —
fibrolab.css271 KB, 11.047 líneas, blockea el render. Inline ~4 KB ATF enwp_headpriority 1 + diferir el resto. Estimado: −800 ms a −1.4 s en LCP móvil. - 3 familias Google Fonts (Montserrat + Nunito + Poppins) — Poppins solo se usa en precios ATB; quitar y self-host Montserrat + Nunito (WOFF2 subset latin). Estimado: −400 ms en FCP móvil.
- 5 nodos
Serviceconimagevacío —page-reparacion,page-jacuzzi,page-spas,page-revestimiento-super-brite,page-cobertor-de-seguridadquedan sin imagen en el JSON-LD. Cargar URLs reales en el array$servicesdefibrolab_schema_service(). - Sin embed de Google Maps en sitio — Cero
iframede Maps en cualquier template. Es el signal de GBP más alto y ausente. Embed mínimo en/contacto/y/nosotros/. - Página
/nosotros/sin equipo nombrado ni credenciales — ~350 palabras (mínimo 500-600 para "About"). Agregar al menos un perfil con nombre, rol, años de oficio, foto. Sumar número SEC contractor si lo hay. - Testimonios sin comuna — Los 10 testimonios del home llevan nombre + apellido pero no la comuna. La comuna es un signal local fuerte en Chile y un anchor geo para AI overviews.
/spas/cuerpo delgado — ~400 palabras vs 800 mínimo. Sin tabla de specs (jets, capacidad, dimensiones, kW, °C). La tabla por sí sola sería el principal target de citación AI.- Tipo
Manufacturerausente del LocalBusiness — Fabrican producto propio. Cambiar@typea["Manufacturer", "HomeAndConstructionBusiness", "LocalBusiness"]. Diferenciador vertical y E-E-A-T verificable. AggregateRatingausente del LocalBusiness — El sistema interno (fl-reviews.php) está bien construido y respeta políticas (provenance + warning anti-fake). Importar reviews reales de WhatsApp/GBP a los top 3 productos para activar el bloque rich result.
MEDIO (1 mes)
- Título home sin tilde en "Fábrica" —
<title>Fabrica de Piscinas FIBROLAB...debe ser "Fábrica". OG arrastra el mismo error. - Meta description "6 años" vs OG "10 años" — Inconsistencia entre snippet visible (6) y OG (10). Unificar.
- GTM dispara en
<head>— Mover el snippet justo después de<body>(el noscript ya está ahí). Reduce parser-block en INP móvil. Disallow: /wp-json/wp/v2/usersmal ubicado — Está fuera del bloqueUser-agent: *. Reordenar en robots.txt.- Postal code
8830000aparenta placeholder — La Pintana usa códigos en rango 8820xxx. Verificar contra Correos de Chile y corregirfunctions.php:303. Postal code incorrecto rompe matching de citaciones. priceValidUntilcon rollover anual — Cambiardate('Y-12-31')pordate('Y-12-31', strtotime('+1 year'))enfibrolab_schema_product().- Tabla comparativa fibra vs hormigón vs proyectado — Sin tabla con tiempo instalación, mantenimiento, vida útil, rango de precio CLP, resistencia a cloro. Es el #1 target citable para "¿qué piscina comprar en Chile?".
- Pasajes definitorios "first-40-words" —
/piscinas-de-fibra/y/spas/abren con banner promocional, no con definición. Insertar bloque<section>140-160 palabras antes del grid de productos. Activa AI Overviews y Perplexity. Speakableschema ausente — AgregarspeakableSpecificationapuntando al CSS selector del nuevo párrafo definitorio. Una línea por página.llms.txtincompleto — Existe (bien), pero faltan URLs de/spas/,/jacuzzi/,/reparacion/,/nosotros/, sección## FAQ, campo## Last-Updatedy declaración de licencia legible (RSL/CC)./cobertor-de-seguridad/200 pero ausente del sitemap — Decidir: agregar al sitemap o 301 al producto canónico./bordes/vs/bordes-de-piscina/— Posible duplicado. Resolver con 301 al canónico.local-sitemap.xmlcon KML único —locations.kmlno es indexable como página. Quitar o reformular.- Diferencia spa vs jacuzzi sin definir — Query alta demanda completamente sin respuesta en el sitio. Agregar bloque definitorio en
/spas/o/jacuzzi/. - Footer sin política de privacidad ni T&C — Obligación bajo Ley 21.096 (datos personales) y signal Trust básico.
BAJO (backlog)
- Slider hero auto-rotate 3000 ms — subir a 5000–6000 ms (lectores es-CL necesitan ~5 s).
- CSP con
unsafe-inline/unsafe-eval— inevitable con GTM/Woo, documentar. - Alt text de galerías genéricos ("Instalación Fibrolab N") — agregar comuna y modelo.
WebSiteschema sinSearchAction— agregar bloquepotentialActionpara Sitelinks Search Box.- Tono FAQ en
/piscinas-de-fibra/mezcla registro hiperformal con coloquial — homogeneizar. - Telefono ausente del header móvil — para conversión local (call-to-call).
- Cabecera
DisallowparaBingbotno explícita — agregarAllow: /por hygiene.
Detalle por categoría
1. Technical SEO — 74/100
PASS:
- HTTPS + HSTS preload (max-age=31536000; includeSubDomains; preload).
- CSP completa, X-Frame-Options, X-Content-Type-Options, Permissions-Policy.
- Redirects 301: http→https, non-www→www.
- LiteSpeed cache sirviendo x-litespeed-cache: hit.
- robots.txt con AI bots (GPTBot, OAI-SearchBot, ClaudeBot, PerplexityBot, Google-Extended) explícitamente permitidos; CCBot bloqueado.
- Hreflang es-CL + x-default autorreferenciados, correctos para sitio monolingüe.
- Canónicos auto-referenciados; HTTP 200 en todas las URLs muestreadas.
- Renderizado SSR completo; contenido clave en primeros 3.000 bytes.
- Todas las imágenes con width/height explícitos.
Gaps:
- jQuery sin defer (HIGH), IndexNow no configurado (HIGH).
- Title sin tilde, meta desc inconsistente (MEDIUM).
- Disallow: /wp-json/wp/v2/users fuera del bloque User-agent: * (MEDIUM).
2. Content Quality / E-E-A-T — 61/100
| Factor | Score |
|---|---|
| Experience | 55 |
| Expertise | 58 |
| Authoritativeness | 42 |
| Trustworthiness | 68 |
Fortalezas: RUT visible, dirección física verificable, 1.000+ instalaciones reclamadas, fotos reales WhatsApp en testimonios, contenido técnico genuino en /bombas-de-calor/ (COP, modulación inverter, intercambiador titanio, regla 0.25–0.3 kW/m³).
Debilidades: Cero personal nombrado en /nosotros/, contradicción de garantía, FAQs genéricas en /reparacion/, sin Sernac, sin tabla comparativa, sin precio en repair, "muchos años" inconsistente con foundingDate 2020.
3. Schema / Datos estructurados — 78/100
Bien hecho:
- Rank Math Product/Article/BC suprimidos vía filtro → sin duplicados.
- Service nodes referencian provider: #localbusiness correctamente.
- WooCommerce native suprimido vía woocommerce_structured_data_product.
- aggregateRating condicional a reviews reales en DB → policy-compliant.
- BreadcrumbList salta home/404 correctamente.
Pendiente: Alinear @id Rank Math Org / theme LocalBusiness, 5 imágenes vacías en Service, priceValidUntil rollover, agregar Manufacturer al type array, SearchAction, Speakable.
4. Sitemap — PASS (47 URLs total)
| Sitemap | URLs | Lastmod |
|---|---|---|
| post-sitemap | 6 | 2024-11-17 (stale) |
| page-sitemap | 11 | 2026-04-29 |
| product-sitemap | 29 | 2026-04-22 |
| local-sitemap | 1 (KML) | 2026-04-29 |
Todas las 47 URLs devuelven 200. Sin thin-content gate (no hay páginas-ciudad). Páginas faltantes: /cobertor-de-seguridad/, /instrucciones-de-uso/, /bordes/ duplicado.
5. Performance / CWV — 60/100 (estimado)
| Métrica | Estimado mobile |
|---|---|
| LCP | 3.2 – 5.0 s (Needs Improvement / Poor) |
| FCP | 1.8 – 2.8 s |
| TTFB | 300 – 700 ms |
| INP (proxy) | 200 – 350 ms |
| CLS | 0.05 – 0.18 (borderline) |
Tres cuellos de botella: (1) chain CSS render-blocking (Google Fonts + Font Awesome CDN + 271 KB stylesheet), (2) jQuery sync en head, (3) GTM en head.
Bien hecho: Hero <picture> con WebP imagesrcset + fetchpriority=high + <link rel=preload>. Imágenes con dimensiones. font-display: swap.
Riesgo: Si LiteSpeed no generó .webp para otono.png/otonom.png, el preload apunta a 404 y el LCP empeora a worst-case.
6. GEO / AI Search — 61/100
| Plataforma | Score |
|---|---|
| Google AI Overviews (es-CL) | 58 |
| ChatGPT Search | 55 |
| Perplexity | 65 |
| Bing Copilot | 50 |
llms.txt existe (ventaja sobre competencia chilena). FAQPage en 5 páginas. Pero pasajes definitorios ausentes para 4 de 5 queries de alta demanda: "qué es piscina de fibra", "cuánto dura", "cuánto cuesta instalar Chile", "spa vs jacuzzi". La única cita-ready es el bloque mecanístico de /bombas-de-calor/.
7. Local SEO — 61/100
NAP consistente entre footer/schema/front-page (formato del teléfono varía pero E.164 correcto en schema). Schema LocalBusiness con geo, areaServed (RM + Valparaíso + O'Higgins + Maule + Chile), openingHoursSpecification, foundingDate. Sistema de reviews interno bien construido en fl-reviews.php con guardas anti-fake.
Gap mayor: Sin Maps embed, sin GBP URL en sameAs, sin AggregateRating activo, sin pasajes para queries locales tipo "fábrica de piscinas Santiago".
8. Visual / ATF (mobile + desktop)
Screenshots guardados en /root/Proyecto_compartido/fibrolab.cl/screenshots/2026-04-29/ (16 imágenes).
/piscinas-de-fibra/ mobile ATF es el más fuerte: H1 + 3 trust icons (48 hrs / 60 cuotas / Garantía) + 2 CTAs visibles sin scroll. Home mobile ATF carece de teléfono + dirección. Hamburger correctamente posicionado y tap-friendly. Hero slider 3 s muy rápido para lectura es-CL.
Decisiones que requieren input
- Páginas por comuna (RM): El theme ya tiene
template-comuna.php. Recomendado solo si pasa el quality gate (foto real local + cita cliente local + 300+ palabras únicas). 3-5 comunas máx (Santiago, Las Condes/Vitacura, Viña del Mar, Rancagua). Confirmar antes de producir. - Reviews import a productos: El importer en
fl-reviews.phptiene warning explícito anti-fake. ¿Tienen acceso a screenshots/exports de reviews reales (WhatsApp / GBP) para poblar? - GBP listing status: No verificable desde el código. Si no está reclamado, paso 0 antes de pasos 10/15.
Files clave inspeccionados
wp-content/themes/fibrolab/functions.php(schema + enqueue + LCP preload)wp-content/themes/fibrolab/front-page.php(hero slider, intro, testimonios)wp-content/themes/fibrolab/footer.php(NAP rendido)wp-content/themes/fibrolab/page-piscinas-de-fibra.phpwp-content/themes/fibrolab/page-spas.phpwp-content/themes/fibrolab/page-bombas-de-calor.phpwp-content/themes/fibrolab/page-jacuzzi.phpwp-content/themes/fibrolab/page-reparacion.phpwp-content/themes/fibrolab/page-nosotros.phpwp-content/themes/fibrolab/inc/fl-reviews.phpwp-content/themes/fibrolab/assets/js/fibrolab.jswp-content/themes/fibrolab/assets/css/fibrolab.css(271 KB)/llms.txt,/robots.txt,/sitemap_index.xml+ 4 child sitemaps
Comparación con auditoría 2026-04-28
Esta corrida re-evalúa con foco en:
- Schema duplicate @id (nuevo hallazgo no registrado en versión anterior).
- Postal code 8830000 sospechoso de placeholder (nuevo).
- IndexNow 404 (nuevo).
- Garantía 5y vs 1y (re-confirmado).
- jQuery + Google Fonts triple (re-confirmado, sin progreso desde 2026-04-28).
Si la auditoría del 28 ya cubrió estos, los puntos persistentes deberían tomar prioridad de implementación esta semana.