Как убрать Google Fonts с сайта и закрыть нарушение 152-ФЗ
Google Fonts передаёт IP-адреса пользователей в США — это нарушение 152-ФЗ. Инструкция по self-host шрифтов на WordPress, Tilda, Bitrix, Next.js и HTML.
Если на сайте подключён fonts.googleapis.com или fonts.gstatic.com — каждый посетитель из России незаметно отправляет свой IP в США. Это трансграничная передача персональных данных без уведомления Роскомнадзора и без согласия пользователя — штраф от 1 до 6 млн ₽, при повторе до 18 млн (ст. 13.11 ч. 8–9 КоАП).
Решение одно: убрать загрузку с серверов Google и положить шрифты на свой сервер рядом с сайтом. В этой статье пошагово показываем, как это сделать в WordPress + Elementor, Tilda, Bitrix, Next.js и обычной HTML-вёрстке — обычно это занимает 15–30 минут.
TL;DR — что нужно сделать
- Скачать шрифты в формате WOFF2 (через наш инструмент — самый быстрый способ).
- Положить их рядом со своим сайтом (
/fonts/или аналог). - Удалить со страницы все ссылки на
fonts.googleapis.com. - Подключить шрифты через
@font-faceсfont-display: swap. - Проверить через DevTools → Network, что запросы к Google действительно ушли.
Дальше — детали и варианты для каждой популярной CMS.
Кратко: почему это нарушение 152-ФЗ
Когда браузер пользователя делает запрос к fonts.googleapis.com, Google получает:
- IP-адрес пользователя
- User-Agent, язык, Referer
Сам по себе IP — просто число, но Google — компания, способная связать его с конкретным человеком (через аккаунты, cookie, Android-устройства). Для Google это персональные данные. Подключая Google Fonts через CDN, оператор инициирует передачу ПДн иностранной компании без согласия и без уведомления РКН.
В 2022 году Земельный суд Мюнхена (LG München I, дело 3 O 17493/20) уже признал такую загрузку нарушением GDPR и обязал владельца сайта компенсировать ущерб посетителю. В РФ логика РКН аналогичная — формально это покрывает сразу три статьи 152-ФЗ:
- ст. 18 ч. 5 — нарушение локализации первичной записи ПДн на территории РФ
- ст. 12 ч. 4 — отсутствие уведомления РКН о трансграничной передаче
- ст. 9 — отсутствие согласия субъекта на передачу
Self-hosting закрывает все три пункта одним действием: данные пользователя вообще не покидают ваш сервер.
Как именно self-host убирает нарушение
При локальном размещении файлы .woff2 лежат на вашем сервере. Браузер не делает запросов к Google — IP пользователя никуда не уходит. С точки зрения 152-ФЗ это эквивалентно тому, как если бы шрифты были картинками на вашем сайте: никакой трансграничной передачи нет.
Бонусом получаете:
- Скорость: один TLS-handshake вместо двух. Особенно заметно на 3G и в регионах с плохим пингом до США.
- Стабильность: если Google ограничит доступ из РФ, шрифты не отвалятся.
- Privacy: никаких сторонних cookie и fingerprinting'а в момент загрузки шрифта.
Шаг 1. Скачать шрифты в WOFF2
Вручную с fonts.google.com неудобно — там отдают TTF, который в 2–3 раза тяжелее WOFF2. Самый быстрый путь — наш инструмент для скачивания Google Fonts: вставляешь ссылку с Google и получаешь ZIP с готовыми WOFF2-файлами и @font-face CSS.
- Откройте fonts.google.com, выберите шрифт (Inter, Roboto, Manrope — что угодно), отметьте начертания и подмножества. Для русскоязычного сайта обязательны latin и cyrillic.
- Скопируйте ссылку или embed-код, который Google показывает в правой панели.
- Вставьте его в наш инструмент и нажмите «Скачать ZIP».
- Получите архив с файлами
.woff2и готовымfonts.css— все запросы к Google идут с нашего сервера, IP ваших посетителей никуда не уходит.
Важно по форматам: WOFF2 — единственный формат, который реально нужен в 2026 году. Его поддерживают все актуальные браузеры, включая Safari ≥ 12. От лишних начертаний экономьте байты: каждое — это +20–30 КБ.
Шаг 2. Подключить шрифты правильно
Просто положить файлы и прописать @font-face мало — без правильной стратегии загрузки получите «прыгающий» текст или невидимый текст на старте.
Минимальный рабочий вариант:
@font-face {
font-family: 'Inter';
font-style: normal;
font-weight: 400;
font-display: swap;
src: url('/fonts/inter-v13-cyrillic_latin-regular.woff2') format('woff2');
unicode-range: U+0000-00FF, U+0400-04FF;
}
Ключевые моменты:
font-display: swap— браузер сразу показывает системный шрифт-фолбэк, а ваш шрифт подменяет его, как только загрузится. Это улучшает Core Web Vitals (LCP).unicode-range— браузер скачает только нужный subset. Если на странице нет кириллицы, кириллический файл вообще не загрузится.
Для критичных шрифтов (видны в первом экране) добавьте preload в <head> до любых CSS:
<link
rel="preload"
href="/fonts/inter-v13-cyrillic-regular.woff2"
as="font"
type="font/woff2"
crossorigin
/>
Атрибут crossorigin обязателен даже для same-origin шрифтов — без него preload игнорируется. Не злоупотребляйте preload: каждый файл — это +30 КБ к первому запросу. Хватит 1–2 на самые видимые тексты.
Шаг 3. Заменить Google Fonts в вашей CMS
WordPress + Elementor
Elementor по умолчанию подключает Google Fonts через CDN. Самый простой способ убрать — плагин OMGF | Host Google Fonts Locally (от Daan van den Bergh, бесплатный, ~200 тыс. установок):
- Plugins → Add New → найти «OMGF» → установить и активировать.
- Settings → Optimize Google Fonts → нажать Save & Optimize.
- Плагин автоматически просканирует страницы, скачает все используемые шрифты в
/wp-content/uploads/omgf/и подменит ссылки на локальные. - Включите Force Stylesheet Usage — это перехватит даже шрифты, подгружаемые из тем и других плагинов.
- В Elementor → Settings → Advanced установите Google Fonts Load → Swap (это про
font-display, не про self-host, но дополняет картину).
После настройки обязательно очистите все кэши (плагин кэширования, CDN, серверный кэш) и проверьте через инкогнито-окно.
Альтернативы: Local Google Fonts, Disable and Remove Google Fonts. Если стоит WP Rocket или LiteSpeed Cache — у них опция «Host Google Fonts Locally» уже встроена.
Tilda
В Tilda есть встроенный переключатель: Настройки сайта → Ещё → SEO → «Подгружать шрифты с серверов Google» → Off. После этого Tilda проксирует шрифты через свой CDN (static.tildacdn.com), который размещён в том числе на серверах в РФ.
Это формально решает проблему 152-ФЗ ценой зависимости от инфраструктуры Tilda. Если нужны кастомные шрифты — Настройки сайта → Шрифты и цвета → Загрузить свой шрифт.
Bitrix
В стандартных шаблонах 1С-Битрикс Google Fonts обычно подключаются через header.php. Найдите там строки вроде:
<link href="https://fonts.googleapis.com/css?family=Roboto..." rel="stylesheet" />
И замените на локальный @font-face из шага 2 в template_styles.css. Сами файлы положите в /local/templates/<template>/fonts/.
В Маркетплейсе есть модули типа «Локальные шрифты Google Fonts», но обычно проще править header.php руками — это пара минут.
Next.js
В Next.js используйте встроенный next/font/local. Кеширование, font-display: swap и preload проставляются автоматически:
// app/layout.tsx
import localFont from 'next/font/local';
const inter = localFont({
src: [
{ path: '../public/fonts/inter-regular.woff2', weight: '400' },
{ path: '../public/fonts/inter-bold.woff2', weight: '700' },
],
variable: '--font-inter',
display: 'swap',
});
export default function RootLayout({ children }: { children: React.ReactNode }) {
return (
<html lang="ru" className={inter.variable}>
<body>{children}</body>
</html>
);
}
next/font/google тоже формально работает — Next.js скачивает шрифты с Google на этапе сборки, а в рантайме отдаёт их с вашего сервера. ПДн пользователя не передаются. Но возникает зависимость от доступности Google в момент CI/CD-билда.
Чистый HTML, SPA, любой бэкенд
- Скопируйте
.woff2файлы в/public/fonts/(или аналог). - Пропишите
@font-faceиз шага 2 в основной CSS. - Удалите со страниц все
<link href="https://fonts.googleapis.com/...">. - Добавьте
<link rel="preload">для самых важных файлов.
Никаких плагинов не нужно.
Шаг 4. Проверить, что Google Fonts действительно убраны
- DevTools → Network → фильтр Font → перезагрузить страницу. Все запросы должны идти на ваш домен. Никаких
fonts.googleapis.comиfonts.gstatic.comбыть не должно. - Откройте DevTools → Network → фильтр по доменам, найдите все запросы к
*.google.com,*.googleapis.com,*.gstatic.com. Если они всё ещё есть — остался какой-то плагин или внешний скрипт, который подтягивает шрифты косвенно. - Lighthouse → проверьте, не появился ли FOIT (поле «Avoid invisible text during webfont load»). Если появился — добавьте
font-display: swapв свой@font-face.
Если на сайте остались другие иностранные сервисы (Google Analytics, reCAPTCHA, Cloudflare CDN, Webflow Hosting) — закрытие Google Fonts уберёт только один из источников нарушения. Их нужно либо заменить на российские аналоги (Яндекс.Метрика, SmartCaptcha, Selectel CDN), либо подать уведомление в РКН и добавить раздел в политику.
Что в итоге написать в политику
После self-hosting'а Google Fonts из политики обработки персональных данных можно убрать упоминание Google как получателя — если других сервисов Google (Analytics, reCAPTCHA, Maps, Tag Manager) на сайте нет. Если остались — фиксируйте каждый по отдельности с указанием цели передачи и страны получателя.
И помните: убрать Google Fonts — это закрытие одного канала утечки. Полная проверка сайта на трансграничную передачу должна включать ещё аналитику, рекламные пиксели, капчу, CDN и любые встроенные виджеты. Проверить, какие иностранные сервисы подгружаются на вашем сайте, можно на главной Ревиизора.