Что такое CDN
CDN (Content Delivery Network) — сеть серверов по всему миру, на которых кешируется статический контент сайта (изображения, CSS, JS, видео).
Когда пользователь из Новосибирска заходит на ваш сайт:
- Без CDN: контент тянется с главного сервера в Москве (задержка 100-300 мс)
- С CDN: контент тянется с ближайшего узла CDN в Новосибирске (задержка 5-30 мс)
Эффект для SEO:
- LCP улучшается на 0.5-1.5 сек
- TTFB падает на 100-300 мс
- Core Web Vitals растут
- Google и Яндекс повышают позиции сайтам с лучшей скоростью
Когда CDN нужен
✅ Обязательно
- Большая аудитория в разных регионах
- Тяжёлый контент (фото, видео, большие JS-бандлы)
- Международная аудитория (особенно если основной сервер в РФ)
- High-traffic проекты (> 10к уников в день)
✅ Желательно
- E-commerce
- SEO-каталоги с фото
- Корпоративные сайты с высокими требованиями к скорости
⚠️ Не критично
- Простые лендинги без тяжёлого контента
- Локальные сайты для одного города
- Сайты с очень малой аудиторией (< 100 уников/день)
Главная проблема CDN в РФ — доступность
В 2022-2026 ряд иностранных CDN частично недоступны в РФ из-за блокировок и санкций:
| CDN | Доступность в РФ |
|---|---|
| Cloudflare | ⚠️ Работает, но иногда тормозит |
| AWS CloudFront | ⚠️ Часть IP заблокирована |
| Fastly | ❌ Полностью заблокирован |
| Vercel Edge | ⚠️ Часть IP заблокирована |
| Akamai | ❌ Большая часть недоступна |
| Yandex Cloud CDN | ✅ Полностью |
| Selectel CDN | ✅ Полностью |
| VK Cloud CDN | ✅ Полностью |
| BunnyCDN | ✅ Полностью |
| Beget CDN | ✅ Полностью |
Для критичных проектов в РФ — выбирать российский CDN или BunnyCDN.
Сравнение популярных CDN
Cloudflare (бесплатный план + платные)
Плюсы:
- Огромная сеть (300+ городов)
- DDoS-защита включена
- Бесплатный план достаточно функционален
- Простая настройка
Минусы:
- Частично заблокирован в РФ
- Платная производительность дорогая
Кому подходит: международные проекты, B2B с зарубежной аудиторией.
BunnyCDN
Плюсы:
- Дёшево ($0.01-0.04 за ГБ)
- Хорошо работает в РФ (есть узлы в Москве)
- Простой UI
- Подходит для статики и стриминга
Минусы:
- Меньше функций безопасности
- Нет встроенной WAF
Кому подходит: SEO-проекты, e-commerce, медиа.
Yandex Cloud CDN
Плюсы:
- Идеально для российской аудитории
- Узлы по всей РФ + СНГ
- Интегрируется с экосистемой Я (S3, Compute)
- Дешёвый трафик
Минусы:
- Только для российской аудитории
- Меньше международных узлов
Кому подходит: проекты с фокусом на РФ.
Selectel CDN
Плюсы:
- Российский провайдер
- Дёшево
- Узлы в крупных городах РФ
Минусы:
- Меньше функций
- Слабая интеграция с другими сервисами
Vercel Edge Network
Плюсы:
- Идеальная интеграция с Next.js
- Автоматический CDN из коробки
Минусы:
- Частично заблокирован в РФ
- Дорогой при росте трафика
Что кешировать на CDN
Обязательно:
- Изображения (JPG, PNG, WebP, AVIF)
- CSS-файлы
- JavaScript-бандлы
- Шрифты (WOFF2)
- Видео
Опционально:
- HTML страниц (для статических SSG-сайтов — отлично)
- API-ответы (для часто запрашиваемых endpoints)
Никогда:
- Личные данные пользователей
- Авторизационные cookies
- Динамические данные (корзина, профиль)
Cache-Control и сроки кеширования
| Тип файла | Cache-Control | Срок |
|---|---|---|
| Изображения с хешем в URL | public, max-age=31536000, immutable | 1 год |
| CSS/JS с хешем | public, max-age=31536000, immutable | 1 год |
| HTML | public, max-age=0, must-revalidate | 0 |
| Шрифты | public, max-age=31536000 | 1 год |
| API-ответы | public, max-age=60 | 1 мин |
Хеш в URL — это /static/main.7a3b9f.css. При изменении файла хеш меняется → URL меняется → CDN отдаёт новую версию.
Как настроить базовый CDN за час
Шаг 1. Выбрать CDN
Для РФ: BunnyCDN или Yandex Cloud CDN.
Шаг 2. Создать pull-zone
В панели CDN:
- Указать origin URL (ваш сервер)
- Получить CDN URL (
yourname.b-cdn.netилиcdn.yandexcloud.net/...)
Шаг 3. Заменить URL в коде
Было:
<img src="/static/photo.jpg" />Стало:
<img src="https://yourname.b-cdn.net/static/photo.jpg" />Шаг 4. Cache-Control headers
В nginx или на CDN:
location ~* \.(jpg|jpeg|png|webp|avif|woff2|css|js)$ {
expires 1y;
add_header Cache-Control "public, immutable";
}Шаг 5. (Опционально) собственный поддомен
Вместо yourname.b-cdn.net — cdn.example.com через CNAME.
Влияние на SEO
После внедрения CDN — через 2-4 недели проверить:
| Метрика | До CDN | После CDN |
|---|---|---|
| LCP | 2.5-4 сек | 1-2 сек |
| TTFB | 400-800 мс | 100-300 мс |
| CWV (CrUX) | Needs Improvement | Good |
| Время на сайте | базовое | +10-25% |
| Позиции (через 1-2 мес) | базовые | +1-3 позиции в среднем |
Анти-паттерны
❌ CDN на динамические страницы без VARY
Кеширование персонализированной страницы → пользователи видят чужие данные.
❌ Слишком короткий Cache-Control на статике
max-age=300 (5 минут) на изображения = CDN постоянно тянет с origin. Бессмысленно.
❌ CDN без хеша в URL
При обновлении файла CDN продолжает отдавать старую версию. Через хеш в URL — новая версия = новый URL.
❌ Кеширование HTML без must-revalidate
Пользователь видит старую версию страницы.
Чек-лист
- [ ] CDN выбран с учётом доступности в РФ
- [ ] Статика отдаётся через CDN
- [ ] Cache-Control с большим сроком на статике
- [ ] Хеши в URL для cache busting
- [ ] HTML не кешируется агрессивно (или с must-revalidate)
- [ ] Проверка LCP/TTFB через PageSpeed Insights после внедрения
- [ ] Мониторинг через Я.Вебмастер и GSC
Итог
CDN для SEO в 2026 — обязателен для средних и крупных проектов. Внедрение за 1-3 часа даёт измеримый рост Core Web Vitals и позиций.