Cómo hacer una Auditoría Seo de tu web

|
0 Comments
|

Cómo hacer una auditoría Seo de tu web, tercera parte de la saga, en la que realizamos una auditoría seo o auditoría web a una página web xxxx.es, punto por punto. Si no has visto las otras partes, las puedes ver en cómo hacer una auditoría web  primera parte y cómo hacer un análisis seo de tu web parte 2.

Si no te ves capaz de realizar una auditoría seo a tu web o quieres que una empresa te la haga, te hacemos una en Global Marketing Asesores.

Seguimos en el punto donde la dejamos:

auditoría seo

Auditoría seo: Estado de la web

3.1.9. ELEMENTOS DE NAVEGACIÓN FLASH Y JAVASCRIPT

La accesibilidad del contenido puede verse afectada con la utilización de enlaces realizados a través de recursos como flash, frames, pop-up, intros o menús javascript. Todos ellos están totalmente desaconsejados.

Javascript es un lenguaje de programación que permite mejorar la interfaz de usuario en muchos aspectos pero que ha de utilizarse de forma muy cuidadosa para que no desemboque en una serie de problemas de indexación, de contenido duplicado e incluso de usabilidad. Haciendo uso de herramientas como page speed insigths o GTmetrix
puedes saber que errores debes de corregir, en este caso nos muestra:
La página tiene 26 recursos de secuencias de comandos y 56 recursos CSS que provocan un bloqueo. Ello causa un retraso en el procesamiento de la página.
No se ha podido visualizar el contenido de la mitad superior de la página sin tener que esperar a que se cargara alguno de los recursos. Intenta aplazar o cargar de forma asíncrona los recursos que bloquean la visualización, o bien inserta porciones críticas de dichos recursos directamente en el HTML.

Quitar el JavaScript que bloquea la visualización de contenido:
•    https://www.xxxx.es/…raries/modernizr/modernizr.min.js?njv7ku
•    https://www.xxxx.es/misc/jquery.js?v=1.4.4
•    https://www.xxxx.es/misc/jquery.once.js?v=1.2
•    https://www.xxxx.es/misc/drupal.js?njv7ku
•    https://www.xxxx.es/misc/ui/jquery.ui.core.min.js?v=1.8.7
•    https://www.xxxx.es/misc/ui/jquery.ui.widget.min.js?v=1.8.7
•    https://www.xxxx.es/misc/jquery.cookie.js?v=1.0
•    https://www.xxxx.es/misc/jquery.form.js?v=2.52
•    https://www.xxxx.es/…_expander/jquery.expander.min.js?v=1.4.2
•    https://www.xxxx.es/…query_ui_spinner/ui.spinner.min.js?v=1.8
•    https://www.xxxx.es/…ies/selectnav.js/selectnav.min.js?njv7ku
•    https://www.xxxx.es/misc/ajax.js?v=7.34
•    https://www.xxxx.es/…stom/ajax_cart/ajax_cart_popup.js?njv7ku
•    https://www.xxxx.es/…arch/commerce_kickstart_search.js?njv7ku
•    https://www.xxxx.es/…G4JGyMhOQsPximZ9MgowfPULw_Gif0.js?njv7ku
•    https://www.xxxx.es/…ervice_links/js/twitter_button.js?njv7ku
•    https://www.xxxx.es/…service_links/js/facebook_like.js?njv7ku
•    https://www.xxxx.es/…rvice_links/js/google_plus_one.js?njv7ku
•    https://www.xxxx.es/misc/progress.js?v=7.34
•    https://www.xxxx.es/…/commerce_kickstart_product_ui.js?njv7ku
•    https://www.xxxx.es/…ogle_analytics/googleanalytics.js?njv7ku
•    https://www.xxxx.es/…a_kickstart/js/omega_kickstart.js?njv7ku
•    https://www.xxxx.es/…mega/omega/js/jquery.formalize.js?njv7ku
•    https://www.xxxx.es/…ga/omega/js/omega-mediaqueries.js?njv7ku
•    https://www.xxxx.es/…ommerce_kickstart_theme_custom.js?njv7ku
•    https://www.xxxx.es/…es/xxxx/js/xxxx_theme_custom.js?njv7ku
Optimizar la entrega de CSS de estas URL:
•    https://www.xxxx.es/modules/system/system.base.css?njv7ku
•    https://www.xxxx.es/modules/system/system.menus.css?njv7ku
•    https://www.xxxx.es/…odules/system/system.messages.css?njv7ku
•    https://www.xxxx.es/modules/system/system.theme.css?njv7ku
•    https://www.xxxx.es/misc/ui/jquery.ui.core.css?njv7ku
•    https://www.xxxx.es/misc/ui/jquery.ui.theme.css?njv7ku
•    https://www.xxxx.es/…/jquery_ui_spinner/ui.spinner.css?njv7ku
•    https://www.xxxx.es/…tom/ajax_cart/ajax_cart_popup.css?njv7ku
•    https://www.xxxx.es/…a_newsletter/xxxx_newsletter.css?njv7ku
•    https://www.xxxx.es/modules/comment/comment.css?njv7ku
•    https://www.xxxx.es/…enus/commerce_kickstart_menus.css?njv7ku
•    https://www.xxxx.es/…es/contrib/date/date_api/date.css?njv7ku
•    https://www.xxxx.es/…e_popup/themes/datepicker.1.7.css?njv7ku
•    https://www.xxxx.es/…/modules/contrib/fences/field.css?njv7ku
•    https://www.xxxx.es/modules/node/node.css?njv7ku
•    https://www.xxxx.es/modules/user/user.css?njv7ku
•    https://www.xxxx.es/…dules/contrib/views/css/views.css?njv7ku
•    https://www.xxxx.es/…contrib/ckeditor/css/ckeditor.css?njv7ku
•    https://www.xxxx.es/…les/contrib/ctools/css/ctools.css?njv7ku
•    https://www.xxxx.es/modules/locale/locale.css?njv7ku
•    https://www.xxxx.es/…ance/css/eu_cookie_compliance.css?njv7ku
•    https://www.xxxx.es/…s/omega/alpha/css/alpha-reset.css?njv7ku
•    https://www.xxxx.es/…/omega/alpha/css/alpha-mobile.css?njv7ku
•    https://www.xxxx.es/…s/omega/alpha/css/alpha-alpha.css?njv7ku
•    https://www.xxxx.es/…mes/omega/omega/css/formalize.css?njv7ku
•    https://www.xxxx.es/…es/omega/omega/css/omega-text.css?njv7ku
•    https://www.xxxx.es/…mega/omega/css/omega-branding.css?njv7ku
•    https://www.xxxx.es/…es/omega/omega/css/omega-menu.css?njv7ku
•    https://www.xxxx.es/…s/omega/omega/css/omega-forms.css?njv7ku
•    https://www.xxxx.es/…omega/omega/css/omega-visuals.css?njv7ku
•    https://www.xxxx.es/…es/omega_kickstart/css/global.css?njv7ku
•    https://www.xxxx.es/…/css/commerce_kickstart_style.css?njv7ku
•    https://www.xxxx.es/…/themes/xxxx/css/xxxx_style.css?njv7ku
•    https://www.xxxx.es/…omega-kickstart-alpha-default.css?njv7ku
•    https://www.xxxx.es/…kickstart-theme-alpha-default.css?njv7ku
•    https://www.xxxx.es/…xxxx/css/xxxx-alpha-default.css?njv7ku
•    https://www.xxxx.es/…/fluid/alpha-default-fluid-24.css?njv7ku
•    https://www.xxxx.es/…omega-kickstart-alpha-default.css?njv7ku
•    https://www.xxxx.es/…-kickstart-alpha-default-wide.css?njv7ku
•    https://www.xxxx.es/…kickstart-theme-alpha-default.css?njv7ku
•    https://www.xxxx.es/…tart-theme-alpha-default-wide.css?njv7ku
•    https://www.xxxx.es/…xxxx/css/xxxx-alpha-default.css?njv7ku
•    https://www.xxxx.es/…/css/xxxx-alpha-default-wide.css?njv7ku
•    https://www.xxxx.es/…lt/wide/alpha-default-wide-24.css?njv7ku
•    https://fonts.googleapis.com/…css?family=Open+Sans:400,700,300,600,800
•    https://fonts.googleapis.com/css?family=Gentium+Basic:400,700
•    https://fonts.googleapis.com/…css?family=Open+Sans:400,700,300,600,800
•    https://fonts.googleapis.com/css?family=Gentium+Basic:400,700
•    https://fonts.googleapis.com/…css?family=Open+Sans:400,700,300,600,800
•    https://fonts.googleapis.com/css?family=Gentium+Basic:400,700
•    https://fonts.googleapis.com/…css?family=Open+Sans:400,700,300,600,800
•    https://fonts.googleapis.com/css?family=Gentium+Basic:400,700
•    https://fonts.googleapis.com/…css?family=Open+Sans:400,700,300,600,800
•    https://fonts.googleapis.com/css?family=Gentium+Basic:400,700
•    https://fonts.googleapis.com/…css?family=Open+Sans:400,700,300,600,800
•    https://fonts.googleapis.com/css?family=Gentium+Basic:400,700

