Vercel, Netlify, Cloudflare Pages — популярные хостинги для статических сайтов, но из России они работают нестабильно. Зарубежные CDN блокируются или тормозят. Российские альтернативы вроде Sweb, Beget и TimeWeb стоят от 200–400₽/мес — за то, что по сути раздача файлов.
Мы нашли способ захостить сайт на Яндекс Cloud полностью бесплатно: Object Storage, DNS, SSL-сертификат, serverless-функции и аналитика — всё в рамках free tier.
Почему Vercel не работает из России
Vercel хостит сайты на CDN-серверах в Европе и США. Из России доступ нестабильный: сайт то грузится за 3 секунды, то не открывается вообще. Для бизнес-сайта, ориентированного на российскую аудиторию, это критично.
Vercel при этом бесплатный (Hobby plan) — проблема не в цене, а в доступности. Netlify и Cloudflare Pages — та же ситуация: серверы за рубежом, доступ из РФ не гарантирован.
Российские хостинги: сколько стоят
| Хостинг | Тариф | Что включено |
|---|---|---|
| Sweb | ~300₽/мес | Shared hosting, PHP |
| Beget | ~200₽/мес | Shared hosting |
| TimeWeb | ~180₽/мес | VPS, 1 vCPU |
| REG.RU VPS | ~400₽/мес | 1 vCPU, 1GB RAM |
Для статического сайта (HTML + CSS + JS) всё это избыточно. Не нужен PHP, не нужен виртуальный сервер. Нужен бакет с файлами и доменное имя.
Яндекс Cloud: бесплатный хостинг для статического сайта
Яндекс Cloud предоставляет free tier, который полностью покрывает хостинг небольшого сайта:
| Ресурс | Бесплатный лимит |
|---|---|
| Object Storage (хранилище) | 1 ГБ |
| Cloud Functions (serverless) | 1 млн вызовов/мес |
| DNS-управление | Бесплатно |
| SSL-сертификат (Let's Encrypt) | Бесплатно |
| API Gateway | 100K запросов/мес |
Итого: 0 ₽/мес. Единственная платёжка — домен (~800₽/год).
Для сравнения: наш сайт занимает ~15 МБ из доступного гигабайта. Запас — в 60 раз.
Как настроить хостинг на Яндекс Cloud
1. Подготовка сайта
Сайт должен быть статическим — набор HTML, CSS, JS файлов. Если используете фреймворк (Next.js, Nuxt, Astro), нужна статическая сборка.
Для Next.js — три строчки в конфиге:
const nextConfig = {
output: "export", // генерирует папку /out со статическим HTML
trailingSlash: true, // /page/ вместо /page
images: { unoptimized: true },
};После npm run build получаете папку out/ — это и есть ваш сайт.
2. Создание бакета в Object Storage
В консоли Яндекс Cloud:
- Создайте бакет с именем вашего домена (например,
vexai.ru) - Включите хостинг статического сайта в настройках бакета
- Укажите
index.htmlкак индексный файл и404.htmlкак страницу ошибки - Создайте сервис-аккаунт с ролью
storage.editor - Сгенерируйте статические ключи доступа для загрузки файлов
3. DNS и SSL
- Создайте DNS-зону в Яндекс Cloud DNS
- Добавьте ANAME-запись для корневого домена → бакет
- Добавьте CNAME для
www→ бакет - В регистраторе домена (reg.ru и др.) смените NS-серверы на яндексовые
- Запросите SSL-сертификат через Certificate Manager — Let's Encrypt выдаётся за 5 минут
4. Загрузка сайта
Загрузка файлов через yc CLI. Важный момент — MIME-типы нужно указывать вручную:
yc storage s3 cp index.html "s3://ваш-домен/index.html" \
--content-type "text/html; charset=utf-8"
yc storage s3 cp styles.css "s3://ваш-домен/styles.css" \
--content-type "text/css; charset=utf-8"Без --content-type Яндекс Object Storage отдаёт CSS как application/octet-stream — браузер его проигнорирует и сайт будет белым экраном. Это нигде толком не описано в документации.
5. Аналитика: Яндекс Метрика
Яндекс Метрика — бесплатная альтернатива Google Analytics с бонусами:
- Вебвизор — запись сессий посетителей (видно, куда кликают, как скроллят)
- Тепловые карты — визуализация кликов и скроллинга
- Точный расчёт отказов — не считает отказом посетителя, который читал страницу 30 секунд
Для подключения нужен счётчик Метрики и несколько строк JavaScript-кода на сайте.
Подводные камни
MIME-типы в Object Storage [критично]
Object Storage не определяет типы файлов автоматически. Без явного указания --content-type при загрузке:
- CSS →
application/octet-stream→ стили не применяются - JS →
application/octet-stream→ скрипты не выполняются - Шрифты →
application/octet-stream→ шрифты не грузятся
Результат: сайт выглядит сломанным. Решение — указывать MIME-тип для каждого файла при загрузке, или написать деплой-скрипт с маппингом расширений.
DNS-пропагация [ожидаемо]
После смены NS-серверов у регистратора — от 2 до 48 часов на пропагацию. У нас заняло ~6 часов. В это время сайт может работать с одних устройств и не работать с других. Это нормально — просто ждать.
Нет preview-деплоев
В отличие от Vercel, здесь нет автоматических preview по pull request. Для небольшого проекта хватает localhost для проверки перед деплоем.
Итого: Vercel vs Яндекс Cloud для российского сайта
| Vercel (бесплатный) | Яндекс Cloud (бесплатный) | |
|---|---|---|
| Доступность из РФ | Нестабильно | Стабильно |
| Стоимость | $0 | 0 ₽ |
| SSL-сертификат | Автоматический | Let's Encrypt (авто) |
| Аналитика | Нет (нужен PostHog/GA) | Яндекс Метрика (бесплатно) |
| Serverless | Vercel Functions | Cloud Functions (1М бесплатно) |
| Деплой | git push | ./deploy.sh |
| Preview по PR | Есть | Нет |
| Серверы в РФ | Нет | Да |
Для сайта с российской аудиторией Яндекс Cloud — рабочая альтернатива Vercel. Бесплатно, стабильно, серверы в России. Подводные камни есть (MIME-типы, DNS), но решаются за один раз.
Если у вас похожая задача — пишите, поможем с настройкой.