Как бесплатно разместить статический сайт в 2026: GitHub Pages, Cloudflare Pages и контактные формы

Бесплатный хостинг статических сайтов через GitHub Pages и Cloudflare Pages с формой обратной связи в {year}

Правильный выбор платформы для хостинга статических сайтов может сэкономить тебе сотни долларов в год, при этом сайт будет работать быстро, безопасно и без лишней головной боли. В 2026 году бесплатные тарифы заметно повзрослели: такие платформы, как GitHub Pages и Cloudflare Pages, предлагают инфраструктуру production-уровня совершенно бесплатно. Но есть одна задача, которую большинство руководств обходят стороной: как обрабатывать контактные формы на статическом сайте, если нет сервера? В этом руководстве мы разберём весь процесс - от выбора платформы до подключения рабочей контактной формы, с конкретными примерами и реальными ограничениями, о которых стоит знать заранее.

Главное:

  • GitHub Pages и Cloudflare Pages предлагают по-настоящему бесплатный хостинг статических сайтов с поддержкой собственного домена.
  • Cloudflare Pages быстрее по всему миру благодаря CDN-сети на базе edge-узлов; GitHub Pages проще для тех, кто уже работает в экосистеме GitHub.
  • Статические сайты не могут обрабатывать формы самостоятельно - для сбора заявок и доставки их на почту нужен сторонний сервис.
  • Специализированный бэкенд для форм, например Sendform, позволяет добавить полноценную контактную форму без единой строки серверного кода.

Почему бесплатный хостинг статических сайтов заслуживает внимания

Статический сайт отдаёт браузеру заранее собранные HTML, CSS и JavaScript файлы напрямую. Никакого PHP, никакого Node.js runtime, никаких запросов к базе данных при каждой загрузке страницы. Именно эта простота делает бесплатный хостинг статических страниц таким надёжным: здесь просто нечему ломаться, нечего патчить и не нужно масштабировать.

Для сайтов малого бизнеса, портфолио, лендингов SaaS-продуктов и документации статический хостинг закрывает все потребности:

  • Скорость: файлы раздаются с ближайшего CDN edge-узла, нередко быстрее 100 мс в любой точке мира.
  • Безопасность: отсутствие серверного runtime радикально сокращает поверхность атаки.
  • Стоимость: и GitHub Pages, и Cloudflare Pages бесплатны для публичных и многих приватных проектов.
  • Простота: достаточно сделать push в репозиторий - и сайт задеплоится автоматически.

Единственное реальное ограничение - динамическая функциональность. Всё, что требует серверной логики: аутентификация пользователей, корзина покупок, обработка форм - нужно реализовывать через внешние сервисы. Держи это в голове, пока мы разбираем процесс настройки.

Сравнение платформ: GitHub Pages против Cloudflare Pages

Параметр GitHub Pages Cloudflare Pages
Бесплатный тариф Да (публичные репозитории всегда бесплатны) Да (неограниченное количество сайтов)
Собственный домен Да Да
HTTPS Автоматически через Let's Encrypt Автоматически через Cloudflare SSL
Сборочный пайплайн GitHub Actions (ручная настройка) Встроенный CI/CD
Глобальный CDN Ограниченный (ориентирован на США) 300+ edge-точек присутствия
Лимит трафика Мягкий лимит ~100 ГБ/месяц Без ограничений
Приватные репозитории Требуется GitHub Pro Да, бесплатно

Вывод: если твоя аудитория глобальная и тебе важна максимальная скорость загрузки - выбирай Cloudflare Pages. Если команда уже работает в GitHub и хочется минимум настроек - GitHub Pages вполне справится.

Пошаговое развёртывание на GitHub Pages

