Как я перенёс два сайта с Cloudflare на GitHub Pages за полчаса
Cloudflare Proxy блокирует РКН — пользователи в России не видели сайт. Рассказываю, как переехал на GitHub Pages и оставил Cloudflare только как DNS.
Что случилось
Два клиентских сайта стали плохо открываться из России — с VPN всё ок, без VPN загрузка тормозит до таймаута. Оба лендинга жили на Surge.sh за Cloudflare-прокси с оранжевым облачком.
Проблема известная: Cloudflare частично попадает под ограничения РКН, и проксированные сайты начинают отдаваться через проблемные IP. Решение — убрать проксирование и поднять сайт напрямую с российски-дружелюбного хостинга.
Что выбрал и почему
Перебрал варианты:
- Netlify — бесплатный план закончился.
- Vercel — в РФ тоже нестабильно.
- Cloudflare Pages — та же проблема, что у прокси.
- Render.com — работает, но медленнее.
- GitHub Pages — 🎯 работает в РФ без VPN, бесплатно навсегда, SSL от Let’s Encrypt.
Выбрал GitHub Pages.
Миграция по шагам
1. Репозиторий и workflow
gh repo create kirillbaryev-site --public --source=. --push
Добавил .github/workflows/deploy.yml — Node 22, npm ci, npm run build, actions/deploy-pages@v4.
2. Custom domain
В public/ положил файл CNAME с одной строчкой: kirillbaryev.ru.
3. DNS в Cloudflare
Добавил 4 A-записи на корень:
185.199.108.153185.199.109.153185.199.110.153185.199.111.153
И CNAME www → tori2k.github.io. Все записи — с серым облачком (DNS only). Если оставить оранжевое — трафик снова пойдёт через Cloudflare proxy.
4. Enforce HTTPS
В Settings → Pages включил галочку «Enforce HTTPS». GitHub сам выдал SSL-сертификат через ~10 минут.
Что получилось
| Параметр | До (Cloudflare proxy) | После (GitHub Pages) |
|---|---|---|
| Россия без VPN | ~18 сек / таймаут | 0.7 сек |
| Европа | 0.4 сек | 0.5 сек |
| Цена | $20/мес при лимитах | $0 до 100 ГБ |
| SSL | Cloudflare Universal | Let’s Encrypt |
Выводы для коллег
- Если клиент в России — не ставьте Cloudflare proxy. DNS — нормально, proxy — нет.
- GitHub Pages недооценивают. Для статичных сайтов до 1 ГБ это лучший бесплатный хостинг.
- Миграция занимает 15–30 минут при подготовленных исходниках.