Redireccionar (bien) tu página web o blog a un nuevo sitio

Es muy común que la gente empiece a escribir su propio blog en sitios gratuitos como blogger o similares. Eso está bien porque te ahorras mucho dinero en dominios, hosting y demás, pero el día que creces y te cambias (como me ha ocurrido a mí) tienes un problema: no sabes cómo mudar a tus lectores al nuevo dominio. Para esto se utilizan las redirecciones automáticas. Hoy voy a contarte cómo hacerlo de 2 formas para redireccionar desde blogger.

Este tutorial es algo muy simple, pero he decidido crearlo porque he explorado un poco por la red y todos los tutoriales son exactamente iguales. Estoy cansado de que la gente que no sabe programar se dedique a copiar código de otros y a dar clases como si supiera, aunque esto es harina de otro costal. He querido traeros mi propio código y explicado con mis propias palabras de una forma que, os garantizo, no vais a encontrar en ningún otro lugar.

¿Redirección completa o redirección parcial?

Antes de empezar a enseñaros el código quiero que diferenciemos 2 tipos de redirecciones.

REDIRECCIÓN COMPLETA

Cuando hablo de redirección completa me refiero a lo que hace todo el mundo: redireccionas todo el contenido de tu sitio antiguo a la página principal de tu sitio nuevo. Es la vía más fácil, pero es la que peor funciona. Piensa que, al hacer esto, se va a perder todo el contenido de tu sitio antiguo. Cada vez que alguien acceda a cualquier artículo o página de tu sitio antiguo será redirigido automáticamente a la página principal de tu nuevo sitio.

Aunque es cierto que la considero una forma muy mala de hacer esto, es cierto que puede venirnos muy bien según el tipo de contenido del que trate nuestro blog.

Si quieres conseguir esto lo único que tienes que hacer es copiar el siguiente código justo después de la etiqueta <head> del código fuente de tu sitio. ¿Por qué en ese lugar? Porque esa etiqueta contiene información que cargará desde cualquier sitio de tu web y así garantizas que, accedan a donde accedan serán redireccionados a tu nueva web.

<script>
var nuevaPag = "http://tuNuevoSitio.com" //variable con la dirección de nuestro nuevo sitio
function redirigir(){ 
location.href = nuevaPag; //Función de redirección
}
setTimeout("redirigir()", 100); //Ejetutamos la función de redirección después de esperar 100 milisegundos
</script>

Y si queremos optimizar un poco podemos ahorrarnos la variable:

<script>
function redirigir(){
location.href = "http://tuNuevoSitio.com"
}
setTimeout("redirigir()", 100);
</script>

Pero no es la única solución. Si queremos optimizar todavía mucho más podemos redirigir automáticamente sin esperar esos 100 milisegundos:

<script>
location.href = "http://tuNuevoSitio.com";
</script>

¿Veis que sencillo? ¡Una única línea!

REDIRECCIÓN PARCIAL

En mi caso, no quiero redirección completa. En el sitio antiguo (que puedes visitar aquí) tengo muchos artículos que no quiero que se pierdan. Generalmente la gente con el mismo problema que yo lo que hace es copiar todos sus artículos al nuevo sitio. Si es tu caso, la redirección completa seguramente sea la mejor opción si copias todo el contenido al nuevo dominio. No obstante, muchos de los artículos que no quiero que se pierdan son obsoletos o muy antiguos como para reescribirlos en este sitio web. Tengo por ejemplo algunas reviews de artículos que salieron al mercado o tutoriales de versiones antiguas de software que sería ridículo escribirlos ahora. No quiero eliminar esa información redireccionando todo el blog directamente a este sitio, pero quiero que la gente pueda seguir accediendo a esa review en el sitio viejo. Creo que me explico, ¿verdad?

En este caso lo que vamos a hacer va a ser redireccionar solo los artículos que deseemos. Es muy sencillo. En un principio, lo único que deberíamos hacer es utilizar el mismo código pero situándolo al inicio de la entrada que deseamos redireccionar y, en vez de redireccionar a la página principal, redireccionamos a ese mismo artículo escrito en el nuevo sitio.

