Cómo redirigir bien el tráfico de tu web para evitar el contenido duplicado

23 de agosto de 2013

El contenido duplicado consiste en repetir grandes bloques de contenido en más de una página de tu sitio web. Esta duplicación puede ser no intencionada (por ejemplo, la información de un producto de una tienda que se muestra en muchas páginas) o también puede ser intencionada (usuarios maliciosos que quieren generar sin esfuerzo millones de páginas de contenidos para tratar de engañar a Google).

Intencionado o no, el contenido duplicado afecta negativamente al SEO y al posicionamiento de tu sitio web. Además, es posible que tengas mucho contenido duplicado sin que te hayas dado cuenta.

Aunque te cueste creerlo, si tu sitio web funciona tanto con las www por delante como sin las www, Google y los demás buscadores consideran que tu contenido está duplicado (cada página se puede acceder de dos formas y muestran exactamente el mismo contenido).

La solución a este problema consiste en elegir una única forma de acceder a tu sitio web. Nosotros por ejemplo en librosweb hemos decidido utilizar el dominio sin las www. Por eso si escribes en el navegador la dirección http://www.librosweb.es, inmediatamente eres redirigido a http://librosweb.es (sin las www). De esta forma sólo existe una forma de acceder a los contenidos de librosweb y evitamos el contenido duplicado.

¿Qué solución debo elegir? ¿Es mejor con www o sin www? Ninguna de las dos opciones es mejor que la otra. Lo único importante es elegir una y quedarte para siempre con ella. La versión sin www es más corta y puede quedar mejor en tus campañas de marketing. Pero si tu público objetivo es torpe en tecnología, las www hacen que tu dominio sea más reconocible como sitio web.

Estableciendo el dominio preferido

Una vez elegida la forma de acceder a tu web, debes decírselo a Google y al resto de buscadores. Para ello, date de alta si no lo has hecho ya en el servicio gratuito Google Webmaster Tools. Después, pulsa el botón Añadir un sitio para añadir tanto el dominio con www como el dominio sin www.

Sitios web añadidos a Google Webmaster Tools

A continuación, accede al dominio con www y pincha en la opción Configuración del sitio que verás en el menú que se despliega al pulsar el botón que tiene un icono de una rueda dentada. En la nueva pantalla que se muestra, utiliza la opción Dominio preferido para indicar que prefieres que tu sitio se acceda sin www:

Configurando el dominio preferido en Google Webmaster Tools

Entra ahora en la configuración del sitio sin www y repite los mismos pasos para indicar también en ese otro sitio que tu preferencia es el dominio sin www.

Una vez hechos estos cambios, Google empezará progresivamente a eliminar las páginas con www de su índice y las sustituirá por las páginas sin www. Este proceso es muy lento y puede llevar semanas o incluso meses en función de cuántas páginas de tu sitio web se encuentran en el índice de Google.

Si has decidido que los usuarios accedan a tu sitio web siempre con las www por delante, sigue los mismos pasos anteriores pero indica como dominio preferido la dirección con www.

Redirecciones en el servidor web

La configuración anterior es suficiente para eliminar el contenido duplicado en Google. No obstante, si te importan los demás buscadores o si quieres hacer las cosas del todo bien, tendrás que hacer algunos cambios en tu servidor web.

Si no sabes lo que es el servidor web Apache o no sabes configurarlo, es mejor que contrates a algún amigo con conocimientos sobre el tema para que te lo haga. Si realizas mal esta configuración, tu sitio web dejará de funcionar o se producirán errores graves.

Abre el archivo de configuración de tu servidor web Apache y añade la siguiente configuración en el VirtualHost que corresponda al sitio web que estás configurando:

<VirtualHost *:80>
    ServerName www.librosweb.es
    Redirect permanent / http://librosweb.es/
</VirtualHost>

<VirtualHost *:80>
    ServerName librosweb.es
    ...
</VirtualHost>

La clave de esta configuración es el primer VirtualHost, que corresponde al sitio con las www. Gracias a la directiva Redirect, cualquier petición que se realice al sitio con las www se redirige automáticamente al sitio sin www. La redirección es permanente (código 301) y funciona con cualquier URL, no sólo con la portada (http://www.librosweb.es/xhtml/capitulo_1.html se redirige a http://librosweb.es/xhtml/capitulo_1.html, etc.)

Si en tu caso prefieres redirigir todas las peticiones al dominio con las www, simplemente debes cambiar el orden de la configuración anterior:

<VirtualHost *:80>
    ServerName www.librosweb.es
    ...
</VirtualHost>

<VirtualHost *:80>
    ServerName librosweb.es
    Redirect permanent / http://www.librosweb.es/
</VirtualHost>

La directiva Redirect de Apache pertenece al módulo mod_alias, por lo que debes tenerlo activado para que esta configuración funcione bien. Además, esta directiva está disponible a partir de la versión 2.2 de Apache.

Si has leído otros tutoriales antiguos sobre cómo redirigir un sitio www a un sitio sin www, probablemente te habrás encontrado soluciones que utilizan directivas como RewriteEngine y RewriteRule en vez de la directiva Redirect anterior. Estas soluciones antiguas también funcionan, pero consumen muchos más recursos. En otras palabras, la directiva Redirect de Apache es la forma más eficiente de redirigir un sitio web a otro.

Aunque es una solución mucho menos eficiente, se muestra a continuación la configuración necesaria a modo de referencia.

Para redirigir todas las peticiones al dominio sin www:

<VirtualHost *:80>
    ServerName librosweb.es
    ...
</VirtualHost>

<VirtualHost *:80>
    ServerName www.librosweb.es

    RewriteEngine On
    RewriteCond %{HTTP_HOST} !^librosweb\.es$ [NC]
    RewriteRule ^(.*)$ http://librosweb.es/$1 [R=301,L]
</VirtualHost>

Para redirigir todas las peticiones al dominio con www:

<VirtualHost *:80>
    ServerName librosweb.es

    RewriteEngine On
    RewriteCond %{HTTP_HOST} !^www\.
    RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
</VirtualHost>

<VirtualHost *:80>
    ServerName www.librosweb.es
    ...
</VirtualHost>

Referencias útiles