Funciones de Google SPREADSHEET para mejorar la técnica SEO de análisis SEO de palabras clave
Este va a ser un post -principalmente- técnico, en el que te incluiré dos funciones en javascript, listas para instalarlas (al final pondré un sencillo vídeo de cómo se instalan). Estas funciones te resultarán de gran ayuda para el análisis de expresiones en un estudio de palabras clave:
Un ejemplo práctico del uso combinado de estas dos funciones es cuando queremos saber qué expresiones traen más tráfico, analizamos las expresiones de Google ANALYTICS y estas son: consultor seo, consultoría seo, consultor en seo, etc. Como puede observarse son la misma frase, pero las cadenas de texto literales, no lo son y dificulta el análisis.
- Función DeleteStopWords: esta función devuelve la expresión que le pases como parámetro, pero eliminando las denominadas stopwords (aquellas palabras que están vacías porque no añaden información importante a la frase: artículos, pronombres, preposiciones)
- Función LevenshteinDistance: esta función devuelve un valor numérico resultante de calcular la distancia entre las dos expresiones que le pasamos como parámetro (entendiéndase “distancia” como el número de cambios de letras y/o de posiciones de las mismas, que hay que hacer para convertir una expresión en la otra.
¿Cómo se instala una función de javascript en Google SPREADSHEET?
Aquí tienes un vídeo breve y explicativo de cómo se instalan estas funciones personalizadas en Google SPREADSHEET. Y un pequeño ejemplo de uso de las mismas.
Funciones de Google SPREADSHEET para mejorar tu técnica de análisis SEO
Función de la Distancia de Levenshtein
/** * Calcula la distancia de Levenshtein entre 2 cadenas de texto */ function levenshtein(a, b) { var i, j, r=[]; r[0] = []; r[0][0] = 0; for(i=1; i<=a.length; i++) { r[i] = []; r[i][0] = i; for(j=1; j<=b.length; j++) { r[0][j] = j; r[i][j] = Math.min( r[i-1][j]+1, r[i][j-1]+1, r[i-1][j-1] + (a[i-1]!==b[j-1]) ); } } return r[a.length][b.length]; }
Función de eliminación de Stopwords
/** * Elimina Stopwords */ function DeleteStopWords(a) { var frase a = a.replace(/( a | a)/gi,' '); a = a.replace(/( al | a)/gi,' '); a = a.replace(/( algo | a)/gi,' '); a = a.replace(/( algunas | a)/gi,' '); a = a.replace(/( algunos | a)/gi,' '); a = a.replace(/( ante | a)/gi,' '); a = a.replace(/( antes | a)/gi,' '); a = a.replace(/( como | a)/gi,' '); a = a.replace(/( con | a)/gi,' '); a = a.replace(/( contra | a)/gi,' '); a = a.replace(/( cual | a)/gi,' '); a = a.replace(/( cuando | a)/gi,' '); a = a.replace(/( de | a)/gi,' '); a = a.replace(/( del | a)/gi,' '); a = a.replace(/( desde | a)/gi,' '); a = a.replace(/( donde | a)/gi,' '); a = a.replace(/( durante | a)/gi,' '); a = a.replace(/( e | a)/gi,' '); a = a.replace(/( el | a)/gi,' '); a = a.replace(/( ella | a)/gi,' '); a = a.replace(/( ellas | a)/gi,' '); a = a.replace(/( ellos | a)/gi,' '); a = a.replace(/( en | a)/gi,' '); a = a.replace(/( entre | a)/gi,' '); a = a.replace(/( era | a)/gi,' '); a = a.replace(/( erais | a)/gi,' '); a = a.replace(/( eramos | a)/gi,' '); a = a.replace(/( eran | a)/gi,' '); a = a.replace(/( eras | a)/gi,' '); a = a.replace(/( eres | a)/gi,' '); a = a.replace(/( es | a)/gi,' '); a = a.replace(/( esa | a)/gi,' '); a = a.replace(/( esas | a)/gi,' '); a = a.replace(/( ese | a)/gi,' '); a = a.replace(/( eso | a)/gi,' '); a = a.replace(/( esos | a)/gi,' '); a = a.replace(/( esta | a)/gi,' '); a = a.replace(/( estaba | a)/gi,' '); a = a.replace(/( estabais | a)/gi,' '); a = a.replace(/( estabamos | a)/gi,' '); a = a.replace(/( estaban | a)/gi,' '); a = a.replace(/( estabas | a)/gi,' '); a = a.replace(/( estad | a)/gi,' '); a = a.replace(/( estada | a)/gi,' '); a = a.replace(/( estadas | a)/gi,' '); a = a.replace(/( estado | a)/gi,' '); a = a.replace(/( estados | a)/gi,' '); a = a.replace(/( estais | a)/gi,' '); a = a.replace(/( estamos | a)/gi,' '); a = a.replace(/( estan | a)/gi,' '); a = a.replace(/( estando | a)/gi,' '); a = a.replace(/( estar | a)/gi,' '); a = a.replace(/( estara | a)/gi,' '); a = a.replace(/( estaran | a)/gi,' '); a = a.replace(/( estaras | a)/gi,' '); a = a.replace(/( estare | a)/gi,' '); a = a.replace(/( estareis | a)/gi,' '); a = a.replace(/( estaremos | a)/gi,' '); a = a.replace(/( estaria | a)/gi,' '); a = a.replace(/( estariais | a)/gi,' '); a = a.replace(/( estariamos | a)/gi,' '); a = a.replace(/( estarian | a)/gi,' '); a = a.replace(/( estarias | a)/gi,' '); a = a.replace(/( estas | a)/gi,' '); a = a.replace(/( este | a)/gi,' '); a = a.replace(/( esteis | a)/gi,' '); a = a.replace(/( estemos | a)/gi,' '); a = a.replace(/( esten | a)/gi,' '); a = a.replace(/( estes | a)/gi,' '); a = a.replace(/( esto | a)/gi,' '); a = a.replace(/( estos | a)/gi,' '); a = a.replace(/( estoy | a)/gi,' '); a = a.replace(/( estuve | a)/gi,' '); a = a.replace(/( estuviera | a)/gi,' '); a = a.replace(/( estuvierais | a)/gi,' '); a = a.replace(/( estuvieramos | a)/gi,' '); a = a.replace(/( estuvieran | a)/gi,' '); a = a.replace(/( estuvieras | a)/gi,' '); a = a.replace(/( estuvieron | a)/gi,' '); a = a.replace(/( estuviese | a)/gi,' '); a = a.replace(/( estuvieseis | a)/gi,' '); a = a.replace(/( estuviesemos | a)/gi,' '); a = a.replace(/( estuviesen | a)/gi,' '); a = a.replace(/( estuvieses | a)/gi,' '); a = a.replace(/( estuvimos | a)/gi,' '); a = a.replace(/( estuviste | a)/gi,' '); a = a.replace(/( estuvisteis | a)/gi,' '); a = a.replace(/( estuvo | a)/gi,' '); a = a.replace(/( fue | a)/gi,' '); a = a.replace(/( fuera | a)/gi,' '); a = a.replace(/( fuerais | a)/gi,' '); a = a.replace(/( fueramos | a)/gi,' '); a = a.replace(/( fueran | a)/gi,' '); a = a.replace(/( fueras | a)/gi,' '); a = a.replace(/( fueron | a)/gi,' '); a = a.replace(/( fuese | a)/gi,' '); a = a.replace(/( fueseis | a)/gi,' '); a = a.replace(/( fuesemos | a)/gi,' '); a = a.replace(/( fuesen | a)/gi,' '); a = a.replace(/( fueses | a)/gi,' '); a = a.replace(/( fui | a)/gi,' '); a = a.replace(/( fuimos | a)/gi,' '); a = a.replace(/( fuiste | a)/gi,' '); a = a.replace(/( fuisteis | a)/gi,' '); a = a.replace(/( ha | a)/gi,' '); a = a.replace(/( habeis | a)/gi,' '); a = a.replace(/( haber | a)/gi,' '); a = a.replace(/( habia | a)/gi,' '); a = a.replace(/( habiais | a)/gi,' '); a = a.replace(/( habiamos | a)/gi,' '); a = a.replace(/( habian | a)/gi,' '); a = a.replace(/( habias | a)/gi,' '); a = a.replace(/( habida | a)/gi,' '); a = a.replace(/( habidas | a)/gi,' '); a = a.replace(/( habido | a)/gi,' '); a = a.replace(/( habidos | a)/gi,' '); a = a.replace(/( habiendo | a)/gi,' '); a = a.replace(/( habra | a)/gi,' '); a = a.replace(/( habran | a)/gi,' '); a = a.replace(/( habras | a)/gi,' '); a = a.replace(/( habre | a)/gi,' '); a = a.replace(/( habreis | a)/gi,' '); a = a.replace(/( habremos | a)/gi,' '); a = a.replace(/( habria | a)/gi,' '); a = a.replace(/( habriais | a)/gi,' '); a = a.replace(/( habriamos | a)/gi,' '); a = a.replace(/( habrian | a)/gi,' '); a = a.replace(/( habrias | a)/gi,' '); a = a.replace(/( han | a)/gi,' '); a = a.replace(/( has | a)/gi,' '); a = a.replace(/( hasta | a)/gi,' '); a = a.replace(/( hay | a)/gi,' '); a = a.replace(/( haya | a)/gi,' '); a = a.replace(/( he | a)/gi,' '); a = a.replace(/( hemos | a)/gi,' '); a = a.replace(/( hube | a)/gi,' '); a = a.replace(/( hubiera | a)/gi,' '); a = a.replace(/( hubierais | a)/gi,' '); a = a.replace(/( hubieramos | a)/gi,' '); a = a.replace(/( hubieran | a)/gi,' '); a = a.replace(/( hubieras | a)/gi,' '); a = a.replace(/( hubieron | a)/gi,' '); a = a.replace(/( hubiese | a)/gi,' '); a = a.replace(/( hubieseis | a)/gi,' '); a = a.replace(/( hubiesemos | a)/gi,' '); a = a.replace(/( hubiesen | a)/gi,' '); a = a.replace(/( hubieses | a)/gi,' '); a = a.replace(/( hubimos | a)/gi,' '); a = a.replace(/( hubiste | a)/gi,' '); a = a.replace(/( hubisteis | a)/gi,' '); a = a.replace(/( hubo | a)/gi,' '); a = a.replace(/( la | a)/gi,' '); a = a.replace(/( las | a)/gi,' '); a = a.replace(/( le | a)/gi,' '); a = a.replace(/( les | a)/gi,' '); a = a.replace(/( lo | a)/gi,' '); a = a.replace(/( los | a)/gi,' '); a = a.replace(/( mas | a)/gi,' '); a = a.replace(/( me | a)/gi,' '); a = a.replace(/( mi | a)/gi,' '); a = a.replace(/( mia | a)/gi,' '); a = a.replace(/( mias | a)/gi,' '); a = a.replace(/( mio | a)/gi,' '); a = a.replace(/( mios | a)/gi,' '); a = a.replace(/( mis | a)/gi,' '); a = a.replace(/( mucho | a)/gi,' '); a = a.replace(/( muchos | a)/gi,' '); a = a.replace(/( muy | a)/gi,' '); a = a.replace(/( nada | a)/gi,' '); a = a.replace(/( ni | a)/gi,' '); a = a.replace(/( no | a)/gi,' '); a = a.replace(/( nos | a)/gi,' '); a = a.replace(/( nosotras | a)/gi,' '); a = a.replace(/( nosotros | a)/gi,' '); a = a.replace(/( nuestra | a)/gi,' '); a = a.replace(/( nuestras | a)/gi,' '); a = a.replace(/( nuestro | a)/gi,' '); a = a.replace(/( nuestros | a)/gi,' '); a = a.replace(/( o | a)/gi,' '); a = a.replace(/( os | a)/gi,' '); a = a.replace(/( otra | a)/gi,' '); a = a.replace(/( otras | a)/gi,' '); a = a.replace(/( otro | a)/gi,' '); a = a.replace(/( otros | a)/gi,' '); a = a.replace(/( para | a)/gi,' '); a = a.replace(/( pero | a)/gi,' '); a = a.replace(/( poco | a)/gi,' '); a = a.replace(/( por | a)/gi,' '); a = a.replace(/( porque | a)/gi,' '); a = a.replace(/( que | a)/gi,' '); a = a.replace(/( quien | a)/gi,' '); a = a.replace(/( quienes | a)/gi,' '); a = a.replace(/( se | a)/gi,' '); a = a.replace(/( sea | a)/gi,' '); a = a.replace(/( seais | a)/gi,' '); a = a.replace(/( seamos | a)/gi,' '); a = a.replace(/( sean | a)/gi,' '); a = a.replace(/( seas | a)/gi,' '); a = a.replace(/( ser | a)/gi,' '); a = a.replace(/( sera | a)/gi,' '); a = a.replace(/( seran | a)/gi,' '); a = a.replace(/( seras | a)/gi,' '); a = a.replace(/( sere | a)/gi,' '); a = a.replace(/( sereis | a)/gi,' '); a = a.replace(/( seremos | a)/gi,' '); a = a.replace(/( seria | a)/gi,' '); a = a.replace(/( seriais | a)/gi,' '); a = a.replace(/( seriamos | a)/gi,' '); a = a.replace(/( serian | a)/gi,' '); a = a.replace(/( serias | a)/gi,' '); a = a.replace(/( si | a)/gi,' '); a = a.replace(/( sido | a)/gi,' '); a = a.replace(/( siendo | a)/gi,' '); a = a.replace(/( sin | a)/gi,' '); a = a.replace(/( sobre | a)/gi,' '); a = a.replace(/( sois | a)/gi,' '); a = a.replace(/( somos | a)/gi,' '); a = a.replace(/( son | a)/gi,' '); a = a.replace(/( soy | a)/gi,' '); a = a.replace(/( su | a)/gi,' '); a = a.replace(/( sus | a)/gi,' '); a = a.replace(/( suya | a)/gi,' '); a = a.replace(/( suyas | a)/gi,' '); a = a.replace(/( suyo | a)/gi,' '); a = a.replace(/( suyos | a)/gi,' '); a = a.replace(/( tambien | a)/gi,' '); a = a.replace(/( tanto | a)/gi,' '); a = a.replace(/( te | a)/gi,' '); a = a.replace(/( tendra | a)/gi,' '); a = a.replace(/( tendran | a)/gi,' '); a = a.replace(/( tendras | a)/gi,' '); a = a.replace(/( tendre | a)/gi,' '); a = a.replace(/( tendreis | a)/gi,' '); a = a.replace(/( tendremos | a)/gi,' '); a = a.replace(/( tendria | a)/gi,' '); a = a.replace(/( tendriais | a)/gi,' '); a = a.replace(/( tendriamos | a)/gi,' '); a = a.replace(/( tendrian | a)/gi,' '); a = a.replace(/( tendrias | a)/gi,' '); a = a.replace(/( tened | a)/gi,' '); a = a.replace(/( teneis | a)/gi,' '); a = a.replace(/( tenemos | a)/gi,' '); a = a.replace(/( tenga | a)/gi,' '); a = a.replace(/( tengais | a)/gi,' '); a = a.replace(/( tengamos | a)/gi,' '); a = a.replace(/( tengan | a)/gi,' '); a = a.replace(/( tengas | a)/gi,' '); a = a.replace(/( tengo | a)/gi,' '); a = a.replace(/( tenia | a)/gi,' '); a = a.replace(/( teniais | a)/gi,' '); a = a.replace(/( teniamos | a)/gi,' '); a = a.replace(/( tenian | a)/gi,' '); a = a.replace(/( tenias | a)/gi,' '); a = a.replace(/( tenida | a)/gi,' '); a = a.replace(/( tenidas | a)/gi,' '); a = a.replace(/( tenido | a)/gi,' '); a = a.replace(/( tenidos | a)/gi,' '); a = a.replace(/( teniendo | a)/gi,' '); a = a.replace(/( ti | a)/gi,' '); a = a.replace(/( tiene | a)/gi,' '); a = a.replace(/( tienen | a)/gi,' '); a = a.replace(/( tienes | a)/gi,' '); a = a.replace(/( todo | a)/gi,' '); a = a.replace(/( todos | a)/gi,' '); a = a.replace(/( tu | a)/gi,' '); a = a.replace(/( tus | a)/gi,' '); a = a.replace(/( tuve | a)/gi,' '); a = a.replace(/( tuviera | a)/gi,' '); a = a.replace(/( tuvierais | a)/gi,' '); a = a.replace(/( tuvieramos | a)/gi,' '); a = a.replace(/( tuvieran | a)/gi,' '); a = a.replace(/( tuvieras | a)/gi,' '); a = a.replace(/( tuvieron | a)/gi,' '); a = a.replace(/( tuviese | a)/gi,' '); a = a.replace(/( tuvieseis | a)/gi,' '); a = a.replace(/( tuviesemos | a)/gi,' '); a = a.replace(/( tuviesen | a)/gi,' '); a = a.replace(/( tuvieses | a)/gi,' '); a = a.replace(/( tuvimos | a)/gi,' '); a = a.replace(/( tuviste | a)/gi,' '); a = a.replace(/( tuvisteis | a)/gi,' '); a = a.replace(/( tuvo | a)/gi,' '); a = a.replace(/( tuya | a)/gi,' '); a = a.replace(/( tuyas | a)/gi,' '); a = a.replace(/( tuyo | a)/gi,' '); a = a.replace(/( tuyos | a)/gi,' '); a = a.replace(/( un | a)/gi,' '); a = a.replace(/( una | a)/gi,' '); a = a.replace(/( uno | a)/gi,' '); a = a.replace(/( unos | a)/gi,' '); a = a.replace(/( vosotras | a)/gi,' '); a = a.replace(/( vosotros | a)/gi,' '); a = a.replace(/( vuestra | a)/gi,' '); a = a.replace(/( vuestras | a)/gi,' '); a = a.replace(/( vuestro | a)/gi,' '); a = a.replace(/( vuestros | a)/gi,' '); a = a.replace(/( y | a)/gi,' '); a = a.replace(/( ya | a)/gi,' '); a = a.replace(/^\s+/g,'').replace(/\s+$/g,''); return (a); }
Y tú, ¿usas alguna técnica de análisis SEO que quieras compartir?