БесплатноБазовая интеграция с 1С в подарок при заказе интернет-магазина под ключ

Шрифты на сайте: как подключить, чтобы не тормозить рендеринг

Подключение веб-шрифтов на сайте 1С-Битрикс без потери скорости рендеринга: woff2, font-display, preload

Дизайнер выбрал красивую гарнитуру, верстальщик подключил восемь начертаний в трёх форматах со стороннего сервиса — и вот на открытии страницы текст на секунду пропадает, а потом заголовки скачут, ломая вёрстку. Скорость проседает, а в отчёте Core Web Vitals загораются красные CLS и LCP. Шрифты — один из самых недооценённых источников тормозов: их легко подключить неправильно и так же легко подключить хорошо.

В этой статье разберём, как подключать веб-шрифты на сайте 1С-Битрикс, чтобы они не мешали рендерингу: почему возникает пустой или скачущий текст, зачем нужен формат woff2 и font-display, что даёт self-hosting и preload, как урезать вес через подмножества символов. Тема — часть общей работы над скоростью, которую мы ведём в связке с аудитом и оптимизацией проекта.

Коротко

  • Используйте один формат woff2 на начертание — он лучше всех сжат и поддерживается везде.
  • Ставьте font-display: swap, чтобы текст не пропадал, пока грузится шрифт.
  • Храните шрифты на своём сервере (self-hosting) и делайте preload одного-двух критичных начертаний.
  • Режьте вес подмножествами символов и оставляйте только реально используемые начертания.

Почему шрифты тормозят рендеринг

Веб-шрифт — это файл, который браузер обязан скачать, прежде чем отрисовать текст выбранной гарнитурой. В отличие от системных шрифтов, доступных мгновенно, кастомный шрифт добавляет в критический путь загрузки новый ресурс: сетевой запрос, ожидание, разбор файла. Пока всё это происходит, текст либо не виден, либо показан не тем шрифтом.

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

FOIT и FOUT: что видит пользователь

Пока шрифт грузится, браузер должен что-то показать, и есть два сценария — оба некрасивы, если ими не управлять.

Цель правильного подключения — избежать пустого экрана (FOIT) и минимизировать скачок при замене (часть FOUT). Достигается это связкой font-display, подбором похожего запасного шрифта и preload критичных начертаний. Полностью «бесшовной» замены добиться сложно, но заметность проблемы можно свести почти к нулю.

Как задача превращается в результат Задачачто решаемПодходкак делаемРеализацияна 1С-БитриксПроверкаметрики, тестыРезультатэффект для бизнеса
Схема: любая доработка проходит путь от постановки задачи к реализации на 1С-Битрикс и проверке по метрикам — важен измеримый результат, а не факт правки.

Формат woff2 и лишние файлы

Долгое время в проекты тянули «пакет на все случаи»: woff2, woff, ttf, eot, svg — по пять файлов на каждое начертание. Сегодня это анахронизм. Все актуальные браузеры понимают woff2 — самый сжатый формат, поэтому в большинстве проектов достаточно одного woff2 на начертание.

ФорматСтатусНужен ли сейчас
woff2Лучшее сжатие, поддержка вездеДа, основной
woffСтарее, крупнееРедко, для очень старых браузеров
ttf/otfНе сжат, тяжёлыйНет для web
eot/svgУстаревшиеНет

Отказ от лишних форматов уменьшает и вес, и число запросов, и путаницу в @font-face. Для современного магазина на 1С-Битрикс чистый woff2 — разумный выбор по умолчанию.

font-display: управляем отрисовкой

Свойство font-display в правиле @font-face определяет, что браузер делает, пока шрифт грузится. Ключевые значения:

Для большинства сайтов swap — безопасный выбор: пользователь всегда видит текст. Скачок при замене снижают, подбирая запасной системный шрифт с близкими метриками, чтобы строки не «переезжали». Это напрямую влияет на CLS.

Self-hosting против внешних сервисов

Шрифты можно грузить со стороннего сервиса или хранить у себя (self-hosting). Для скорости и стабильности почти всегда выигрывает второй вариант.

Внешний источник добавляет отдельное DNS-разрешение, новое TCP/TLS-соединение и зависимость от чужого сервера. Self-hosting всего этого лишён: файлы отдаются с вашего домена, по уже установленному соединению, с вашими настройками кэширования. Это ускоряет загрузку и убирает зависимость от доступности стороннего сервиса. На сайте 1С-Битрикс шрифты кладут в шаблон и отдают со своего домена, что хорошо ложится на композитный кэш и отдачу статики. Про инфраструктуру и отдачу статики полезно почитать нашу статью про хостинг и инфраструктуру BitrixVM.

