El contenido duplicado casi nunca es intencionado: aparece como efecto secundario de decisiones técnicas normales, como servir la misma web en http:// y https://, con y sin www, con parámetros de tracking, o mostrar el mismo producto bajo dos categorías distintas de un ecommerce. Google no penaliza el contenido duplicado como si fuera spam en la mayoría de estos casos, pero sí tiene que decidir cuál de todas las versiones muestra en el buscador, y esa decisión no siempre coincide con la que tú habrías elegido si no le das instrucciones claras.
Qué es realmente la etiqueta canonical
La etiqueta <link rel="canonical"> es una señal, no una directiva absoluta. Le dice a Google "de todas las URLs que podrían mostrar este mismo contenido, esta es la que considero la principal", y Google normalmente la respeta, pero puede ignorarla si encuentra señales contradictorias más fuertes (por ejemplo, si la URL marcada como canonical tiene muchos menos enlaces internos y externos que otra variante, o si la canonical apunta a una página que en la práctica es sustancialmente distinta).
<link rel="canonical" href="https://www.tudominio.com/productos/silla-nordica">
Un principio que se olvida a menudo: la canonical debe ser autorreferencial en la propia URL principal (la página principal debe apuntar a sí misma como canonical) y todas las variantes (con parámetros, con y sin barra final, con mayúsculas distintas) deben apuntar a esa misma URL principal, nunca entre sí de forma cruzada.
Los casos de duplicación más comunes y su solución técnica
El primero y más extendido es la duplicación por protocolo y subdominio: la misma web accesible por http://tudominio.com, https://tudominio.com, http://www.tudominio.com y https://www.tudominio.com simultáneamente. La solución no es la canonical sino una redirección 301 permanente desde las tres versiones no deseadas hacia la única versión oficial, configurada a nivel de servidor:
# Fuerza https y www en un único bloque, en .htaccess
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^ https://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
El segundo caso son los parámetros de URL que no cambian el contenido: identificadores de sesión, códigos de campaña (utm_source, utm_medium), u orden de visualización en un listado (?orden=precio-asc). Aquí sí es apropiado el canonical, apuntando siempre desde la versión con parámetros hacia la versión limpia, porque bloquear estas URLs en robots.txt impediría que Google llegue a ver la canonical (contradicción ya explicada en la guía de rastreo).
El tercer caso, más específico de ecommerce, es un mismo producto accesible desde varias categorías (/mujer/vestidos/vestido-azul y /rebajas/vestido-azul). Aquí la decisión es de negocio tanto como técnica: normalmente conviene fijar la canonical en la ruta de categoría más estable (la que no depende de una campaña temporal como "rebajas"), mientras el resto de rutas quedan indexables solo si aportan valor real de navegación, pero canonicalizadas hacia la principal para no repartir las señales de relevancia entre varias URLs del mismo producto.
Contenido casi duplicado: el caso más difícil de diagnosticar
No toda duplicación es una copia exacta. El contenido casi duplicado (near-duplicate) es más difícil de detectar porque Google no compara solo el HTML, sino patrones de similitud de contenido a gran escala: páginas de producto con la misma ficha técnica y solo la talla o el color cambiados, plantillas de landing page reutilizadas con mínimos cambios de texto entre ciudades o servicios, o artículos de blog reescritos superficialmente a partir de una misma plantilla. En estos casos la etiqueta canonical no siempre es la herramienta correcta: si el contenido aporta valor diferencial real (aunque sea parecido), la solución no es canonicalizar sino ampliar la diferenciación real de cada página; si no lo aporta, la solución es consolidar en menos páginas o marcarlas con noindex.
hreflang no sustituye a la canonicalización
En sitios multi-idioma es habitual mezclar dos problemas distintos. El hreflang le dice a Google qué versión de idioma o región mostrar a cada usuario, pero no resuelve la duplicación dentro del mismo idioma: si la versión en español para España y la versión en español para México son idénticas salvo el precio en la moneda local, siguen siendo, a efectos de canonicalización, contenido casi duplicado entre sí, y necesitan su propia estrategia de canonical independiente del hreflang que las relaciona.
Paginación: cuándo canonicalizar y cuándo no
Un error frecuente es poner la canonical de todas las páginas de una serie paginada (página 2, 3, 4 de un listado) apuntando a la página 1. Esto le dice a Google que ignore el contenido específico de esas páginas, lo cual está bien si las páginas 2 en adelante no tienen contenido único relevante, pero es contraproducente si esas páginas indexan productos o artículos que no aparecen en ningún otro sitio: en ese caso cada página de la serie debe ser autorreferencial (canonical a sí misma), y la relación entre ellas se comunica mejor mediante enlaces de navegación claros (anterior/siguiente) que mediante canonical cruzada.
Cómo verificar qué canonical está viendo Google realmente
La Inspección de URLs de Search Console muestra tanto la canonical declarada por el sitio como la canonical que Google ha "seleccionado" realmente, y en sitios con señales contradictorias estas dos pueden no coincidir. Cuando no coinciden, el diagnóstico casi siempre está en enlaces internos que apuntan a la versión no canonical con más frecuencia que a la canonical, o en un sitemap que sigue listando URLs no canónicas.
Preguntas frecuentes
¿El contenido duplicado penaliza directamente en el posicionamiento?
No existe una "penalización por duplicado" en el sentido de sanción manual, salvo en casos de copia masiva de contenido ajeno. El problema real es que Google elige una sola versión para mostrar y diluye las señales (enlaces, autoridad) entre las versiones no elegidas, lo que en la práctica reduce el posicionamiento de todas.
¿Puedo usar noindex en vez de canonical para las URLs duplicadas?
Es una alternativa válida en algunos casos, pero con una diferencia importante: noindex saca la URL del índice sin transferir sus señales a ninguna otra, mientras que una canonical bien configurada consolida esas señales hacia la URL principal. Para variantes con enlaces entrantes propios, la canonical suele ser la opción más eficiente.
¿La canonical debe ser siempre una URL del mismo dominio?
No necesariamente: existe la "canonical cross-domain", útil cuando el mismo contenido se sindica en otro dominio (por ejemplo, un comunicado de prensa republicado), pero es un caso específico y debe usarse con acuerdo entre ambos dominios, no como solución genérica de duplicado interno.
¿Cuánto tarda Google en aplicar un cambio de canonical?
Depende del rastreo: hasta que Googlebot no vuelve a visitar la URL con la canonical modificada, sigue aplicando la decisión anterior. En sitios con rastreo frecuente puede ser cuestión de días; en sitios con poca prioridad de rastreo puede tardar semanas.
¿Sirve de algo el parámetro "?" bloqueado en robots.txt para evitar duplicados?
Solo a medias: evita que Googlebot gaste rastreo en esas URLs, pero como se explica en la guía de rastreo e indexación, si están bloqueadas Google nunca llega a leer su canonical, así que si esas URLs ya estaban indexadas por enlaces externos, seguirán apareciendo hasta que se gestionen con canonical (no bloqueo) o se eliminen manualmente.