Minificar JavaScript

Compactar el código JavaScript puede ahorrar una gran cantidad de bytes de datos y acelerar los tiempos de descarga, análisis y ejecución.
Reducir JavaScript de estos recursos para reducir su tamaño en 9,9 KB (reducción del 62 %).

Si se reduce https://www.xxxx.es/misc/ajax.js?v=7.34, supondría un ahorro de 4,5 KB (reducción del 63 %) después de la compresión.
Si se reduce https://www.xxxx.es/misc/drupal.js?njv7ku, supondría un ahorro de 3,1 KB (reducción del 63 %) después de la compresión.
Si se reduce https://www.xxxx.es/…ogle_analytics/googleanalytics.js?njv7ku, supondría un ahorro de 960 B (reducción del 54 %) después de la compresión.
Si se reduce https://www.xxxx.es/misc/jquery.once.js?v=1.2, supondría un ahorro de 816 B (reducción del 76 %) después de la compresión.
Si se reduce https://www.xxxx.es/misc/progress.js?v=7.34, supondría un ahorro de 588 B (reducción del 49 %) después de la compresión.

Minificar CSS
Compactar el código CSS puede ahorrar una gran cantidad de bytes de datos y acelerar los tiempos de descarga y análisis.
Reducir CSS de estos recursos para reducir su tamaño en 7,6 KB (reducción del 31 %).

Si se reduce https://www.xxxx.es/…es/omega_kickstart/css/global.css?njv7ku, supondría un ahorro de 4,1 KB (reducción del 28 %) después de la compresión.
Si se reduce https://www.xxxx.es/…omega-kickstart-alpha-default.css?njv7ku, supondría un ahorro de 1.006 B (reducción del 35 %) después de la compresión.
Si se reduce https://www.xxxx.es/…/css/commerce_kickstart_style.css?njv7ku, supondría un ahorro de 943 B (reducción del 35 %) después de la compresión.
Si se reduce https://www.xxxx.es/modules/system/system.base.css?njv7ku, supondría un ahorro de 825 B (reducción del 44 %) después de la compresión.
Si se reduce https://www.xxxx.es/misc/ui/jquery.ui.theme.css?njv7ku, supondría un ahorro de 757 B (reducción del 26 %) después de la compresión.

3.1.10. SEGURIDAD

Un elemento fundamental es que la web no esté dada de alta en listados de spam. Y no lo está. http://www.spamhaus.org/query/domain/xxxx.es

Y lo mismo sucede con virus: https://www.virustotal.com/es/url/b52091a3971493fa021c09d907adb50278251fa098c5a70de02ecfa7577f57c0/analysis/1426093255/

3.1.11. VELOCIDAD DE CARGA DE LA WEB. WPO.

web performance optimization

3.1.11.1. INTRODUCCIÓN A LA WPO.

La optimización de la velocidad de carga de una web (Web Performance Optimizacion – WPO) es un factor extremadamente importante tanto desde el punto de vista de la accesibilidad o satisfacción del usuario en la visita, como desde el punto de vista del posicionamiento en buscadores.

Desde el punto de vista SEO, existen estudios en los que se demuestra que existe una correlación directa entre la velocidad de carga de una página web y la posición que ocupan sus páginas en los resultados de búsqueda. Webs más rápidas se sitúan mejor posicionadas que webs más lentas.
Del mismo modo, se ha demostrado que existe una relación muy estrecha entre la velocidad de carga y la consecución de objetivos de un sitio web, el número de páginas vistas por usuario y el porcentaje de rebote (usuarios que abandonan un sitio nada más entrar).
Lógicamente, a mayor velocidad más posibilidades tendremos de que un usuario navegue más tiempo por nuestra web, realice un objetivo y se convierta en nuestro cliente o se fidelice con nuestro servicio.
Para ser más conscientes de su importancia hacer mención de que existen estudios de que el 47% de los usuarios esperan que la carga de la página web no tarde más de 2 segundos y un 40% de ellos deciden abandonar el sitio si la carga supera los 3 segundos. Google recomienda no sobrepasar de los 1,5 segundos.

3.1.11.3. ENTENDIENDO LOS PROCESOS QUE INFLUYEN EN LA WPO

Una vez concienciados de la importancia de la velocidad de carga y con el objetivo de corregir los problemas que xxxx.es sufre en este aspecto, vamos a explicar los procesos que se suceden cuando un usuario solicita la carga de la página.
1)    DNS Lookup. Solicitud de información sobre en qué servidor se aloja la página demandada y petición de descarga de la página en sí. En el caso de que los recursos necesarios para la carga de la página web se encuentren en alojados diferentes dominios la solicitud de información sobre la dirección ip se realizará para cada dominio, sumándose los tiempos de cada uno de ellos.
2)    Initial Connection. Tiempo de establecimiento de la conexión con el servidor. Los servidores no soportan un número infinito de peticiones por lo que si el servidor está saturado en ese momento por un exceso puntual de peticiones habrá que esperar turno.
3)    Time to First Byte (TTFB). Tiempo hasta la recepción del primer byte. En esta fase entra en juego la calidad del servidor en donde se aloja la página, así como la optimización de la base de datos y del cms o aplicación que genera el código de la web.
4)    Descarga del código html de la página.
5)    Análisis del código html recibido por parte del navegador para identificar el resto de elementos que componen la página (imágenes, archivos javascript, css, fuentes…). Una vez que ha sido analizado el código html se produce la descarga de estos componentes. Ésta se realizará en paralelo en la medida de lo posible, ya que existe un límite que depende del cliente y del navegador. Una vez alcanzado este límite, el resto de componentes o procesos se descargarán de forma secuencial. La disposición de estos componentes en el código html, su peso o tamaño, y la posibilidad de su unificación ha de ser estudiada minuciosamente con el objetivo de minimizar los tiempos de carga.
6)    El navegador va renderizando o dibujando los componentes según los va recibiendo.
En resumen, los factores que influirán en el tiempo de carga de una página web serán:

