Si tu web no carga rápido, no se renderiza bien o el bot no entiende tu HTML, no posicionas. Los Core Web Vitals, el JavaScript rendering y el crawl budget son los tres pilares técnicos que separan una web que rankea de una que no. En este artículo vamos al grano: qué medir, qué cambiar y cómo no romper nada.
Core Web Vitals: lo único que mira Google
Google mide la experiencia real de tus usuarios mediante el dataset de CrUX (Chrome User Experience Report). Las tres métricas que cuentan en 2026 son:
- LCP (Largest Contentful Paint) — tiempo hasta que se pinta el elemento principal. Objetivo: <2,5 s.
- INP (Interaction to Next Paint) — latencia de interacción (sustituye a FID desde marzo 2024). Objetivo: <200 ms.
- CLS (Cumulative Layout Shift) — saltos de layout durante la carga. Objetivo: <0,1.
Optimizar LCP en imágenes
El LCP suele ser una imagen de hero. Tres reglas de oro:
- Servir WebP o AVIF con
<picture>y fallback PNG/JPG. - Marcar la imagen del hero con
fetchpriority="high"yloading="eager". - Lazy-load (
loading="lazy" decoding="async") en todo lo que esté below the fold.
INP: el asesino silencioso
INP penaliza el JavaScript pesado en el hilo principal. Soluciones:
- Diferir scripts con
deferoasync. - Romper long tasks (>50 ms) con
requestIdleCallbackoscheduler.postTask. - No cargar librerías enteras — usa imports nominales (
import { debounce } from 'lodash-es').
CLS: reservar espacio
Cualquier elemento que aparezca después del primer paint debe tener tamaño reservado: width/height en imágenes, min-height en banners, aspect-ratio en embeds.
JavaScript rendering: lo que el bot ve
Googlebot renderiza JavaScript, pero con un retraso de horas o días. Si tu contenido principal solo aparece tras hidratación de React/Vue, estás perdiendo tiempo y posicionamiento.
SSR vs CSR vs SSG
- SSR (Next.js, Nuxt, Astro): el servidor pinta HTML completo en cada request. Mejor para contenido dinámico y SEO.
- SSG (Astro, Next.js export, Hugo): genera HTML en build time. Imbatible en velocidad para contenido estático.
- CSR puro (CRA clásico): mal para SEO. Solo úsalo en paneles privados.
Test rápido
Haz curl https://tu-web.com y busca tu H1 y tu contenido principal en la respuesta. Si no están, Googlebot también los verá tarde.
Crawl budget: que el bot llegue a lo importante
Google no rastrea tu web entera cada día. Tienes un presupuesto de URLs por sesión que depende de la salud y autoridad del dominio.
Fugas típicas de crawl budget
- Filtros con query strings infinitos (
?color=rojo&talla=m&orden=precio). - Páginas de búsqueda interna indexables.
- Paginaciones sin
rel="canonical"apuntando a la primera. - URLs antiguas con
301en cadena (saltos múltiples).
robots.txt y sitemap
El robots.txt debe bloquear paneles internos, búsquedas y filtros que no aporten contenido único. El sitemap.xml debe listar solo URLs con respuesta 200, contenido único y lastmod real.
User-agent: *
Allow: /
Disallow: /admin/
Disallow: /buscar
Disallow: /*?orden=
Sitemap: https://tu-web.com/sitemap.xml
Checklist técnico mínimo para 2026
- HTTPS con certificado válido y redirección
www → non-www(o al revés) por 301. - Una única URL canónica por contenido (
rel="canonical"). - Imágenes en WebP/AVIF con
altdescriptivo. - Schema.org JSON-LD:
Organization,Article,FAQPage,Productsegún tipo. - H1 único por página con la keyword principal.
- Meta description <160 caracteres con la intención de búsqueda.
- Open Graph + Twitter Card con imagen 1200×630.
- 404 personalizado y 500 controlado (no leakear stack traces).
Conclusión
El SEO técnico no es magia: es higiene de plataforma. Si tu web carga rápido, renderiza HTML útil sin esperar a JS y guía al bot a lo importante, ya tienes el 70% del trabajo hecho. El otro 30% es contenido — y ahí es donde la mayoría falla.