×
Россия +7 (909) 261-97-71

Оптимизируем шрифты: 9 шагов к быстрому сайту

Россия +7 (909) 261-97-71
Шрифт:
8 33589
Подпишитесь на нас в MAX

Шрифты на сайте (отличные от стандартных) — это «серебряная пуля» дизайнеров и огромная головная боль разработчиков. Шрифты легко позволяют сделать сайт уникальным, запоминающимся, но платой за эту является существенное ухудшение скорости загрузки сайта.

Как правильно подключить собственные шрифты и не навредить скорости сайта? Разбираем конкретные шаги, которые позволят это сделать.

1. Правильное подключение

Собственные шрифты сайта, скорее всего, отсутствуют в браузере пользователя. Поэтому необходимо указать дополнительные к загрузке файлы, в которых будет содержаться техническая информация о начертании шрифтов (символы — глифы, особенности совместного начертания символов и строк и другие данные). Как это часто бывает, для каждого браузера нужен свой файл — Google Chrome понимает формат woff и woff2 (наиболее продвинутые), старый Android понимает только TTF, а IE — eot.

Дополнительно можно учесть, что в редких случаях шрифт может быть уже установлен на устройство пользователя: в этом случае можно использовать директиву local. Развернутая CSS инструкция, подключающая соответствующий шрифт на сайте, будет выглядеть примерно так (используем различные форматы для «попадания» в разные браузеры):

@font-face {
font-family: 'Awesome Font';
font-style: normal;
font-weight: 400;
src: local('Awesome Font'),
url('/fonts/awesome.woff2') format('woff2'),
url('/fonts/awesome.woff') format('woff'),
url('/fonts/awesome.ttf') format('ttf'),
url('/fonts/awesome.eot') format('eot');
}

В этом случае все файлы шрифтов размещаются на хостинге. Для поддержки всех браузеров обычно используется набор файлов шрифтов для каждого начертания (гарнитуры). Его можно создать, например, через Font Squirrel: сервис автоматически предоставит CSS-код и набор файлов для размещения на сервере.

В качестве альтернативного варианта можно использовать сервис Google Fonts: вы вставляете вызов скрипта сервиса на сайт, а в зависимости от используемого браузера сервис уже отдает соответствующий CSS-код и файлы шрифта (уже с разбиением по языкам), поддерживая более 30 разных комбинаций.

2. Обратная совместимость шрифтов

Для максимального ускорения отображения текста вашего сайта на любом пользовательском устройстве вы должны сообщить браузеру, какой запасное семейство шрифтов можно использовать, если ваш собственный шрифт недоступен (не загрузился еще или загружается неподдерживаемый формат). Для этого в директиве font-face после названия вашего шрифта нужно указать наиболее подходящую системную альтернативу с обязательным окончанием serif (шрифт с засечками), sans-serif (без засечек) или monospace (равной ширины). Хотя обратная совместимость приводит к FOUT, но эта альтернативна лучше, чем невидимый на сайте текст (FOIT).

Но основную проблему с загрузкой собственных шрифтов это не решает: шрифты большие. Иногда слишком большие. И почти всегда они требуются, чтобы отобразить текст на странице (т.е. загрузка шрифта идет на стадии «белого экрана», максимально раздражая пользователей). Как это вылечить?

3. Инвентаризация шрифтов

Третий, и наиболее важный шаг в оптимизации – оставить только нужные шрифты. Инвентаризация шрифтов (удаление неиспользуемых на сайте или максимальная обрезка используемых и фактически используемых символов). Также нужно выбрать не только шрифты, но и их варианты (обычный, курсив, полужирный).

Оптимизация размера шрифтов состоит из трех базовых вещей: обеспечить обратную совместимость, включить сжатие и устранить неиспользуемые глифы. Перед проведением оптимизации конкретных файлов нужно пересмотреть набор используемых нестандартных шрифтов и оставить только те, которые реально нужны для сайта.

4. Использование Google Fonts API

В дальнейшей оптимизации шрифтом большим подспорьем будет сервис Google Fonts API, который позволяет получить уже готовый код для интеграции шрифтов на сайте с учетом основных требований к скорости их загрузки.

fonts API.jpg

Google Fonts API позволяет загрузить только нужные варианты щрифта, а также загружает шрифты по наборам символов (позволяет браузерам не загружать полностью шрифт, если не все глифы требуются для отображения страницы). Среди дополнительных возможностей стоит отметить и параметр text={letters}, который обрезает символы в загружаемом шрифте строго до заданных (если шрифт используется только для логотипа, это может быть очень ценно).

5. Уменьшение размера шрифтов

