Что такое CDN: значение, зачем использовать и как подключить к WordPress

Тестовая среда Семейство RHELAlmaLinux 9.8Проверено 2026-10-16

CDN (Content Delivery Network) — это сеть доставки контента, которая хранит файлы исходного сервера на edge-серверах в разных регионах и отвечает посетителю с ближайшего к нему сервера. Чтобы проверить, отвечают ли edge-серверы из кеша, мы посмотрели заголовки ответа публичного сервиса раздачи библиотек jsDelivr: файл jQuery отдавался из копии в кеше. Два способа подключения WordPress, замену адресов файлов и DNS-прокси, мы сравнили по официальной документации.

1️⃣ Значение CDN: edge-серверы и исходный сервер

POP (Point of Presence) — это дата-центр, где стоят edge-серверы, и запрос посетителя направляется в ближайший POP.

Получив запрос, edge-сервер сразу отвечает, если файл у него сохранен; если нет, он берет файл с исходного сервера, отвечает и сохраняет его на edge-сервере. CloudFront, CDN от AWS, начинает передачу посетителю, как только с исходного сервера приходит первый байт (по официальной документации AWS).

Edge-серверы CDN и исходный сервер

На edge-серверах сохраняются только те файлы, которые запрашивали посетители, поэтому даже для одного и того же файла первый запрос на каждом edge-сервере доходит до исходного сервера.

Такой способ, когда файл забирается в момент запроса, называется pull, а есть еще способ push, при котором вы заранее загружаете файлы в CDN.

2️⃣ Зачем нужен CDN: расстояние и нагрузка на исходный сервер

Чем дальше посетитель от сервера, тем дольше время прохождения запроса туда и обратно (RTT). При открытии одной страницы, кроме HTML, одновременно идут запросы изображений, CSS и JavaScript, поэтому, когда отвечает ближайший edge-сервер, время туда и обратно сокращается для каждого запроса.

Запросы, на которые ответил edge-сервер, не доходят до исходного сервера, поэтому снижаются и нагрузка на процессор, и объем трафика (пропускная способность) исходного сервера. Если подключить DNS через прокси Cloudflare, IP исходного сервера не раскрывается, а DDoS-атаки сначала блокируются на стороне CDN (по официальной документации Cloudflare).

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

3️⃣ Какие файлы кешируются: статические файлы и HTML

В настройках по умолчанию Cloudflare кеширует только статические файлы, например изображения, CSS и JavaScript, которые определяются по расширению (по официальной документации Cloudflare). HTML страниц и JSON не входят в кеш по умолчанию, поэтому и после подключения Cloudflare на них отвечает исходный сервер.

Чтобы кешировать и HTML, нужно отдельно создать правило кеширования в CDN. При этом исключите из правила страницы, содержимое которых зависит от человека, например страницы вошедших пользователей или корзину, чтобы посетители не видели чужой экран.

4️⃣ Подключение WordPress: замена адресов файлов и DNS-прокси

Чтобы подключить CDN к WordPress, вы либо меняете только адреса статических файлов на адреса CDN, либо направляете DNS домена на прокси CDN, чтобы все запросы шли через CDN.

СпособГде подключаетсяЗапросы через CDNIP исходного сервера
Замена адресов файловВвести адрес CDN (CNAME) в настройках CDN плагина кешированияСтатические файлы: изображения, CSS и JavaScriptОстается открытым
DNS-проксиПодключить DNS-записи домена к прокси CDNВсе HTTP- и HTTPS-запросы сайтаСкрыт за CDN

При замене адресов файлов в плагине кеширования, например WP Rocket — в настройках CDN вы вводите адрес (CNAME), который дает провайдер CDN. После этого адреса изображений, CSS и JavaScript в HTML страницы меняются на адреса CDN (по официальной документации WP Rocket). Сам HTML по-прежнему отдает исходный сервер.

Экран настроек WP Rocket: Other CDN на вкладке Content Delivery, переключатель Your CDN и строка CDN CNAME(s)
На вкладке [Content Delivery] в [Настройки › WP Rocket] откройте [Other CDN], и появится строка [CDN CNAME(s)] для адреса CDN. Введите адрес CDN и включите переключатель [Your CDN] выше, тогда адреса файлов сменятся на адрес CDN; если адресов несколько, добавьте строки кнопкой [+ Add CNAME].

