Canonical


El canonical ya fue definido en el glosario como concepto. Este artículo es su guía de implementación práctica: todos los escenarios habituales donde el canonical entra en juego, cómo configurarlo correctamente en cada uno y los errores más frecuentes que ocurren en producción.


Recordatorio: qué es el canonical

La etiqueta canonical (<link rel="canonical">) declara cuál es la URL preferida de un contenido cuando ese contenido es accesible —o podría serlo— desde varias URLs. Es una señal para los buscadores, no una directiva vinculante.

<link rel="canonical" href="https://www.arquitecturadelainformacion.es/seo/canonical/" />

Escenario 1: self-canonical (siempre)

Toda página del sitio debe tener un canonical apuntando a sí misma. Es la declaración de que esa URL es la preferida y que no existe otra versión superior de ese contenido.

<!-- En https://www.ejemplo.com/articulo/ -->
<link rel="canonical" href="https://www.ejemplo.com/articulo/" />

No es redundante. Es una declaración explícita que evita que el buscador tenga que inferir cuál es la URL canónica.

En WordPress: Los plugins de SEO añaden self-canonicals automáticamente a todas las páginas. Verificar que está activo.


Escenario 2: variantes de protocolo y dominio

Cuando un sitio es accesible por http:// y https://, con www y sin www, las redirecciones 301 son la solución correcta (más contundente que el canonical). Pero añadir también el self-canonical en la versión correcta refuerza la señal:

# Nginx: redirigir http → https y sin www → con www
server {
    listen 80;
    server_name ejemplo.com www.ejemplo.com;
    return 301 https://www.ejemplo.com$request_uri;
}

server {
    listen 443 ssl;
    server_name ejemplo.com;
    return 301 https://www.ejemplo.com$request_uri;
}

Y en el <head> de todas las páginas:

<link rel="canonical" href="https://www.ejemplo.com/ruta/" />

Escenario 3: barra final

https://www.ejemplo.com/articulo y https://www.ejemplo.com/articulo/ son técnicamente URLs distintas. El servidor debe elegir una como canónica y redirigir la otra. La convención más habitual en WordPress es usar la barra final.

La redirección es lo correcto aquí. El canonical como único mecanismo puede no ser suficiente si el servidor sirve ambas versiones con código 200.


Escenario 4: parámetros de seguimiento UTM

Las URLs con parámetros UTM son la misma página con información de analítica añadida. El canonical de cualquier URL con parámetros UTM debe apuntar a la URL limpia:

<!-- En https://www.ejemplo.com/articulo/?utm_source=twitter&utm_medium=social -->
<link rel="canonical" href="https://www.ejemplo.com/articulo/" />

Los plugins de SEO de WordPress hacen esto automáticamente si están bien configurados.


Escenario 5: páginas de paginación

Para los archivos paginados, hay dos enfoques:

Opción A: cada página pagina como self-canonical

<!-- En /blog/pagina/2/ -->
<link rel="canonical" href="https://www.ejemplo.com/blog/pagina/2/" />

Combinado con noindex, es el enfoque más limpio: las páginas de paginación existen para la navegación pero no se indexan.

Opción B: canonical de todas las páginas a la página 1

<!-- En /blog/pagina/2/ -->
<link rel="canonical" href="https://www.ejemplo.com/blog/" />

Indica que la página 2 es una variante de la primera página. Puede causar confusión porque la página 2 no es realmente un duplicado de la página 1: tienen contenido distinto.

La opción A con noindex es más precisa y más habitual.


Escenario 6: variantes de producto

En tiendas con variantes de producto (color, talla, acabado), cada variante puede tener su URL:

/productos/camisa-oxford/
/productos/camisa-oxford/?color=azul&talla=m
/productos/camisa-oxford-azul/
/productos/camisa-oxford-blanca/

Si las variantes tienen URLs propias pero comparten la mayor parte del contenido con el producto base, el canonical de cada variante debe apuntar al producto base (o a la variante principal):

<!-- En /productos/camisa-oxford-azul/ -->
<link rel="canonical" href="https://www.ejemplo.com/productos/camisa-oxford/" />

Si las variantes tienen contenido genuinamente distinto (descripción propia, imágenes completamente distintas), cada una puede ser self-canonical.


Escenario 7: contenido sindicado

Cuando un artículo se publica en el sitio propio y luego se republica (sindicado) en otra plataforma o sitio, el artículo sindicado debe tener un canonical apuntando a la versión original:

<!-- En el sitio que republica el artículo -->
<link rel="canonical" href="https://www.sitiooriginal.com/articulo/" />

Esto indica que la versión original es la canónica y que la republicación es una versión secundaria. No todos los sitios que republicación respetan esta práctica, pero pedirla es estándar.


Escenario 8: multiidioma

En sitios multiidioma, el canonical de cada versión idiomática apunta a sí misma. El canonical nunca cruza idiomas.

<!-- Versión española -->
<link rel="canonical" href="https://www.ejemplo.com/es/articulo/" />
<link rel="alternate" hreflang="es" href="https://www.ejemplo.com/es/articulo/" />
<link rel="alternate" hreflang="en" href="https://www.ejemplo.com/en/article/" />
<!-- Versión inglesa -->
<link rel="canonical" href="https://www.ejemplo.com/en/article/" />
<link rel="alternate" hreflang="en" href="https://www.ejemplo.com/en/article/" />
<link rel="alternate" hreflang="es" href="https://www.ejemplo.com/es/articulo/" />

Los errores más graves en producción

Canonical a una URL con noindex: Contradicción directa. Si la URL canónica tiene noindex, el buscador no puede indexarla aunque sea la “preferida”. La URL canónica siempre debe ser indexable.

Canonical en cadena: URL A → canonical → URL B → canonical → URL C. El buscador debe seguir dos saltos para llegar a la URL final. Siempre canonical directo a la URL final.

Canonical cruzado en multiidioma: La versión española tiene canonical a la inglesa. El buscador interpreta que la versión española es un duplicado de la inglesa y puede dejar de indexarla. Error grave en sitios multiidioma.

Canonical relativo en lugar de absoluto: href="/articulo/" en lugar de href="https://www.ejemplo.com/articulo/". Puede funcionar, pero es ambiguo y puede interpretarse incorrectamente en algunos contextos (sindicación, caché).

Canonical ausente: Páginas sin canonical declaration. Sin self-canonical, el buscador debe inferir cuál es la URL preferida. En la mayoría de casos lo hace correctamente, pero añadir el canonical elimina la ambigüedad.


Para profundizar