Если вы используете статическое сжатие, то достаточно подготовить архивы с файлами шрифтов и разместить их рядом с файлами шрифтов. При динамическом сжатии проверьте, что все основные форматы шрифтов — EOT, TTF, OTF, SVG, WOFF и WOFF2 — отдаются с хостинга сжатыми (проверка сжатия). Если это не так, то нужно добавить требуемые расширения или типы файлов в правила сжатия. Gzip (или zopfli) сжатие позволяет сократить размер шрифтов на 15-50%.

6. Удаление глифов

Для отображения текста на сайте обычно требуются далеко не все символы, включенные в шрифт по умолчанию. Часть из них относится к другому языку (например, к китайскому), часть — к специальным символам, которые вы не используете. Существует большое количество инструментов для удаления из шрифтов неиспользуемых глифов и утилиты по Windows / Mac. Наиболее популярные — это сервис Font Squirrel (в режиме Advanced), а также Subset.py и FontPrep. Также Google Fonts позволяет загружать только используемые наборы символов. Этот метод оптимизации позволяет сократить результирующий файл еще на 10-50%.

В совокупности, все указанные методы оптимизации размера подключаемых шрифтов позволяют существенно ускорить отображение сайта на всех устройствах, независимо от красоты используемых шрифтов и неплохо автоматизируются: например, в облаке Айри.рф сокращается размер поступающих с хостинга шрифтов на 20-80%.

7. Кэширование шрифтов в браузере

Есть несколько подходов, позволяющих применить некоторую «магию» к загрузке шрифтов, чтобы до минимума снизить негативные эффекты.

Первое – это жесткое кэширование файлов (для обычных пользователей) и base64-представления (в localStorage, для мобильных пользователей). Прием работает только для вернувшихся на сайт пользователей, но для них позволяет существенно сократить время загрузки ( Детальная инструкция по использования localStorage).

8. Font Loading API

Второе – использование Font Loading API (поддерживается не всеми браузерами). При первичной загрузке страницы можно показать текст в установленном у пользователя шрифте, асинхронно загрузить нужный шрифт – и потратить несколько десятков миллисекунд (почти невидимое «подвисание» браузера) на перерисовку страницы по готовности шрифта. Существуют библиотеки для автоматизации процесса, одна из них представлена здесь.

9. Предзагрузка шрифтов

И, наконец, предварительная загрузка шрифтов (если они используются не с первой страницы у пользователей: например, в личном кабинете). Для этого подойдет техника prefetch, которая уже очень хорошо поддерживается браузерами: http://caniuse.com/#feat=link-rel-prefetch.

Для более глубокого погружения в тему рекомендую к прочтению статью от Google на тему оптимизации шрифтов.

Есть о чем рассказать? Тогда присылайте свои материалы Марине Ибушевой


Новые 
Новые
Лучшие
Старые
Сообщество
Подписаться 
Подписаться на дискуссию:
E-mail:
ОК
Вы подписаны на комментарии
Ошибка. Пожалуйста, попробуйте ещё раз.
Отправить отзыв
  • yoyo chilli
    5
    комментариев
    0
    читателей
    yoyo chilli
    4 дня назад
    Good explanation of how font optimization tools like Google Fonts and Font Squirrel help reduce file size. Many users also look up simple info like wendys drinks when checking menu options.
    -
    0
    +
    Ответить
  • yoyo chilli
    5
    комментариев
    0
    читателей
    yoyo chilli
    4 дня назад
    Optimizing fonts by including only required glyphs is a great performance practice, especially for modern web apps. On a different note, cookout milkshake flavors is a helpful resource for quick menu browsing.
    -
    0
    +
    Ответить
  • yoyo chilli
    5
    комментариев
    0
    читателей
    yoyo chilli
    4 дня назад
    Font subsetting is often overlooked, but it can reduce asset size quite a bit, especially for multilingual websites. You can also explore letras instagram for creative font styles.
    -
    0
    +
    Ответить
  • yoyo chilli
    5
    комментариев
    0
    читателей
    yoyo chilli
    4 дня назад
    I agree, removing unused characters from fonts is a smart way to improve load speed and efficiency. Tools like these make a big difference in web performance. Another useful resource is letras diferentes e bonitas for typography ideas.
    -
    0
    +
    Ответить
  • yoyo chilli
    5
    комментариев
    0
    читателей
    yoyo chilli
    4 дня назад
    Great point about font optimization—subsetting unused glyphs can significantly reduce file size and improve performance. For creative text styles and inspiration, check out teks aesthetic salin.
    -
    0
    +
    Ответить
  • Site-health
    1
    комментарий
    0
    читателей
    Site-health
    больше года назад
    Можно разбить большой файл шрифтов на куски. Каждый кусок - отдельный язык + английские символы (для названий там всяких). Вот сервис для этого site-health.com/tools/web-font-optimizer
    -
    -2
    +
    Ответить
    • Гость
      1
      комментарий
      0
      читателей
      Гость
      Site-health
      6 месяцев назад
      Сервис для оптимизации шрифтов переименовали, теперь он здесь находится site-alarm.com/tools/web-font-optimizer
      -
      0
      +
      Ответить
  • Павел Зюкин
    6
    комментариев
    0
    читателей
    Павел Зюкин
    больше года назад
    Отличная статья Николай.
    -
    0
    +
    Ответить
