На данный момент большинство популярных хостинг-провайдеров представляют (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) |


Комментарии
Отправить комментарий