Estoy construyendo un sitio Drupal 7. Estos son algunos de los módulos que uso: Adaptivetheme (tema), Vistas y paneles de contenido, Paneles, Mini paneles, Paneles en todas partes, Administrador de páginas, Superfish para menús, Addthis, Elegido (desplegable).
Para mejorar el rendimiento de mi sitio y tratar con los archivos CSS y JS, estoy usando el módulo Advagg .
Cuando ejecuto la prueba de Google Pagespeed, recibo el siguiente error como "Debería solucionarlo":
Elimine JavaScript y CSS que bloquean el procesamiento en el
contenido de la mitad superior de la página. Su página tiene 6 recursos de script de bloqueo y 8 recursos de CSS de bloqueo. Esto provoca un retraso en el procesamiento de su página.
Ninguno de los contenidos de la mitad superior de la página puede mostrarse sin esperar a que se carguen los siguientes recursos. Intente diferir o cargar asincrónicamente los recursos de bloqueo, o alinear las partes críticas de esos recursos directamente en el HTML.
Esta es la información que proporciona Google:
¿Hay alguna forma de cambiar la configuración del módulo Advagg o del núcleo de Drupal y resolver este problema?
¿Hay alguna otra forma de lograr este objetivo?
Actualización : después de implementar los cambios de acuerdo con la respuesta de mikeytown2 , recibí el siguiente mensaje en la prueba de Google Pagespeed:
Elimine JavaScript y CSS que bloquean el procesamiento en el contenido de la mitad superior de la
página. Su página tiene 6 recursos de script de bloqueo y 4 recursos de CSS de bloqueo. Esto provoca un retraso en el procesamiento de su página.
Ninguno de los contenidos de la página anterior puede mostrarse sin esperar a que se carguen los siguientes recursos. Intente diferir o cargar asincrónicamente los recursos de bloqueo, o alinear las partes críticas de esos recursos directamente en el HTML.
fuente
async
no sea compatible con los navegadores antiguos Por ejemplo, la agregación predeterminada de Drupal incluye<link>
etiquetas para todos sus CSS. Si su sitio CSS o JS es demasiado complejo, siempre tendrá este problema. Si construye su sitio correctamente, puede agregar archivos de forma segura. Sin información sobre las dependencias del archivo, los detalles de la pregunta son demasiado amplios: un módulo nunca puede solucionar su problema; Se trata de cómo se escribe el CSS y JS y su orden de inclusión y complejidad. nunca dijo que quería no bloquear, suponiendo que eso es lo que quiere.Respuestas:
El archivo README tiene una guía sobre cómo hacerlo utilizando la versión actual 7.x-2.31 + de AdvAgg . Consulte también esta página wiki en el grupo de alto rendimiento . La mayoría de los sitios pueden lograr una puntuación perfecta de 100/100 en https://developers.google.com/speed/pagespeed/insights/ . Instrucciones sobre cómo lograrlo para una nueva instalación de AdvAgg a continuación.
Asegúrese de revisar el sitio después de cada sección para asegurarse de que el cambio no estropeó su sitio. Los cambios en AdvAgg Modifier suelen ser los más problemáticos, pero ofrecen las mayores mejoras.
Agregación avanzada de CSS / JSIr
admin/config/development/performance/advagg
Instale AdvAgg Compress Javascript si no está habilitado y vaya a
admin/config/development/performance/advagg/js-compress
Instale AdvAgg Async Font Loader si no está habilitado y vaya a
admin/config/development/performance/advagg/font
Instale AdvAgg Bundler si no está habilitado y vaya a
admin/config/development/performance/advagg/bundler
Configuraciones HTTP / 2.0
Configuración HTTP / 1.1 (predeterminado)
25 paquetes contra 2 y 5 tienen que ver con el almacenamiento en caché del navegador. Más archivos equivale a una mejor oportunidad de que el navegador tenga ese combo en su caché, pero más archivos significa que se establecen y abren más conexiones en HTTP 1.1. Use 2 para CSS ya que este número no espera ninguna conexión nueva; JS es 5 ya que la mayoría de los navegadores tienen un límite de conexiones simultáneas de 6. Este número para paquetes se seleccionó después de muchas pruebas. En HTTP 2.0 hay una conexión de transmisión y la penalización por múltiples archivos CSS y JS es casi inexistente; Por lo tanto, la optimización para el caché del navegador es la mejor opción; por lo tanto, 25 debe usarse para CSS y JS cuando se sirve HTTP / 2.0.
AdvAgg RelocateInstale AdvAgg Relocate si no está habilitado y vaya a
admin/config/development/performance/advagg/relocate
Instale AdvAgg Modifier si no está habilitado y vaya a
admin/config/development/performance/advagg/mod
Vaya a https://www.sitelocity.com/critical-path-css-generator e ingrese tantas páginas de destino como sea necesario para css crítico; el top 10 suele ser un buen comienzo. Si tiene Google Analytics, esto le mostrará cómo encontrar sus principales páginas de destino https://developers.google.com/analytics/devguides/reporting/core/v3/common-queries#top-landing-pages o para Piwik https: //piwik.org/faq/how-to/faq_160/ . Si no sabe con qué página comenzar, haga la página de inicio de su sitio. También puedes usar esto para generar css https://chrome.google.com/webstore/detail/critical-style-snapshot/gkoeffcejdhhojognlonafnijfkcepob?hl=en
Ejemplos de nombres de archivo y rutas a continuación son para el tema "bootstrap"; todos comienzan con
sites/all/themes/bootstrap/critical-css/
; en tu tema crea elcritical-css/
directorio. El siguiente directorio se basa en el usuario;anonymous/
,all/
Oauthenticated/
puede ser utilizado.El siguiente directorio puede ser
urls/
otype/
. Mirandourls/
; front es un caso especial para la portada, todas las demás rutas usan current_path () como el directorio y el nombre de archivo con.css
agregado al final; Ver https://api.drupal.org/api/drupal/includes%21path.inc/function/current_path/7.xVer
type/
esto es un caso especial para los tipos de nodos. Use el nombre de la máquina y agregue.css
al final. Cualquier nodo de este tipo tendrá este archivo css crítico aplicado y en línea. A continuación hay algunos ejemplos que muestran cómo funciona esto.ubicaciones válidas de archivos de ejemplo para la página "frontal":
sites/all/themes/bootstrap/critical-css/anonymous/urls/front.css
ubicaciones de archivo de ejemplo válidas para la página "node / 1" current_path ():
sites/all/themes/bootstrap/critical-css/anonymous/urls/node/1.css
ubicaciones válidas de archivos de ejemplo para el tipo de nodo de "página":
sites/all/themes/bootstrap/critical-css/anonymous/type/page.css
Si desea algún tipo de forma automatizada para generar estos archivos css, fourkitchens tiene un excelente artículo sobre cómo configurarlo: https://fourword.fourkitchens.com/article/use-grunt-and-advagg-inline-critical-css -drupal-7-theme
fuente
advagg/mod
página Y / O no ha movido Todos los JS al pie de página. Además, si pudiera ver la fuente completa de las páginas que generalmente ayuda con las recomendaciones (solo enlace a su sitio).Nunca obtendrá puntajes verdaderamente altos con los módulos drupal preconstruidos, la única forma de lograr esto es asistiendo y analizando cuidadosamente cada una de las sugerencias hechas por la herramienta de velocidad de Google , abordando cada una de ellas de forma independiente.
Algunas cosas que hice para lograr 95 en un sitio de noticias muy activo , que para cuando escribí esto, obtuvieron mejores puntajes que nytimes (ahora no lo hace):
fuente