Домен GitHub Pages: настройка DNS, CNAME и HTTPS

Как подключить свой домен к GitHub Pages: DNS-записи для корневого домена и www, зачем нужен файл CNAME, подтверждение домена и включение HTTPS.

Частые вопросы

Какие IP-адреса указывать для корневого домена GitHub Pages?

В документации GitHub (проверено в ноябре 2026 года) для корневого хоста (@) указаны четыре A-записи: 185.199.108.153, 185.199.109.153, 185.199.110.153 и 185.199.111.153. Если нужен ещё и IPv6, добавьте четыре AAAA-записи: 2606:50c0:8000::153, 2606:50c0:8001::153, 2606:50c0:8002::153 и 2606:50c0:8003::153. GitHub советует оставлять A-записи рядом с AAAA-записями. Перед вставкой сверьтесь с документацией: GitHub может изменить эти значения.

Нужен ли файл CNAME в репозитории?

Только если вы публикуете сайт из ветки. В этом случае при сохранении своего домена в Settings > Pages (Настройки > Pages) GitHub сам добавит коммит с файлом CNAME в корень исходной ветки. Если же вы публикуете через собственный workflow в GitHub Actions, файл CNAME не создаётся, а уже существующий игнорируется и не требуется — так сказано у GitHub.

Почему флажок Enforce HTTPS неактивен?

По словам GitHub, после добавления домена эта опция может стать доступной лишь через 24 часа. Сертификат выпускается автоматически, поэтому обычные причины «зависшего» флажка — DNS ещё не обновился или лишние записи: дополнительные A, AAAA, ALIAS или ANAME на корневом домене либо CNAME на www, который указывает не на GitHub. Ещё GitHub отмечает, что длина домена должна быть меньше 64 символов. Если ничего не меняется, нажмите Remove рядом с доменом, введите его заново и сохраните ещё раз.

Что выбрать: корневой домен или www?

GitHub рекомендует www. В документации сказано, что поддомены www — самый стабильный тип пользовательского домена, потому что на них не влияет смена IP-адресов серверов GitHub. Какой бы вариант вы ни указали как основной домен, GitHub перенаправит на него второй — при условии, что DNS обоих указывает на GitHub Pages.

Сколько времени занимает подключение домена к GitHub Pages?

По данным GitHub, изменения DNS могут распространяться до 24 часов. На практике многие записи обновляются быстрее, но закладывайте сутки, прежде чем решать, что что-то сломалось.

Безопасно ли использовать wildcard-запись DNS для GitHub Pages?

GitHub настоятельно не рекомендует записи вида *.example.com. В документации сказано, что они создают немедленный риск захвата домена, даже если вы его подтвердили. Лучше создавайте записи для конкретных поддоменов, которыми пользуетесь.

Коротко: в репозитории откройте Settings > Pages (Настройки > Pages), впишите домен в поле Custom domain и сохраните. Затем у DNS-провайдера направьте www на <username>.github.io записью CNAME, а «голый» домен (example.com) — на GitHub четырьмя A-записями. Когда GitHub выпустит сертификат, поставьте галочку Enforce HTTPS. Всё сводится к одной настройке в репозитории и нескольким DNS-записям. Чаще всего задержки вызывает распространение DNS: по данным GitHub, оно может занять до 24 часов.

Всё ниже сверено с официальной документацией GitHub в ноябре 2026 года. Именно DNS-значения меняются чаще всего, поэтому перед вставкой проверьте их в документации GitHub Pages по настройке своего домена.

Сначала выберите тип домена

Куда должны попадать посетителиЧто указать как свой доменНужные DNS-записиПримечания
www.example.comwww.example.comCNAME для www на <username>.github.io, плюс A-записи на корневом доменеВариант, который рекомендует GitHub. example.com перенаправляет на www.
example.comexample.comA-записи на корневом домене (или одна ALIAS/ANAME), плюс CNAME для wwwwww.example.com перенаправляет на корневой домен.
blog.example.comblog.example.comCNAME для blog на <username>.github.ioЗаписи для корневого домена не нужны.

