¿Qué son las redirecciones 301?

Resumidamente, envía a los visitantes de una web a otra diferente automáticamente.

RewriteCond %{HTTP_HOST} ^tunombrededominio.com [NC]
RewriteRule (.*) http://www.tunombrededominio/$1 [R=301,L,QSA]

¿Cómo hacer una redirección 301?

Para realizar una redirección 301 necesitamos tener acceso al fichero .htaccess de tu hosting o servidor.

¿Qué es el archivo .htaccess?

Es un archivo de texto que puedes editar en un bloc de notas o en otro editor. Se pueden configurar las políticas de acceso a los directorios y archivos de la web para realizar configuraciones cómo redirecciones.

¿Cómo editar el archivo .htaccess?

  1. A través de un cliente FTP: Puedes utilizar FileZilla por ejemplo o cualquier otro.
  2. Con el plugin SEO Yoast para WordPress: si tienes WordPress y tienes instalado el SEO Yoast también puedes editar el archivo htaccess. Para ello, desde el admin de WordPress, en la barra lateral izquierda ve a SEO > Herramientas > Editor de archivos. En ‘Editor de archivos’ verás que puedes editar tanto el Robots.txt como el htaccess. 
  3. A través del administrador de archivos de tu Hosting: donde puedes descargar y subir de nuevo el archivo, o usar el editor de código web online.

Redireccionar una página antigua a una nueva página

Esta es bastante sencilla y puede utilizarse para dirigir de una página cualquiera a otra de destino.

1.- Para redireccionar directorios principales:

Redirect 301 /enlace-antiguo/ https://www.midominio.com/enlace-nuevo/

2.- Para redireccionar subdirectorios:

Redirect 301 /directorio/subdirectorio-antiguo/ http://www.ejemplo.com/directorio/subdirectorio-nuevo/

3.- Errores 404. En toda web pueden darse errores 404 y aunque no sean errores críticos, hay que tenerlos controlados y en la medida de lo posible, redireccionarlos:

Redirect 301 /URL-error-404 / https://www.tudominio.com/URL-destino

Redirigir un dominio antiguo a uno nuevo

Imagina que quieres cambiar de nombre tu dominio, has comprado uno nuevo, quieres cambiar de .es a .com, etc.

RewriteEngine on
RewriteCond %{HTTP_HOST} ^sitioanterior.com [NC,OR]
RewriteCond %{HTTP_HOST} ^www.sitioanterior.com [NC]
RewriteRule ^(.*)$ https://nuevositio.com/$1 [L,R=301,NC]

Redireccionar todo el dominio de no-www a www

Puede darse el caso que existan dos versiones de tu web, una con ‘www’ (www.tuweb.com) o sin ‘www’ (tuweb.com). Si tu web tiene estas dos versiones estamos ante contenido duplicado. Puedes comprobar si tu web tiene las dos versiones o si de una redirige a otra. Para ello busca en tu navegador ambas versiones, si en lugar de redirigir de una versión a otra de forma automática, ambas ofrecen el mismo contenido, necesitas hacer una redirección 301.

Si quieres redireccionar de una versión sin www a una versión con www, deberás utilizar esta regla en el htaccess:

RewriteEngine on
RewriteCond %{HTTP_HOST} ^midominio.com [NC]
RewriteRule ^(.*)$ http://www.midominio.com/$1 [L,R=301,NC]

Redireccionar todo el dominio de www a no-www

Puede darse el caso que existan dos versiones de tu web, una con ‘www’ (www.tuweb.com) o sin ‘www’ (tuweb.com). Si tu web tiene estas dos versiones estamos ante contenido duplicado. Puedes comprobar si tu web tiene las dos versiones o si de una redirige a otra. Para ello busca en tu navegador ambas versiones, si en lugar de redirigir de una versión a otra de forma automática, ambas ofrecen el mismo contenido, necesitas hacer una redirección 301.

Si quieres redireccionar de una versión sin www a una versión con www, deberás utilizar esta regla en el htaccess:

RewriteEngine on
RewriteCond %{HTTP_HOST} ^www.midominio.com [NC]
RewriteRule ^(.*)$ http://midominio.com/$1 [L,R=301,NC]

Redireccionar el dominio entero de HTTP a HTTPS

