Redirection Checker: Script para comprobar redirecciones en bulk

Una de las tareas más recurrentes en nuestra labor como SEOs es la definición de un mapeo de redirecciones, sea cual sea el motivo para migrar las URLs antiguas a las nuevas (migración de contenido, contenido obsoleto, etc.)

Lo que normalmente se hace es crear un documento donde hacemos este mapeo de redirecciones, definiendo cual es la URL de origen y cual es la URL de destino preferida. Las circunstancias para realizar los redirects, como he comentado, pueden ser variadas: una migración web, una migración parcial de secciones específicas, URLs obsoletas, reescritura de URLs etc.

Habrá situaciones en las que realmente no hará falta la creación de un mapeo de redirecciones individualizado, ya que podrás utilizar reglas en .htaccess, directamente en servidor etc. en las que no tendrás que definir una redirección para cada URL. 
Sin embargo, inevitablemente, en muchas otras ocasiones aún sigue haciendo falta. 

Si bien la creación de este documento normalmente es tarea nuestra, la implementación de estas redirecciones puede no depender de nosotros, y por tanto, se pueden escapar ciertos detalles que hacen que las redirecciones no apunten a la URL preferida desde SEO.

Dado que mi intención es minimizar al máximo las tareas repetitivas del día a día, la idea era crear un script que me automatizara el checkeo de estas redirecciones y que me dijera si coincide o no con mi mapeo inicial.

Para hacer un «checkin» del mapeo de redirecciones, cada uno tendrá su propia técnica o estrategia preferida. Es algo que se puede hacer, por ejemplo, con un crawl en modo lista en Screaming Frog, el cual descargas después y haces un checkeo para ver si coinciden las redirecciones con las que habías definido en un principio (gracias, por ejemplo, al todopoderoso VLOOKUP). Como verás, aquí tienes que concatenar varios procesos: Crawl de Screaming Frog > Descarga > Excel > Trabajo con fórmulas, etc.

Me quería ahorrar todo este proceso y generar un script que me checkeara en base a mi mapeo de redirecciones si las URLs de origen efectivamente redirigen a las URLs de destino preferidas, o si por el contrario, se están dando otras casuísticas (las URLs de destino responden HTTP 4xx, existen bucles en las redirecciones, los redirects son temporales en lugar de permanentes, etc.).

Repositorio en Github: Acceso al código fuente del script

📄 Plantilla de Google Sheets

El script se ha creado en el entorno de Google App Script, ya que me permite trabajar los datos directamente desde una hoja de Google Sheets.

Para trabajar con la plantilla, como siempre, tendrás que acceder a la plantilla y hacerte una copia del fichero.

REDIRECTION CHECKER: PLANTILLA EN GOOGLE SHEETS

🔩 Funcionamiento de la plantilla

El funcionamiento es muy sencillo. Primero tendrás que crear tu documento de mapeo, en donde habrás definido las URLs de origen y las URL de destino preferidas (puedes simplemente apuntarlas en la plantilla, sin crear ningún documento previo).

Una vez tengas este documento, ve a la plantilla:

  1. Pega las URLs de origen y de destino preferidas.
  2. Clicka en el botón «Redirection Checker»

Se irán pintando en la plantilla los siguientes datos:

  • Status Code de la URL de origen: HTTP 200, 3xx, 4xx..
  • URL de destino 1: En el caso de que la URL de origen haga una redirección, se pintará la URL a la que redirige.
  • ¿Coincide?: Se pintará un «Si» o un «No» en función de si esta redirección coincide con la que habías definido.

Si la URL de origen genera un bucle de redirecciones, seguirá este bucle hasta 3 veces, indicando la nueva URL de destino y la coincidencia con la URL de destino preferida.

El script te permite identificar bucles de hasta 3 redirecciones, indicando si alguna de ellas coincide con la URL que habías definido en tu mapeo. Esto es realmente útil ya que puedes comprobar; en primer lugar, si existen bucles de redirección, y en segundo lugar, si la URL final del bucle realmente coincide con la que has definido.

⚠️ Restricciones del script

Dado que el script está desarrollado en el entorno de Google, éste tiene definidas una serie de restricciones diarias para la ejecución de sus servicios.

Tiempo de ejecución

La que más nos viene a fastidiar es la relativa al tiempo de ejecución del script, ya que para una cuenta estándar de G suite el tiempo máximo de ejecución es de 6 minutos. Dado que el script tiene que realizar bastantes llamadas en loop a la clase UrlFetchApp, la ejecución puede ser un poco lenta, y por tanto, para un nº elevado de URLs puede sobrepasar los 6 minutos, lo que hará que se detenga y no siga ejecutándose.

Cuando se pause el script a los 6 minutos, espera unos minutos y vuelve a ejecutarlo, continuará por la última fila donde se ha quedado. En cada tanda de ejecución se ejecutan unas 300 URLs aproximadamente.

Llamadas a UrlFetchApp

Otra restricción de los servicios de Google es en relación a su servicio de llamadas a URLs.

La cuota diaria es 20.000.

Es muy probable que no tengas problemas con esto.

💡 Casos de uso

Veamos algunos casos en los que puede ser útil hacer este checkeo:

  • Migración de una sección de tu web.
  • Identificación de bucles de redirecciones.
  • Comprobar que http redirige correctamente a https.
  • Comprobar que las reglas en .htacces se estén ejecutando correctamente.
  • Otras situaciones especificas donde haya que comprobar redirecciones.

Dadas las restricciones del entorno de Google que hemos comentado, no se recomienda su uso para grandes migraciones web en las que haya que checkear miles y miles de URLs.

Deja un comentario