Comercio electrónico con Next.js
Cómo crear navegación facetada en Next.js sin una trampa de rastreo SEO
Crea filtros útiles de categorías en Next.js y controla las URLs canónicas, la normalización de parámetros, la paginación, las combinaciones rastreables y los resultados vacíos.
Los filtros pueden crear millones de URL técnicamente válidas desde un modesto catálogo. Sólo un pequeño subconjunto intencional generalmente merece convertirse en una página de aterrizaje de búsqueda.
Separa la jerarquía del estado de filtros
Trail Supply usa rutas duraderas de categorías, como /women/jackets. El color, la talla, el nivel de impermeabilidad, el rango de precios y el orden refinan ese conjunto. La jerarquía de categorías comunica el catálogo; la mayoría del estado de filtros ayuda al comprador dentro de esa categoría.
Enumera cada filtro, valor permitido, valor predeterminado e interacción. Decide qué combinaciones tienen demanda de búsqueda propia, suficientes productos, inventario estable y contenido explicativo único. Pueden convertirse en páginas de destino seleccionadas; el resto sigue siendo estado útil de la aplicación sin indexación.
Normaliza las URLs de parámetros
Usa un nombre de parámetro por filtro, valores normalizados en minúsculas, un orden estable y ningún parámetro con su valor predeterminado. Rechaza filtros y valores desconocidos. Redirige los formatos equivalentes de URL a la representación normalizada cuando mejore la coherencia.
Un analizador de filtros debe devolver estado tipado de la aplicación y una URL normalizada, no pasar searchParams arbitrarios a consultas de base de datos. Limita el número de valores y la complejidad para proteger tanto la base de datos como la superficie de rastreo.
const filters = filterSchema.parse({
color: searchParams.color,
size: searchParams.size,
sort: searchParams.sort ?? "featured",
});
const normalized = buildFilterUrl("/women/jackets", filters);Renderiza los resultados filtrados en el servidor
Lee searchParams en la página, valida los filtros, consulta los productos en el servidor y renderiza el número de resultados, los filtros activos, los enlaces de productos y la paginación en la respuesta inicial. Los Client Components pueden actualizar los filtros mediante navegación sin controlar la consulta del catálogo.
Usa estados estables de carga y vacío. Un filtro inválido no debe convertirse en una categoría vacía con respuesta correcta. Devuelve o redirige según la política de normalización y ofrece una opción útil de limpiar filtros para una combinación válida sin resultados.
Elige explícitamente las combinaciones indexables
Mantén una lista de permitidos o un catálogo de páginas de destino con contenido para combinaciones como chaquetas impermeables de mujer. Una combinación indexable necesita su propia URL canónica, título, H1, descripción, enlaces internos y suficientes resultados estables. Revísala como cualquier otra página de contenido.
No deduzcas la indexabilidad solo porque una combinación devuelva productos hoy. El inventario puede dejarla vacía mañana, y varias combinaciones pueden atender la misma intención. Los equipos de producto y búsqueda deben responsabilizarse juntos del conjunto aprobado.
Alinea canonical, robots, enlaces y sitemaps
Para una página de destino aprobada, usa una URL canónica que apunte a sí misma, permite su indexación, enlázala desde las páginas principales pertinentes e inclúyela en el sitemap. Para los estados normales de filtros, aplica coherentemente la política elegida de canonical y robots y evita generar enlaces rastreables a combinaciones ilimitadas.
Bloquear en robots.txt impide el rastreo y puede evitar que los rastreadores vean una directiva canonical o noindex en la página bloqueada. Elige el control según el objetivo real. Las reglas de robots no limpian un generador de URLs que sigue produciendo enlaces sin límite.
Gestiona la paginación y el orden
Da a los resultados de categorías paginados URLs estables y enlaces normales para que los usuarios y rastreadores alcancen los productos más profundos. No marques todas las páginas como canónicas hacia la primera si contienen enlaces de productos distintos. Ordenar suele cambiar el orden, no el recurso, y normalmente no debe crear otra página de destino para búsquedas.
Mantén estable la paginación al cambiar filtros. Vuelve a la primera página con un filtro nuevo, rechaza las páginas fuera de rango con un estado adecuado y asegúrate de que canonical representa el estado normalizado realmente renderizado.
Mide el comportamiento de rastreo y el coste del servidor
Inspecciona los registros de solicitudes para detectar parámetros inesperados, combinaciones vacías repetidas, paginación profunda y carga de base de datos causada por bots. Compara las URLs del sitemap con las indexadas y descubiertas. Una diferencia creciente suele revelar descubrimientos accidentales o páginas de destino débiles.
Guarda en caché las categorías y páginas de destino aprobadas con etiquetas específicas, pero limita las consultas de filtros arbitrarios y protege la base de datos. Los registros del entorno de ejecución de Adios vinculan el comportamiento de las solicitudes a la versión que las sirve y ayudan a asociar un pico de rastreo con el cambio de ruta o enlace que lo produjo.
Prueba la política antes de la promoción
Crea una tabla de URLs normales, equivalentes, aprobadas, vacías, inválidas, ordenadas, paginadas y fuera de rango. Comprueba su estado final, redirección, canonical, valor robots, H1, resultados, enlaces internos y pertenencia al sitemap. Así una política SEO vaga se convierte en expectativas ejecutables.
Despliega la candidata en una vista previa de Adios y ejecuta la tabla contra la compilación de producción. Inspecciona los registros en busca de carga inesperada de consultas y verifica la ruta de salud. Promueve el cambio de enrutamiento solo si el comportamiento normalizado es correcto; en caso contrario, el dominio personalizado canónico permanece en la última versión saludable.