Компания Google открыла исходные тексты Apache-модуля mod_pagespeed, который за счёт выполнения в автоматическом режиме ряда оптимизаций призван помочь web-мастерам и администраторам ускорить работу web-сервера без переработки web-приложений. Оптимизации не касаются работы сервера и работают через изменение содержимого отдаваемого HTML, CSS и JavaScript контента на основе заданного набора фильтров и перепаковку JPEG и PNG изображений. Для уменьшения числа модификаций, проводимых на лету, измёненные объекты кэшируются на локальном диске.

Код модуля предназначен для работы с Apache 2.2.x и распространяется в рамках лицензии Apache 2. Открытие кода рассматривается как очередной шаг в развитии инициированной в прошлом году инициативы по оптимизации скорости работы Web. Ранее был опубликован набор инструментов Page Speed, предназначенных для выявления узких мест конфигурации http-сервера и оптимизации загрузки web-приложений. Теперь большинство из ранее представленных рекомендаций по оптимизации могут быть применены на лету.

В настоящее время mod_pagespeed включает в себя 15 выполняемых на лету оптимизаций, ускоряющих работу различных аспектов производительности web-сервера. Например, проводится оптимизация кэширования, сокращается число запросов/ответов, уменьшается размер отдаваемых и принимаемых от клиента данных. Тестирование показало, что для типичных web-страниц при использовании mod_pagespeed наблюдается сокращение времени загрузки страниц до двух раз. Модуль полностью готов для промышленного применения и прекрасно зарекомендовал себя при проведении тестового внедрения хостинг-провайдером Go Daddy, который в ближайшем будущем планирует предложить mod_pagespeed для своих 8.5 миллионов клиентов.

Из оптимизаций, которые трудно реализуемы вручную, но с которыми прекрасно справляется mod_pagespeed, отмечаются:

  • Внесение изменений в исходники web-страниц, генерируемых CMS-системами, без изменения кода этих систем. Используется gzip и deflate сжатие контента, чистка и минимизация CSS, удаление лишних тэгов в HTML, сокращение размера JavaScript-кода, объединение нескольких JavaScript/CSS-файлов;
  • Переупаковка изображений в ситуациях изменения HTML-контекста (уменьшение разрешения, если не совпадают фактическое разрешение и указанное IMG-тэге);
  • Увеличение времени жизни изображений в браузерном кэше до года, оставляя возможность их модификации в любое время. Проводится оптимизация использования заголовков Expires, Cache-Control и Last-Modified;