Si tienes una web y acabas de instalar el certificado SSL es conveniente que toda tu web se muestre con https. Para ello debes incluir en tu htacces esta regla

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

Redireccionar el dominio entero de HTTPS a HTTP

Si por el contrario, tenías tu web bajo el protocolo https pero has decidido quitarlo, debes redirigir a tu web en versión http.

RewriteCond %{HTTPS} on
RewriteRule (.*) http://www.midominio.com/$1 [R=301,L,QSA]

Redireccionar de la versión con barra a la versión sin barra

  • Con / a sin /. Quizás sea algo que nunca has comprobado pero puede que en tu web tengas habilitadas las dos opciones. Si tu web es visible con el slash (/) al final y también sin él, estamos ante una duplicidad que puedes solucionar aplicando la siguiente regla:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule (.*) http://www.ejemplo.com/$1/ [R=301,L,QSA]

Redireccionar de la versión sin barra a la versión con barra

Para hacerlo al contrario del anterior paso:

RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.*)/$ http://www.tudominio.com/$1 [R=301,L,QSA]

Redireccionar una IP

Es importante que la dirección IP de tu web dirija a la URL de tu dominio. Para ello debes hacer la siguiente redirección en tu htaccess.

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REMOTE_ADDR} !^185.136.00.00
RewriteCond %{REMOTE_ADDR} !^46.231.00.00
RewriteCond %{REQUEST_URI} !/en-obras.html$ [NC]
RewriteCond %{REQUEST_URI} !.(jpe?g?|png|gif|css|js) [NC]
RewriteRule .* /en-obras.html [R=302,L]
</IfModule>

Redireccionar Index/Home

Index/Home. Se trata de una duplicidad que ocurre en muchas webs y que se puede solucionar con una redirección 301. Por ejemplo, las webs www.midominio.com/index.html y www.midominio.com/home muestran el mismo contenido, manteniendo la URL tal cual que www.midominio.com. Las dos primeras webs con /index.html y /home deben redirigir automáticamente a www.midominio.com.

-Para ello, en el .htaccess indicaremos la siguiente regla:

Redirect 301 /index.html http://ejemplo.com 
Redirect 301 /home http://ejemplo.com

¿Cuando necesitas una redirección 301?

Existen muchos casos pero nosotros te vamos a poner un par de ejemplos

Imagina que en tu ecommerce tenías un producto bien posicionado, pero que por motivos de stock ya no lo vas a tener más a la venta. Esta página de producto puede ser redireccionada a otra página de un producto similar.

Estamos ante una web que cuenta con una estructura de enlaces que muestra las páginas de producto de la siguiente manera: www.laweb.com/category/producto. Se toma la decisión de que la nueva estructura sea www.laweb.com/producto, simplificando la URL.

Con este cambio será necesario una redirección 301, de lo contrario, las páginas con la URL antigua aparecerán con un error 404.

Se puede optar por redireccionar de una landing a otra en el caso de que la de origen haya quedado desfasada. De esta forma, sí tenemos una página con buena reputación ayudaremos a la nueva landing page a partir con ventaja.

¡Aclaración! Las “landing page” o páginas de aterrizaje son páginas en las que queremos que entren las visitas. (vendemos nuestro producto, ofrecemos servicios, ponemos publicidad, etc.).

Si tienes un blog puede que tengas algunos artículos con muchas visitas pero que son antiguos y por ello ya no te generan tantas visitas. Por ello, crea un artículo completamente nuevo, añade la información de ese post antiguo, actualízala y añade nuevo contenido. Una vez que publiques el nuevo artículo, realizar una redirección 301 del artículo antiguo al artículo nuevo, de esta forma será mucho más fácil posicionar el más nuevo.

En ocasiones las webs cambian de dominio, bien porque prefieren que se les identifique con otro, por motivos SEO o incluso por motivos de cambio del nombre de la marca.

Puede ocurrir en todo tipo de webs. Sin saberlo, puede que tu web tenga contenido duplicado, por ejemplo, si tu web tiene versión con ‘www’ y sin ‘www’ y no existe una redirección, al ofrecer ambas web exactamente el mismo contenido, estaríamos hablando de contenido duplicado. Este tipo de duplicidades también puede ocurrir con el protocolo http y https.