Introducción a mod_pagespeed
El servidor Apache se puede extender utilizando módulos. Un servidor básico incluye módulos para muchas funciones comunes como la autenticación, php o integración con MySQL.Google diseñó el modulo pagespeed como una manera fácil de aplicar prácticas comunes para optimizar y acelerar una página web. Por ejemplo, incluye funciones para optimizar imágenes, javascript, código CSS, HTML y XML. Puede utilizar la configuración por defecto para automatizar la optimización, o personalizar su servidor.
Instalación
Oficialmente Google ha lanzado versiones de mod_pagespeed disponibles para CentOS/Fedora y Debian/Ubuntu. Usted puede descargar la ultima versión directamente de Google. Para instalarlo, siga las instrucciones en la página de descarga de Google. Tiene que reiniciar Apache antes de poder utilizar mod_pagespeed, pero es buena idea configurar el módulo primero.Configuración de pagespeed.conf
El módulo se configura utilizando el archivo pagespeed.conf. El archivo se encontrará en diferentes directorios dependiendo de la versión de Linux:- Debian/Ubuntu: /etc/apache2/mods-available
- CentOS/Fedora: /etc/httpd/conf.d
- ModPagespeed on: Puede habilitar o deshabilitar pagespeed con esta línea. Utilize on para habilitar y off para deshabitar.
- ModPagespeedDisallow:
Utilice esta opción para excluir un directorio o archivo de las
optimizaciones de pagespeed. Esto puede ser necesario en el caso de
algunos archivos javascript. Ejemplos de uso:
- ModPagespeedDisallow */archivo1.js – este directivo deshabilita pagespeed para el archivo1.js en cualquier directorio.
- ModPagespeedDisallow */directorio1/* – también puede excluir un directorio completo y sus archivos.
- ModPagespeedDisallow * – puede utilizar este directivo para excluir todos los directorios y archivos y habilitar directorios específicos.
- ModPagespeedAllow: Igual a ModPagespeedDisallow, pero con efecto opuesto. Se utiliza para habilitar pagespeed para directorios o archivos específicos. No es necesario usar ModPagespeedAllow al menos que se ha utilizado ModPagespeedDisallow
- AddOutputFilterByType MOD_PAGESPEED_OUTPUT_FILTER: El archivo puede contener dos líneas con este directivo, uno para habilitar el procesamiento de HTML y otro para XHTML y XML.
- ModPagespeedFileCachePath y ModPagespeedGeneratedFilePrefix: Por defecto estos directivos señalan a /var/mod_pagespeed/cache/ y /var/mod_pagespeed/files/ respectivamente. Estos directorios son utilizado por pagespeed para guardar archivos optimizados. Puede cambiar los directorios, pero deben ser directorios existentes y pueden ser escritos por Apache ya que el módulo pagespeed no crea los directorios.
- ModPagespeedRewriteLevel: Este directivo determina los filtros utilizados por pagespeed. Por defecto no hace falta configurar este directivo si desea utilizar los filtros principales. La opción por defecto es CoreFilters, pero también puede utilizar TestingCoreFilters para habilitar los filtros inestables o beta. Si desea escoger los filtros uno por uno, puede introducir ModPagespeedRewriteLevel PassThrough para habilitar sólo los filtros que prefiere.
- ModPagespeedDisableFilters: Esta opción le permite excluir filtros específicos, por ejemplo si ocurren errores debido a un filtro en particular.
- ModPagespeedEnableFilters: Esta opción le permite habilitar filtros no incluidos en Core. También se utiliza si decide usar la opción PassThrough para controlar lo filtros utilizados por el módulo pagespeed.
- ModPagespeedShardDomain: Es una opción avanzada de pagespeed para distribuir los archivos optimizados por pagespeed entre varios sub-dominios del dominio principal. Por ejemplo, con un dominio principal de ejemplo.com, si se configuran sub-dominios como sub1.ejemplo.com, sub2.ejemplo.com, etc., entonces pagespeed los puede utilizar para distribuir los archivos optimizados. Esto es particularmente efectivo si tiene más de 30 recursos por página. No debe utilizar más de 4 sub-dominios ya que puede ralentizar la página en vez de acelerarla. El sintaxis es ModPagespeedShardDomain dominio_principal subdominio1,subdominio2, subdominio3. Utilizando ejemplo.com, la línea para utilizar los dos sub-dominios sería ModPagespeedShardDomain ejemplo.com sub1.ejemplo.com,sub2.ejemplo.com. Los dominios utilizados ya deben estar configurados en su servidor DNS. Debe tener cuidado con esta opción ya que los resultados pueden variar y no todos los javascripts funcionan con esta opción habilitada.
- ModPagespeedJpegRecompressionQuality: Esta opción le permite configurar la calidad de la imagen JPG creada por pagespeed con la opción rewrite_images. Por defecto, esta opción sólo remueve la información de la imagen. Pero se puede configurar para recomprimir sus imágenes JPG con una calidad más pequeña. Por ejemplo, si tiene muchas imágenes sin optimizar, puede usar ModPagespeedJpegRecompressionQuality 70 para reducir el tamaño del archivo de cada uno y acelerar más su página web.
Filtros de pagespeed
Pagespeed incluye una variedad de filtros. Los filtros designados Core son los filtros principales que se habilitan si utiliza el archivo pagespeed.conf por defecto. Aunque como ya se mencionó puede personalizar esa configuración y utilizar filtros específicos. El siguiente cuadro incluye una breve descripción de cada filtro e indica cuales forman parte de los filtros principales.Filtro | Principal | Descripción |
---|---|---|
add_head | Sí | Añade un elemento <head> en el documento si no está presente. |
combine_heads | Sí | Combina elementos <head> si existe más de uno en el documento. |
strip_scripts | No | Elimina scripts, como javascript para experimentos |
inline_import_to_link | Sí | Elimina @import para CSS del documento y los convierte en etiquetas equivalentes de <link>. |
outline_css | No | Mueve grandes cantidades de comandos CSS a un archivo externo que se puede utilizar en un cache. |
outline_javascript | No | Igual que la opción de CSS, mueve comandos de javascript a archivos externos para utilizar un cache. |
move_css_above_scripts | No | Mueve elementos de CSS encima de las etiquetas <script> en el documento. |
move_css_to_head | No | Mueve los elementos CSS al la parte head del documento. |
combine_css | Sí | Combina elementos CSS en un elemento. |
rewrite_css | Sí | Remueve espacios y comentarios de los archivos CSS. |
rewrite_style_attributes | No | Cambia los atributos de estilo CSS utilizando el filtro rewrite_css. |
rewrite_style_attributes_with_url | Sí | Cambia sólo los atributos de estilo CSS que contienen url. |
flatten_css_imports | No | Mueve todos los CSS al documento que se utilizan por medio de un @import. |
make_google_analytics_async | No | Convierte el código de Google Analytics a asincrónico. |
rewrite_javascript | Sí | Remueve espacios y comentarios de archivos de javascript. |
combine_javascript | No | Combina archivos de javascript en un archivo |
inline_css | Sí | Mueve archivos pequeños de CSS al documento HTML. |
inline_javascript | Sí | Mueve archivos pequeños de javascript al documento HTML. |
local_storage_cache | No | Mueve recursos inline al almacenamiento HTML5. |
insert_ga | No | Agrega el código de Google Analytics a cada página. |
rewrite_images | Sí | Optimiza imágenes, codificando cada uno de nuevo, eliminando pixeles extras, e incluyendo imágenes pequeñas inline en el documento |
convert_jpeg_to_progressive | No | Convierte imágenes jpeg grandes en imágenes progresivos. |
convert_png_to_jpeg | No | Convierte imágenes png o gif a jpeg. |
convert_jpeg_to_webp | No | Convierte imágenes webp a jpeg para navegadores que pueden leerlo. |
insert_image_dimensions | No | Agrega dimensiones a los atributos de la etiqueta img si no lo tiene. |
inline_images | Sí | Incluido automáticamente por rewrite_images. Cambia imágenes pequeñas utilizando url de data:. |
recompress_images | Sí | Incluido automáticamente por rewrite_images. Vuelve a comprimir las imágenes, eliminando el exceso de los metadatos y convirtiendo archivos gif en png. |
resize_images | Sí | Incluido automáticamente por rewrite_images. Cambia el tamaño de imágenes para corresponder a las dimensiones especificadas en la etiqueta img. |
inline_preview_images | No | Utiliza imágenes inline de baja calidad como marcadores de posición que serán reemplazadas con las imágenes originales una vez que la página web sea cargada. |
resize_mobile_images | No | Igual que inline_preview_images pero para navegadores móviles. |
remove_comments | No | Elimina comentarios en archivos HTML, pero no javascript o CSS. |
collapse_whitespace | No | Elimina espacios en archivos HTML sin modificar las etiquetas pre, script,style y textarea. |
elide_attributes | No | Elimina los atributos que no son significativos de acuerdo a la especificación HTML. |
extend_cache | Sí | Extiende la vida de cache de todos los recursos mediante la firma de las direcciones URL con un hash de contenido. |
sprite_images | No | Combina imágenes de fondo especificadas en CSS en un sprite |
rewrite_domains | No | Cambia el dominio de recursos no configurados por pagespeed utilizando ModPagespeedMapRewriteDomain y ModPagespeedShardDomain. |
trim_urls | No | Acorta los URL al hacerlos relativos al URL de base. |
remove_quotes | No | Elimina las comillas innecesarias en atributos HTML. |
add_instrumentation | No | Agrega un archivo javascript a la página para medir la velocidad. |
convert_meta_tags | Sí | Agrega un encabezado de respuesta para cada meta etiqueta con un atributo http-equiv equivalente. |
defer_javascript | No | Retrasa la ejecución de archivos javascript hasta que la página termine de cargar. Esta opción puede acelerar la página web, pero también puede dar resultados extraños en algunos archivos javascript. Asegurase de probarlo de antemano. |
lazyload_images | No | Carga las imágenes cuando son visibles en el navegador. Esta opción no siempre funciona, particularmente con algunos javascript. |
Consejos
Después de instalar mod_pagespeed o cambiar la configuración, tendrá que reiniciar Apache. Introduzca el siguiente comando:- Fedora/CentOS: /etc/init.d/httpd restart
- Debian/Ubuntusudo service apache2 restart
Comentarios
Publicar un comentario