Ваш сервер стоит в Москве. Это нормально — там дата-центры дешевле, инфраструктура лучше, техподдержка ближе. Но пользователь из Владивостока при каждом запросе гоняет пакеты через всю страну туда и обратно. Это около 9 000 км по прямой. Физика неумолима: скорость света в оптоволокне — примерно 200 000 км/с, плюс маршрутизация через десятки узлов. Минимальный RTT (round-trip time) Москва–Владивосток — около 90–110 мс. Для динамичного сайта с десятками запросов это складывается в заметные задержки.

Решение существует давно — CDN. А последние несколько лет поверх него появился edge computing, который идёт ещё дальше. Разберём, что это, как работает и когда имеет смысл внедрять.

Что такое CDN и зачем он нужен

CDN (Content Delivery Network) — это сеть серверов, распределённых географически. Когда пользователь запрашивает файл с вашего сайта, CDN отдаёт его с ближайшего к пользователю узла, а не с вашего основного сервера.

Классический сценарий: картинка, CSS-файл, шрифт. Всё это статика — она не меняется при каждом запросе. CDN кэширует её на своих серверах по всему миру. Пользователь из Новосибирска получает вашу картинку не из московского дата-центра, а с узла CDN в Новосибирске или соседнем регионе. Латентность падает с 60–80 мс до 5–15 мс.

Цифры из реальных замеров Cloudflare и Fastly показывают, что подключение CDN для сайтов с аудиторией по всей России или за рубежом снижает время загрузки страниц на 30–60%. Для e-commerce это напрямую конвертируется в деньги: по данным Google, каждая дополнительная секунда загрузки снижает конверсию на 7–12%.

Что CDN кэширует

  • Изображения (jpg, png, webp, svg)
  • CSS и JavaScript файлы
  • Шрифты
  • Видео и аудио
  • Статические HTML-страницы
  • Файлы для скачивания

Динамический контент — личный кабинет, корзина, результаты поиска — CDN обычно не кэширует по умолчанию, потому что он уникален для каждого пользователя. Но здесь в игру входит edge computing.

Edge computing — это не просто кэш

Edge computing — выполнение кода непосредственно на узлах CDN, а не на центральном сервере. Звучит как детали реализации, но на практике это меняет многое.

Представьте: пользователь авторизован, у него в куках есть токен. Обычно запрос идёт так: браузер → CDN узел → ваш сервер в Москве → база данных → ответ обратно. Если логику авторизации вынести на edge, запрос выглядит иначе: браузер → CDN узел (проверка токена прямо здесь) → персонализированный ответ. До вашего сервера запрос вообще не доходит.

Основные провайдеры edge computing:

Cloudflare Workers — самый распространённый вариант. Код на JavaScript (или WebAssembly) запускается на 300+ узлах по всему миру. Бесплатный тариф даёт 100 000 запросов в день — для небольшого проекта хватит.

Vercel Edge Functions — удобно, если вы деплоите Next.js приложение. Функции запускаются на edge автоматически, конфигурация минимальная.

AWS CloudFront + Lambda@Edge — мощно, но сложнее в настройке. Lambda@Edge запускается на узлах CloudFront и позволяет модифицировать запросы и ответы на лету.

Fastly Compute — хорошая альтернатива для компаний с жёсткими требованиями к latency. Fastly декларирует время холодного старта менее 1 мс — у Cloudflare Workers примерно то же самое.

Что реально ускоряет edge

Вот конкретные задачи, которые хорошо решаются на edge:

A/B тестирование без мерцания. Обычно A/B тест реализуется через JavaScript на клиенте: страница загрузилась, скрипт определил группу, переключил вариант. Пользователь видит «мерцание» — исходный вариант на долю секунды. На edge это решается чисто: запрос перехватывается, пользователю сразу отдаётся нужный вариант страницы. Никакого flickering.

Геолокация и редиректы. Если у вас несколько языковых версий сайта или разные условия для разных стран, редирект можно делать прямо на edge по IP-геолокации. Без обращения к основному серверу. Cloudflare Workers имеют встроенный объект cf.country в каждом запросе.

