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)

  1. 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.
  2. 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.
  3. Sin referencia a Sernac / derechos del consumidor — Requisito legal en Chile para venta a consumidor sobre $100K CLP y gap de Trustworthiness.
  4. @id LocalBusiness vs Organization desincronizados — Rank Math emite Organization @id=#organization y el tema emite LocalBusiness @id=#localbusiness. Google los trata como entidades distintas. Fix: filtro rank_math/json_ld para alinear el @id.
  5. 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)

  1. 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.
  2. CSS crítico no inlineadofibrolab.css 271 KB, 11.047 líneas, blockea el render. Inline ~4 KB ATF en wp_head priority 1 + diferir el resto. Estimado: −800 ms a −1.4 s en LCP móvil.
  3. 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.
  4. 5 nodos Service con image vacíopage-reparacion, page-jacuzzi, page-spas, page-revestimiento-super-brite, page-cobertor-de-seguridad quedan sin imagen en el JSON-LD. Cargar URLs reales en el array $services de fibrolab_schema_service().
  5. Sin embed de Google Maps en sitio — Cero iframe de Maps en cualquier template. Es el signal de GBP más alto y ausente. Embed mínimo en /contacto/ y /nosotros/.
  6. 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.
  7. 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.
  8. /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.
  9. Tipo Manufacturer ausente del LocalBusiness — Fabrican producto propio. Cambiar @type a ["Manufacturer", "HomeAndConstructionBusiness", "LocalBusiness"]. Diferenciador vertical y E-E-A-T verificable.
  10. AggregateRating ausente 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)

  1. Título home sin tilde en "Fábrica"<title>Fabrica de Piscinas FIBROLAB... debe ser "Fábrica". OG arrastra el mismo error.
  2. Meta description "6 años" vs OG "10 años" — Inconsistencia entre snippet visible (6) y OG (10). Unificar.
  3. GTM dispara en <head> — Mover el snippet justo después de <body> (el noscript ya está ahí). Reduce parser-block en INP móvil.
  4. Disallow: /wp-json/wp/v2/users mal ubicado — Está fuera del bloque User-agent: *. Reordenar en robots.txt.
  5. Postal code 8830000 aparenta placeholder — La Pintana usa códigos en rango 8820xxx. Verificar contra Correos de Chile y corregir functions.php:303. Postal code incorrecto rompe matching de citaciones.
  6. priceValidUntil con rollover anual — Cambiar date('Y-12-31') por date('Y-12-31', strtotime('+1 year')) en fibrolab_schema_product().
  7. 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?".
  8. 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.
  9. Speakable schema ausente — Agregar speakableSpecification apuntando al CSS selector del nuevo párrafo definitorio. Una línea por página.
  10. llms.txt incompleto — Existe (bien), pero faltan URLs de /spas/, /jacuzzi/, /reparacion/, /nosotros/, sección ## FAQ, campo ## Last-Updated y declaración de licencia legible (RSL/CC).
  11. /cobertor-de-seguridad/ 200 pero ausente del sitemap — Decidir: agregar al sitemap o 301 al producto canónico.
  12. /bordes/ vs /bordes-de-piscina/ — Posible duplicado. Resolver con 301 al canónico.
  13. local-sitemap.xml con KML únicolocations.kml no es indexable como página. Quitar o reformular.
  14. Diferencia spa vs jacuzzi sin definir — Query alta demanda completamente sin respuesta en el sitio. Agregar bloque definitorio en /spas/ o /jacuzzi/.
  15. Footer sin política de privacidad ni T&C — Obligación bajo Ley 21.096 (datos personales) y signal Trust básico.

BAJO (backlog)


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


Files clave inspeccionados


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.