По документации GitHub, поддомены www — самый стабильный вариант, потому что на них не влияет смена IP-адресов серверов GitHub. Если нет веской причины использовать «голый» домен, выбирайте www. Если вы ещё выбираете регистратора, посмотрите наше сравнение регистраторов доменов, а в материале сколько стоит домен разобраны цены продления.

Пошагово: подключаем домен

  1. Добавьте домен в GitHub. Откройте репозиторий, нажмите Settings, затем Pages (в разделе «Code, planning, and automation»). Если вкладки Settings не видно, поищите её в выпадающем меню «More». Введите домен в поле Custom domain и нажмите Save.
  2. Посмотрите, что GitHub сделал с репозиторием. Если вы публикуете из ветки, GitHub добавит коммит с файлом CNAME в корень этой ветки. Если публикуете через собственный workflow в GitHub Actions, файл CNAME не создаётся, а существующий игнорируется.
  3. Удалите DNS-записи по умолчанию. Если DNS-провайдер сам создал парковочную или стандартную запись для хоста, который вы собираетесь использовать, сначала удалите её.
  4. Создайте DNS-записи у своего DNS-провайдера (см. следующий раздел).
  5. Дождитесь распространения DNS. GitHub называет срок до 24 часов. Проверить ход можно из терминала: dig www.example.com +noall +answer.
  6. Включите Enforce HTTPS, как только опция станет доступна (см. ниже).

Порядок действий важен меньше, чем кажется

DNS-записи можно создавать до сохранения домена в GitHub или после. Риск в другом: DNS уже указывает на GitHub Pages, а домен не закреплён ни за одним репозиторием. GitHub предупреждает: если настроить DNS, не добавив домен в GitHub, кто-то другой сможет разместить сайт на одном из ваших поддоменов. Поэтому сначала сохраните домен в GitHub, а потом настраивайте DNS.

DNS-записи

www или любой поддомен: одна запись CNAME

ТипХостЗначение
CNAMEwww<username>.github.io

Укажите имя пользователя или организации без названия репозитория. GitHub отдельно предупреждает: не направляйте CNAME на уникальный адрес вида *.pages.github.io, который показан в настройках репозитория.

Корневой домен: четыре A-записи (проверено в ноябре 2026 года)

ТипХостЗначение
A@185.199.108.153
A@185.199.109.153
A@185.199.110.153
A@185.199.111.153

При желании можно добавить IPv6 — AAAA-записями для @:

ТипХостЗначение
AAAA@2606:50c0:8000::153
AAAA@2606:50c0:8001::153
AAAA@2606:50c0:8002::153
AAAA@2606:50c0:8003::153

GitHub советует добавлять A-записи, даже если вы добавили AAAA: IPv6 пока используется неравномерно. Если ваш DNS-провайдер поддерживает записи ALIAS или ANAME, вместо A и AAAA можно использовать одну такую запись, указывающую на <username>.github.io.

Две ошибки, которых стоит избегать:

  • Лишние записи на корневом домене. По словам GitHub, дополнительные записи A, AAAA, ALIAS или ANAME для @, а также CNAME для www, указывающий в другое место, могут помешать выпуску HTTPS-сертификата.
  • Направление поддомена на корневой домен. GitHub предупреждает, что это приводит к проблемам с принудительным HTTPS и может вообще закрыть поддомену доступ к вашему сайту. Направляйте поддомены на <username>.github.io.

У одних провайдеров для корневого хоста используется @, у других поле нужно оставить пустым или ввести домен целиком. Это особенность провайдера, а не настройка GitHub.

Включаем HTTPS