1)    La calidad del hosting o servidor. Su ubicación física, su latencia, tiempo de respuesta, velocidad de su disco duro, sus recursos (RAM, procesadores…), tipo de tarjeta red, sistema operativo, ancho de banda asignada, su red de conexión… Es de vital importancia escoger un hosting de calidad.
2)    Optimización del código de la web: su CMS o aplicación de programación y su base de datos.
3)    Red desde donde se conecta el usuario. No es lo mismo conectarse desde un operador ADSL que desde una conexión 3G. Este aspecto no lo podemos controlar.

3.1.11.4. PROFUNDIZANDO EN LOS ANÁLISIS DE WPO

Una vez entendidos los procesos que ocurren al realizarse la solicitud de una página por un usuario vamos a localizar cuáles son los aspectos que hacen que la velocidad de carga de xxxx se pueda mejorar en algún punto.
Para ello nos vamos a apoyar en una herramienta que además de medir la velocidad de carga de una página, también lo hace para cada uno de los procesos que la componen, indicando además su orden secuencial.

Los tiempos de respuesta son buenos. Lo único que es elevado en algunas páginas son las llamadas a objetos (92). El peso es muy alto, aunque siendo una categoría tenemos que tener en cuenta la cantidad de imágenes y la puntuación en escritorio (88) también es correcta. En móvil baja un poco, a 70.

Elementos que habría que corregir:
Eliminar el JavaScript que bloquea la visualización y el CSS del contenido de la mitad superior de la página
La página tiene 26 recursos de secuencias de comandos y 56 recursos CSS que provocan un bloqueo. Ello causa un retraso en el procesamiento de la página.

No se ha podido visualizar el contenido de la mitad superior de la página sin tener que esperar a que se cargara alguno de los recursos. Intenta aplazar o cargar de forma asíncrona los recursos que bloquean la visualización, o bien inserta porciones críticas de dichos recursos directamente en el HTML.

Quitar el JavaScript que bloquea la visualización de contenido:
•    https://www.xxxx.es/…raries/modernizr/modernizr.min.js?njv7ku
•    https://www.xxxx.es/misc/jquery.js?v=1.4.4
•    https://www.xxxx.es/misc/jquery.once.js?v=1.2
•    https://www.xxxx.es/misc/drupal.js?njv7ku
•    https://www.xxxx.es/misc/ui/jquery.ui.core.min.js?v=1.8.7
•    https://www.xxxx.es/misc/ui/jquery.ui.widget.min.js?v=1.8.7
•    https://www.xxxx.es/misc/jquery.cookie.js?v=1.0
•    https://www.xxxx.es/misc/jquery.form.js?v=2.52
•    https://www.xxxx.es/…_expander/jquery.expander.min.js?v=1.4.2
•    https://www.xxxx.es/…query_ui_spinner/ui.spinner.min.js?v=1.8
•    https://www.xxxx.es/…ies/selectnav.js/selectnav.min.js?njv7ku
•    https://www.xxxx.es/misc/ajax.js?v=7.34
•    https://www.xxxx.es/…stom/ajax_cart/ajax_cart_popup.js?njv7ku
•    https://www.xxxx.es/…arch/commerce_kickstart_search.js?njv7ku
•    https://www.xxxx.es/…G4JGyMhOQsPximZ9MgowfPULw_Gif0.js?njv7ku
•    https://www.xxxx.es/…ervice_links/js/twitter_button.js?njv7ku
•    https://www.xxxx.es/…service_links/js/facebook_like.js?njv7ku
•    https://www.xxxx.es/…rvice_links/js/google_plus_one.js?njv7ku
•    https://www.xxxx.es/misc/progress.js?v=7.34
•    https://www.xxxx.es/…/commerce_kickstart_product_ui.js?njv7ku
•    https://www.xxxx.es/…ogle_analytics/googleanalytics.js?njv7ku
•    https://www.xxxx.es/…a_kickstart/js/omega_kickstart.js?njv7ku
•    https://www.xxxx.es/…mega/omega/js/jquery.formalize.js?njv7ku
•    https://www.xxxx.es/…ga/omega/js/omega-mediaqueries.js?njv7ku
•    https://www.xxxx.es/…ommerce_kickstart_theme_custom.js?njv7ku
•    https://www.xxxx.es/…es/xxxx/js/xxxx_theme_custom.js?njv7ku
Optimizar la entrega de CSS de estas URL:
•    https://www.xxxx.es/modules/system/system.base.css?njv7ku
•    https://www.xxxx.es/modules/system/system.menus.css?njv7ku
•    https://www.xxxx.es/…odules/system/system.messages.css?njv7ku
•    https://www.xxxx.es/modules/system/system.theme.css?njv7ku
•    https://www.xxxx.es/misc/ui/jquery.ui.core.css?njv7ku
•    https://www.xxxx.es/misc/ui/jquery.ui.theme.css?njv7ku
•    https://www.xxxx.es/…/jquery_ui_spinner/ui.spinner.css?njv7ku
•    https://www.xxxx.es/…tom/ajax_cart/ajax_cart_popup.css?njv7ku
•    https://www.xxxx.es/…a_newsletter/xxxx_newsletter.css?njv7ku
•    https://www.xxxx.es/modules/comment/comment.css?njv7ku
•    https://www.xxxx.es/…enus/commerce_kickstart_menus.css?njv7ku
•    https://www.xxxx.es/…es/contrib/date/date_api/date.css?njv7ku
•    https://www.xxxx.es/…e_popup/themes/datepicker.1.7.css?njv7ku
•    https://www.xxxx.es/…/modules/contrib/fences/field.css?njv7ku
•    https://www.xxxx.es/modules/node/node.css?njv7ku
•    https://www.xxxx.es/modules/user/user.css?njv7ku
•    https://www.xxxx.es/…dules/contrib/views/css/views.css?njv7ku
•    https://www.xxxx.es/…contrib/ckeditor/css/ckeditor.css?njv7ku
•    https://www.xxxx.es/…les/contrib/ctools/css/ctools.css?njv7ku
•    https://www.xxxx.es/modules/locale/locale.css?njv7ku
•    https://www.xxxx.es/…ance/css/eu_cookie_compliance.css?njv7ku
•    https://www.xxxx.es/…s/omega/alpha/css/alpha-reset.css?njv7ku
•    https://www.xxxx.es/…/omega/alpha/css/alpha-mobile.css?njv7ku
•    https://www.xxxx.es/…s/omega/alpha/css/alpha-alpha.css?njv7ku
•    https://www.xxxx.es/…mes/omega/omega/css/formalize.css?njv7ku
•    https://www.xxxx.es/…es/omega/omega/css/omega-text.css?njv7ku
•    https://www.xxxx.es/…mega/omega/css/omega-branding.css?njv7ku
•    https://www.xxxx.es/…es/omega/omega/css/omega-menu.css?njv7ku
•    https://www.xxxx.es/…s/omega/omega/css/omega-forms.css?njv7ku
•    https://www.xxxx.es/…omega/omega/css/omega-visuals.css?njv7ku
•    https://www.xxxx.es/…es/omega_kickstart/css/global.css?njv7ku
•    https://www.xxxx.es/…/css/commerce_kickstart_style.css?njv7ku
•    https://www.xxxx.es/…/themes/xxxx/css/xxxx_style.css?njv7ku
•    https://www.xxxx.es/…omega-kickstart-alpha-default.css?njv7ku
•    https://www.xxxx.es/…kickstart-theme-alpha-default.css?njv7ku
•    https://www.xxxx.es/…xxxx/css/xxxx-alpha-default.css?njv7ku
•    https://www.xxxx.es/…/fluid/alpha-default-fluid-24.css?njv7ku
•    https://www.xxxx.es/…omega-kickstart-alpha-default.css?njv7ku
•    https://www.xxxx.es/…-kickstart-alpha-default-wide.css?njv7ku
•    https://www.xxxx.es/…kickstart-theme-alpha-default.css?njv7ku
•    https://www.xxxx.es/…tart-theme-alpha-default-wide.css?njv7ku
•    https://www.xxxx.es/…xxxx/css/xxxx-alpha-default.css?njv7ku
•    https://www.xxxx.es/…/css/xxxx-alpha-default-wide.css?njv7ku
•    https://www.xxxx.es/…lt/wide/alpha-default-wide-24.css?njv7ku
•    https://fonts.googleapis.com/…css?family=Open+Sans:400,700,300,600,800
•    https://fonts.googleapis.com/css?family=Gentium+Basic:400,700
•    https://fonts.googleapis.com/…css?family=Open+Sans:400,700,300,600,800
•    https://fonts.googleapis.com/css?family=Gentium+Basic:400,700
•    https://fonts.googleapis.com/…css?family=Open+Sans:400,700,300,600,800
•    https://fonts.googleapis.com/css?family=Gentium+Basic:400,700
•    https://fonts.googleapis.com/…css?family=Open+Sans:400,700,300,600,800
•    https://fonts.googleapis.com/css?family=Gentium+Basic:400,700
•    https://fonts.googleapis.com/…css?family=Open+Sans:400,700,300,600,800
•    https://fonts.googleapis.com/css?family=Gentium+Basic:400,700
•    https://fonts.googleapis.com/…css?family=Open+Sans:400,700,300,600,800
•    https://fonts.googleapis.com/css?family=Gentium+Basic:400,700
Optimizar imágenes
Especificar caché de navegador
Establecer una fecha de caducidad o una edad máxima en las cabeceras HTTP de los recursos estáticos indica al navegador que cargue los recursos descargados previamente del disco local en lugar de hacerlo a través de la red.