Предполагается, что у тебя уже есть готовый HTML/CSS-сайт. Если ты используешь генератор статических сайтов вроде Hugo или Jekyll, процесс практически идентичен.

  1. Создай репозиторий на GitHub. Перейди на github.com/new и создай публичный репозиторий. Назови его your-username.github.io, если хочешь, чтобы сайт открывался по корневому домену, или любым другим именем - тогда он будет доступен по поддиректории.
  2. Загрузи файлы сайта. В папке проекта выполни:
    git init
    git remote add origin https://github.com/your-username/your-repo.git
    git add .
    git commit -m "Initial deploy"
    git push -u origin main
  3. Включи GitHub Pages. В репозитории перейди в Settings > Pages. В разделе "Source" выбери ветку main и папку /root (или /docs, если сборка выводится туда). Нажми Save.
  4. Дождись деплоя. GitHub соберёт и опубликует сайт в течение 1-3 минут. Ссылка на живой сайт (например, https://your-username.github.io) появится в панели настроек Pages.
  5. Подключи собственный домен (по желанию). Добавь файл CNAME в корень репозитория с именем твоего домена (например, www.yoursite.com). Затем у своего DNS-провайдера создай CNAME-запись, указывающую на your-username.github.io. GitHub автоматически выпустит SSL-сертификат в течение нескольких минут.
Панель настроек GitHub Pages с источником деплоя и ссылкой на опубликованный статический сайт

Пошаговое развёртывание на Cloudflare Pages

  1. Зарегистрируйся или войди в Cloudflare. Перейди на pages.cloudflare.com и подключи свой аккаунт GitHub или GitLab.
  2. Создай новый проект. Нажми "Create a project", затем "Connect to Git". Выбери нужный репозиторий из списка.
  3. Настрой параметры сборки. Если сайт на чистом HTML - оставь поле команды сборки пустым, а директорию вывода укажи как / или папку, где лежит index.html. Для Hugo команда сборки - hugo, директория вывода - public. Для Jekyll - jekyll build и _site соответственно.
  4. Запусти деплой. Нажми "Save and Deploy". Cloudflare склонирует репозиторий, выполнит сборку и опубликует сайт на глобальной edge-сети. Сразу же будет доступен поддомен вида *.pages.dev.
  5. Добавь собственный домен. В дашборде проекта перейди в "Custom domains" и введи свой домен. Если домен уже управляется через Cloudflare DNS - настройка займёт один клик. Если нет - нужно будет создать CNAME-запись у своего регистратора, указывающую на адрес *.pages.dev.

Каждый последующий git push в основную ветку будет автоматически запускать редеплой. Cloudflare также создаёт превью-деплои для pull request-ов - это удобно, чтобы проверить изменения до публикации.

Добавление контактной формы на статический сайт

Вот где большинство руководств заканчивается - и где большинство людей застревает. Контактная форма на статическом сайте не может отправлять данные сама себе: нет сервера, который их принял бы. Реальных вариантов три:

  • Сервис-бэкенд для форм (рекомендуется): атрибут action формы указывает на сторонний endpoint, который принимает заявку, валидирует её и отправляет тебе на почту.
  • Serverless-функция: пишешь небольшую функцию (Cloudflare Workers, AWS Lambda), которая обрабатывает форму. Работает, но требует кода и поддержки.
  • JavaScript fetch(): используешь браузерный fetch API для отправки данных формы на бэкенд-endpoint. Технические подробности - в нашем руководстве о том, как отправить данные HTML-формы через JavaScript fetch().

Самый быстрый путь к рабочей форме - специализированный сервис. Вот конкретный пример с Sendform:

Конкретный пример: рабочая контактная форма за 5 минут

Допустим, у тебя есть сайт-портфолио на GitHub Pages. Ты хочешь, чтобы посетители могли написать тебе сообщение, и чтобы эти сообщения приходили на почту. Вот полный HTML:

<form action="https://sendform.io/f/YOUR_FORM_ID" method="POST">
  <label for="name">Ваше имя</label>
  <input type="text" id="name" name="name" required>

  <label for="email">Ваш email</label>
  <input type="email" id="email" name="email" required>

  <label for="message">Сообщение</label>
  <textarea id="message" name="message" rows="5" required></textarea>

  <button type="submit">Отправить</button>
</form>

Это вся интеграция целиком. Заменяешь YOUR_FORM_ID на идентификатор из дашборда Sendform - и каждая заявка будет приходить на адрес, указанный при регистрации. Никакого серверного кода, никакого сервера, никаких ежемесячных расходов на инфраструктуру. Более сложные UX-паттерны - редирект после отправки, письма с подтверждением - разобраны в нашем руководстве по лучшим практикам форм для статических сайтов.

Если ты используешь конструктор сайтов вместе со статическим сайтом, процесс интеграции подробно описан в нашей статье о том, как подключить Sendform к конструктору сайтов.

Защита от спама: любая публично доступная форма рано или поздно начнёт получать заявки от ботов. В Sendform встроены honeypot-поля и ограничение частоты запросов. Подробнее о том, как держать входящие в чистоте, - в нашей статье о лучших практиках защиты форм от спама.

Типичные ошибки, которых стоит избегать

Помогая тысячам пользователей настраивать бесплатный хостинг статических сайтов, мы выделили ошибки, которые вызывают больше всего проблем:

1. Забытая страница 404

И GitHub Pages, и Cloudflare Pages покажут стандартную страницу ошибки, если маршрут не найден. Создай кастомный файл 404.html в корневой директории - это удержит пользователей на сайте и сохранит целостность бренда.

2. Секреты в публичном репозитории

API-ключи, секреты endpoint-ов форм и адреса электронной почты никогда не должны попадать в публичный репозиторий GitHub. Используй переменные окружения в Cloudflare Pages или храни чувствительные данные в приватном конфигурационном файле, добавленном в .gitignore.

3. Форма без плана обработки данных

Это самая распространённая ошибка. Разработчик делает красивую контактную форму, пушит на GitHub Pages - и в день запуска обнаруживает, что форма молча не работает. Определись с бэкендом для формы до того, как напишешь первый тег <input>. Такие инструменты, как Sendform, позволяют настроить форму, которая шлёт заявки прямо на почту без единой строки кода, - и проблема бэкенда исчезает сама собой.

4. Проблемы с кешем при сборке

Если сайт не обновляется после push-а, CDN может отдавать устаревшие файлы из кеша. Cloudflare Pages автоматически сбрасывает кеш при каждом деплое. GitHub Pages распространяет изменения медленнее - подожди до 10 минут или добавь query string к URL-адресам ресурсов во время тестирования.

5. Неправильное использование относительных путей

Если твой сайт на GitHub Pages живёт по адресу username.github.io/project-name/ (поддиректория), все пути к ресурсам должны учитывать этот префикс. Ссылка на /styles.css сломается. Используй относительные пути (./styles.css) или настрой параметр baseURL своего генератора статических сайтов в соответствии с поддиректорией.

6. Отсутствие автоматизации обработки заявок

Когда форма начала собирать заявки, возможности не ограничиваются просто получением писем. Sendform поддерживает webhook-и и интеграции, которые позволяют автоматически направлять заявки в Slack, CRM или таблицу. Наше руководство по автоматизации обработки заявок через webhook-и и API покажет, как это настроить без серверного кода.

Заключение

Бесплатный хостинг статических сайтов никогда не был таким мощным, как сейчас. GitHub Pages подойдёт командам, которые уже работают в экосистеме GitHub, а Cloudflare Pages даёт лучшую глобальную производительность и более щедрый бесплатный тариф. Настоящая сложность не в самом хостинге - а в динамических функциях, прежде всего в контактных формах. Подключив к любой из этих платформ специализированный сервис для форм, ты получишь полноценный профессиональный сайт с нулевыми расходами на инфраструктуру. Выбери одну из платформ по инструкции выше, опубликуй сайт - и сразу подключи контактную форму через Sendform, чтобы заявки надёжно приходили с первого дня.

Sendform.net - бесплатный form endpoint для статических сайтов

Добавь контактную форму на статический сайт за несколько минут

Используй Sendform для сбора заявок с любого статического сайта на GitHub Pages или Cloudflare Pages. Никакого серверного кода, никакой настройки сервера, никаких сложностей. Просто укажи свой endpoint в атрибуте action формы - и всё готово.

Начни бесплатно на Sendform.net →

Часто задаваемые вопросы

Да, для большинства бизнес-задач. GitHub Pages и Cloudflare Pages обеспечивают uptime 99,9%+ на корпоративной инфраструктуре. Главное ограничение - отсутствие серверной обработки, а не надёжность. Для высоконагруженных сайтов или интернет-магазинов бесплатный тариф может в какой-то момент стать тесным, но для лендингов и портфолио это полноценное production-решение.

Да. Оба сервиса - GitHub Pages и Cloudflare Pages - поддерживают собственные домены на бесплатном тарифе, включая автоматический HTTPS через SSL-сертификаты. Нужно владеть доменом и обновить DNS-записи, чтобы они указывали на хостинг-платформу. Настройка занимает меньше 15 минут, SSL выпускается автоматически в течение нескольких часов.

Статические сайты не могут обрабатывать заявки из форм самостоятельно - там нет работающего сервера. Стандартное решение - указать атрибут action формы на сторонний сервис-бэкенд для форм. Этот сервис принимает POST-запрос, валидирует данные и пересылает их на твою почту. Sendform - один из таких сервисов, который не требует никакого кода для настройки.

GitHub Pages проще и напрямую интегрируется с репозиториями GitHub - идеально для разработчиков, которые уже там работают. Cloudflare Pages предлагает более быстрый глобальный CDN с 300+ edge-точками присутствия, безлимитный трафик на бесплатном тарифе и встроенный CI/CD с превью-деплоями. Для сайтов, где важна производительность, Cloudflare Pages - более сильный выбор.

Базовые знания HTML пригодятся, но быть разработчиком необязательно. Инструменты вроде Hugo, Jekyll или просто чистые HTML-файлы отлично работают на обеих платформах. Для контактных форм такие сервисы, как Sendform, требуют лишь вставки готового HTML-сниппета - никаких знаний серверного программирования на любом этапе настройки не нужно.