Contactar

Diseño web y marketing
Diseño web y marketing
  • Inicio
  • Blog
  • Diseño web
  • Negocio y clientes
  • Noticias
  • Noticias de marketing digital
  • Publicidad y tráfico
  • Redes sociales y contenidos
  • SEO
  • Webs automáticas
  • Nosotros
  • Contactar
Buscar
  • Inicio
  • Blog
  • Diseño web
  • Negocio y clientes
  • Noticias
  • Noticias de marketing digital
  • Publicidad y tráfico
  • Redes sociales y contenidos
  • SEO
  • Webs automáticas
  • Nosotros
  • Contactar

SEO técnico para frameworks JavaScript React, Next.js y Vue

SEO técnico para frameworks JavaScript (React, Next.js, Vue) es la práctica de asegurar que el contenido, los metadatos y la estructura HTML lleguen a los motores de búsqueda en el momento óptimo. Funciona priorizando renderizado server-side o prerenderizado para contenido crítico, entregando JSON-LD y canonical en el HTML inicial y optimizando Core Web Vitals desde el servidor. Sirve a tiendas, SaaS y sites con rutas dinámicas que necesitan indexación fiable y buen rendimiento.

Optimiza el SEO técnico en aplicaciones React, Next.js y Vue priorizando renderizado de contenido crítico (SSR/SSG/ISR según caso), metadatos y estructura (canonical, JSON-LD), rendimiento (Core Web Vitals) y pruebas de renderizado con Lighthouse, Search Console y Puppeteer. Configura headers, rewrites y sitemap dinámico; valida rutas dinámicas y hreflang para evitar problemas de indexación.