Aprovechar el almacenamiento en caché del navegador de estos recursos almacenables en caché:
•    https://www.xxxx.es/…/all/themes/xxxx/fonts/Avenir-Book.woff (no se ha especificado el tiempo de expiración)
•    https://www.xxxx.es/…hemes/xxxx/images/facebook-no-front.png (no se ha especificado el tiempo de expiración)
•    https://www.xxxx.es/…tes/all/themes/xxxx/images/facebook.png (no se ha especificado el tiempo de expiración)
•    https://www.xxxx.es/…s/all/themes/xxxx/images/logo_white.png (no se ha especificado el tiempo de expiración)
•    https://www.xxxx.es/…themes/xxxx/images/twitter-no-front.png (no se ha especificado el tiempo de expiración)
•    https://www.xxxx.es/…ites/all/themes/xxxx/images/twitter.png (no se ha especificado el tiempo de expiración)
•    https://www.xxxx.es/sites/all/themes/xxxx/logo.png (no se ha especificado el tiempo de expiración)
•    https://www.xxxx.es/sites/default/files/ALBAHACA.jpg (no se ha especificado el tiempo de expiración)
•    https://apis.google.com/js/plusone.js (30 minutos)
•    https://platform.twitter.com/widgets.js (30 minutos)
•    https://www.google-analytics.com/analytics.js (2 horas)
Reducir el tiempo de respuesta del servidor
En nuestro test, el servidor respondió en 0,70 segundos. Hay muchos factores que pueden ralentizar el tiempo de respuesta del servidor.
Minificar y Combinar JavaScript
Compactar el código JavaScript puede ahorrar una gran cantidad de bytes de datos y acelerar los tiempos de descarga, análisis y ejecución.

Reducir JavaScript de estos recursos para reducir su tamaño en 9,9 KB (reducción del 62 %).
•    Si se reduce https://www.xxxx.es/misc/ajax.js?v=7.34, supondría un ahorro de 4,5 KB (reducción del 63 %) después de la compresión.
•    Si se reduce https://www.xxxx.es/misc/drupal.js?njv7ku, supondría un ahorro de 3,1 KB (reducción del 63 %) después de la compresión.
•    Si se reduce https://www.xxxx.es/…ogle_analytics/googleanalytics.js?njv7ku, supondría un ahorro de 960 B (reducción del 54 %) después de la compresión.
•    Si se reduce https://www.xxxx.es/misc/jquery.once.js?v=1.2, supondría un ahorro de 816 B (reducción del 76 %) después de la compresión.
•    Si se reduce https://www.xxxx.es/misc/progress.js?v=7.34, supondría un ahorro de 588 B (reducción del 49 %) después de la compresión.
Minificar y Combinar CSS
Compactar el código CSS puede ahorrar una gran cantidad de bytes de datos y acelerar los tiempos de descarga y análisis.
Reducir CSS de estos recursos para reducir su tamaño en 7,6 KB (reducción del 31 %).
•    Si se reduce https://www.xxxx.es/…es/omega_kickstart/css/global.css?njv7ku, supondría un ahorro de 4,1 KB (reducción del 28 %) después de la compresión.
•    Si se reduce https://www.xxxx.es/…omega-kickstart-alpha-default.css?njv7ku, supondría un ahorro de 1.006 B (reducción del 35 %) después de la compresión.
•    Si se reduce https://www.xxxx.es/…/css/commerce_kickstart_style.css?njv7ku, supondría un ahorro de 943 B (reducción del 35 %) después de la compresión.
•    Si se reduce https://www.xxxx.es/modules/system/system.base.css?njv7ku, supondría un ahorro de 825 B (reducción del 44 %) después de la compresión.
•    Si se reduce https://www.xxxx.es/misc/ui/jquery.ui.theme.css?njv7ku, supondría un ahorro de 757 B (reducción del 26 %) después de la compresión.

La siguiente imagen es un waterfall o gráfico en cascada que representa la secuencia de procesos que se generan al ser solicitada la carga de la home de xxxx.es por un usuario. Cada uno de estos procesos es código html, imágenes, archivos de estilo y javascript, fuentes de texto… es decir, todos los elementos que componen esa página. Habría que ver el motivo del tiempo de DNS Lookup.

watter fall auditoria seo

