Сайт без внешних CDN — убираем Cloudflare, Google Fonts, jsDelivr
Сайт грузит шрифт с fonts.googleapis.com, jQuery с jsDelivr, иконки с cdn.fontawesome.com — и в момент блокировки или фильтрации зарубежных CDN сайт ломается визуально и функционально. Разбираем, как убрать зависимости от внешних ресурсов за один день.
Откройте DevTools на типовом российском сайте → вкладка Network → отфильтруйте по 3rd party. С большой вероятностью увидите 10-30 запросов на зарубежные CDN: fonts.googleapis.com, fonts.gstatic.com, cdn.jsdelivr.net, cdnjs.cloudflare.com, unpkg.com, fontawesome.com, gravatar.com. В момент фильтрации зарубежных сегментов всё это ломается — шрифты не грузятся, скрипты падают, иконки исчезают.
Решение — перенести зависимости на свой сервер или российский CDN. За один день можно очистить весь типовой лендинг.
Шрифты
Google Fonts заменяется простым копированием WOFF2-файлов к себе:
- Скачать шрифт через google-webfonts-helper или gwfh.mranftl.com (если доступен).
- Положить файлы в
/fonts/на сайте. - Заменить
<link href="https://fonts.googleapis.com/...">на собственный@font-face:
@font-face {
font-family: 'Inter';
src: url('/fonts/inter-regular.woff2') format('woff2');
font-weight: 400;
font-display: swap;
}
Грузите только нужные начертания (обычно 3-4 хватает), не 18.
JavaScript-библиотеки
jQuery, Bootstrap, htmx, Alpine, Three.js — всё на jsDelivr/cdnjs. Замена:
- Скачать минифицированный .js файл с GitHub-релизов или npm.
- Положить в
/js/vendor/. - Заменить
<script src="https://cdn.jsdelivr.net/...">на<script src="/js/vendor/...">.
Загрузка локально — обычно быстрее, чем зарубежный CDN, особенно из РФ.
Иконки
FontAwesome через CDN — типовая зависимость, которую можно заменить:
- Скачать SVG-иконки нужного набора с github.com/FortAwesome/Font-Awesome.
- Использовать как inline SVG в HTML или подключить через спрайт.
- Альтернатива — Tabler Icons, Lucide, Phosphor Icons — open source, можно положить локально.
Аналитика и счётчики
- Google Analytics — заменить на Yandex.Metrica (российский) или Plausible self-host.
- Google Tag Manager — заменить на Yandex.Tag Manager.
- Hotjar — заменить на Вебвизор в Яндекс.Метрике.
- Pixel Facebook — в РФ не работает с 2022, убирайте.
Карты
Google Maps в РФ блокируется. Альтернативы:
- Яндекс.Карты JavaScript API — родное решение, бесплатно до 25 тыс хитов/день.
- 2ГИС API — для локального бизнеса лучшее покрытие.
- OpenStreetMap + Leaflet — self-host, без API ключа, тайлы можно поставить локально.
Видео
- YouTube embed → VK Video или Rutube embed.
- Vimeo — в РФ работает, но риск блокировки. Резерв на Kinescope.
Капча
- Google reCAPTCHA — в РФ блокируется и портит UX. Заменить на Yandex SmartCaptcha.
- Или использовать honeypot + rate limit без видимой капчи.
Чек-лист аудита за час
- DevTools → Network → отфильтровать домены отличные от вашего и российского CDN.
- Список из 10-30 внешних доменов — записать.
- По каждому — найти замену (локально, российский CDN, альтернативный сервис).
- Заменить и протестировать на staging.
- Проверить, что сайт не ходит на внешние домены, через
chrome://net-internals/#dnsили Wireshark.
Выигрыш
- Сайт работает при фильтрации зарубежных сегментов.
- Уменьшение количества DNS-запросов — −200-500 мс на cold start.
- Контроль версий и стабильность — внешний CDN может тихо обновить файл.
- Совместимость с whitelist РКН.
Вывод
Аудит внешних зависимостей сайта — задача на 4-8 часов работы разработчика. После очистки сайт не зависит от Cloudflare, Google и любых других зарубежных провайдеров. Это и SEO-бонус (меньше зависимостей = быстрее), и страховка от блокировок.