Текстовые ресурсы следует предоставлять в сжатом виде, чтобы свести к минимуму общее количество данных, передаваемых по сети. В разделе Opportunities (Возможности) отчета Lighthouse отображаются все несжатые текстовые ресурсы:
![Снимок экрана с результатами аудита Enable text compression (Включить сжатие текста) в Lighthouse](https://wd.imgix.net/image/tcFciHGuF3MxnTr1y5ue01OGLBn2/ZftZfKlPcEu2cs4ltwK8.png?auto=format)
Как Lighthouse сжимает текст
Lighthouse собирает все ответы, в которых:
- имеются текстовые ресурсы;
- нет заголовка
content-encoding
со значениемbr
,gzip
илиdeflate
.
Затем Lighthouse сжимает каждый из ответов с помощью GZIP и вычисляет, как сильно можно уменьшить объем данных.
Если исходный размер ответа меньше 1,4 КиБ либо если после сжатия исходный размер сократится менее чем на 10 %, Lighthouse не помечает этот ответ в результатах.
Сведения о потенциальной экономии, отображаемые в Lighthouse, справедливы только при кодировании ответа с помощью GZIP. Если использовать Brotli, то, возможно, удастся дополнительно уменьшить объем данных.
Включение функции сжатия текста на сервере
Чтобы успешно пройти этот аудит, включите сжатие текста на серверах, которые передали эти ответы.
Когда браузер запрашивает ресурс, он использует заголовок HTTP-запроса Accept-Encoding
, в котором указывает, какие алгоритмы сжатия он поддерживает.
**Accept-Encoding: gzip, compress, br
Если браузер поддерживает Brotli (br
), следует использовать Brotli, потому что в этом случае можно уменьшить размер файлов ресурсов еще сильнее, чем при использовании других алгоритмов сжатия. Выполните поиск по ключевым словам how to enable Brotli compression in <X>
, где <X>
— имя вашего сервера. По состоянию на июнь 2020 г. Brotli поддерживается во всех основных браузерах, кроме Internet Explorer, Safari для компьютеров и Safari для iOS. См. актуальные сведения в разделе Совместимость с браузерами.
Используйте GZIP, когда нельзя использовать Brotli. GZIP поддерживается во всех основных браузерах, но он менее эффективен, чем Brotli. См. примеры в разделе Конфигурации сервера.
Чтобы сообщить, какой алгоритм сжатия используется, сервер должен возвратить заголовок HTTP-ответа Content-Encoding
.
**Content-Encoding: br
Проверка того, был ли сжат ответ, в Chrome DevTools
Чтобы проверить, сжал ли сервер ответ, выполните указанные ниже действия.
- Press
Control+Shift+J
(orCommand+Option+J
on Mac) to open DevTools. - Click the Network tab.
- Щелкните запрос, на который был получен интересующий вас ответ.
- Перейдите на вкладку Headers (Заголовки).
- Проверьте заголовок
content-encoding
в разделе Response Headers (Заголовки ответов).
content-encoding
Чтобы сравнить размеры сжатых и распакованных данных ответа, выполните указанные ниже действия.
- Press
Control+Shift+J
(orCommand+Option+J
on Mac) to open DevTools. - Click the Network tab.
- Включите поддержку больших строк запросов. См. раздел Использование больших строк запросов .
- Посмотрите столбец Size (Размер) для интересующего вас ответа. Верхнее значение — размер сжатых данных, нижнее значение — размер несжатых данных.
См. также раздел Уменьшение и сжатие сетевых данных .
Инструкции для разных стеков
**Joomla
Включите параметр Gzip Page Compression (Сжатие страницы с помощью Gzip) в разделе System > Global configuration > Server (Система > Глобальная конфигурация > Сервер).
**WordPress
Включите сжатие текста в разделе конфигурации веб-сервера.
**Ресурсы
Updated on • Improve article