Con un vistazo al waterfall se entiende perfectamente lo que explicábamos líneas arriba acerca de la descarga de estos componentes. “Ésta se realizará en paralelo en la medida de lo posible, ya que existe un límite que depende del cliente y del navegador. Una vez alcanzado este límite, el resto de componentes o procesos se descargarán de forma secuencial. La disposición de estos componentes en el código html, su peso o tamaño, y la posibilidad de su unificación ha de ser estudiada minuciosamente con el objetivo de minimizar los tiempos de carga.”

El html de la página (primer proceso) ha de ser descargado por completo para que se inicie la descarga del resto de procesos. Esto hace que el tiempo de carga del primer byte sea realmente importante. El hecho de que éste sea relativamente bajo en xxxx.es supone un claro punto a favor para la velocidad de carga de cada página del sitio.

water fall auditoria seo 2

3.1.11.5. MEJORAS A REALIZAR PARA MEJORAR LA WPO

En resumen, para reducir el tiempo de carga de una página web debemos llevar a cabo dos tipos de mejoras:

–    Mejoras a nivel de código.
–    Mejoras a nivel de servidor.

A) OPTIMIZACIÓN DEL CÓDIGO Y DE LA BASE DE DATOS.

La programación del gestor de contenidos o aplicación en la que se haya programado la web, así como las consultas que se realicen a la base de datos y la estructura de sus tablas son aspectos fundamentales en la velocidad de carga de una web.

La web de xxxx ha sido programado en Drupal 7, uno de los CMS más utilizados a nivel mundial. Tanto su código como la estructura de sus tablas está bastante bien optimizada pero, si no se realizan algunas modificaciones, cada vez que se realiza un determinado tipo de acción (como por ejemplo la edición de un post o una página), se almacenará automáticamente en la base de datos una gran cantidad de información innecesaria. Con el paso del tiempo, se acumula tal cantidad de información que el tiempo requerido para resolver las consultas que se realizan a la base de datos provoca una ralentización del tiempo de carga de la web.

Con el fin de evitar el almacenamiento de información inútil, es recomendable realizar algunas modificaciones en el código de la web, que son comunes en todas las webs desarrolladas en Drupal 7.

B) ESPECIFICAR LAS DIMENSIONES DE ANCHO Y ALTO DE LAS IMÁGENES. ASÍ COMO NO SERVIR LAS IMÁGENES ESCALADAS.

Si las dimensiones de anchura y altura de las imágenes de una página web no son especificadas en el código, el navegador deberá descargar los componentes de la página y, posteriormente, calcular el tamaño a la que debe mostrar la imagen y ajustar el texto que lo rodea. Este proceso se repetirá para cada imagen que se ofrezca sin haber especificado sus dimensiones. Se consumirá una gran cantidad de recursos totalmente innecesaria viendo como se aumenta el tiempo de carga de la página.

https://www.xxxx.es/sites/default/files/styles/product_full/public/LBEVOO250.png?itok=DIvR9SI3 is resized in HTML or CSS from 320×704 to 231×509. 111.6KiB (48% reducción).
https://www.xxxx.es/sites/default/files/styles/product_full/public/BEVOO100.png?itok=zI5R-HEy 84.7KiB (48% reducción).

Especificar dimensiones:
https://www.xxxx.es/sites/all/themes/xxxx/images/facebook.png (Dimensiones: 43 x 44)
https://www.xxxx.es/sites/all/themes/xxxx/images/twitter.png (Dimensiones: 43 x 44)
https://www.xxxx.es/sites/all/themes/xxxx/logo.png (Dimensiones: 68 x 64)

C) USO DE LA CACHÉ DEL NAVEGADOR EN RECURSOS ESTÁTICOS

