Uno de los objetivos más perseguidos a la hora de optimizar un sitio web desde el punto de vista de su velocidad de carga es conseguir una buena puntuación en el test de Google PageSpeed Insights. Pero no basta trabajar duro en su optimización, conseguir una buena nota y echarse a dormir, sino que es necesario realizar un seguimiento períodico de la evolución de dicha puntuación en la medida en que un sitio web va evolucionando y sufriendo modificaciones que de una u otra forma van afectando a esta métrica.
A continuación ofrezco un pequeño script que nos permitirá realizar ese seguimiento de forma automática y vigilar que la puntuación en Google PageSpeed Insights no caiga de un determinado valor que nosotros fijemos.
Error: Your Requested widget " ai_widget-6" is not in the widget list.
- [do_widget_area above-nav-left]
- [do_widget_area above-nav-right]
- [do_widget_area footer-1]
- [do_widget id="wpp-4"]
- [do_widget_area footer-2]
- [do_widget id="recent-posts-4"]
- [do_widget_area footer-3]
- [do_widget id="recent-comments-3"]
- [do_widget_area footer-4]
- [do_widget id="archives-4"]
- [do_widget_area logo-bar]
- [do_widget id="oxywidgetwpml-3"]
- [do_widget_area menu-bar]
- [do_widget id="search-3"]
- [do_widget_area sidebar]
- [do_widget id="search-4"]
- [do_widget id="ai_widget-2"]
- [do_widget id="categories-5"]
- [do_widget id="ai_widget-3"]
- [do_widget id="ai_widget-4"]
- [do_widget id="ai_widget-5"]
- [do_widget_area sub-footer-1]
- [do_widget id="text-4"]
- [do_widget_area sub-footer-2]
- [do_widget_area sub-footer-3]
- [do_widget_area sub-footer-4]
- [do_widget_area upper-footer-1]
- [do_widget id="search-2"]
- [do_widget id="recent-posts-2"]
- [do_widget id="recent-comments-2"]
- [do_widget id="archives-2"]
- [do_widget id="categories-2"]
- [do_widget id="meta-2"]
- [do_widget_area upper-footer-2]
- [do_widget_area upper-footer-3]
- [do_widget_area upper-footer-4]
- [do_widget_area widgets_for_shortcodes]
- [do_widget id="search-5"]
- [do_widget id="ai_widget-6"]
- [do_widget_area wp_inactive_widgets]
- [do_widget id="wpp-2"]
- [do_widget id="text-1"]
- [do_widget id="recent-posts-3"]
- [do_widget id="categories-3"]
- [do_widget id="archives-3"]
- [do_widget id="icl_lang_sel_widget-3"]
Herramienta psi
El script se basa en una pequeña pero muy útil herramienta llamada psi y desarrollada por Addy Osmani en Javascript, por lo que en primer lugar necesitaremos instalarla mediante el gestor de paquetes Npm de Node.js:
$ npm install --save psi
Una vez instalado, este programa nos muestra en la línea de comandos información similar a la que podemos obtener a través de la aplicación web oficial de Google:
Script desktop-pagespeed-score-watchdog.sh
A continuación muestro un pequeño script programado en Bash que filtra la información facilitada por el comando psi y vuelca el resultado a un fichero de log que va registrando la evolución de la puntuación a lo largo del tiempo y que puede ser procesado por un sistema de monitorización que genere algún tipo de alerta que nos avise cuando la puntuación de nuestro sitio web caiga por debajo de un valor determinado.
#! /bin/bash scoreLimitDesktop="90" website="www.daniloaz.com" error=0 log () { logFileName=`echo $0 | egrep -o "[^\/]+$"` logStatusFile=$logFileName.status logFile=$logFileName.log echo "$1|$2" > /var/log/$logStatusFile echo `date +%Y-%m-%d\ %H:%M:%S`"|$1|$2" >> /var/log/$logFile } if [ ! -f /usr/bin/psi ];then echo "Error: no está disponible el ejecutable /usr/bin/psi." exit 1 fi scoreDesktop=`/usr/bin/psi --strategy=desktop "$website" | grep 'Speed:' | awk '{print $2}'` if [ $scoreDesktop -lt $scoreLimitDesktop ];then msg="ERROR: la puntuación de PageSpeed Desktop de $website ha bajado a ${scoreDesktop}/100." echo $msg log 2 "$msg" exit 1 else msg="OK: la puntuación de PageSpeed Desktop es igual o superior al límite: ${scoreDesktop}/100." echo $msg log 0 "$msg" exit 0 fi
Este script obtiene la puntuación para ordenador o desktop, pero igualmente podría obtenerla para la versión móvil con sólo cambiar el parámetro –strategy=desktop por –strategy=mobile.
El script puede ser ejecutado con la frecuencia que deseemos añadiendo una tarea a nuestro cron:
# Vigilar cada 15 minutos la puntuación del sitio www.daniloaz.com en Google PageSpeed Insights 0,15,30,45 * * * * /bin/bash /usr/local/scripts/desktop-pagespeed-score-watchdog.sh
Por último, este es el aspecto que presenta el log que va registrando períodicamente la evolución del PagesPeed Score:
$ cat desktop-pagespeed-score-watchdog.sh.log 2017-05-26 12:00:04|0|OK: la puntuación de PageSpeed Desktop es igual o superior al límite: 91/100. 2017-05-26 12:15:03|0|OK: la puntuación de PageSpeed Desktop es igual o superior al límite: 91/100. 2017-05-26 12:30:03|0|OK: la puntuación de PageSpeed Desktop es igual o superior al límite: 90/100. 2017-05-26 12:45:03|0|OK: la puntuación de PageSpeed Desktop es igual o superior al límite: 90/100. 2017-05-26 13:00:03|0|OK: la puntuación de PageSpeed Desktop es igual o superior al límite: 91/100. 2017-05-26 13:15:03|0|OK: la puntuación de PageSpeed Desktop es igual o superior al límite: 91/100. 2017-05-26 13:30:04|0|OK: la puntuación de PageSpeed Desktop es igual o superior al límite: 91/100. 2017-05-26 13:45:03|0|OK: la puntuación de PageSpeed Desktop es igual o superior al límite: 91/100. 2017-05-26 14:00:03|0|OK: la puntuación de PageSpeed Desktop es igual o superior al límite: 91/100. 2017-05-26 14:15:04|0|OK: la puntuación de PageSpeed Desktop es igual o superior al límite: 91/100. 2017-05-26 14:30:04|0|OK: la puntuación de PageSpeed Desktop es igual o superior al límite: 91/100. 2017-05-26 14:45:04|0|OK: la puntuación de PageSpeed Desktop es igual o superior al límite: 91/100. 2017-05-26 15:00:04|0|OK: la puntuación de PageSpeed Desktop es igual o superior al límite: 91/100. 2017-05-26 15:15:04|0|OK: la puntuación de PageSpeed Desktop es igual o superior al límite: 91/100. 2017-05-26 15:30:04|0|OK: la puntuación de PageSpeed Desktop es igual o superior al límite: 91/100. 2017-05-26 15:45:04|0|OK: la puntuación de PageSpeed Desktop es igual o superior al límite: 91/100. 2017-05-26 16:00:04|2|ERROR: la puntuación de PageSpeed Desktop de www.daniloaz.com ha bajado a 89/100. 2017-05-26 16:15:03|2|ERROR: la puntuación de PageSpeed Desktop de www.daniloaz.com ha bajado a 89/100.
Deja una respuesta