При способе с DNS-прокси DNS домена управляет провайдер CDN. Cloudflare также позволяет подключить прокси, не перенося серверы имен: достаточно добавить CNAME-записи у текущего DNS-провайдера. Этот способ доступен только на тарифах Business и выше (по официальной документации Cloudflare).

5️⃣ Проверка попадания в кеш: заголовки cf-cache-status и age

Ответил ли CDN файлом из кеша, видно по заголовкам ответа. Ниже — команда, которой мы проверили заголовки ответа файла jQuery, раздаваемого jsDelivr, и ее результат.

curl -sI https://cdn.jsdelivr.net/npm/jquery@3.7.1/dist/jquery.min.js | grep -iE "^(cache-control|cf-cache-status|age|server):"
cache-control: public, max-age=31536000, s-maxage=31536000, immutable
age: 45920
cf-cache-status: HIT
server: cloudflare

[server: cloudflare] означает, что этот ответ отправил edge-сервер Cloudflare, а добавляемый Cloudflare [cf-cache-status: HIT] значит, что ответ пришел из кеша. [age: 45920] показывает, что файл лежит в кеше около 12 часов 45 минут. [max-age=31536000] — указание исходного сервера, что файл можно хранить 1 год.

Куда доходит запрос, если вместо [HIT] пришло значение [MISS], [DYNAMIC] или [BYPASS], можно посмотреть, нажимая кнопки значений на схеме ниже.

🧩 cf-cache-status Куда идет запрос при каждом значении
Поясняющая схема
📨 cf-cache-status
🧑‍💻 Посетитель
Полученный заголовок ответаcf-cache-status: HITcf-cache-status: MISScf-cache-status: DYNAMICcf-cache-status: BYPASS
Ответ сразу из кешаОтвет полученным файломПередача ответа источникаПередача ответа источника→
🌐 Ближайший edge-сервер (POP)
💾 КешСохраненный файл естьСохраненного файла нет, полученный файл сохраняетсяНе кешируется (HTML), без проверкиКешируемый, но не сохраняется
Сервер рядом с посетителем
Не доходит до исходного сервераБерет файлПередача без проверки кешаБерет файл→
🖥️ Исходный сервер
Нет запросовОтвет файломОтвет HTMLЗаголовок ответа Cache-Control: no-store или private
[cf-cache-status: HIT] означает, что edge-сервер ответил сразу из кеша, и этот запрос не доходит до исходного сервера.
Файл, которого не было в кеше и который взят с исходного сервера, отмечается как [MISS], и edge-сервер сохраняет этот файл, пока отвечает.
HTML, который не кешируется и поэтому передается исходному серверу без проверки кеша, отмечается как [DYNAMIC].
Если в ответе исходного сервера есть указание [Cache-Control: no-store] или [private], даже кешируемый файл отмечается как [BYPASS] и не сохраняется.

🔢 FAQ & рекомендуемые материалы

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

Varnish хранит ответы в одном месте перед исходным сервером, а CDN делает то же самое на edge-серверах во многих точках мира. В заголовках ответа официального CDN jQuery (code.jquery.com) есть [via: 1.1 varnish, 1.1 varnish]. По этому заголовку видно, что edge-сервер code.jquery.com ответил через Varnish.

Функцией очистки кеша (Purge) в панели управления CDN удаляют отдельные адреса или весь кеш. Некоторые плагины кеширования WordPress при редактировании записи заодно очищают и кеш подключенного CDN.

ℹ️ О партнёрских ссылках
Материалы этого сайта содержат партнёрские ссылки. Если посетитель покупает товар или услугу по такой ссылке, сайт получает комиссию от продавца. При этом сумма, которую платит покупатель (при акционных скидках сумма снижается ↓), не увеличивается. Указанные цены, скидки и наличие актуальны на момент написания и могут отличаться, поэтому перед покупкой уточняйте их у продавца. Товары выбираются и оцениваются по нашим собственным критериям, а комиссия не влияет ни на порядок, ни на содержание обзоров.