Cómo funciona Google Pagespeed Insights:
Pagespeed dispone tanto de de una herramienta online en Google Developers como de una extensión de Chrome para probar directamente en el navegador.La herramienta online te aporta directamente las sugerencias de mejora de rendimiento apropiadas pero la extensión de Chrome además te ofrece los archivos o problemas detectados directamente optimizados para que después los cargues en tu web.En general el funcionamiento es simple, conéctate a la página del servicio ofrecido por Google Developers pulsandoaquí. Te aparecerá una pantalla donde introducir la dirección de tu sitio web o de una página del mismo y pulsar el botón azul de la derecha donde pone "Analizar".A la finalización podrás ver los resultados con las diferentes sugerencias para mejorar el rendimiento de tu sitio web.Cómo solucionar punto por punto:

1) Evita los redireccionamientos a páginas destino.
Qué quiere decir esta sugerencia:- Se trata de no realizar redirecciones incorrectamente en tu sitio web, esto es: no enviar al navegador desde una dirección web (URL) a otra al acceder a un sitio web.
- Si redireccionas desde la página principal de una dirección a otra, se producirá un retraso en el tiempo de ejecución mientras se resuelve el paso de una dirección a otra.
Qué soluciones se pueden implementar
- La redirección de un sitio web a otro puede conllevar problemas de duplicidad de información que debes resolver siempre con rel=canonical (para indicar cuál es la URL preferida con la que vas a trabajar).
- Si no tienes más remedio que realizar alguna redireccón, es conveniente que actualices tu .htaccess (siempre que tengas acceso) para no acometer las mismas por medio de código. Este artículo de Internet Marketing Ninjas te ayudará a hacerlo:
2) Eliminar el JavaScript que bloquea la visualización y el CSS del contenido de la mitad superior de la página.
Qué quiere decir esta sugerencia:
Bloqueo de visualización por CSS:
- Todas las páginas utilizan CSS para controlar los aspectos sobre la presentación de un sitio web. Las hojas de estilo deben encontrarse en la zona head de un documento HTML. El acceso a las mismas es síncrono, hasta que no se descargan no pueden comenzarse a aplicar los estilos a la página.
Si accedes a tus css esta manera :
link href="/resources/css/general.css" rel="stylesheet" type="text/css"
- El navegador se verá obligado a descargar el archivo .css del servidor donde se encuentre para luego interpretarlo y posteriormente aplicarlo a las etiquetas de tu HTML que lo estén utilizando. Durante todo el proceso anteriormente indicado se producirá un retardo en el dibujado de la página que afectará al rendimiento del sitio web mientras esta no esté almacenada en la memoria caché del navegador.
Qué soluciones se pueden implementar para evitar el bloqueo por CSS:
Veamos soluciones prácticas a los problemas de bloqueo en CSS y JS.
Solucionar el problema de bloqueo por CSS:
Siempre que tengas una llamada
link href="/resources/css/TU_CSS.css" rel="stylesheet" type="text/css"
Puedesminimizar el contenido de dicho .cssy a continuación ponerlo "inline" en la página HTML para que no sea necesaria su descarga:
style type="text/css"el contenido de TU_CSS.css/style
Evitarás la descarga del archivo .css de un servidor externo o de tu propio servidor porque éste se encontrará directamente integrado en el head de tu documento HTML, consiguiendo evitar retardos en el dibujado de la página y potenciando el rendimiento de la misma.
Bloqueo de visualización por JS:
Qué quiere decir esta sugerencia:
- Los Javascripts o secuencias de comandos que se utilizan para añadir funcionalidades que requieren cálculo o precálculo de información a una página (carga de botones para redes sociales con contadores, dibujado de sliders o carruseles de imágenes, etc...) pueden producir importantes retardos en el primer dibujado de una página en el navegador de nuestros usuarios.
- Los scripts requieren un tiempo para realizar sus cálculos y toma de datos que posteriormente servirán para mostrar la página. Si además el javascript en cuestión está encapsulado en un archivo .js externo, el navegador tendrá que descargarlo, interpretarlo y después aplicarlo al documento HTML sobre el que debe aplicarse.
¿Cómo se trabaja normalmente con los Javascript en una página?
Hay cuatro maneras de utilizar el javascript en una página que incluso pueden combinarse según las necesidades:
1) Javascript Síncrono (Sychronous Javascript):
Es el modo de acceso más lento. Se le llama "síncrono" porque el navegador no continuará con el dibujado de la página hasta que finalice con la descarga e interpretación del archivo .js que se referencia. Durante el proceso de descarga e interpretación se produce un retardo en el dibujado de la página que puede afectar al rendimiento de la misma.
El Javascript se referencia encapsulado dentro de un archivo con extensión .js de esta manera:
script src="/resources/js/Ejemplo.js" type="text/javascript" /script
Aunque los navegadores actuales han perfeccionado el uso del Javascript y se han vuelto extremadamente eficientes a la hora de impedir el bloqueo por el mismo, es absolutamente cierto que en la primera descarga y hasta que el archivo .js se encuentra en el puesto local del usuario, el tiempo que se pierde es excesivo.
Suele agravarse el problema más aún cuando la declaración de uttilización síncrona del archivo .js se realiza en el head del documento HTML, ya que impide que se llegue hasta el body de la página hasta que el .js no ha sido descargado e interpretado.
2) Javascript Diferido (Deferred Javascript):
Un modo de acceso al Javascript externo almacenado en un archivo .js que pospone la descarga e interpretación del Javascript al momento en que el documento HTML ha sido cargado y mostrado.
Un ejemplo de carga diferida de javascript sería el proporcionado por la páginaFeedthebot:
script type="text/javascript"function downloadJSAtOnload() {var element = document.createElement("script");element.src = "defer.js";document.body.appendChild(element);}if (window.addEventListener)window.addEventListener("load", downloadJSAtOnload, false);else if (window.attachEvent)window.attachEvent("onload", downloadJSAtOnload);else window.onload = downloadJSAtOnload;/script
En este caso el archivo .js, al igual que sucede con el modo síncrono, debe ser descargado e interpretado pero la página "no tiene que esperar" a que el javascript se haya ejecutado. Bajo la mayor parte de circunstancias esta manera de ejecutar el código pospone su ejecución al final de la página.
Este tipo de llamadas a archivos .js externosse debe colocar antes del /body y es ideal para no sobrecargar el head con declaraciones síncronas. Es una buena forma de evitar el bloqueo por la utilización de .js al principio del documento HTML y para optimizar en general el rendimiento de la página.
3) Javascript Asíncrono (Asychronous Javascript):
también conocido como Async. El método de ejecución asíncrono de Javascript mezcla lo mejor del modo síncrono y el diferido. Cuando ejecutamos un archivo externo en modo asíncrono permitimos que la página se dibuje a la vez que se va procesando y descargando el .js en cuestión. De esta manera en lugar de que la página tenga que esperar a su dibujado por el .js a principio de página o en diferido, después de que ésta se haya dibujado, podrá ejecutar en paralelo el procesamiento del javascript y el procesamiento de la página.
Un ejemplo de llamada asíncrona de Javascript es la utilización de Google Analytics:
script type="text/javascript"var _gaq = _gaq || []; _gaq.push(['_setAccount', 'UA-XXXXX-X']); _gaq.push(['_trackPageview']); (function() { var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true; ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); })(); var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); })(); var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); })();
/script
Esta manera de cargar el javascript en la página eleva considereablemente el rendimiento de la misma por no supeditar su dibujado a la ejecución del script.
Es ideal para cargar archivos que son necesarios globalmente en la página head y debe sustituir siempre que sea posible a la carga síncrona de Javascript.
4) Javascript Inline: la utilización inline de un archivo .js consiste en extraer directamente el contenido del archivo en cuestión y ponerlo directamente en el documento HTML.
Un ejemplo de inline sería:
script type="text/javascript"
document.getElementById("demo").innerHTML = "Hola!";/script
La ventaja del javascript inline es que al ir directamente en la página no requiere que un archivo externo .js deba ser descargado para poderse interpretar. Cuando el navegador procesa el documento HTML además procesa directamente sin descarga el javascript "inline".
La gran desventaja es que si el contenido de un javascript es excesivamente extenso (por ejemplo, una librería jquery completa), el incremento de código en página es literalmente enorme. Esto hace que le cueste más al navegador la descarga del documento HTML debido a su gran tamaño y además, dependiendo de su localización, podría afectar al rendimiento en el dibujado de la página. Por ejemplo, si se coloca en el head, se incurre en la lectura de gran cantidad de código innecesario que impide que se continúe con el dibujado del resto de la página.
Su utilización está indicada siempre que la cantidad de código del archivo .js sea pequeña.
Qué soluciones se pueden implementar para evitar el bloqueo por Javascript:
Solucionar el problema de bloqueo por Javascript:
En primer lugar, analiza el uso de javascript en tu página, cómo vas llamando a cada función y porqué.
En términos generales:
- Evita las llamadas de javascript síncrono siempre. No declares el javascript de esta manera en el head. Debes dejar la cabecera del documento HTML lo más libre posible de javascript y en caso de no tener más remedio que ejecutarlo (por tener un .js que te obligue a hacerlo en sus recomendaciones) SIEMPRE debes utilizar la versión ASÍNCRONA del mismo.
- Si utilizas el código asíncrono te aseguras de que el dibujado de la página corra en paralelo a la descarga e interpretación del javascript. El problema es que al ser asíncrono, no podrás nunca llegar a saber con total exactitud cuándo se va a ejecutar y si tienes algún javascript que dependa del que cragaste asíncronamente, puede no funcionar por no encontrarse disponible en el momento de ejecución el javascript cargado en modo asíncrono.
- Las llamadas asíncronas se pueden "diferir" si se controla su carga gestionando el evento window.onload o similares, en el momento en que se vaya a ejecutar algún javascript dependiente, pero en estos casos es mejor utilizar javascript en modo diferido.
- El modo diferido, utilizando javascript inline o realizando la carga del .js en diferido es ideal en casi todas las situaciones. Pospone la ejecución del javascript sin necesidad de impedir el dibujado de la página.
Situaciones particulares:
- Todo el código .js que pertenezca a un plugin de cualquier clase (por ejemplo redes sociales) debe ser ejecutado siempre en modo asíncrono. Especialmente cuando es un script cuyas especificaciones del fabricante recomienden instalarlo en el head o al principio del body.
- La combinación de la utlización de javascripts asíncronos sin dependencias posteriores en el head y javascript diferido al final del documento HTML, antes del /BODY es una combinación que en general ofrece las mejores perspectivas de rendimiento.
- El javascript inline es ideal para scripts pequeños pero es preferible no utilizarlo nunca con grandes archivos .js para no saturar la cantidad de código de la página. Así mismo, es preferible siempre que el código inline esté lo más cercano al /body que el diseño del documento HTML te permita.
Ejemplos prácticos:
Llamada Diferida con jQuery:
Pongamos una página HTML estándar independiente de la plataforma donde se ejecute, en ella pondremos un script de Google analytics y la carga de diversos códigos que pueden funcionar con jQuery (Debido a la extensión del ejemplo, te lo dejo en el botón "ver ejemplo" si deseas visualizarlo al completo)
Llamada asíncrona de jQuery con código inline:
Esta es otra manera de optimizar las llamadas javascript a unos niveles de rendimiento importantes. La idea es lanzar en asíncrono la carga de jQuery y realizar las llamadas posteriores a las funciones dependientes una vez el documento HTML está listo. Esta forma de realizar llamadas te permite ejecutar en modo asíncrono una librería Javascript completa para después una vez se ha dibujado la página y sin perder tiempo en descargas de .js, se ejecuten funciones inline dependientes de la asíncrona.
Próxima actualización
Continuaremos con las siguientes normas de Pagespeed a tener en cuenta y contemplando los últimos cambios en las reglas de detección de la herramienta para mejorar el rendimiento absoluto de nuestro sitio web. Por supuesto, pregunta lo que necesites, los comentarios están abiertos para ti.MESOTHELIOMA LAW FIRMDONATE CAR TO CHARITY CALIFORNIAHARDDRIVE DATA RECOVERY SERVICESDONATE A CAR IN MARYLAND DONATING A CAR IN MARYLAND,DONATE CARS ILLINOIS,CRIMINAL DEFENSE ATTORNEYS FLORIDA ,BEST CRIMINAL LAWYER IN ARIZONASTRUCTURED ANNUITY SETTLEMENT,ASBESTOS LAWYERS,NUNAVUT CULTURE,DAYTON FREIGHT LINES ,Bextra Bankruptcy Dental Plan Private Jet
MESOTHELIOMA LAW FIRMDONATE CAR TO CHARITY CALIFORNIAHARDDRIVE DATA RECOVERY SERVICESDONATE A CAR IN MARYLAND DONATING A CAR IN MARYLAND,DONATE CARS ILLINOIS,CRIMINAL DEFENSE ATTORNEYS FLORIDA ,BEST CRIMINAL LAWYER IN ARIZONASTRUCTURED ANNUITY SETTLEMENT,ASBESTOS LAWYERS,NUNAVUT CULTURE,DAYTON FREIGHT LINES ,Bextra Bankruptcy Dental Plan Private Jet
Donate Car To Charity CALIFORNIA DONATE CAR FOR TAX CREDITDONATE CARS IN MADONATE YOUR CAR SACRAMENTOHOW TO DONATE A CAR IN CALIFORNIA DONATE YOUR CAR FOR KIDS,CAR INSURANCE QUOTES COLORADO ,NUNAVUT CULTURE,DAYTON FREIGHT LINESHARDDRIVE DATA RECOVERY SERVICES,DONATE A CAR IN MARYLAND,MOTOR REPLACEMENTS,CHEAP DOMAIN REGISTRATION HOSTING,DONATING A CAR IN MARYLANDUn dia en Mundial Football MESOTHELIOMA LAW FIRM FIFA World Cup,DONATE CAR TO CHARITY CALIFORNIA , and STRUCTURED ANNUITY SETTLEMENT ,ANNUITY SETTLEMENTS, habia mucha monja pero fui a NUNAVUT CULTURE, DAYTON FREIGHT LINES and BUSINESS VOIP SOLUTIONS,CAR INSURANCE COMPANIES pero for you ONLINE CRIMINAL JUSTICE DEGREE ,PERSONAL INJURY LAW FIRM, Virtual data rooms and future now Automobile accident attorney and pero mas aya del visita and Mesothelioma law firm CHEAP CAR INSURANCE IN VIRGINIA,Selling annuity payments for cashSelling annuity payments for cash,Sell my structured settlement,Sell structured settlement,Structured settlement,Structured settlement companies,Sell my annuity payments lump sum,Car accident lawyer Denver,Accident injury attorneys,Sell my annuity
fast cash for house CAR INSURANCE IN SOUTH DAKOTA mesothelioma lawyers Italian cooking school buy structured settlements Mortgage cash annuity Holland Michigan College Donate car to charity California new mexico mesothelioma lawyer lawyers accidents Hire php programmers Online casino Criminal Defense Attorneys Florida mesothelioma care Data Recovery Raid Mobile casino Mesothelioma Law Firm mesothelioma cases Hire php developers asterisk call center software Casino buy my structured settlement los angeles workers compensation lawyers maritime lawyer houston car accident lawyers los angeles DUI lawyer truck accident attorney texas HOW TO DONATE A CAR IN CALIFORNIA Dayton Freight Lines Photo Christmas cards Forensics Online Course auto insurance yuba city ca Hire php developer baltimore mesothelioma attorneys personal injury attorney springfield mo Business finance group PHD on Counseling Education personal injury attorney ocala fl Social media management DONATING A CAR IN MARYLAND Make money online Australia mesotheioma Personal Injury Lawyer Proud Italian cook Casino reviews Massage School Dallas Texas cheap domain registration hosting mesothelioma information tennessee mesothelioma lawyer MET AUTO orlando criminal attorney Donating a car in Maryland Live casino Online Criminal Justice Degree WordPress theme designers MOTOR REPLACEMENTS Car Insurance Quotes Utah buyers of structured settlements DONATE YOUR CAR FOR KIDS Claim Social media campaigns harddrive data recovery services DONATE CARS IN MA Donate your Car for Money insurance medical temporary cheaper insurance companies Social media strategies PhD in counseling education Dwi lawyer FUTURISTIC ARCHITECTURE Dedicated Hosting Dedicated Server Hosting DONATE OLD CARS TO CHARITY michigan motorcycle accident lawyer HARDDRIVE DATA RECOVERY SERVICES Criminal lawyer Service business software Criminal defense attorneys Florida ONLINE COLLEDGES Massage school Dallas Texas primary pulmonary hypertension MASSAGE SCHOOL DALLAS TEXAS Criminal defense lawyer mesothelioma lawsuits Php programmers for hire mesothelioma claims Html email adverse credit remortgage New social media platforms Social media platforms for business Social media platforms Seo services Bankruptcy lawyer Online College Course Computer science classes online Php programmers Seo companies Best social media platforms for business WordPress hosting Learning adobe illustrator Personal Injury Law Firm Cheap Car Insurance in Virginia refinance with poor credit windows phone for business Social media examiner Low Credit Line Credit Cards Paperport Promotional Code Custom WordPress theme designer Online Christmas cards DALLAS MESOTHELIOMA ATTORNEYS structured annuity settlement Best Seo company Futuristic Architecture Nunavut culture mesothelioma ct los angeles motorcycle accident lawyer firm law mesothelioma Business management software structured settlement investments new york mesothelioma law firm Donate Your Car Sacramento selling my structured settlement Best social media platforms motorcycle accident attorney sacramento Business VOIP Solutions Online colledges Seo company LIFE INSURANCE CO LINCOLN onlineclasses Custom Christmas cards WordPress themes for designers refinance with bad credit Psd to WordPress Futuristic architecture accident attorney in los angeles online motor insurance quotes CAR INSURANCE QUOTES UTAH Tech school boca raton personal injury attorney Forex Trading Platform dallas mesothelioma attorneys Donate Your Car for Kids Online Motor Insurance Quotes Christmas cards car insurance quotes Structures Annuity Settlement Cheap Car Insurance for Ladies Psd to html california mesothelioma attorney Mortgage Adviser Car insurance quotes Utah Adobe illustrator classes domains yahoo Donate car for tax credit Psychic for Free HOME PHONE INTERNET BUNDLE mesothelioma settlements DAYTON FREIGHT LINES business voip solutions Social media tools AUTOMOBILE ACCIDENT ATTORNEY Online classes Car Insurance Companies How to Donate A Car in California Donate Old Cars to Charity Register free domains Donate your car for money Donate Car to Charity California Donate Car for Tax Credit Donate Cars in MA car insurance quotes pa SELL ANNUITY PAYMENT Virtual Data Rooms Royalty free images stock sell annuity payment Sell Annuity Payment broward county dui lawyer Injury Lawyers Asbestos Lawyers CAR DONATE Car Insurance Quotes Colorado Annuity Settlements Nunavut Culture Motor Insurance Quotes Hard drive Data Recovery Services Donate a Car in Maryland Motor Replacements car accident lawyers Cheap Domain Registration Hosting attorney lawyer mesothelioma donate car for tax credit Donating a Car in Maryland Donate Cars Illinois Best Criminal Lawyers in Arizona donating used cars to charity Life Insurance Co Lincoln yahoo web hosting HOLLAND MICHIGAN COLLEGE Donate Car To Charity CALIFORNIA hair removal washington dc california law lemon Online Colleges Online Classes NEUSON World Trade Center Footage royalty free images stock criminal defense federal lawyer ROYALTY FREE IMAGES STOCK benchmark lending mesothelioma survival rates