На данный момент большинство популярных хостинг-провайдеров представляют (1,2) функцию ускорения сайтов в контрольной панели. Как правило услуга платная, но стоимость сильно варьируется на разных хостингах. Для ускорения используются модули mod_pagespeed, ngx_pagespeed. Если сайт развернут на VPS/VDS, то модуль pagespeed можно установить не прибегая к услугам хостинг-провайдеров.
На изображении ниже окно настройки услуги "ускоритель сайтов" хостинг-провайдера TimeWeb:
На изображении ниже окно настройки услуги "ускоритель сайтов" хостинг-провайдера 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>С целью упрощения конфигурирования, модуль позволяет использовать предопределенные уровни настроек. По умолчанию устанавливается уровень (режим) - CoreFilters:
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>
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) |
Комментарии
Отправить комментарий