Загрузка Google Fonts напрямую с серверов Google добавляет к времени отрисовки страницы (LCP) от 200 до 600 мс из-за лишних DNS-запросов и TLS-рукопожатий. В условиях Core Web Vitals даже такая задержка может стать триггером для понижения позиции в мобильной выдаче, если общий LCP переваливает за 2.5 секунды.
Проблема внешних запросов и Render-Blocking
Стандартное подключение через @import или заставляет браузер сначала загрузить CSS-файл шрифтов, а затем сами файлы шрифтов (.woff2). Это создает цепочку зависимостей: DNS-запрос к fonts.googleapis.com → TCP-соединение → SSL-сертификат → Загрузка CSS → Загрузка шрифта. В итоге пользователь видит «скачок» контента (CLS), когда системный шрифт внезапно меняется на дизайнерский.
Кейс: при переходе с внешних Google Fonts на локальные в магазине на WooCommerce время первого отрисования (FCP) сократилось с 1.4с до 0.9с. Это произошло за счет исключения двух внешних HTTP-запросов, которые на медленном 3G-соединении могли занимать до 1.2с.
Экспертный вывод: внешние шрифты — это неоправданный риск для LCP и CLS. Единственный профессиональный метод оптимизации — полный перенос шрифтов на свой сервер.
Локальное хранение шрифтов: технический стек
Перенос шрифтов на хостинг WordPress позволяет использовать HTTP/2 или HTTP/3 (QUIC), где все ресурсы грузятся одним потоком. Важно использовать формат WOFF2, который сжимает данные на 30-50% эффективнее, чем WOFF. Например, файл шрифта Roboto в формате TTF весит около 120 КБ, тогда как WOFF2 — всего 30-40 КБ.
Ошибка новичка: подключать один и тот же шрифт разными начертаниями (Light, Regular, Medium, Bold, Black). Каждое начертание — это отдельный файл. Оптимальный набор для SEO-сайта: Regular (400) и Bold (700). Лишние 3-4 вариации добавляют лишние 150-200 КБ к весу страницы без видимого улучшения UX.
Экспертный вывод: используйте только WOFF2 и ограничивайте количество начертаний до двух. Всё, что выше, — избыточность, бьющая по скорости.
Оптимизация через font-display: swap
Свойство CSS `font-display: swap` сообщает браузеру: «показывай текст системным шрифтом, пока основной не загрузится». Это полностью убирает проблему «белого экрана» (FOIT — Flash of Invisible Text). Без этого параметра текст остается невидимым до полной загрузки шрифта, что критично для пользователей с пингом более 150 мс.
Сравнение: при использовании `font-display: block` пользователь видит пустую страницу в течение 500-800 мс. При `swap` текст доступен мгновенно, а замена шрифта происходит за миллисекунды. Чтобы избежать резкого скачка (Layout Shift), подбирайте системный шрифт (Arial, Helvetica) максимально близко по метрикам к Google-шрифту.
Экспертный вывод: `font-display: swap` обязателен. Если вы используете плагины для кеширования, проверьте, не перебивают ли они эту настройку своими методами оптимизации.
Инструментарий: плагины против ручного метода
Для автоматизации часто используют OMGF или Autoptimize. OMGF скачивает шрифты локально и заменяет ссылки в коде. Однако плагины добавляют свой оверхед в виде PHP-запросов. Ручной метод (загрузка в /wp-content/themes/fonts/ и прописка в style.css) — самый чистый. В связке с правильный Выбор SEO-плагина для WordPress это позволяет выжать максимум из PageSpeed Insights.
Мини-кейс: сайт с 15 установленными плагинами при использовании OMGF имел задержку в генерации CSS на 40 мс. Переход на ручное подключение через @font-face убрал эту задержку и упростил структуру кода, удалив лишние 12 строк в
.Экспертный вывод: если в команде есть верстальщик — только ручной метод. Если вы соло-мастер — используйте OMGF, но после настройки очищайте кеш и проверяйте отсутствие 404 ошибок по путям к шрифтам.
Вывод
Мой вердикт: забудьте про внешние ссылки на Google Fonts. Единственный путь к зеленой зоне Core Web Vitals — локальное хранение в формате WOFF2, ограничение до 2-х начертаний и обязательный `font-display: swap`. Начните с аудита текущих шрифтов: удалите все неиспользуемые вариации, перенесите файлы на сервер и проверьте LCP в PageSpeed Insights — вы увидите прирост скорости отрисовки на 15-30% на мобильных устройствах.