Checklist SEO de Next.js 16 para produccion
El SEO tecnico es, en gran parte, disciplina operativa. La forma mas rapida de perder rankings es publicar un release con canonicals inconsistentes, metadata duplicada o un sitemap roto.
Esta checklist esta escrita para equipos que construyen sitios de marketing y sitios de servicios en Next.js 16 (App Router), especialmente con multiples locales.
Como se ve un "done"
- Cada pagina indexable tiene un title + description unicos que coinciden con la intencion de la pagina.
- Los canonicals colapsan duplicados (host, alias de locale, trailing slash).
- Hreflang apunta solo a equivalentes reales e incluye
x-default.
- El sitemap incluye solo URLs canonicas e indexables y un
lastmod confiable.
- El JSON-LD coincide con el contenido visible de la pagina.
- Puedes verificar todo lo anterior en el HTML renderizado.
No dependas de un unico default global para paginas clave.
Para cada ruta indexable, verifica que generas:
title
description
- URL canonical
- imagen Open Graph / Twitter
Si estas usando metadataBase de Next.js, prefiere valores relativos en codigo y deja que Next componga URLs absolutas.
Patron de ejemplo:
export const metadata = {
metadataBase: new URL("https://www.example.com"),
alternates: {
canonical: "/services/web-development/",
languages: {
en: "/services/web-development/",
de: "/de/services/web-development/",
"x-default": "/services/web-development/",
},
},
robots: {
index: true,
follow: true,
},
};
Referencia: Next.js generateMetadata / Metadata API.
2. Los canonicals deben ser estables y con criterio
Elige una politica y aplicala:
- un host (por ejemplo
www)
- una convencion de trailing slash
- una convencion de locale por defecto
Luego redirige todo lo demas de forma permanente.
Si tu politica canonical es "www + trailing slash + sin prefijo /en", asegúrate de que estos nunca resuelvan como URLs indexables separadas:
https:
https:
https: (sin trailing slash)
3. Hreflang debe incluir solo equivalentes reales
Hreflang no es "traduce la URL". Es "declara paginas equivalentes".
Reglas que mantienen los clusters limpios:
- incluye alternates solo para locales donde la pagina existe
- cada variante por locale debe referenciarse a si misma y al mismo set de alternates
- incluye
x-default apuntando a la version del idioma por defecto
Referencia: versiones localizadas en Google (hreflang).
4. Robots trata de intencion, no de tradicion
robots.txt controla el crawling. El noindex a nivel pagina controla el indexado.
Usa noindex a nivel pagina para paginas que nunca deberian aparecer en buscadores:
- paginas utilitarias de chat
- paginas internas de herramientas
- paginas temporales que no quieres indexar
En la metadata de Next.js, esto es un campo de primera clase:
5. El sitemap deberia ser aburrido y confiable
Un sitemap no es marketing. Es un contrato para maquinas.
Incluye solo:
- URLs canonicas
- URLs indexables
lastmod preciso
Google recomienda explicitamente que lastmod refleje la ultima actualizacion significativa (contenido principal, datos estructurados o enlaces), no cambios cosmeticos.
Referencia: guia de sitemaps de Google.
6. Los datos estructurados deben coincidir con lo que ven los usuarios
El JSON-LD deberia derivarse de la misma fuente de verdad que la pagina.
Schemas base que normalmente tienen sentido:
Organization (site-wide)
WebSite (homepage)
Service (service pages)
BlogPosting (articles)
El modo de fallo a evitar es "el schema dice una cosa y la pagina dice otra".
Referencia: guias de datos estructurados de Google.
7. El enlazado interno es parte de la infraestructura SEO
Si los posts tecnicos nunca enlazan a paginas de servicio, a los buscadores les cuesta asociar tu expertise con tu intencion comercial.
Una regla simple que escala:
- cada post tecnico enlaza a al menos una pagina de servicio relevante
- cada pagina de servicio enlaza a al menos un post tecnico relevante
Empieza por:
8. QA de release (automatizable)
Antes de desplegar, verifica en el HTML renderizado:
- titles/descriptions son unicos en paginas clave
- el canonical es correcto y absoluto
- el set de hreflang es correcto
- el meta
robots es correcto (especialmente noindex)
- el sitemap renderiza e incluye las URLs esperadas
- el schema renderiza y valida
Trata esto como gates de despliegue. El SEO es demasiado sensible como para depender de checks manuales.