Для обеспечения высокого уровня обслуживания на этом сайте используются куки (cookies).
OK

Модуль · Larionov.tech

Настройка Yandex CDN для CS-Cart

После настройки изображения, CSS, JS и другие публичные статические файлы магазина начинают отдаваться через CDN-домен. Физически файлы остаются на вашем сервере — Yandex CDN кеширует и раздаёт их с ближайших узлов.

https://static.example.ru/images/... https://static.example.ru/js/... https://static.example.ru/design/...

Что понадобится заранее

1 Доступ в Yandex Cloud
2 Доступ к DNS-зоне домена
3 Домен/поддомен для CDNstatic.example.ru
4 SSL-сертификат для CDN-домена
5 Созданный CDN-ресурс в Yandex Cloud
6 Установленный модуль Larionov.tech: Yandex CDN

Основные термины

Домен магазина

example.ru

CDN-домен

static.example.ru

Provider CNAME от Yandex

xxxxxx.topology.gslb.yccdn.ru

На него нужно направить CNAME

Origin / источник

example.ru

Откуда CDN забирает файлы

Шаги настройки

1 Выберите CDN-домен

Используйте отдельный поддомен — не основной домен магазина.

static.example.ru cdn.example.ru
Основной домен должен продолжать открывать магазин. CDN-домен — только для статики.
2 Выпустите SSL-сертификат

В Yandex Cloud создайте сертификат для CDN-домена через Certificate Manager. Сертификат должен находиться в том же каталоге, что и CDN-ресурс.

Для проверки домена используйте DNS-проверку: TXT или CNAME. HTTP-проверку для CDN лучше не использовать.

Дождитесь статуса: Issued / Выпущен

↗ Документация Yandex: TLS-сертификаты
3 Создайте группу источников

В Yandex Cloud CDN создайте origin group / группу источников:

Параметр Значение
Источник example.ru
Протокол источника HTTPS
4 Создайте CDN-ресурс

Откройте: Cloud CDN → Создать ресурс

Параметр Значение
Основное доменное имя static.example.ru
Группа источников группа с example.ru
Протокол для источников HTTPS
Сертификат из Certificate Manager
Заголовок Host Своё значение: example.ru
HTTP → HTTPS редирект включить после выпуска сертификата
Защищённые токены Выключено
Ограничение по IP Выключено
Заголовок Host важен: сервер ожидает запросы с основным доменом, а не с CDN-доменом.
↗ Документация Yandex: создание ресурса
5 Настройте DNS CNAME

После создания ресурса Yandex выдаст технический CDN-host. Создайте запись в DNS-зоне:

static.example.ru CNAME xxxxxx.topology.gslb.yccdn.ru
Не должно быть одновременно A или AAAA записи. Только CNAME. DNS может применяться от нескольких минут до нескольких часов.

Проверить DNS:

dig +short static.example.ru
6 Настройте кеширование CDN

Откройте: Cloud CDN → ваш ресурс → Кеширование → Редактировать

Параметр Значение
Кеширование в CDN Включено
Кеширование в браузере Включено
TTL 30 дней 2592000 сек.
TTL 90 дней 7776000 сек.
Игнорировать Query-параметры Выключено
Игнорировать Cookie Обычно можно включить
CS-Cart добавляет версии к файлам: style.css?t=177.... Если игнорировать query-параметры — покупатели могут получить устаревшие CSS/JS.
↗ Документация Yandex: кеширование
7 Включите gzip-сжатие

Откройте: Cloud CDN → ваш ресурс → Контент → Редактировать

Включите: gzip-сжатие → Сжимать файлы

Yandex CDN сжимает CSS, JS, HTML, JSON, SVG и другие текстовые форматы.

↗ Документация Yandex: сжатие
8 Настройте модуль в CS-Cart

Откройте: Администрирование → Хранилище данных → CDN

Поле Значение
Сервис Yandex
CDN-домен static.example.ru
Включить CDN Включить чекбокс → Сохранить
Не указывайте https:// и не указывайте provider host от Yandex в поле CDN-домена.
9 Очистите кеш

Очистите кеш CS-Cart:

Администрирование → Хранилище данных → Очистить кеш или: admin.php?cc

Также очистите кеш ресурса в Yandex Cloud:

Cloud CDN → ресурс → Контент → Очистить кеш
↗ Документация Yandex: очистка кеша

Как проверить, что CDN работает

HTML страницы

CSS, JS и изображения должны загружаться с CDN-домена

https://static.example.ru/...

Заголовки CDN

curl -sS -D - -o /dev/null \ 'https://static.example.ru/js/tygh/core.js'

Ожидаемо: cache-host: yccdn-... и cache-status: HIT или MISS

gzip-сжатие

curl -sS -D - -o /dev/null \ -H 'Accept-Encoding: gzip' \ 'https://static.example.ru/js/tygh/core.js'

Ожидаемо: content-encoding: gzip

TTL кеша

curl -sS -D - -o /dev/null \ 'https://static.example.ru/js/tygh/core.js?ttl_check=1'

Для 30 дней: cache-control: max-age=2592000

Частые проблемы

Статика грузится как https:///images/...
CDN включён, но CDN-домен пустой или не сохранён. Отключите CDN или укажите корректный домен.
CDN-домен открывается, но файлы дают 404
Проверьте origin в Yandex CDN. Источником должен быть основной домен магазина: example.ru
Через основной сайт файл есть, через CDN — нет
Причина чаще всего в Host header. Укажите в CDN-ресурсе: Заголовок Host → Своё значение → example.ru
SSL ошибка на CDN-домене
Проверьте, что сертификат выпущен, находится в том же каталоге Yandex Cloud и привязан к CDN-ресурсу.
cache-control всё ещё max-age=86400
Настройки могут применяться до 15 минут. После изменения TTL очистите кеш CDN и проверяйте URL с новым query-параметром.
PageSpeed почти не вырос
CDN ускоряет доставку статики, но не исправляет тяжёлый CSS, блокирующий JS и неоптимальные изображения — это отдельная задача оптимизации.

Что CDN не делает

Не переносит файлы в Yandex Object Storage
Не заменяет сервер магазина
Не оптимизирует изображения в WebP/AVIF автоматически
Не исправляет тяжёлую тему, лишние модули, блокирующие скрипты и проблемы PageSpeed

Помощь с настройкой

Не хотите разбираться с CDN самостоятельно?

Я могу подключить Yandex CDN к вашему магазину на CS-Cart: проверить DNS, сертификат, CDN-ресурс, кеширование, gzip и корректную отдачу статики через CDN-домен.

Проверю домен, DNS CNAME и SSL-сертификат
Настрою CDN-ресурс, origin и Host header
Включу модуль в CS-Cart и очищу кеш
Проверю загрузку CSS, JS и изображений через CDN
Made on
Tilda