Las imágenes, archivos css y javascript y el resto de recursos estáticos que componen una web pueden ser almacenados en la caché del navegador del usuario una vez que éste ha visitado una de las páginas del navegador. De este modo, cuando el usuario visite una segunda página de nuestra web en la misma o en una futura sesión, el navegador no solicitará esos recursos al servidor, sino que los mostrará directamente al tenerlos almacenados en su caché.
La mayor parte de estos recursos estáticos serán necesarios para la totalidad de las páginas de la web. Además, como su nombre indica, los recursos estáticos son ficheros que no variarán a lo largo del tiempo o su variación no será muy frecuente.
Por todo ello, este proceso se traducirá en un aumento en la velocidad de carga de nuestra página y en una mejor experiencia de navegación del usuario en su visita.
•    Asimismo, se deben establecer unos tiempos de almacenamiento en caché para cada tipo de recurso, de modo que, cuando se supera este tiempo desde la última visita del usuario, éstos caducarán y se borrarán de forma automática de la caché del navegador del usuario. https://www.xxxx.es/modules/system/system.base.css?njv7ku
•    https://www.xxxx.es/modules/system/system.menus.css?njv7ku
•    https://www.xxxx.es/modules/system/system.messages.css?njv7ku
•    https://www.xxxx.es/modules/system/system.theme.css?njv7ku
•    https://www.xxxx.es/misc/ui/jquery.ui.core.css?njv7ku
•    https://www.xxxx.es/misc/ui/jquery.ui.theme.css?njv7ku
•    https://www.xxxx.es/profiles/commerce_kickstart/libraries/jquery_ui_spinner/ui.spinner.css?njv7ku
•    https://www.xxxx.es/sites/all/modules/custom/ajax_cart/ajax_cart_popup.css?njv7ku
•    https://www.xxxx.es/sites/all/modules/custom/xxxx_newsletter/xxxx_newsletter.css?njv7ku
•    https://www.xxxx.es/modules/comment/comment.css?njv7ku
•    https://www.xxxx.es/profiles/commerce_kickstart/modules/commerce_kickstart/commerce_kickstart_menus/commerce_kickstart_menus.css?njv7ku
•    https://www.xxxx.es/profiles/commerce_kickstart/modules/contrib/date/date_api/date.css?njv7ku
•    https://www.xxxx.es/profiles/commerce_kickstart/modules/contrib/date/date_popup/themes/datepicker.1.7.css?njv7ku
•    https://www.xxxx.es/profiles/commerce_kickstart/modules/contrib/fences/field.css?njv7ku
•    https://www.xxxx.es/modules/node/node.css?njv7ku
•    https://www.xxxx.es/modules/user/user.css?njv7ku
•    https://www.xxxx.es/profiles/commerce_kickstart/modules/contrib/views/css/views.css?njv7ku
•    https://www.xxxx.es/sites/all/modules/contrib/ckeditor/css/ckeditor.css?njv7ku
•    https://www.xxxx.es/profiles/commerce_kickstart/modules/contrib/ctools/css/ctools.css?njv7ku
•    https://www.xxxx.es/modules/locale/locale.css?njv7ku
•    https://www.xxxx.es/sites/all/modules/custom/ue_cookie_compliance/css/eu_cookie_compliance.css?njv7ku
•    https://www.xxxx.es/profiles/commerce_kickstart/themes/omega/alpha/css/alpha-reset.css?njv7ku
•    https://www.xxxx.es/profiles/commerce_kickstart/themes/omega/alpha/css/alpha-mobile.css?njv7ku
•    https://www.xxxx.es/profiles/commerce_kickstart/themes/omega/alpha/css/alpha-alpha.css?njv7ku
•    https://www.xxxx.es/profiles/commerce_kickstart/themes/omega/omega/css/formalize.css?njv7ku
•    https://www.xxxx.es/profiles/commerce_kickstart/themes/omega/omega/css/omega-text.css?njv7ku
•    https://www.xxxx.es/profiles/commerce_kickstart/themes/omega/omega/css/omega-branding.css?njv7ku
•    https://www.xxxx.es/profiles/commerce_kickstart/themes/omega/omega/css/omega-menu.css?njv7ku
•    https://www.xxxx.es/profiles/commerce_kickstart/themes/omega/omega/css/omega-forms.css?njv7ku
•    https://www.xxxx.es/profiles/commerce_kickstart/themes/omega/omega/css/omega-visuals.css?njv7ku
•    https://www.xxxx.es/profiles/commerce_kickstart/themes/omega_kickstart/css/global.css?njv7ku
•    https://www.xxxx.es/profiles/commerce_kickstart/themes/commerce_kickstart_theme/css/commerce_kickstart_style.css?njv7ku
•    https://www.xxxx.es/sites/all/themes/xxxx/css/xxxx_style.css?njv7ku
•    https://www.xxxx.es/profiles/commerce_kickstart/themes/omega_kickstart/css/omega-kickstart-alpha-default.css?njv7ku
•    https://www.xxxx.es/profiles/commerce_kickstart/themes/commerce_kickstart_theme/css/commerce-kickstart-theme-alpha-default.css?njv7ku
•    https://www.xxxx.es/sites/all/themes/xxxx/css/xxxx-alpha-default.css?njv7ku
•    https://www.xxxx.es/profiles/commerce_kickstart/themes/omega/alpha/css/grid/alpha_default/fluid/alpha-default-fluid-24.css?njv7ku
•    https://www.xxxx.es/profiles/commerce_kickstart/themes/omega_kickstart/css/omega-kickstart-alpha-default-wide.css?njv7ku
•    https://www.xxxx.es/profiles/commerce_kickstart/themes/commerce_kickstart_theme/css/commerce-kickstart-theme-alpha-default-wide.css?njv7ku
•    https://www.xxxx.es/sites/all/themes/xxxx/css/xxxx-alpha-default-wide.css?njv7ku
•    https://www.xxxx.es/profiles/commerce_kickstart/themes/omega/alpha/css/grid/alpha_default/wide/alpha-default-wide-24.css?njv7ku
•    https://www.xxxx.es/sites/all/libraries/modernizr/modernizr.min.js?njv7ku
•    https://www.xxxx.es/misc/jquery.js?v=1.4.4
•    https://www.xxxx.es/misc/jquery.once.js?v=1.2
•    https://www.xxxx.es/misc/drupal.js?njv7ku
•    https://www.xxxx.es/misc/ui/jquery.ui.core.min.js?v=1.8.7
•    https://www.xxxx.es/misc/ui/jquery.ui.widget.min.js?v=1.8.7
•    https://www.xxxx.es/misc/jquery.cookie.js?v=1.0
•    https://www.xxxx.es/misc/jquery.form.js?v=2.52
•    https://www.xxxx.es/profiles/commerce_kickstart/libraries/jquery_expander/jquery.expander.min.js?v=1.4.2
•    https://www.xxxx.es/profiles/commerce_kickstart/libraries/jquery_ui_spinner/ui.spinner.min.js?v=1.8
•    https://www.xxxx.es/profiles/commerce_kickstart/libraries/selectnav.js/selectnav.min.js?njv7ku
•    https://www.xxxx.es/misc/ajax.js?v=7.34
•    https://www.xxxx.es/sites/all/modules/custom/ajax_cart/ajax_cart_popup.js?njv7ku
•    https://www.xxxx.es/profiles/commerce_kickstart/modules/commerce_kickstart/commerce_kickstart_search/commerce_kickstart_search.js?njv7ku
•    https://www.xxxx.es/sites/default/files/languages/es_Ckh0bk-2cecM9G4JGyMhOQsPximZ9MgowfPULw_Gif0.js?njv7ku
•    https://www.xxxx.es/profiles/commerce_kickstart/modules/contrib/service_links/js/twitter_button.js?njv7ku
•    https://www.xxxx.es/profiles/commerce_kickstart/modules/contrib/service_links/js/facebook_like.js?njv7ku
•    https://www.xxxx.es/profiles/commerce_kickstart/modules/contrib/service_links/js/google_plus_one.js?njv7ku
•    https://www.xxxx.es/misc/progress.js?v=7.34
•    https://www.xxxx.es/profiles/commerce_kickstart/modules/commerce_kickstart/commerce_kickstart_product_ui/commerce_kickstart_product_ui.js?njv7ku
•    https://www.xxxx.es/sites/all/modules/contrib/google_analytics/googleanalytics.js?njv7ku
•    https://www.xxxx.es/profiles/commerce_kickstart/themes/omega_kickstart/js/omega_kickstart.js?njv7ku
•    https://www.xxxx.es/profiles/commerce_kickstart/themes/omega/omega/js/jquery.formalize.js?njv7ku
•    https://www.xxxx.es/profiles/commerce_kickstart/themes/omega/omega/js/omega-mediaqueries.js?njv7ku
•    https://www.xxxx.es/profiles/commerce_kickstart/themes/commerce_kickstart_theme/js/commerce_kickstart_theme_custom.js?njv7ku
•    https://www.xxxx.es/sites/all/themes/xxxx/js/xxxx_theme_custom.js?njv7ku
•    https://www.xxxx.es/sites/all/themes/xxxx/logo.png
•    https://www.xxxx.es/sites/default/files/styles/product_full/public/BEVOO100.png?itok=zI5R-HEy
•    https://www.xxxx.es/sites/default/files/styles/product_full/public/LBEVOO250.png?itok=DIvR9SI3
•    https://www.xxxx.es/sites/all/themes/xxxx/images/facebook.png
•    https://www.xxxx.es/sites/all/themes/xxxx/images/twitter.png
•    https://www.xxxx.es/sites/all/modules/custom/ue_cookie_compliance/js/eu_cookie_compliance.js?njv7ku
•    https://fonts.googleapis.com/css?family=Open+Sans:400,700,300,600,800
•    https://fonts.googleapis.com/css?family=Gentium+Basic:400,700
•    https://www.google-analytics.com/analytics.js
•    https://www.xxxx.es/sites/all/themes/xxxx/images/cart.png
•    https://www.xxxx.es/sites/all/themes/xxxx/images/logo_white.png
•    https://www.xxxx.es/misc/menu-expanded.png
•    https://www.xxxx.es/sites/default/files/ALBAHACA.jpg
•    https://www.xxxx.es/sites/all/themes/xxxx/images/details.png
•    https://www.xxxx.es/sites/all/themes/xxxx/images/content.png
•    https://www.xxxx.es/sites/all/themes/xxxx/images/facebook-no-front.png
•    https://www.xxxx.es/sites/all/themes/xxxx/images/twitter-no-front.png
•    https://platform.twitter.com/widgets.js
•    https://apis.google.com/js/plusone.js
Al estar hablando de recursos estáticos, podremos establecer tiempos de caché muy largos.

D) USO DE LA CACHÉ DEL NAVEGADOR PARA RECURSOS DINÁMICOS

