Lo que viene a decir
Daniel, es que no puedes tener 30 canonical por página, sino 1 por cada página. En la página
sitio.com/articulo.html, te bastará poner:
Código:
<link rel="canonical" href="http://www.sitio.com/articulo.html" />
Cuando se cargue la página
sitio.com/articulo.html?ref=pepito perez, el canonical seguirá siendo:
Código:
<link rel="canonical" href="http://www.sitio.com/articulo.html" />
Si quieres puedes montar un condicional, para que en el caso de no haber ref=xxxxxx, no se cargue el canonical.
No obstante, te puedes ahorrar todo eso, si lo que necesitas es saber de qué página te llega el usuario, con las variables de servidor. En php no tengo ni idea, pero en asp, con una simple línea de código, puedes determinar la página de la que llega el usuario, si tu objetivo es mostrar una u otra cosa. Así no hará falta que pases el dato de la página desde la que llega, por la barra de direcciones, con lo que el ref=xxxxxxx te sobraría.
Saludos.