К основному контенту

Серверные решения

На данный момент большинство популярных хостинг-провайдеров представляют (1,2) функцию ускорения сайтов в контрольной панели. Как правило услуга платная, но стоимость сильно варьируется на разных хостингах. Для ускорения используются модули mod_pagespeed, ngx_pagespeed. Если сайт развернут на VPS/VDS, то модуль pagespeed можно установить не прибегая к услугам хостинг-провайдеров.
На изображении ниже окно настройки услуги "ускоритель сайтов" хостинг-провайдера TimeWeb:


mod_pagespeed, ngx_pagespeed

О том как установить модуль ускорения на сервер Apache можно прочитать тут. Руководство по установке на сервер Nginx тут, чаще всего нужно просто выполнить команду (сделав бекап nginx):
bash <(curl -f -L -sS https://ngxpagespeed.com/install) --nginx-version latest
Включение и отключение фильтров модуля pagespeed можно производить в конфигурационном файле /etc/apache2/mods-available/pagespeed.conf, в файле .htaccess если используется Apache или непосредственно в конфигурационном файле nginx.conf сервера Nginx. Пример настройки модуля в файле .htaccess:
<IfModule pagespeed_module>
  ModPagespeed on
  ModPagespeedEnableFilters rewrite_css,combine_css
  ModPagespeedEnableFilters recompress_images
  ModPagespeedEnableFilters convert_png_to_jpeg,convert_jpeg_to_webp
  ModPagespeedEnableFilters collapse_whitespace,remove_comments
</IfModule>
С целью упрощения конфигурирования, модуль позволяет использовать предопределенные уровни настроек. По умолчанию устанавливается уровень (режим) - CoreFilters:
ModPagespeedRewriteLevel CoreFilters
Использование уровня CoreFilters включает в себя ряд некоторых фильтров по умолчанию:
add_head
combine_css
combine_javascript
convert_meta_tags
extend_cache
fallback_rewrite_css_urls
flatten_css_imports
inline_css
inline_import_to_link
inline_javascript
rewrite_css
rewrite_images
rewrite_javascript
rewrite_style_attributes_with_url
Чтобы отключить отдельные фильтры используется директива:
ModPagespeedDisableFilters filterА , filterБ
Чтобы отключить CoreFilters, используйте:
ModPagespeedRewriteLevel PassThrough
После этого отдельные фильтры придется включать директивой:
ModPagespeedEnableFilters filterА , filterБ
Запретить работу фильтров в определенных директориях можно путем указания в файлах .htaccess следующей директивы:
ModPagespeedForbidFilters filterА , filterБ
ниже приведен полный список фильтров с описаниями:
Имя фильтра Входит в CoreFilters Краткое описание
responsive_images Нет Добавляет srcset для изображений, с целью обеспечения их адаптивности
add_head Да Добавляет <head> элемент в документ, если его нет
combine_heads Нет Объединяет несколько <head> элементов, найденных в документе в один
inline_import_to_link Да Убирает <style> теги, содержащие только импорты CSS путем преобразования их в эквивалентные теги <link>
outline_css Нет Преоброзование больших блоков CSS в кэшируемый файл
outline_javascript Нет Преоброзование больших блоков JS в кэшируемый файл
move_css_above_scripts Нет Перемещение элементов CSS выше тегов <script>
move_css_to_head Нет Перемещение CSS элементов в <head>
combine_css Да Объединяет файлы CSS в один
rewrite_css Да Удаление лишних пробелов и комментариев в файлах CSS.
fallback_rewrite_css_urls Да Перезапись ресурсов, указанных в любом файле CSS, которые не могут быть разобраны или минифицированы.
rewrite_style_attributes Нет Перезапись атрибутов style, применяя для них rewrite_css фильтр
rewrite_style_attributes_with_url Да Перезапись атрибутов style, если  они содержат конструкцию "url(", применяя для них rewrite_css фильтр
flatten_css_imports Да Преобразование всех импортируемых CSS в встроенные стили
prioritize_critical_css Нет Замена тегов CSS на инлайн альтернативы с директивами которые используются только на этой странице
make_google_analytics_async Нет Включение асинхронной загрузка скриптов Google Analytics API
make_show_ads_async Нет Включение асинхронной загрузка скриптов Google AdSense API
rewrite_javascript Да Перезапись Javascript файлов для удаления лишних пробелов и комментариев
rewrite_javascript_external Да Перезапись сторонних Javascript файлов для удаления лишних пробелов и комментариев
rewrite_javascript_inline Да Применяет фильтр rewrite_javascript к инлайн-блокам Javascript
include_js_source_maps Нет Добавляет наименования исходных файлов в конечные (оптимизированные) JavaScript файлы
combine_javascript Да Объединяет JS файлы в один
canonicalize_javascript_libraries Нет Замена JS библиотек на их CDN версии
inline_css Да Внедряет небольшие CSS файлы непосредственно в HTML-документ
inline_google_font_css Нет Внедряет небольшие CSS файлы, используемые fonts.googleapis.com, непосредственно в HTML-документ
inline_javascript Да Внедряет небольшие файлы JS в HTML документ
local_storage_cache Нет Кэширует внедрённые ресурсы путем использования локального хранилища (local storage)
insert_ga Нет Добавляет фрагмент Google Analytics для каждой HTML-страницы
rewrite_images Да Оптимизация изображений, перекодирование (сжатие) и встраивание небольших изображений непосредственно в HTML документ в виде base64 кода
convert_jpeg_to_progressive Да Преобразования JPEG изображений с включением прогрессивной загрузки
convert_png_to_jpeg Да Преобразование GIF и PNG изображений в формат JPEG.
convert_jpeg_to_webp Да Создает WebP, а не JPEG изображения для браузеров, которые поддерживают WebP
convert_to_webp_animated Нет Заменяет анимированные GIF на WebP для браузеров, которые поддерживают WebP
convert_to_webp_lossless Да Аналог rewrite_images с заменой изображений в форматах PNG и GIF (без анимации) изображениями в формате WebP для браузеров, которые поддерживают WebP
insert_image_dimensions Нет Добавляет атрибуты ширину и высоту для тегов <img> у которых этих атрибутов нет
inline_images Да Основан на rewrite_images. Заменяет небольшие изображения на инлайновый base64 код
recompress_images Да Основан на rewrite_images. Сжимает изображения за счет удаления избыточных метаданных и преобразования GIF изображений в PNG
recompress_jpeg Да Основан на recompress_images. Сжимает JPEG, удаляя избыточные метаданные
recompress_png Да Основан на recompress_images. Сжимает PNG, удаляя избыточные метаданные.
recompress_webp Да Основан на recompress_images. Сжимает WebP, удаляя избыточные метаданные
convert_gif_to_png Да Основан на recompress_images. Преобразует GIF файлы в формат PNG
strip_image_color_profile Да Основан на recompress_images. Удаляет информацию о цветовом профиле из мета-данных изображений
strip_image_meta_data Да Основан на recompress_images. Удаляет EXIF метаданные из изображений
jpeg_sampling Да Основан на recompress_images. Снижает сэмплинг JPEG изображений до 4:2:0
resize_images Да Основан на rewrite_images. Изменяет размер изображений, для которых в теге <img> указана меньшая ширина или высота
resize_rendered_image_dimensions Да Основан на rewrite_images. Изменяет размер изображений, для которых размер на странице меньше физического
inline_preview_images Нет Использование встроенных изображений низкого качества в качестве заполнителей, которые будут заменены оригинальными изображениями только после полной загрузки веб-страницы
resize_mobile_images Нет Работает так же, как inline_preview_images, но использует меньшие изображения и срабатывает только для мобильных браузеров
remove_comments Нет Удаляет комментарии в HTML (но не во встроенных блоках JavaScript или CSS)
collapse_whitespace Нет Удаление лишних пробелов в файлах HTML (исключая содержимое тегов <pre>, <script>, <style> и <textarea>)
elide_attributes Нет Удаляет атрибуты, которые не являются существенными в соответствии со спецификацией HTML.
extend_cache Да Продлевает время жизни кэша CSS, JS, изображений и ресурсов, которые не были оптимизированы, используя URL-адреса с уникальным хэшем
extend_cache_css Да Основан на extend_cache. Продлевает время жизни кэша неоптимизированных ресурсов CSS с добавлением в URL-адреса уникального хэша
extend_cache_images Да Основан на extend_cache. Продлевает время жизни кэша неоптимизированных изображений с добавлением в URL-адреса уникального хэша
extend_cache_scripts Да Основан на extend_cache. Продлевает время жизни кэша неоптимизированных скриптов с добавлением в URL-адреса уникального хэша
extend_cache_pdfs Нет Продлевает время жизни кэша PDF-файлов с добавлением в URL-адреса уникального хэша
sprite_images Нет Комбинирование фоновых изображений в файлах CSS в один спрайт
rewrite_domains Нет Переписывает доменные ресурсы нетронутые mod_pagespeed, основанные на MapRewriteDomain и ShardDomain настройках в pagespeed.conf
trim_urls Нет Сокращает URL-адреса, делая их относительными к базовому URL
pedantic Нет Добавляет атрибут типа для дескрипторов (тегов) script и style, если атрибута type нет и страница не является HTML5. Используется для предотвращения нарушения спецификации HTML4
remove_quotes Нет Удаляет кавычки вокруг HTML атрибутов, которые лексически не требуется
add_instrumentation Нет Добавляет JavaScript на странице для измерения задержки и отправки статистики на сервер
convert_meta_tags Да Добавляет заголовок ответа для каждого мета-тега с атрибутом http-equiv
defer_javascript Нет Откладывает выполнение JavaScript в HTML до завершения загрузки страницы
dedup_inlined_images Нет Замена повторяющихся изображений на JavaScript, который дублирует изображения из первого вхождения
lazyload_images Нет Загрузка изображений, только когда они становятся видимыми в клиентском окне.
insert_dns_prefetch Нет Добавляет <link rel="dns-prefetch" href="//www.example.com"> теги для асинхронного разрешения DNS
hint_preload_subresources Нет Добавляет HTTP заголовки вида - "Link:</example.css>; rel=preload" для более быстрой загрузки критичных ресурсов
in_place_optimize_for_browser Нет Дополнительная оптимизация под конкретный браузер (User-agent)

Дополнительные материалы:



Комментарии