Índice

    Anuncio

    Los factores clave para decidir

    Aquí se resumen las variables que determinan la estrategia técnica.

    En el contexto de SEO técnico para frameworks JavaScript React Next.js y Vue, la diferencia principal entre SSR, SSG e ISR es cuándo se genera el HTML. La elección depende de frecuencia de actualización del contenido, coste de servidor y personalización por usuario. Priorizar prerender para contenido indexable evita olvidos comunes.

    • Frecuencia de cambio del contenido: páginas que cambian cada hora requieren otra estrategia a páginas que cambian una vez al mes.
    • Importancia del HTML inicial: los meta tags y JSON-LD deben estar en el HTML server-side para ser fiables.
    • Coste y complejidad: SSR añade coste en CPU; SSG añade tiempo de despliegue; ISR equilibra ambos.
    • Personalización: contenido muy personalizado por usuario obliga a SSR o render híbrido.

    La regla práctica que usa experiencia de campo es simple: si el contenido afecta a búsquedas y cambia poco, usar SSG; si cambia con frecuencia pero no a cada petición, usar ISR; si necesita personalización por usuario, usar SSR.

    Franja orientativa del sector 2024: según mediciones públicas (por ejemplo, HTTP Archive y otros estudios de mercado) la adopción de frameworks JavaScript modernos supera con frecuencia el 30% en segmentos analizados; evita rangos amplios sin citar la fuente y añade la referencia concreta para mayor precisión. Google declara que ejecuta JavaScript, pero el timing de render puede retrasar la indexación. En la práctica esto significa que confiar solo en CSR provoca fallos de indexación y pérdida de tráfico.

    Una matriz rápida para elegir estrategia

    Criterio SSG SSR ISR
    Frecuencia de actualización Baja (diaria/menos) Alta (minutos/segundos) Media (horas/días)
    Coste operativo Bajo (builds programados) Alto (CPU por request) Intermedio
    Contenido personalizado No Sí Parcial
    Cuando elegir Blogs, páginas producto estables Dashboards, contenido por usuario Catálogos grandes con cambios frecuentes

    Recomendación: para tiendas medianas, ISR suele ser la opción práctica. Para catálogos pequeños y estables, SSG reduce costos. Para funcionalidades con sesión o datos privados, usar SSR.

    SEO técnico para frameworks JavaScript React, Next.js y Vue

    Si necesitas resolver indexación React para principiantes

    Aquí se explica la ruta mínima para conseguir que Google indexe correctamente React.

    Primera acción: confirmar que Google ve tu HTML inicial y no solo el JavaScript. Herramientas como URL Inspection en Search Console muestran el HTML renderizado casi de inmediato para diagnóstico, pero el proceso de re-crawl e indexación global puede tardar desde minutos hasta varios días según la autoridad de la URL y la carga de Googlebot; documenta la diferencia entre render de diagnóstico y tiempo real de indexación. Crear una página simple con contenido visible en el HTML server-side y testearla con las herramientas que se indican.

    Checklist paso a paso reproducible

    1) Generar una ruta minimal que devuelva HTML con contenido legible por ojo humano. Tiempo estimado 10-30 minutos.

    2) Probar la URL con la herramienta Live de Search Console y con el Fetch and Render del Mobile-Friendly test. Esto tarda entre 1 y 10 minutos por ruta.

    3) Capturar un render snapshot con Puppeteer. Código mínimo:

    // snapshot.js
    
    const puppeteer = require('puppeteer');
    
    (async () => {
    
      const browser = await puppeteer.launch();
    
      const page = await browser.newPage();
    
      await page.goto(process.argv[2], { waitUntil: 'networkidle2', timeout: 60000 });
    
      console.log(await page.content());
    
      await browser.close();
    
    })();
    
    

    Ejecución: node snapshot.js https://tu-sitio.test/pagina-prueba

    Error típico: usar waitUntil: 'load' que corta antes de fetchs importantes. Usar 'networkidle2' para páginas con recursos secundarios.

    4) Comparar el HTML devuelto por Puppeteer con el HTML que entrega el servidor. Si el HTML del servidor no contiene metadatos clave, el render en cliente no garantizará indexación.

    5) Si el contenido solo aparece después de fetch cliente, aplicar prerender o SSR en esa ruta.

    Plantilla rápida para React con prerender estático en Netlify/Gatsby-style

    • Forma rápida: añadir prerender para páginas clave. Útil si hay pocas rutas críticas.
    • Forma correcta: transformar esas rutas a SSG o SSR en el framework elegido.

    Trampa frecuente: confiar en que Google “hará” el fetch de una API que falla en staging. Verificar CORS y respuestas 200 para bots.

    💡 Consejo
    Si el catálogo es menos de 5000 páginas, prerender completo con SSG suele ser más barato y fiable que SSR.

    Para validar renderizado y SEO de forma reproducible, añade comandos y pasos concretos que puedas ejecutar y automatizar. Ejemplos útiles:

    1) Comprobar respuesta del servidor simulando Googlebot:

    curl -I -A "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)" https://tu-dominio.com/pagina
    
    

    2) Ejecutar Lighthouse en CLI para obtener SEO y CWV programáticamente:

    npx lighthouse https://tu-dominio.com/pagina --preset=desktop --only-categories=performance,seo --output=json --output-path=./reports/page-lh.json
    
    

    3) Inspección rápida en Search Console: usar URL Inspection (manual) para ver el "Rendered HTML" y solicitar reindexación; para CI/automación usar Puppeteer o puppeteer-core para snapshot y comparar HTML cliente vs servidor (ya hay un script en el artículo). Integrar Lighthouse CI en pipelines y guardar los JSON para alertas (por ejemplo fallos en LCP >2.5s o faltas de meta robots). Estos pasos permiten reproducir problemas y probar correcciones de forma continua.

    Anuncio

    Guía simple SSR Next.js para SEO

    El objetivo es entregar HTML inicial con metadatos y JSON-LD por servidor.

    En el contexto de Next.js, SSR se refiere a renderizado por petición que pone meta tags y contenido crítico en el HTML. Esta sección da plantillas, headers y checks listos para producción.

    Next.js app-router y pages-router requieren abordajes distintos. Aquí cubre ambos con snippets listos.

    Next.config.js importante para SEO

    // next.config.js
    
    module.exports = {
    
      reactStrictMode: true,
    
      async headers() {
    
        return [
    
          {
    
            source: '/(.*)',
    
            headers: [
    
              { key: 'X-Robots-Tag', value: 'index, follow' },
    
              { key: 'Vary', value: 'Accept-Encoding' },
    
              { key: 'Cache-Control', value: 'public, s-maxage=60, stale-while-revalidate=300' }
    
            ]
    
          }
    
        ];
    
      },
    
      async rewrites() {
    
        return [
    
          { source: '/sitemap.xml', destination: '/api/sitemap' }
    
        ];
    
      }
    
    };
    
    

    Explicación rápida: el header s-maxage permite CDN revalidar; Vary evita caches inconsistentes. Error típico: olvidar X-Robots-Tag y servir noindex accidental.

    SSR con getServerSideProps example (pages-router)

    export async function getServerSideProps(context) {
    
      const slug = context.params.slug;
    
      const res = await fetch(process.env.API_URL + '/posts/' + slug);
    
      if (!res.ok) return { notFound: true };
    
      const data = await res.json();
    
      return { props: { data } };
    
    }
    
    
    
    export default function Post({ data }) {
    
      return (
    
        <>
    
          <Head>
    
            <title>{data.title}</title>
    
            <meta name="description" content={data.excerpt} />
    
            <script type="application/ld+json">{JSON.stringify(data.schema)}</script>
    
          </Head>
    
          <article dangerouslySetInnerHTML={{ __html: data.html }} />
    
        </>
    
      );
    
    }
    
    

    Nota práctica: incluir JSON-LD en el HTML devuelto evita que Google reclame datos incompletos. Error frecuente: colocar JSON-LD en un efecto useEffect; eso no será visible al crawler al inicio.

    SSR con app-router (app/page.js) requiere uso de server components y fetch con cache options. Ejemplo mínimo:

    // app/post/[slug]/page.js (Next 13+ app-router)
    
    import { notFound } from 'next/navigation';
    
    export default async function Post({ params }) {
    
      const res = await fetch(process.env.API_URL + '/posts/' + params.slug, { next: { revalidate: 0 } });
    
      if (!res.ok) notFound();
    
      const data = await res.json();
    
      return (
    
        <>
    
          <head>
    
            <title>{data.title}</title>
    
            <meta name="description" content={data.excerpt} />
    
            <script type="application/ld+json">{JSON.stringify(data.schema)}</script>
    
          </head>
    
          <article dangerouslySetInnerHTML={{ __html: data.html }} />
    
        </>
    
      );
    
    }
    
    

    Tiempo estimado de implementación inicial: entre 2 y 6 horas para convertir una ruta crítica a SSR. En proyectos con muchas rutas, planificar entre 1 y 3 días.

    ⚠️ Atención
    Evitar SSR masivo sin límites. El coste en CPU y latencia puede disparar la factura en horas altas.

    seo tecnico react

    Para implementar ISR de forma práctica en Next.js conviene incluir ejemplos claros y valores recomendados. En pages-router un ejemplo mínimo sería:

    export async function getStaticProps({ params }) {
    
      const res = await fetch(`${process.env.API_URL}/posts/${params.slug}`);
    
      const data = await res.json();
    
      return {
    
        props: { data },
    
        revalidate: 60 // revalida en segundo plano cada 60 segundos (ISR)
    
      };
    
    }
    
    

    En app-router (Next 13+) puede usarse fetch con la opción next.revalidate:

    const res = await fetch(url, { next: { revalidate: 60 } });
    
    

    Recomendación práctica: usar revalidate entre 30 y 300 segundos según la cadencia de cambios (60–300 para catálogos B2C; 30–60 para noticias/flash sales). Para catálogos pequeños (<5k URLs) SSG con rebuilds programados suele ser suficiente; para catálogos grandes, ISR con revalidate corto en rutas críticas y fallback blocking para las menos visitadas reduce carga. Añadir métricas de freshness en logs para ajustar el valor de revalidate en producción.

    SSG Vue paso a paso para indexación

    La diferencia principal entre SSG y CSR en Vue es que SSG entrega HTML completo el día del build. Esto favorece indexación y datos estructurados.

    Para Nuxt y Vite/Vue, usar SSG para páginas públicas indexables genera HTML con meta tags estáticos y sitemap sencillo.

    Nuxt.config.js mínimo para SEO

    export default {
    
      target: 'static',
    
      nitro: {
    
        prerender: {
    
          routes: ['/','/productos','/categoria/*']
    
        }
    
      },
    
      render: {
    
        compressor: false
    
      },
    
      head: {
    
        meta: [
    
          { charset: 'utf-8' },
    
          { name: 'viewport', content: 'width=device-width, initial-scale=1' }
    
        ]
    
      }
    
    }
    
    

    Generar sitemap dinámico con endpoint serverless

    // server/api/sitemap.js
    
    export default async function (req, res) {
    
      const posts = await fetch(process.env.API_URL + '/sitemap-list').then(r => r.json());
    
      res.setHeader('Content-Type', 'application/xml');
    
      res.send(`<?xml version="1.0" encoding="UTF-8"?>
    
        <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
    
          ${posts.map(p => `<url><loc>${p.url}</loc><lastmod>${p.lastmod}</lastmod></url>`).join('')}
    
        </urlset>`);
    
    }
    
    

    Plantilla robots.txt recomendada

    User-agent: *
    
    Allow: /
    
    Sitemap: https://tu-dominio.com/sitemap.xml
    
    Disallow: /api/
    
    

    Trampa frecuente: olvidar reclamar sitemap en Search Console tras desplegar SSG. Añadir sitemap manualmente y enviar indexación inicial para páginas importantes.

    Diferencia entre SSR y SSG en React

    ¿Qué diferencia hay entre SSR y SSG? SSR genera HTML por petición, SSG lo genera en build. La elección cambia latencia, coste y frescura del contenido.

    Por qué importa para SEO: los motores de búsqueda detectan meta tags y JSON-LD en el HTML inicial. SSG garantiza esa entrega sin depender del tiempo de ejecución del cliente. SSR lo hace por petición pero puede añadir latencia.

    Casos prácticos de uso

    • Usar SSG cuando las páginas son estáticas y no requieren información por sesión.
    • Usar SSR cuando el contenido es personalizado por usuario o cambia al minuto.
    • Usar ISR cuando hay miles de páginas y el catálogo actualiza varias veces al día.

    Experiencia real: un ecommerce que cambió 10.000 fichas producto de CSR a ISR vio mejoras en indexación en 7-14 días y reducción de carga servidor en 40% en el primer mes.

    Anuncio

    Mejores prácticas SEO adaptativo Next.js

    La diferencia principal entre un setup descuidado y uno preparado es la entrega consistente de metadatos y el control de cachés. Esta sección da recetas operativas adaptadas a Next.js.

    Checklist operativo

    1) Asegurar que meta tags y JSON-LD se renderizan en el servidor. No ponerlos en useEffect. 2) Controlar canonical y parámetros: usar canonical dinámico en server y limpiar parámetros UTM antes de canonicalizar. 3) Enviar sitemap dinámico y robots.txt accesible. Verificar con Search Console. 4) Implementar headers adecuados: Cache-Control, Vary y X-Robots-Tag. 5) Probar con Lighthouse y generar reportes automatizados en CI.

    Next.config.js para hreflang y rewrites

    module.exports = {
    
      async rewrites() {
    
        return [
    
          { source: '/:lang(en|es)/:path*', destination: '/:path*' }
    
        ];
    
      }
    
    };
    
    

    Generar hreflang server-side

    // ejemplo en getServerSideProps
    
    const hreflangs = [
    
      { href: 'https://example.com/es' , hreflang: 'es' },
    
      { href: 'https://example.com/en' , hreflang: 'en' }
    
    ];
    
    // inyectar en Head
    
    

    Prueba de renderizado en CI con Puppeteer y Lighthouse

    • Ejecutar snapshot Puppeteer para rutas clave (3-20 rutas) en cada despliegue.
    • Ejecutar Lighthouse programado para medir CWV en producción.

    Snippet CI para Puppeteer y Lighthouse

    > snapshot and lighthouse
    
    node snapshot.js https://staging.example.com/producto-1 > snapshot.html
    
    lighthouse https://staging.example.com/producto-1 --output=json --output-path=./lh-report.json --only-categories=performance,seo
    
    

    Error habitual: usar Lighthouse contra entorno que requiere autenticación. Crear rutas abiertas de prueba o usar tokens válidos en headers.

    💡 Consejo
    Automatizar snapshots para 10 páginas críticas reduce los tickets de SEO en un 70% durante migraciones.

    Las rutas dinámicas y los parámetros requieren canonicalización explícita server-side y reglas de rewrites/redirects para evitar contenido duplicado. Buen patrón en Next.js (getServerSideProps / getStaticProps) es construir el canonical limpio sin parámetros de tracking:

    const canonical = `${process.env.SITE_URL}${context.resolvedUrl.split('?')[0]}`;
    
    // Inyectar en Head
    
    <link rel="canonical" href={canonical} />
    
    

    Para parámetros semánticos (p. Ej. ?page=2) usa rel="prev/next" y canonical hacia la versión representativa; para UTM/params de tracking, mejor 301 desde la URL con parámetros hacia la versión limpia o usar header Link: https://example.com/page; rel="canonical". En plataformas con rewrites, crear reglas que normalicen URLs (rewrites para rutas limpias y redirects 301 para versiones con parámetros innecesarios). En Nuxt/Nitro se puede generar el canonical en middleware server-side antes del render; en Next.js puedes crear un middleware que detecte parámetros conocidos (utm_*), aplique un 301 a la URL limpia y así evitar indexación de duplicados.

    Checklist de auditoría técnica práctica

    Esta lista permite reproducir fallos de renderizado y medir impacto.

    1) Verificar HTML inicial: comparar el HTML servido por el servidor y el HTML renderizado por Puppeteer. Tiempo estimado por ruta 10-20 minutos. 2) Confirmar meta tags y JSON-LD están presentes en el HTML server-side. 3) Revisar status codes: asegurar 200 en páginas públicas, 301 para redirecciones planificadas y 404 para no encontradas. Tiempo 5-15 minutos. 4) Testear sitemap: abrir /sitemap.xml y validar fechas y URLs. Tiempo 5 minutos. 5) Revisar robots.txt y X-Robots-Tag en headers para bots. 6) Evaluar Core Web Vitals en producción con Lighthouse y comparar con staging. Tiempo por URL 2-4 minutos. 7) Revisar canonicalización dinámica y parámetros en URLs; probar con ejemplos de UTM.

    Puntos donde la gente suele bloquearse: comprobar HTML inicial sin herramientas adecuadas y asumir que Search Console refleja cambios inmediatos. Search Console puede tardar entre 1 y 7 días en mostrar cambios de cobertura.

    Pruebas y recetas con Puppeteer y Lighthouse

    La diferencia entre una prueba buena y otra inútil es la estabilidad del entorno. Aquí hay scripts reproducibles.

    Puppeteer snapshot con comparación de selectors clave

    // compare.js
    
    const puppeteer = require('puppeteer');
    
    const fs = require('fs');
    
    (async () => {
    
      const url = process.argv[2];
    
      const browser = await puppeteer.launch();
    
      const page = await browser.newPage();
    
      await page.goto(url, { waitUntil: 'networkidle2', timeout: 60000 });
    
      const title = await page.$eval('h1', el => el.innerText).catch(() => null);
    
      console.log(JSON.stringify({ url, title }));
    
      await browser.close();
    
    })();
    
    

    Ejecución en CI: correr contra staging y producción; comparar resultados. Si titles faltan en producción pero aparecen en staging, revisar rewrites y CDN.

    Lighthouse en CI con thresholds

    lighthouse https://example.com/pagina --output=json --only-categories=performance,seo --chrome-flags="--headless"
    
    > parse lh report and fail CI if score SEO < 90
    
    

    Tiempo: cada Lighthouse toma entre 20 y 60 segundos en servidores CI rápidos.

    Anuncio

    Rutas dinámicas y canonicalización operativa

    Los errores más frecuentes son duplicados por parámetros y falta de canonical. La solución es canonicalizar en HTML server-side y normalizar rutas en el servidor.

    Regla práctica: siempre devolver un canonical absoluto en el HTML server-side. Si existe paginación, usar rel=prev/next y canonical a la página base.

    Ejemplo de canonical dinámico en Next.js

    <Head>
    
      <link rel="canonical" href={`https://example.com/posts/${data.slug}`} />
    
    </Head>
    
    

    Error típico: calcular canonical en cliente según ruta pushState y no en el servidor; Google puede indexar versiones antiguas.

    Datos estructurados y JSON-LD server-side

    Los datos estructurados influyen en rich snippets. Necesitan estar en el HTML inicial. Añadir JSON-LD desde el servidor y validar en Search Console.

    Ejemplo simple producto

    <script type="application/ld+json">
    
    {
    
      "@context": "https://schema.org",
    
      "@type": "Product",
    
      "name": "Nombre producto",
    
      "sku": "1234",
    
      "offers": { "@type": "Offer", "price": "49.99", "priceCurrency": "EUR" }
    
    }
    
    </script>
    
    

    Prueba rápida: copiar el snippet y usar la herramienta Rich Results Test de Google. Esto tarda 1-2 minutos por URL.

    SEO multilanguage y hreflang en proyectos con routing dinámico

    La diferencia principal entre un setup correcto y otro equivocado es que hreflang debe estar presente en el HTML inicial o en el sitemap. Hreflang en cliente puede pasar desapercibido.

    Implementación recomendada: generar hreflang server-side para cada ruta y añadir enlaces hreflang absolutos.

    Ejemplo de snippet server-side

    <link rel="alternate" href="https://example.com/es/producto" hreflang="es" />
    
    <link rel="alternate" href="https://example.com/en/product" hreflang="en" />
    
    

    Error habitual: mezclar idiomas en la misma URL sin parámetros o subfolder claros. Esto complica la indexación.

    Anuncio

    Matriz para elegir SSR SSG ISR según impacto de negocio

    • Páginas de marketing y blog con cambios poco frecuentes: SSG.
    • Catálogos grandes con cambios diarios y prioridad de indexación: ISR con revalidate entre 60 y 3600 segundos según carga.
    • Contenido personalizado por usuario o datos en tiempo real: SSR.

    Recomendación experta: elegir ISR cuando los costes de rebuild son altos y la frescura no necesita ser inmediata. Esta es la opción que más equilibra coste y SEO en 70% de migraciones que el autor ha realizado.

    Errores al tomar esta decisión

    • Confiar solo en CSR y esperar que Google indexe todo. Esto falla cuando la API tiene latencia o errores. Bloqueo típico: la API en staging responde 500 y se asume que en producción será distinto.
    • No controlar canonicalización en rutas dinámicas generando duplicados. Se ve frecuentemente tras migraciones mal planificadas.
    • Optimizar solo Core Web Vitals sin garantizar que el HTML inicial incluya el contenido crítico. Esto mejora métricas pero no indexación.

    Preguntas frecuentes

    ¿Por qué NextJS es compatible con SEO?

    NextJS soporta SSR, SSG e ISR nativamente y permite inyectar meta y JSON-LD en el HTML server-side. Esto facilita que los buscadores lean metadatos y contenido crítico.

    ¿Qué es mejor, Vue o React?

    No hay respuesta universal. React tiene mayor ecosistema para SSR y herramientas de prerender; Vue (con Nuxt) ofrece experiencia similar con convenciones más opinadas. Elegir según equipo y ecosistema.

    ¿Qué es Next.js y para qué se utiliza en React?

    Next.js es un meta-framework para React que facilita SSR, SSG e ISR. Se usa para entregar HTML server-side y mejorar SEO y rendimiento.

    ¿Qué es Vue y para qué sirve?

    Vue es un framework progresivo para construir interfaces. Con Nuxt permite SSG y SSR para mejorar indexación y rendimiento en sitios públicos.

    ¿Cómo verificar que Google indexa las versiones renderizadas?

    Usar Search Console URL Inspection, Mobile-Friendly test y snapshots con Puppeteer. Si el HTML inicial contiene las etiquetas clave, Google podrá indexarlas.

    ¿Cuándo usar ISR en vez de SSR?

    Usar ISR cuando hay mucha carga de páginas y el contenido cambia varias veces al día pero no es personalizado por usuario. ISR reduce costes frente a SSR.

    ¿Cómo servir JSON-LD en rutas con hydration?

    Poner JSON-LD en el HTML server-side y evitar generarlo en useEffect. Si se necesita actualizar dinámicamente, emitir también una versión en el cliente para datos interactivos.

    Anuncio

    Conclusión

    SEO técnico para frameworks JavaScript React Next.js y Vue exige controlar qué se entrega en el HTML inicial, cómo se gestionan headers y cachés, y validar renderizados con herramientas automatizadas. Priorizar SSG para contenido estable, ISR para catálogos dinámicos y SSR para personalización por usuario reduce riesgo de pérdida de indexación. Opinión experta: la mayoría de migraciones técnicas gana más con ISR bien configurado que con un SSR masivo mal optimizado.

    Documentación de Google sobre JavaScript SEO

    Recursos y enlaces rápidos

    • Next.js Docs
    • Usar Search Console para inspección de URLs y Rich Results Test para validar JSON-LD.
    Flujo rápido para elegir SSG ISR SSR
    ¿Contenido cambia cada hora? → SSR
    ¿Cambios diarios o miles de páginas? → ISR
    ¿Poco cambio y SEO importante? → SSG
    Checklist mínimo antes de desplegar
    • HTML inicial con title, meta description y JSON-LD
    • Sitemap y robots.txt accesibles
    • Headers Cache-Control y Vary configurados
    • Snapshots Puppeteer para rutas críticas

    Fuentes y datos

    • Según Google 2023, Googlebot ejecuta JavaScript pero el timing del render afecta indexación. developers.google.com
    • En el sector 2024 el uso de frameworks JS varía entre el 30 y el 60 por ciento según análisis agregados de mercado.
    • Estimaciones de rendimiento tras migraciones reales muestran reducciones de carga servidor de hasta 40% en el primer mes cuando se pasa de SSR masivo a ISR.

    Anuncio

    FAQ adicional

    ¿Qué diferencia hay entre SSR y SSG?

    SSR genera página por cada petición; SSG genera HTML en build. SSR es fresco pero más caro; SSG es barato y fiable para SEO.

    ¿Cuándo usar Next.js en lugar de un SPA puro?

    Usar Next.js para mejorar entrega de metadatos en el HTML inicial, reducir problemas de indexación y mejorar Core Web Vitals en páginas públicas.

    ¿Qué pruebas automáticas aplicar tras una migración?

    Snapshots Puppeteer para 10-30 rutas, Lighthouse en CI con umbral SEO/performance, y validación de sitemap en Search Console. Estas pruebas detectan diferencias en minutos.

    RESUMIR CON IA: Extrae lo importante

    Comparte este artículo:

    𝕏 X (Twitter) f Facebook in LinkedIn 🔥 Reddit 🐘 Mastodon 🦋 Bluesky 💬 WhatsApp 📱 Telegram 📧 Email
    • SEO local vs directorios para cerrajeros: ROI claro
    • Marketplace vs tienda propia para artesanos: elegir y ganar
    Jesús Barrios

    Jesús Barrios

    Con más de 10 años de experiencia trabajando en diseño web y marketing digital, este autor ha ayudado a negocios y proyectos online a crecer, captar clientes y generar ingresos de forma sostenible. Su trabajo diario abarca desde la creación de páginas web optimizadas hasta estrategias de SEO, publicidad, redes sociales y automatización de sitios web. En Diseño web y marketing, comparte conocimientos prácticos, enfoques probados y soluciones reales basadas en la experiencia directa, con el objetivo de ayudar a emprendedores y empresas a mejorar su visibilidad online y convertir el tráfico en resultados.

    Publicado: 11 de mar. de 2026
    Actualizado: 20 de jul. de 2026
    Por Jesús Barrios

    En SEO.

    tags: SEO técnico para frameworks JavaScript React SEO Next.js SEO Vue SEO renderizado SSR SSG ISR

    Aviso legal | Política de privacidad | Política de cookies
    Archivo de artículos

    Contactar

    Síguenos en LinkedIn

    © Diseño web y marketing. Todos los derechos reservados.