Redirecciones 301 y archivo .htaccess

¿Qué es una redirección 301?

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

Ejemplo: Un visitante entra a web1.com y automáticamente es redirigido a web2.com.

¡AVISO! Las redirecciones 301 son permanentes. (Si buscas algo temporal, estas buscando una redirección 302)

¿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.

Tipos de redirecciones 301 y cómo hacerlas

  • De www a sin www / sin 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:

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

-Si quieres redireccionar de una versión con www a una sin www:

<IfModule mod_rewrite.c>
RewriteCond %{HTTP_HOST} ^www.ejemplo.com [NC]
RewriteRule (.*) http://ejemplo.com/$1 [R=301,L,QSA]
</IfModule>
  • De http a https / de https a http. 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:
<IfModule mod_rewrite.c>
RewriteCond %{HTTPS} off
RewriteRule (.*) https://www.ejemplo.com/$1 [R=301,L,QSA]
</IfModule>

-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. Para ello introduce:

<IfModule mod_rewrite.c>
RewriteCond %{HTTPS} on
RewriteRule (.*) http://www.ejemplo.com/$1 [R=301,L,QSA]
</IfModule>
  • 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.ejemplo.com/index.html y www.ejemplo.com/home muestran el mismo contenido, manteniendo la URL tal cual que www.ejemplo.com. Las dos primeras webs con /index.html y /home deben redirigir automáticamente a www.ejemplo.com.

-Para ello, en el htacces indicaremos la siguiente regla:

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

Redirect 301 /home http://ejemplo.com
  • 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:

-Para redireccionar de la versión con barra a la versión sin barra:

<IfModule mod_rewrite.c>
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule (.*) http://www.ejemplo.com/$1/ [R=301,L,QSA]
</IfModule>

-Para hacerlo al contrario:

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

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

Redirect 301 /pagina-antigua http://ejemplo.com/pagina-nueva

¡Recuerda! la URL que quieres que sea redireccionada debe indicarse como URL relativa, es decir, /laURL.

  • Redireccón de directorio. En el caso que cuentes con un directorio que quieres redireccionar a otro directorio con otro nombre, y a su vez mantener la misma estructura de los directorios y páginas que dependen de él:

-Para un directorio de primer nivel:

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

-Para subdirectorios:

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

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

Redirect 301 / http://www.ejemplo.com/

Redirección de 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>
RewriteCond %{HTTP_HOST} ^190\.90\.190\.90
RewriteRule (.*) http://www.ejemplo.com/$1 [R=301,L,QSA]
</IfModule>

Recuerda indicar tu IP y tu web.

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 / http://www.example.com/URL-destino

Ejemplos:¿Cuándo necesitas hacer una redirección 301?

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

#Ejemplo 1: Productos descatalogados en Ecommerce

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.

#Ejemplo 2: Cambio de estructura de URL

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.

#Ejemplo 3: Landing pages

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.).

#Ejemplo 4: Actualización de artículos antiguos o caducados

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.

#Ejemplo 5: Cambios de dominio

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.

#Ejemplo 6: Contenido duplicado por www o https

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.