Next.js es el framework React más amigable para SEO que existe —pero no es automático. El framework te da las herramientas; tú tienes que usarlas correctamente.
Esta guía cubre cada funcionalidad SEO de Next.js, desde la API de Metadata hasta datos estructurados, internacionalización, Core Web Vitals y más.
Por qué Next.js gana en SEO
A diferencia de las apps React renderizadas en cliente (Create React App, Vite SPAs), Next.js renderiza HTML en el servidor por defecto. Esto significa:
- Googlebot ve HTML completamente renderizado en cada solicitud
- Core Web Vitals son naturalmente mejores gracias al renderizado del servidor
- La metadata está disponible en el HTML inicial —crítico para Google Discover y crawlers de IA
- El rendimiento viene incorporado —optimización automática de imágenes, fuentes y bundling
La API de Metadata en Next.js
Cada página necesita exportar generateMetadata:
import type { Metadata } from "next";
export async function generateMetadata(): Promise<Metadata> {
return {
title: "Título de Página | Nombre del Sitio",
description: "Descripción convincente con keywords objetivo, 150-160 caracteres.",
alternates: { canonical: "https://tusitio.com/pagina" },
openGraph: {
title: "Título | Nombre del Sitio",
description: "Descripción convincente.",
images: [{ url: "https://tusitio.com/og-image.png", width: 1200, height: 630 }],
},
robots: { index: true, follow: true },
};
}
Core Web Vitals en Next.js
Next.js te da las herramientas para alcanzar los tres umbrales de CWV sin trabajo extra —pero solo si evitas errores comunes.
LCP —objetivo < 2.5s
next/imagecon conversión automática a WebP/AVIFnext/font—Google Fonts auto-hospedadas, zero layout shift- Componentes de servidor —zero JS de cliente para contenido
CLS —objetivo < 0.1
- Siempre usa dimensiones explícitas en
next/image - Usa
next/fontpara evitar layout shift por fuentes
Internacionalización y hreflang
Los sitios multilingüe deben implementar hreflang correctamente. Next.js con next-intl lo maneja bien:
export async function generateMetadata({ params }) {
const { locale } = await params;
return {
alternates: {
canonical: locale === "en" ? "/en/page" : "/page",
languages: {
es: "/page", en: "/en/page", "x-default": "/page",
},
},
};
}
Optimización para búsqueda con IA (GEO) en Next.js
Los sitios en Next.js tienen ventaja para visibilidad en IA porque sirven HTML limpio y estructurado. Maximízala:
- Sirve metadata en el HTML inicial —nunca inyectes tags vía JavaScript
- Usa FAQPage schema en páginas con contenido de preguntas y respuestas
- Crea llms.txt —Next.js puede servirlo como ruta estática
- Mantén el contenido server-rendered —evita contenido solo-cliente
¿Necesitas un sitio en Next.js que se posicione solo? Revisa nuestro servicio de desarrollo web a medida o conversemos.