Pero si hacemos esto nos encontramos con que no funciona correctamente según las pruebas que he hecho. ¿Por qué? Porque cuando accedemos a la página principal del blog y muestra una lista con el inicio de cada entrada ya estará cargando todos los scripts de cada entrada y nos redireccionará automáticamente desde la web que no deseamos. Para evitar esto, debemos preguntarle al navegador en qué url nos encontramos y, solo cuando estemos en la url deseada, procederemos a la redirección. El código sería el siguiente:

<script>
var nuevaPag = "http://tuNuevoSitio.com/tu-nuevo-articulo"; //Variable con el enlace al artículo del nuevo sitio
var urlActual = window.location.href; //variable que guarda la url en la que nos encontramos
var urlAntigua = "http://tuAntiguoSitio.com/tu-articulo-viejo" //variable con el enlace del artículo antiguo que deseamos redirigir
function redirigir(){
location.href = nuevaPag; //Función de redirección
}
if(urlActual == urlAntigua){
//Redireccionamis SI Y SOLO SI nos encontramos en la entrada que deseamos redirigir
redirigir();
}
</script>

Ese código se entiende muy bien, pero podemos ahorrarnos las variables y reducir en gran medida las líneas de código con esta versión final optimizada:

<script>
if(window.location.href == "http://tuAntiguoSitio.com/tu-articulo-viejo"){
location.href = "http://tuNuevoSitio.com/tu-nuevo-articulo";
}
</script>

Qué maravilla, con solo 2 líneas podemos redirigir cada entrada.

Este método es, sin duda alguna, el mejor con diferencia. No obstante, aclaro que dependiendo del tipo de mudanza que desees puede o no venirte mejor, ya que debes tener en cuenta que tienes que hacer esto para cada artículo que copies a tu nuevo sitio. Así consigues mudar los artículos que te interesan y, los que no, puedes dejarlos en tu sitio viejo sin perder el acceso a ellos e, incluso, puedes continuar monetizándolos.