Авторизация и rate limiting. Проверка JWT-токена или API-ключа — несложная операция, которую не нужно тащить на центральный сервер. На edge это занимает единицы миллисекунд. Rate limiting (ограничение числа запросов с одного IP) тоже хорошо живёт на edge — защита срабатывает до того, как запрос добрался до вашей инфраструктуры.

Трансформация изображений. Cloudflare Image Resizing и аналогичные сервисы позволяют отдавать изображения в нужном размере и формате прямо с edge. Загрузили одно большое изображение — CDN сам сделает webp на 400px для мобильных и jpg на 1200px для десктопа.

Персонализация «шапки» страницы. Имя пользователя, количество товаров в корзине, уведомления — это небольшие данные, которые можно хранить в edge KV-хранилище (Cloudflare KV, Vercel Edge Config) и отдавать без запроса к основной базе.

Популярные CDN: кого выбирать

Cloudflare — выбор по умолчанию для большинства проектов. Бесплатный тариф реально работает: неограниченная пропускная способность, базовая DDoS-защита, SSL. Pro-план от $20/мес добавляет оптимизацию изображений и расширенную аналитику. Узлов в России несколько штук — Москва, Санкт-Петербург, Екатеринбург.

AWS CloudFront — логичный выбор, если инфраструктура уже на AWS. Ценообразование сложное (по гигабайтам и запросам), но для типичного корпоративного сайта выходит $5–30 в месяц. Интеграция с S3, ALB, API Gateway из коробки.

Bunny.net — европейский провайдер с хорошим покрытием и понятными ценами. От $0.01 за ГБ в Европе, чуть дороже в Азии. Нет бесплатного тарифа, но есть trial. Хорошо подходит для доставки видео и больших файлов.

Selectel CDN, G-Core Labs — российские провайдеры. Актуально, если хотите держать данные в российской юрисдикции или нужна максимальная скорость именно по России. G-Core присутствует в 60+ городах России.

Как выбрать

Если аудитория преимущественно Россия и СНГ — смотрите на G-Core или Selectel в связке с Cloudflare (Cloudflare для глобальной защиты и base layer, российский CDN для доставки контента внутри страны).

Если аудитория глобальная — Cloudflare или CloudFront закроют 95% задач.

Для видеохостинга и тяжёлых медиа — Bunny.net или выделенный стриминговый CDN (Mux, Cloudflare Stream).

Как это настроить: от простого к сложному

Шаг 1. Базовый CDN для статики

Для WordPress, Laravel или любого другого бэкенда — подключите Cloudflare. Процесс:

  1. Зарегистрируйтесь, добавьте домен
  2. Поменяйте NS-записи домена на указанные Cloudflare
  3. Включите проксирование (оранжевое облако) для A-записи
  4. В настройках Speed → Optimization включите Auto Minify для CSS/JS/HTML

Всё — статика уже кэшируется и отдаётся с ближайшего к пользователю узла. Без единой строчки кода.

Шаг 2. Настройка кэширования