Hablamos de recursos dinámicos a aquellas partes de la web que son generadas por el CMS o software con la que se ha desarrollado.

Cada vez que un usuario solicita la carga un post o una página que se ha generado de forma dinámica por el CMS, éste siempre realizará los “cálculos” necesarios para mostrar el código HTML que corresponde a esa página. Es decir, realiza las consultas a la base de datos necesarias para mostrar el título, la descripción o las imágenes del post solicitado, unificará la cabecera y el pie de página de la web, etcétera.

Todos estos cálculos afectarán considerablemente a la velocidad de carga de la web. Sin embargo, es posible cachear cada componente dinámico que se genera y guardar su imagen en el servidor como si de un recurso estático más se tratase. De esta forma, cuando el navegador de un usuario solicitase una página dinámica no se realizarán estos cálculos, sino que se le mostrará la versión guardada en el servidor.

Como no puede ser de otra forma, el cacheado de los componentes dinámicos ha de ser tratado de forma muy meticulosa, estableciendo unos tiempos de caducidad de la caché adecuados para cada elemento y de forma que, si se modifica algún componente dinámico de la página, la caché de este componente ha de deshabilitarse, refrescarse y volver a habilitarse. De no hacerse correctamente el contenido que se le muestra al usuario podría estar desfasado.

xxxx.es no tiene bien configurada la cache.

E) UTILIZACION DE ETAGS

Los Etags forman parte de la información que envían los navegadores dentro de las solicitudes http y sirven para indicarle al servidor web qué versión de una página tenemos almacenada en caché, para que determine si ésta ha cambiado o no. En el caso de que haya cambiado pondrá a disposición del navegador la nueva versión. En caso contrario pondrá a su disposición la versión cacheada.

En xxxx.es no hay problemas en este sentido.

F) RECURSOS QUE NO EXISTEN EN LA DIRECCIÓN SUMINISTRADA
En todas las páginas de la web de xxxx.es no se piden recursos que dan error como norma general.

El navegador solicitaría la descarga de estos recursos consumiendo un tiempo que se sumará inútilmente al de descarga de la web devolviendo una respuesta de error 404.

G) HABILITAR KEEP ALIVE

Keep alive es una forma de comunicación entre el servidor en donde se aloja la página web y el navegador del usuario. Durante dicha comunicación el navegador solicita la descarga de los recursos mientras que el servidor permite o deniega estas solicitudes.
Si keep alive no está activado el navegador deberá solicitar el acceso a cada recurso que forma la página web de forma individual, ya que al finalizar su descarga la conexión se cerrará. Dicha conexión deberá abrirse para la descarga de cada nuevo recurso.
Activando keep alive se realizará una única solicitud de acceso que se cerrará cuando finalice la descarga de todos los recursos que componen la página.
En xxxx.es está activado el keep alive.

H) ACTIVAR LA COMPRESIÓN GZIP PARA RECURSOS ESTÁTICOS

Si se comprime la información en el servidor antes de enviarla al navegador del usuario, la descarga de recursos estáticos se realizará en un tiempo mucho menor.

Este ahorro de tiempo en la transmisión de la información será otro aspecto más para mejorar notablemente el rendimiento de nuestra web acelerando la velocidad de carga.

En xxxx.es la compresión gzip está configurada para ser utilizada en el hosting por el proveedor de servicios.

J) MINIMIZAR EL USO DE REDIRECCIONES

Cada vez que el navegador del cliente solicita acceso a uno de esos enlaces, el servidor intenta la carga de la página y devuelve una cabecera 301 (redirección permantente) que se dirige a la misma versión de la página con la barra final. Cada una de esas redirecciones hace que se pierda velocidad de carga.

No hemos apreciado este problema en la web.

K) COMBINAR ARCHIVOS CSS Y JAVASCRIPT

Con el objetivo de reducir el número de peticiones al servidor se deben combinar, en la medida de lo posible, los archivos javascript y css.

Un poco más arriba se han comentado dichos archivos.

L) MINIMIZAR HTML, CSS Y JAVASCRIPT

Otro aspecto a optimizar de cara a la reducción del tiempo de carga de una web es la minimización de los recursos estáticos, es decir, la eliminación de bytes innecesarios (espacios adicionales, saltos de línea y sangrías).

Al realizar el minimizado del código HTML, CSS y JavaScript, es posible acelerar la descarga, el análisis y el tiempo de ejecución.

En xxxx.es es posible reducir estos archivos en las cuantías que se indican en la siguiente captura de pantalla:

M) UBICACIÓN DE LOS ARCHIVOS CSS EN LA CABECERA DE LAS PÁGINAS

También se recomienda que los archivos css sean situados en la cabecera de la página web. Ello permitirá a la página cargar sus recursos de forma progresiva, aspecto especialmente importante en aquellas páginas con mucho contenido o cuando el usuario intenta acceder desde conexiones lentas.

N) UBIACIÓN DE LOS ARCHIVOS JAVASCRIPT EN EL PIE DE PÁGINA

Al contrario que ocurre con los archivos css, se recomienda que, en la medida de lo posible, los archivos javascript sean situados en el pie en lugar de en la cabecera de las páginas. La razón es que, de ser situados en la cabecera, podrían interferir en la descarga de otros recursos necesarios para la página que se está descargando por el navegador del usuario.

En xxxx.es algunos de los archivos javascript se sitúan en la cabecera y otros en el pie.

optimización de imágenes en seo

O) OPTIMIZACIÓN DE IMÁGENES

Las imágenes son los elementos que más pesan en una web y, por lo tanto, los que necesitan más tiempo para ser descargados. No es de extrañar por tanto que su optimización sea uno de los aspectos más importantes en lo que respecta a la velocidad de carga de una web.

Utilizar imágenes optimizadas es fundamental para que una carga rápida y una ágil navegación. Por todo ello cada imagen que se suba al servidor debe ser optimizada para que ocupe el mínimo espacio posible sin que la pérdida apreciable para el usuario.

Optimización posible: 4.8KiB (1%).

https://www.xxxx.es/sites/all/themes/xxxx/images/twitter-no-front.png could save 1.3KiB (39%).
https://www.xxxx.es/sites/all/themes/xxxx/images/facebook-no-front.png 1.3KiB (43%).
https://www.xxxx.es/sites/default/files/ALBAHACA.jpg could save 1.1KiB (1% reduction).
https://www.xxxx.es/sites/all/themes/xxxx/logo.png could save 894B (21%).
https://www.xxxx.es/sites/all/themes/xxxx/images/logo_white.png (5%).
https://www.xxxx.es/sites/all/themes/xxxx/images/twitter.png (10%).

P) ESCALADO DE IMÁGENES

Otro de los aspectos a cuidar en toda web, es la de evitar la utilización de código html para mostrar una imagen más pequeña que la de su tamaño original. En su lugar debemos realizar escalados de imágenes, es decir, utilizar tantas miniaturas como necesitemos para cada una de las secciones de nuestra web. De esta forma, al no cargar imágenes más grandes de lo necesario, lograremos reducir el tiempo de carga de la web.

En xxxx.es se podría mejorar el escalado de imágenes como hemos visto anteriormente.

Q) FAVICON.ICO

