Все заметки

Как я перенёс два сайта с 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.153
  • 185.199.109.153
  • 185.199.110.153
  • 185.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 ГБ
SSLCloudflare UniversalLet’s Encrypt

Выводы для коллег

  1. Если клиент в России — не ставьте Cloudflare proxy. DNS — нормально, proxy — нет.
  2. GitHub Pages недооценивают. Для статичных сайтов до 1 ГБ это лучший бесплатный хостинг.
  3. Миграция занимает 15–30 минут при подготовленных исходниках.