По умолчанию Cloudflare кэширует только явно статические ресурсы по расширению файла. Чтобы кэшировать HTML-страницы (например, лендинг, который не меняется часами), создайте Page Rule или Cache Rule:

  • URL pattern: yoursite.ru/*
  • Cache Level: Cache Everything
  • Edge Cache TTL: 2 hours

Для WordPress добавьте исключение для /wp-admin/* и URL с куками авторизации.

Шаг 3. Edge функция для сложных сценариев

Пример простейшего Cloudflare Worker для A/B тестирования:

export default {
  async fetch(request) {
    const url = new URL(request.url);
    
    // Только для главной страницы
    if (url.pathname !== '/') {
      return fetch(request);
    }
    
    // Получаем или назначаем группу
    const cookie = request.headers.get('Cookie') || '';
    let group = cookie.match(/ab_group=(a|b)/)?.[1];
    
    if (!group) {
      group = Math.random() < 0.5 ? 'a' : 'b';
    }
    
    // Запрашиваем нужный вариант
    const variantUrl = group === 'b'
      ? new URL('/landing-variant-b', url.origin)
      : request;
    
    const response = await fetch(variantUrl);
    const newResponse = new Response(response.body, response);
    
    // Устанавливаем куку
    newResponse.headers.append(
      'Set-Cookie',
      `ab_group=${group}; Path=/; Max-Age=86400`
    );
    
    return newResponse;
  }
};

Этот Worker перехватывает запросы к главной странице и случайно распределяет пользователей между двумя вариантами. Код исполняется на edge, до вашего сервера запрос идёт уже с определённым вариантом.

Когда CDN не нужен

Честно: не каждому проекту это нужно прямо сейчас.

Если у вас сайт-визитка или небольшой лендинг с московской аудиторией — Cloudflare Free подключить стоит в любом случае (DDoS-защита и SSL бесплатно), но выигрыш в скорости будет небольшим. Инвестировать время в тонкую настройку edge на таком проекте не нужно.

Интернет-магазин с аудиторией по России — уже имеет смысл думать об оптимизации доставки статики и изображений. Разница в скорости для пользователей из Урала и Сибири будет ощутимой.

Высоконагруженный сервис, медиа, SaaS с международными пользователями — здесь edge computing окупается и в деньгах, и в пользовательском опыте.

CDN и Core Web Vitals

Google учитывает скорость загрузки при ранжировании через метрики Core Web Vitals. CDN напрямую влияет на несколько из них:

LCP (Largest Contentful Paint) — время загрузки главного элемента страницы. Обычно это большое изображение или фоновая картинка. Отдача с ближайшего CDN-узла вместо московского сервера может срезать LCP на 0.5–1.5 секунды для региональных пользователей.

TTFB (Time to First Byte) — время до первого байта ответа. Кэшированная HTML-страница на edge отдаётся за 20–50 мс вместо 200–500 мс с удалённого сервера.

FID/INP — на это CDN влияет меньше, это скорее история про JavaScript-оптимизацию.

В Google Search Console смотрите отчёт «Основные интернет-показатели» — там видна разбивка по типам устройств и можно отследить динамику после подключения CDN.

Что нужно учесть перед внедрением

Инвалидация кэша. Если вы обновили CSS-файл, CDN может несколько часов отдавать старую версию. Решение: версионирование файлов (styles.v2.css) или использование хеша в имени файла (styles.a3f9c2.css). Большинство современных сборщиков (Vite, Webpack) делают это автоматически.

Cookies и персонализация. Если CDN кэширует страницы, он может отдать кэшированную версию «Привет, Иван» другому пользователю. Настройте правило: страницы с сессионными куками не кэшировать или кэшировать только анонимную версию.

HTTPS и сертификаты. Cloudflare выдаёт SSL-сертификат автоматически. Но между CDN и вашим origin-сервером тоже должен быть HTTPS — иначе трафик на этом участке идёт открыто. В настройках Cloudflare выберите SSL Mode: Full (Strict).

Законодательство. Если вы работаете с персональными данными российских пользователей, убедитесь, что CDN не сохраняет их на серверах за рубежом. Cloudflare позволяет настроить Data Localization Suite (платная функция), G-Core и Selectel хранят данные в России.

Итог

CDN — это не сложно и не дорого. Базовое подключение Cloudflare занимает 15 минут и стоит ноль рублей. Выигрыш в скорости для пользователей за пределами московского региона — измеримый и реальный.

Edge computing — следующий уровень. Он нужен, когда нужна персонализация без потери скорости, A/B тестирование без мерцания, или когда нагрузка на основной сервер надо снизить принципиально.

Если вы запускаете новый проект и хотите, чтобы он работал быстро с первого дня — подключение CDN закладывается ещё на этапе разработки. В REEXY при работе над корпоративными сайтами и интернет-магазинами мы настраиваем CDN как часть деплоя, а не как отдельную доработку потом. Это экономит время и позволяет сразу получить нормальные показатели скорости в любом регионе.

Проверьте свой сайт через tools.pingdom.com или GTmetrix — выберите тест из Владивостока или Новосибирска и посмотрите, сколько времени уходит на TTFB. Если больше 400 мс — CDN уже окупится.