preload критичных шрифтов

Обычно браузер узнаёт о шрифте, только дойдя до CSS и встретив @font-face, — это задержка. Подсказка <link rel="preload"> заставляет браузер начать загрузку шрифта раньше, параллельно с разбором страницы. Для шрифта, которым набран текст первого экрана, это ускоряет появление нормального текста.

Preload — точечный инструмент: применяйте его к одному-двум самым важным начертаниям (основной текст и заголовки первого экрана). Если preload’ить все шрифты, они начнут конкурировать за канал и замедлят друг друга — эффект окажется обратным.

Preload особенно уместен для гарнитуры заголовка, который часто и есть LCP-элемент страницы. Ускорив его загрузку, вы улучшаете и восприятие скорости, и метрику.

Подмножества символов (subsetting)

Полный файл шрифта содержит тысячи глифов: латиницу, кириллицу, диакритику, спецсимволы разных языков. Реальному российскому магазину нужна лишь малая часть. Subsetting — это создание подмножества файла только с нужными символами.

Subsetting заметно уменьшает вес каждого файла без визуальных потерь, потому что удаляются символы, которые всё равно не отображаются. Для многошрифтового дизайна экономия суммируется в ощутимые килобайты на каждой загрузке.

Сколько начертаний реально нужно

Самый частый перерасход — лишние начертания. В проект тянут regular, light, medium, semibold, bold, black да ещё курсивы каждого, а на деле в вёрстке используются три. Каждое начертание — отдельный файл и запрос.

  1. Соберите используемые начертания. Пройдитесь по стилям и найдите реально применяемые значения font-weight и font-style.
  2. Сопоставьте с подключёнными. Часто половина @font-face не используется нигде.
  3. Схлопните близкие. Промежуточные насыщенности нередко можно заменить имеющимися без потерь.
  4. Оставьте минимум. Практичный набор — regular, medium и bold одной-двух гарнитур.

Такой аудит почти всегда выкидывает несколько файлов и запросов без визуальных изменений — быстрая победа для скорости.

Шрифты и Core Web Vitals

Шрифты влияют сразу на несколько метрик Core Web Vitals, поэтому это не «косметика», а часть производительности.

Связка woff2 + font-display + preload критичного + подбор fallback минимизирует все три эффекта. Шрифты — один из первых пунктов, который мы проверяем при работе над скоростью сайта, наряду с кэшем и запросами к базе; про эффективную работу с данными есть материал про D7 ORM в Битрикс.

Подключение в 1С-Битрикс

На практике подключение шрифтов в 1С-Битрикс сводится к работе с шаблоном сайта:

  1. Положите woff2 в шаблон. Файлы шрифтов хранятся рядом с шаблоном и отдаются с вашего домена.
  2. Опишите @font-face. В CSS шаблона с указанием формата woff2 и font-display: swap.
  3. Добавьте preload. В шапке шаблона — link rel="preload" на одно-два критичных начертания.
  4. Проверьте кэш. Убедитесь, что статика шрифтов кэшируется браузером и корректно отдаётся при композитном кэше.
  5. Задайте fallback. В font-family пропишите системный запасной шрифт с близкими метриками.

Поскольку правки шрифтов затрагивают шаблон, выкатывать их лучше через предсказуемый процесс, а не «руками на бою». Как выстроить такую выкладку, мы разбираем в статье про CI/CD и деплой в Битрикс, а вопросы безопасной отдачи ресурсов затрагиваем в материале про REST, вебхуки и безопасность.

Частые ошибки

Чек-лист внедрения

  1. Только woff2. Один формат на начертание, устаревшие форматы убраны.
  2. font-display настроен. swap (или обоснованный optional/fallback) на всех шрифтах.
  3. Self-hosting. Файлы отдаются со своего домена, без стороннего сервиса.
  4. preload критичного. Одно-два начертания первого экрана предзагружаются.
  5. Subsetting выполнен. В файлах только нужные символы (кириллица, латиница).
  6. Минимум начертаний. Оставлены реально используемые, лишние удалены.
  7. Fallback подобран. Системный запасной шрифт с близкими метриками против скачка вёрстки.
  8. Кэш проверен. Статика шрифтов кэшируется и работает с композитным кэшем.

Вывод

Шрифты кажутся мелочью, но именно они часто отвечают за «сайт медленно открывается» и красные метрики. Хорошая новость в том, что грамотное подключение — это несколько понятных шагов: один формат woff2, font-display вместо пустого экрана, self-hosting вместо стороннего сервиса, точечный preload критичного и урезание веса через subsetting и минимум начертаний.

