Google Sheets es una de las herramientas más poderosas para hacer
SEO. Cuenta con gran variedad de funcionalidades, funciones para manipular tu data, APIs y documentación. Si ya lo estuvieron usando durante algunos años, habrán notado que sus fórmulas son cada vez más complejas con varias concatenaciones, condicionales, funciones anidadas, etc. Esto a veces puede ser problemático ya que nuestra hoja de cálculos se va cargando de información y funcionando cada vez más lentamente.
Qué son las UDFs
Hoy vamos a ver cómo crear un UDF para SEO. Un UDF es un
User Defined Function o función definida por el usuario. Básicamente, vamos a crear una función de Google Sheets con código JavaScript que haga lo que queremos, más allá de las funciones preestablecidas que vienen con la aplicación.
Para qué sirven las UDFs
A veces sencillamente no se puede alcanzar el objetivo deseado con las funciones que vienen por defecto; a veces hacemos los mismos cálculos tantas veces que nos serviría tener una funcionalidad predeterminada de antemano para esto. Como solución a esto, Google Sheets ofrece la funcionalidad de
crear funciones personalizadas para poder lidiar con este tipo de situaciones.
Hay veces que necesitamos usar fórmulas kilométricas en Google Sheets o Microsoft Excel que hacen que nuestra hoja de cálculos tarde más tiempo en cargar, se vea desprolija y hasta se incremente el margen de error. Adicionalmente, las fórmulas extensas y concatenadas no son siempre fáciles de mantener y si se recurre al archivo un par de semanas después de no usarlo es posible que no se entienda la lógica implementada para poder construir sobre ella.
Un ejemplo concreto de una función definida por el usuario
Veamos cómo podemos usar esta funcionalidad para una típica planilla de redirecciones de URLs o de migración de URLs. Vamos a programar una función de
Google Sheets para SEO que puede resultarle útil a más de uno: una función que convierta a una celda en slug.
Es probable que algunos recurran a algo así como
Visto en Google Sheets sería...
Esta función pasa todo el texto de la celda a minúsculas y sustituye todos los espacios por guiones medios. Pero como vemos, no es suficiente ya que existen caracteres especiales que no se reemplazan correctamente. Necesitamos una UDF para SEO.
En lugar de crear una fórmula larga y desprolija que detalle toda la casuística de reemplazos, vamos a escribir una función personalizada para Google Sheets. Para esto tenemos que ir al menú Herramientas > Editor de secuencias de comandos
Se tiene que abrir una ventana como la siguiente:
En este caso, nombramos al archivo ‘UDFs para SEO’ y luego lo guardamos.
Básicamente, todo lo que escribamos dentro de la función myFunction() va a ejecutarse al correr el script.
Arranquemos con algo fácil para entender cómo funciona.
Vamos a cambiarle el nombre de la función a slug. Este nombre puede ser cualquier cosa (sin espacios) y es el nombre de la función que se va a escribir en la celda cuando se llame a la función.
Este código se lee así: cuando alguien llame a la función slug, se levanta el input que está dentro del paréntesis. Paso siguiente, el input ahora es el mismo valor pero pasado a minúscula; devolver el input.
Bastante directo, ¿no? Cabe destacar que el parámetro input puede llamarse lo que sea, pero siempre que se lo llame se debe usar el nombre que se le asignó.
Veamos cómo queda en el spreadsheet…
¡Un éxito! Escribimos nuestra función personalizada en una celda y el output fue el deseado.
Ahora compliquémosla un poco... que la función no sólo pase el texto de una celda a minúscula sino que además reemplace los espacios por guiones medios.
Noten que se usamos una expresión regular para encontrar a uno o más espacios en la celda. Esto se encarga de potenciales espacios dobles, triples, etc. y los reemplaza por un único guión medio. Veamos cómo quedó…
¡Bien! Pero, ¿qué hacemos con todos los caracteres especiales? Sencillamente armamos un regex con todos los caracteres que queremos borrar (técnicamente los estaríamos reemplazando por nada).
El resultado visto en el sheet sería:
Vemos que ya no aparecen caracteres no deseados en el output.
Así de fácil. Puede que tengas que revisar un poco algunos sitios de programación en JavaScript para encontrar lo que necesites, pero las buenas noticias son que la documentación es extensa y las comunidades que te pueden dar una mano con esto también. ¡Perdele el miedo y ponete a programar tus propias secuencias de comando para Google Sheets!
Te dejamos el código para que lo pruebes en tus hojas de cálculo.