El favicon.ico es una pequeña imagen o icono que debería existir en el directorio raíz del servidor y que se utiliza en la barra de direcciones del navegador y en el encabezado de la pestaña correspondiente.

El navegador del cliente solicitará su descarga al servidor de la página web. En caso de no existir se creará una cabecera de error 404 interfiriendo en la óptima descarga de la página.

En xxxx.es existe el archivo favicon.ico.

R) COMBINAR IMÁGENES UTILIZANDO CSS SPRITE

En xxxx.es no se indican imágenes que se puedan combinar usando CSS sprite.. A través de reglas css se mostrará cada una de las imágenes individuales que la componen según lo que se quiera mostrar.

S) PARALELIZACIÓN DE CARGA DEL CONTENIDO.

Cuando explicábamos los procesos que influyen en la velocidad de carga, hablábamos de que, tras el archivo html, la descarga del resto de recursos que componen la página solicitada por el usuario se realiza en paralelo hasta que se llega a la limitación de peticiones por dominio que tiene el navegador del usuario.

Todos los navegadores tienen implementada una limitación de peticiones de recursos por dominio de modo que, si por ejemplo el navegador utilizado puede paralelizar 6 peticiones de cada vez, descargará cada recurso de 6 en 6, manteniendo el resto en espera.

De todas los recursos con los que puede contar una web, sin duda los vídeos y las imágenes son los elementos que más pesan y más tiempo necesitarán para su descarga. Por ello, para evitar la saturación de la descarga de recursos, interesa que especialmente este tipo de recursos se distribuyan en diferentes paquetes.

Para implementar una estrategia de paralelización de carga de contenido podemos definir varios subdominios en los que se distribuya este tipo de recursos, facilitando la descarga en paralelo de más recursos a la vez.

Sin embargo, habrá que tener en cuenta que, para cada dominio o subdominio que utilicemos para la distribución de los recursos que forman una página, se necesitará resolver la dirección ip de los mismos. Ello conlleva un tiempo (normalmente de 20 a 120ms) que se puede ver gráficamente en el waterfall de xxxx.es, en color verde, que se sumará al tiempo de descarga de la web.

Por ello, la creación de subdominios para la distribución de recursos ha de ser planificada correctamente para conseguir un ahorro real de tiempo.

Es posible que tenga sentido en las páginas con más carga de imágenes. Sería bueno hacer pruebas.

T) LIBERAR DE COOKIES AL CONTENIDO ESTÁTICO

Cuando el navegador de un usuario hace una petición a un contenido estático de nuestra web, como imágenes, archivos css y javascript, no es necesario que vaya acompañado de cookies, ya que no hay interacción del usuario con estos recursos.
El hecho de utilizar cookies innecesarias ralentiza la carga de la página, por lo que debemos asegurarnos de que las peticiones a los componentes estáticos se soliciten libres de cookies.
Para ello, existen dos opciones:
En el caso de que hayamos elegido nuestro dominio sin www, podemos alojar nuestros recursos estáticos en un subdominio crear un subdominio.
En el caso de que hayamos elegido nuestro dominio con www, no podremos utilizar un subdominio ya que éste incluirá las cookies del dominio principal.
Por lo tanto deberemos utilizar otro dominio que mantendremos libre de cookies.
En xxxx.es un total de 10 componentes podrían ser cargados en un dominio libre de cookies.
•    https://www.xxxx.es/sites/all/themes/xxxx/images/cart.png
•    https://www.xxxx.es/sites/all/themes/xxxx/images/logo_white.png
•    https://www.xxxx.es/misc/menu-expanded.png
•    https://www.xxxx.es/sites/default/files/ALBAHACA.jpg
•    https://www.xxxx.es/sites/all/themes/xxxx/images/details.png
•    https://www.xxxx.es/sites/all/themes/xxxx/images/content.png
•    https://www.xxxx.es/sites/all/themes/xxxx/images/facebook-no-front.png
•    https://www.xxxx.es/sites/all/themes/xxxx/images/twitter-no-front.png
•    https://apis.google.com/js/plusone.js
•    https://apis.google.com/_/scs/apps-static/_/js/k=oz.gapi.en_GB.0uLA7Flm6S8.O/m=plusone/rt=j/sv=1/d=1/ed=1/am=EQ/rs=AGLTcCNlZLP1e54rciGEKb0bilRcupv6kw/t=zcms/cb=gapi.loaded_0

U) MEJORAR EL TIEMPO DE RESPUESTA DEL PRIMER BYTE
El tiempo de respuesta del primer byte (Time To First Byte – TTFB) es un factor que influye enormemente en la velocidad de carga de una página web. Está relacionado con el tiempo necesario por la infraestructura de red y por el servidor para enviar el primer byte al navegador del usuario. El resto del contenido que se descarga a partir del primer byte no forma parte del TTFB.
El TTFB se ve afectado por tres componentes:
•    El tiempo que transcurre desde que se produce la petición de una página por parte de un usuario hasta que dicha petición se propaga a través del servidor.
•    El tiempo que transcurre desde que el servidor procesa esta petición hasta que genera la respuesta.
•    El tiempo que transcurre desde que la respuesta se genera hasta que se propaga desde el servidor hasta el navegador del usuario que ha realizado la petición.

La mayoría de las webs que ocupan los puestos más altos en los rankings de los buscadores cuentan con un tiempo de respuesta del primer bit más bajo de 350ms. Recomendamos que éste en ningún caso sea superior a 500ms.
Una de las razones más habituales por las que el TTFB es alto en una web es la de una alta latencia.
Latencia es el tiempo que tarda en transmitirse un paquete de datos de una localización a otra. Los factores que van a influir en la latencia son:

•    La velocidad de conexión que tenga contratada el usuario.
•    La distancia física entre el usuario que solicita la petición y el servidor en donde está alojada la página web.
•    Los obstáculos que se encuentre el paquete de datos en el camino (redirecciones, routers, switches…)

Está claro que en el primer aspecto no podemos influir, pero sí podemos reducir la distancia física y el número de obstáculos que se encuentre el paquete de datos en su camino.

La mejor herramienta para medir la latencia es el ping, que mide el tiempo que tarda en enviarse y regresar un paquete de datos desde el navegador del usuario hasta el servidor en donde se encuentra alojada la página web.

Lo ideal es tener un ping por debajo de 100ms.

Realizando una medición del ping de xxxx.es nos da un valor de 40.500ms, lo cual es un valor bueno.
Restando al valor del TTFB el valor del ping time, se puede calcular el tiempo que transcurre en procesar el primer byte de información el CMS o aplicación con la que se ha programado el sitio web.

Si en el futuro esto fuese un problema sería una solución alojar una copia de todo el contenido de nuestra web (previamente cacheado) en múltiples localizaciones distribuidas por todo el mundo. Esas ubicaciones se llaman CDNs (Content Delivery Network). De tal forma, los usuarios recibirán el contenido de nuestra web servido por el CDN más cercano a su ubicación física reduciéndose enormemente la latencia y, por consiguiente, el TTFB y el tiempo de descarga de nuestra web.

En el próximo artículo de audotoría seo o auditoría web seguiremos los puntos que siguen en el análisis web.

Si te ha gustado comparte o si crees que estoy equivocado o que me he dejado algo atrás, dejá melo saber. Gracias






Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

diecisiete − 16 =