На сайте 1С-Битрикс всё это делается в шаблоне и хорошо сочетается с композитным кэшем и отдачей статики. Отнеситесь к шрифтам как к части производительности, а не только эстетики: они влияют на LCP, CLS и общее восприятие скорости. Наведите в них порядок — и получите более быстрый сайт без единого визуального компромисса.

Частые вопросы

Почему шрифты вообще замедляют загрузку сайта?

Шрифт — это файл, который браузер должен скачать, прежде чем отрисовать текст выбранной гарнитурой. Пока файл грузится, браузер либо показывает невидимый текст (FOIT), либо системный шрифт, который потом резко меняется на нужный (FOUT со скачком вёрстки). Плюс каждый файл — это сетевой запрос. Тяжёлые шрифты, лишние начертания и загрузка со стороннего домена растягивают отрисовку текста и бьют по метрикам скорости.

Какой формат шрифтов использовать в 2026 году?

Основной формат — woff2: он лучше всех сжат и поддерживается всеми актуальными браузерами. В большинстве проектов достаточно одного woff2 на каждое начертание, без устаревших woff, ttf, eot и svg. Это уменьшает и вес, и число запросов. Только если критично поддерживать очень старые браузеры, добавляют woff как запасной вариант, но для современного магазина обычно хватает чистого woff2.

Что такое font-display: swap и зачем он нужен?

font-display управляет тем, что браузер показывает, пока грузится шрифт. Значение swap заставляет сразу показать текст системным шрифтом и заменить его на нужный, когда файл загрузится, — пользователь не видит пустоты. Это убирает FOIT (невидимый текст) и улучшает восприятие скорости. Обратная сторона — возможный скачок вёрстки при замене; его снижают подбором похожего запасного шрифта и метрик fallback.

Лучше подключать шрифты со своего сервера или через внешний сервис?

Для скорости и стабильности почти всегда лучше self-hosting — хранить файлы шрифтов на своём сервере рядом с сайтом. Это убирает лишнее соединение со сторонним доменом, DNS-запрос и зависимость от чужого сервиса, а также упрощает вопросы с обработкой данных. На сайте 1С-Битрикс шрифты кладут в шаблон и отдают со своего домена, что хорошо сочетается с композитным кэшем и настройками кэширования статики.

Что такое preload для шрифтов и когда его применять?

preload — это подсказка браузеру заранее начать загрузку критичного ресурса. Для шрифта, которым набран текст первого экрана, preload ускоряет его появление, потому что браузер не ждёт, пока дойдёт до CSS. Применять стоит выборочно — только к одному-двум самым важным начертаниям (обычно основной текст и заголовки первого экрана). Если preload’ить все шрифты подряд, эффект обратный: они конкурируют за канал и мешают друг другу.

Как уменьшить вес шрифта без потери качества?

Главные рычаги: формат woff2, только нужные начертания и подмножество символов (subsetting). Часто на сайте реально используются два-три начертания, а в проект тянут восемь. Ещё сильнее вес режет subsetting — оставить в файле только те символы, что нужны: например, кириллицу и латиницу без экзотических глифов. Для российского магазина это заметно уменьшает размер без ущерба для текста.

Как шрифты влияют на Core Web Vitals и CLS?

Шрифты влияют сразу на несколько метрик. Медленная загрузка отодвигает отрисовку текста и ухудшает LCP, если крупный текст — ключевой элемент экрана. Замена системного шрифта на веб-шрифт с другими метриками вызывает скачок вёрстки — рост CLS. Правильное подключение (woff2, font-display, preload критичного, подбор fallback с близкими метриками) минимизирует и то, и другое. Скорость шрифтов — часть общей работы над Core Web Vitals.

Сколько шрифтов и начертаний допустимо на сайте?

Чем меньше, тем лучше для скорости. Практичный ориентир — одна-две гарнитуры и по два-три начертания на каждую (например, regular, medium, bold). Каждое лишнее начертание — это отдельный файл и запрос. Часто дизайн можно реализовать меньшим набором, а промежуточные насыщенности заменить имеющимися. Аудит реально используемых начертаний почти всегда позволяет выкинуть несколько файлов без визуальных потерь.

Поделиться:

Сайт медленно открывается из-за шрифтов и не только?

Проведём аудит скорости сайта на 1С-Битрикс, оптимизируем шрифты, картинки, кэш и запросы, приведём Core Web Vitals в норму. Оценим работу по вашему проекту.

Аудит и оптимизация

Редакция B2Bsite

Команда B2Bsite. С 2014 года разрабатываем и ускоряем сайты на 1С-Битрикс: шрифты, фронтенд, кэширование и Core Web Vitals для быстрых магазинов и порталов.

← Все статьи блога