GitHub выпускает сертификаты для своих доменов через Let's Encrypt. Когда DNS начнёт отвечать правильно:

  1. Вернитесь в Settings > Pages.
  2. Найдите галочку рядом с доменом — она означает, что проверка DNS пройдена.
  3. Поставьте галочку Enforce HTTPS.

GitHub предупреждает, что опция может стать доступной лишь через 24 часа. Если спустя несколько минут после сохранения она так и не появилась, GitHub советует нажать Remove рядом с доменом, ввести его заново и снова нажать Save. Кроме того, чтобы сертификат создался, длина домена должна быть меньше 64 символов.

Если флажок остаётся неактивным, пройдитесь по списку:

  • [ ] DNS для хоста указывает на GitHub (dig показывает четыре IP-адреса или ваш CNAME на <username>.github.io)
  • [ ] На корневом домене нет лишних записей A, AAAA, ALIAS или ANAME
  • [ ] CNAME для www указывает на <username>.github.io, а не на корневой домен и не на адрес pages.github.io
  • [ ] Домен в Settings > Pages в точности совпадает с тем, что указан в DNS
  • [ ] Вы один раз удалили и заново добавили домен

Подтвердите домен (настоятельно рекомендуется)

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

  1. Откройте настройки профиля (не репозитория), затем Pages в боковом меню.
  2. Нажмите Add a domain, введите домен и подтвердите.
  3. Создайте TXT-запись, которую покажет GitHub. Хост будет выглядеть так: _github-pages-challenge-USERNAME.example.com.
  4. Убедитесь, что запись видна: dig _github-pages-challenge-USERNAME.example.com +nostats +nocomments +nocmd TXT.
  5. Вернувшись в GitHub, откройте меню рядом с доменом, выберите Continue verifying, затем Verify.

GitHub говорит, что это может произойти сразу или занять до 24 часов. После подтверждения TXT-запись оставьте на месте. Также не используйте wildcard-записи вроде *.example.com: по словам GitHub, они создают риск захвата, даже если домен подтверждён.

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

  • 404 на своём домене, а на github.io сайт работает. Домен не был сохранён в Settings > Pages либо DNS ещё не обновился. Проверьте оба пункта.
  • Домен сбрасывается после каждого деплоя. Если вы публикуете из ветки, файл CNAME в исходной ветке должен содержать ваш домен. Сборка, которая очищает корень ветки, или деплой, не включающий этот файл, могут его удалить. Переход на собственный workflow в Actions делает файл ненужным.
  • Корневой домен работает, а www нет (или наоборот). Записи нужны для обоих хостов. Помните: GitHub перенаправляет парный хост, только если его DNS тоже указывает на GitHub Pages.
  • Сертификат так и не приходит. Пройдитесь по чек-листу выше, первым делом поискав лишние записи.

Если не хочется самому возиться с DNS

GitHub Pages хорошо подходит для статических сайтов, которые вы и так храните в репозитории. Если вам главное — выпустить сайт на собственном домене, то пользовательские домены We.Inc проведут вас через тот же DNS-шаг прямо в конструкторе, а руководство по подключению домена подходит для любого провайдера. На бесплатном тарифе We.Inc можно опубликовать до трёх сайтов из готовых шаблонов; ИИ-конструктор, который создаёт сайт по запросу, доступен на тарифе Starter за $20 в месяц. Зарегистрироваться можно здесь.

Начать бесплатно · Банковская карта не нужна

Umair Ali Sadaqat

Основатель We.Inc

Умайр — основатель We.Inc. Он пишет о создании сайтов с помощью ИИ, агентствах и ведении бизнеса веб-студии.

Готовы создать что-то стоящее?

Присоединяйтесь к 15,000+ компаний, которые с We.Inc запускаются, растут и автоматизируют работу — всё на одной платформе.

Начать бесплатно

Банковская карта не нужна · Связаться с отделом продаж

По теме: Блог

Продукт

Для кого

Возможности

Ресурсы

Компания

Карта сайта