ПОПУЛЯРНЫЕ ОБСУЖДЕНИЯ НА SEONEWS
Как ИИ усиливает маркетинг и помогает общаться с пользователем
Иван
1
комментарий
0
читателей
Полный профиль
Иван - Классная статья, забрал Хотелось бы услышать еще от эксперта мнение про модели в таком случае и дисперсию
Тренды e-commerce 2026: рынок ждет отток с маркетплейсов?
Арина
1
комментарий
0
читателей
Полный профиль
Арина - Мы пробовали разные сервисы, но уже давно используем этот сервис tryon.mall-er.com у них есть и Визуальный поиск и Виртуальная примерка. Мы пользуемся Виртуальной примеркой очков и поиском и внедрили себе на сайт, сейчас порядка 80% нашего трафика с удовольствием пользуются данными функциями.
Мы сократили рутину SEO-специалиста на 95% – вот архитектура, которая это сделала
Гостьkorayaskin
2
комментария
0
читателей
Полный профиль
Гостьkorayaskin - Можно также посмотреть разбор инструментов типа KeywordKick — помогает быстрее понять, где именно конфликт сигналов.
GEO-продвижение: гайд повышения видимости бренда (сайта) в нейросетях
dayitrix
3
комментария
0
читателей
Полный профиль
dayitrix - Спасибо за разбор. Сейчас как раз в процессе изучения GEO-продвижения, хочется разобраться, как вообще попадать в ответы нейросетей. Ну и смотрю, уже услуги по такому продвижению начали появляться, типа Zenlink Geo. Но пока по большей части информацию собираем, что это и стоит ли в это лезть. Но учитывая то, что люди сейчас в основном через нейронной информацию ищут, было б неплохо, чтоб нейросети нас упоминали)
Накрутка ПФ vs Бизнес: как накрутка поведенческих факторов «убьет» ваш бизнес в интернете
Гость
1
комментарий
0
читателей
Полный профиль
Гость - Вообще бред несут-пункт позиции и там и там суотрудничать,банов нет,риски и остальные пункты просто смешно,пф гораздо эффективнее чем платить в пиксель)))
Что будет с SEO в 2026: эксперты рынка подводят итоги и делают прогнозы на этот год
Марал Гаипова
142
комментария
0
читателей
Полный профиль
Марал Гаипова - Дмитрий, спасибо, эксперты и правда - топ)
Что прямо сейчас можно сделать сайту регионального СМИ, чтобы получить мощный приток органического трафика
Дмитрий Севальнев
0
комментариев
0
читателей
Полный профиль
Дмитрий Севальнев - Максим, молодец! Хороший материал
Сервисы для создания квизов: сравнение по конверсии, гибкости сценариев и интеграциям
Виктор
1
комментарий
0
читателей
Полный профиль
Виктор - Без сервиса FormDesigner.ru эта подборка будет не полной. Удивлен, почему вы его не включили в список?
5 полезных сервисов для работы с учебными текстами
Anna B.
2
комментария
0
читателей
Полный профиль
Anna B. - Отличный разбор, очень своевременно!
Битрикс24 запускает бесплатный курс по вайбкодингу для гуманитариев
Ирина
1
комментарий
0
читателей
Полный профиль
Ирина - Хорошее решение для бизнеса
ТОП КОММЕНТАТОРОВ
Комментариев
910
Комментариев
834
Комментариев
554
Комментариев
540
Комментариев
483
Комментариев
393
Комментариев
373
Комментариев
262
Комментариев
249
Комментариев
171
Комментариев
156
Комментариев
142
Комментариев
130
Комментариев
121
Комментариев
100
Комментариев
97
Комментариев
97
Комментариев
96
Комментариев
80
Комментариев
77
Комментариев
74
Комментариев
67
Комментариев
66
Комментариев
60
Комментариев
59

Отправьте отзыв!
Отправьте отзыв!