Debido a que me he enfrentado recientemente a una migración desastrosa en la que no se había tenido en cuenta el SEO (sencillamente habían dejado toda la arquitectura de URLs antiguas con errores 404), tuve que pensar en un plan de contingencia acelerado que permitiera recuperar la visibilidad del proyecto de una forma rápida, ya que no había mucho margen de tiempo ni actuación.
Por ello, investigué y encontré una librería de Python que te permite hacer match entre cadenas según la similaridad de éstas; Polyfuzz. La librería te hace match entre un string A y un string B, en función de la similaridad de ambas. Lo cierto es que no es un proceso perfecto y requirió de ajustes manuales, pero en mi caso el proceso fue mucho más eficaz y rápido que si hubiera tenido que ser a mano desde 0. La calidad del resultado depende, lógicamente, de cuanto de similar es la arquitectura antigua de URLs y la arquitectura nueva.
El script te matchea URLs por la similaridad de las cadenas utilizando diferentes modelos; no tiene nada que ver con la similaridad de contenido por lo que requiere de una revisión posterior manual para asegurarnos que las redirecciones tienen sentido.
Recuperar las URLs de la arquitectura antigua puede ser una tarea medianamente compleja puesto que realmente no tenemos ya acceso a la versión antigua de la web. Aquí te dejo algunos pasos que yo seguí y las fuentes que utilicé, pero depende del proyecto y de tus ocurrencias:
- Informe de cobertura de Google Search Console filtrando por la fecha previa a la migración.
- Informe de errores 404 de Google Search Console filtrando para la fecha posterior a la migración.
- Informe de estadísticas de rastreo de GSC > errores 404 posteriores a la migración.
- API de wayback machine.
- URLs antiguas indexadas en Google usando el comando site y scrapeando todos los resultados.
- Ahrefs o semrush o alguna herramienta SEO similar que disponga de histórico.
Funcionamiento de Polyfuzz con TF-IDF
La librería te permite utilizar diferentes modelos para hacer el match de cadenas, yo fui probando con las diferentes posibilidades y finalmente me quedé con el algoritmo TF-IDF que básicamente te splitea las cadenas en subcadenas de n-carácteres (puedes definir estos n-gramas) y te va evaluando la similaridad entre ellas.
«We will be extracting n-grams from a string and count the frequency of these n-grams across all input strings. For example, with 3-grams, the word «hotel» can be defined as «hot», «ote», and «tel». After generating the n-grams and applying TF-IDF on these «terms», we can use cosine similarity to compare the generated TF-IDF vectors against each other.»
Documentación de Polyfuzz
¿Cómo usar el script?
El funcionamiento es muy básico, lo único que tienes que preparar es un excel con las URLs de origen y otro con las URLs de destino para que el script te genere el match entre ellas.
Link al script en Google Colaboratory
Los excel deben llamarse «urls_origen» y «urls_destino» y el formato en el que tienes que preparar el excel de URLs es el siguiente:
Cuando tengas estos excel preparados, ve a la plantilla del script y básicamente presiona Ctrl + F9. Te preguntará para subir los dos documentos y eso será lo único que debes hacer.
¿Qué obtenemos?
El resultado que te devuelve es el siguiente, junto al descargable:
Es aquí donde debes mirar manualmente que los redirects tengan sentido, y corregir aquellos que no te cuadren. Como he mencionado no es un proceso perfecto, pero está claro que te puede salvar de algún lío o al menos agilizar el proceso.
Cuando implementes las redirecciones, puedes usar este otro script para comprobar que las redirecciones están correctamente implementadas.
Espero que os haya servido de ayuda!
Sobre el autor
Especialista SEO con gran foco en el área técnica. Entusiasta de la programación, en especial Python y Javascript, y la aplicación de ésta en el ámbito SEO para automatizar procesos o profundizar en ciertos ámbitos como el web scraping o el uso de APIs. He trabajado en proyectos SEO de muy diferente tamaño y sector lo que me permite obtener una perspectiva 360º de cómo trabajarlo.
This is my first time pay a visit at here and i am
really pleassant to read everthing at one place.