19 comentarios

  1. Miguel

    Excelente!

    • Urbano Villanueva

      Muchas gracias! Me alegra haberte ayudado!

  2. Jose Maria

    Hola una pregunta, yo tengo un dominio, que he importado entero a otra url, pero claro quiero si alguien a traves de enlaces publicados u otras cosas entra en el sitio viejo sea redireccionado al nuevo, como lo hago? No puedo eliminar el sitio viejo del search console cierto? Que me aconsejas? Gracias

    • Urbano Villanueva

      No. si quieres redireccionar el sitio viejo debe permanecer. Puedes redireccionar automáticamente o configurar los mismos dns. Lo que recomiendo es redireccionar un tiempo y luego eliminar el sitio viejo para no perder ese tráfico

  3. Guido

    Que tal.
    Hay una opción más simple que posee la misma plataforma de blogger para redireccionar artículos ya publicados a nuevos artículos en otro sitio, de forma que no perdamos el posicionamiento en google o que al menos sea mínimo el impacto en nuestras visitas.
    No lo descubri yo, solo google un rato…
    El método nativo de blogger se hace de la siguiente manera:
    Vamos a:
    Configuración – Preferencias de búsqueda – Errores y redireccionamientos – Destino de Redireccionamiento personalizado
    Ahí añadís la redirección:
    1 .- Marcas la casilla con un clic, y donde dice «De» vas a colocar una barra diagonal como esta «/» con el link de la entrada que empieza con la fecha. Ej: /2019/07/messi-pecho-frio.html
    2.- En «Para» le vas a colocar dos barras diagonales «//» al comienzo de la url completa (ojo! sin http), hacia el articulo en el sitio donde vas a redireccionar. ej: //www.pechofrio.gol/2019/07/messi-pecho-frio.html
    3.- Clic donde dice «Permanente» y le das a guardar.

    Y listo el pollo!

    link original: https://forobeta.com/blogger/341263-redireccion-301-blogger.html

    • Urbano Villanueva

      Muy buen apunte. Gracias por tu aportación!

  4. ituano

    gracias por la informacion

  5. Arobis

    A mi no me funciona, se supone que el script de redirección va dentro del «head» pero me da el siguiente error: Se ha producido un error al analizar el XML, línea 6, columna 79: The reference to entity «sc» must end with the ‘;’ delimiter.

    • Urbano Villanueva

      Sin más información no sé que está pasando. Puedes copiar el código que te da problemas. Parece que te has dejado un < sin cerrar

  6. Fernando

    Hola! Yo estaba redireccionando un blogger a una web nueva. Es el caso de «redireccion completa» que indicas. Lo que he visto es que se hace bien, pero que en el caso del móvil no funciona. Si pongo la url en el móvil, no me redirecciona a la nueva. ¿Qué puede estar pasando?

    • Urbano Villanueva

      Ni idea. Buena pregunta. Lo único que se me ocurre preguntarte es: ¿Utilizas el mismo navegador en móvil y en el ordenador? Ya no solo la «marca» (chrome, firefox…) sino la versión. Los estándares HTML cambian y puede que tu navegador no interprete lo mismo en el movil que en el PC por el cambio de versión. Sinceramente, dudo mucho que sea eso, pero no se me ocurre nada

  7. Carplos

    Hola, gracias por el aporte, tengo una duda cuando navego desde la PC la redirección funciona bien, pero cuando lo hago desde mobil no funciona, que puede estar pasando?

    Web : https://www.preciodeldolar.org/p/tipo-cambio-dolar-hoy-ocona.html

    • Urbano Villanueva

      Ni idea, no se cuál puede ser el problema

      • Jonathan

        Hola Urbano,
        Tuve el mismo incoveniente para con la versión movil de mi blog en Blogger.
        Te comento que la solución a este problema es eliminando un estracto de la url para móviles que viene por defecto.
        Es decir, la url de un sitio de Blogger para móviles es: http://www.miblog.com/?m=1.

        Para poder ejecutar libremente el código de redireccionamiento que nos facilitaste es necesario borrar ese fragmento. Y para eso, se tiene que agregar otro javascript, el cuál es el siguiente:
        <script type='text/javascript'>
        var uri = window.location.toString();
        if (uri.indexOf("&m=1","&m=1") > 0) {
        var clean_uri = uri.substring(0, uri.indexOf("&m=1"));
        window.history.replaceState({}, document.title, clean_uri);
        }
        var uri = window.location.toString();
        if (uri.indexOf("?m=1","?m=1") > 0) {
        var clean_uri = uri.substring(0, uri.indexOf("?m=1"));
        window.history.replaceState({}, document.title, clean_uri);
        }
        </script>

        El código de que puse, es nesario convertirlo a texto plano, para que funcione, luego insertarlo en la etiqueta <head>.

  8. Alicia

    Hola,
    En primer lugar, enhorabuena por el artículo. Es muy claro y conciso.
    Tengo una duda con la que no sé si me podrías ayudar. Quiero hacer una redirección completa, pues los contenidos están desactualizados) desde una web de Blogger. He leído las líneas de código que propones pero no me queda claro si esto hay que copiarlo en la web nueva o en la antigua.
    Muchas gracias.

    • Urbano Villanueva

      Buenas, el código hay que ponerlo en la web antigua. Ella es la que redirige a la nueva. Saludos!

  9. Karlos

    Funciona!!! Muchas gracias.

  10. Geli

    Muchas gracias, la verdad me sirvió perfectamente tu explicación!!!

  11. CARLOS

    Hola Urbano! Buscando para redireccionar mi blog encontré tu excelente información. He hecho pruebas y consigo redireccionar de forma individual tal y como explicó Guido por medio de Blogger Configuración – Preferencias de búsqueda – Errores y redireccionamientos – Destino de Redireccionamiento personalizado.

    Lo consigo con todas las páginas y entradas menos con la página principal del Blog.

    Y mi pregunta es si podría generar algún tipo de problema el utilizar un doble sistema.

    1º El redireccionamiento general que explicas con la edición de código HTML después de Head.

    2ª Y adicionalmente utilizar el redireccionamiento individual con el sistema que explicó Guido.

    No se si serán incompatibles utilizar ambas opciones. Espero que puedas echarme un cable con tu conocimiento. Mil gracias por anticipado!

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

*