
Как создать сайт с помощью нейросети: либо в конструкторе с ИИ-генерацией, где сайт собирается по текстовому описанию, либо попросив ИИ-ассистента написать код и выложив его на хостинг. Первая версия появляется за час, но перед запуском её нужно проверить: HTTPS, заголовки, скорость, битые ссылки, запрет индексации, заглушки, формы и ключи API.
Как создать сайт с ИИ: три рабочих способа
Все варианты, которые предлагает выдача, сводятся к трём путям. Отличаются они тем, кто отвечает за хостинг и кто потом будет чинить то, что сгенерировано.
Конструктор с генерацией по описанию
Вы пишете, чем занимается компания, конструктор предлагает структуру, тексты и оформление, дальше правите блоки мышкой. Хостинг, сертификат и домен обычно берёт на себя платформа. Это самый короткий путь для лендинга, визитки или сайта услуг. Ограничение одно: вы работаете в рамках того, что платформа разрешает настроить, и часть проблем из чек-листа ниже решается только её настройками.
Код от ИИ-ассистента
Второй путь — попросить чат-модель (GigaChat, YandexGPT, ChatGPT, Claude) или ассистента в редакторе кода сгенерировать HTML, CSS и JavaScript либо проект на React или Vue, а затем выложить результат на хостинг или VPS. Контроля больше, но и ответственности тоже: сервер, HTTPS, заголовки и деплой настраиваете вы. ChatGPT и Claude официально не работают в России, поэтому российские пользователи чаще начинают с GigaChat или YandexGPT.
Платформы «опиши приложение — получи приложение»
Третий путь — сервисы, которые по описанию собирают целое веб-приложение с базой данных и сразу публикуют его. Здесь больше всего сюрпризов: такой сайт почти всегда одностраничное приложение (SPA), где контент рисует JavaScript в браузере, а к базе данных фронтенд ходит напрямую с ключом, который лежит в коде страницы.
| Способ | Кто отвечает за сервер и HTTPS | Типичные проблемы при запуске |
|---|---|---|
| Конструктор с ИИ | Платформа | Тексты-заглушки, одинаковые title, тяжёлые картинки, формы без согласия на обработку данных |
| Код от ассистента + свой хостинг | Вы | Нет редиректа на HTTPS и заголовков безопасности, ключи API в JavaScript, битые ссылки на несуществующие страницы |
| Платформа генерации приложений | Платформа или вы, если переносите проект | Контент только в JavaScript, любой адрес отдаёт 200, ключи базы в клиенте, запрет индексации со стадии разработки |
Что ИИ-сайт почти всегда делает не так
Модель генерирует то, что выглядит правдоподобно в превью. Всё, что в превью не видно, она делает по шаблону или не делает вовсе. Поэтому ошибки у сгенерированных сайтов повторяются от проекта к проекту, и их удобно проверять списком.
- Заглушки вместо данных. «Lorem ipsum», телефон вида +7 (999) 123-45-67, адрес example@example.com, «Ваша компания», выдуманные отзывы и цифры «500+ довольных клиентов». Выдуманные отзывы — это не только неловкость, но и риск претензий за недостоверную рекламу.
- Ссылки в никуда. Меню ведёт на /about, /blog и /privacy, которых никто не создавал, или на
href="#". - Шаблонные мета-теги. У всех страниц один и тот же title из стартового шаблона (у проекта на Vite это «Vite + React»), description пустой или повторяет заголовок.
- Тяжёлая графика. Сгенерированные изображения выгружаются PNG размером в несколько мегабайт и показываются в карточке шириной 300 пикселей.
- Секреты в браузере. Запрос к API нейросети или платёжной системы с ключом прямо в JavaScript страницы.
- Формы без юридической части. Нет ссылки на политику конфиденциальности и отдельного согласия на обработку персональных данных.
Чек-лист перед запуском: что проверить, как и чем
Сводная таблица: пройдите её сверху вниз, прежде чем подключать домен к рекламе или добавлять сайт в Яндекс.Вебмастер. Подробности по каждому пункту — ниже.
| Что проверить | Как проверить | Чем |
|---|---|---|
| HTTPS и сертификат | http:// перенаправляет на https:// одним 301, сертификат выдан на нужный домен и с www, и без | /ssl, curl -sI http://site.ru |
| Заголовки безопасности | Есть Strict-Transport-Security, X-Content-Type-Options, Content-Security-Policy или хотя бы X-Frame-Options | /security, curl -sI https://site.ru |
| Скорость и картинки | Изображения в WebP или AVIF, у img указаны width и height, нет файлов по несколько мегабайт | /speed |
| 404 и битые ссылки | Несуществующий адрес отдаёт 404, ссылки меню и футера ведут на живые страницы | /broken-links, curl -s -o /dev/null -w "%{http_code}" |
| robots.txt и noindex | Нет Disallow: / и meta robots noindex, оставшихся с тестового адреса | curl -s https://site.ru/robots.txt |
| title, description, дубли | У каждой страницы свой title и description, нет двух адресов с одинаковым содержимым | /seo-audit |
| Формы и 152-ФЗ | Под формой ссылка на политику и отдельное согласие, данные уходят на сервер в России | Вручную: отправить тестовую заявку |
| Секреты в клиентском JS | В исходниках страницы и собранных .js нет ключей API, файлы .env и .git не открываются | grep по сборке, curl -sI |
| Доступность после запуска | Сайт и сертификат проверяются автоматически, а не когда пожалуется клиент | Мониторинг доступности |
HTTPS и сертификат
Конструкторы выпускают сертификат сами, а вот сайт, выложенный на VPS по инструкции от ассистента, нередко работает по голому HTTP или отвечает по HTTPS только на одном из вариантов адреса. Проверьте оба варианта с www и без и убедитесь, что HTTP-версия перенаправляет на HTTPS:
curl -sI http://site.ru | head -n 5
curl -sI https://www.site.ru | head -n 5
В первом ответе должен быть код 301 и заголовок Location: https://…. Если сертификат выдан на site.ru, а www.site.ru не входит в его список имён, браузер покажет ошибку. Срок действия, цепочку и список доменов в сертификате удобнее посмотреть в проверке SSL. Отдельно проверьте смешанное содержимое: сгенерированный код любит подключать картинки и скрипты по http://, и на HTTPS-странице браузер их заблокирует.
Заголовки безопасности
Модель пишет страницу, а заголовки задаются на сервере, поэтому их обычно нет совсем. Минимальный набор для сайта-визитки: Strict-Transport-Security (браузер перестаёт ходить по HTTP), X-Content-Type-Options: nosniff, защита от встраивания во фрейм через X-Frame-Options или директиву frame-ancestors и Referrer-Policy. Content-Security-Policy даёт больше всего защиты, но вводите её осторожно: сгенерированный код часто содержит встроенные скрипты и обработчики, и строгая политика их заблокирует. Описание каждого заголовка есть на MDN. Для nginx минимальный блок выглядит так:
add_header Strict-Transport-Security "max-age=31536000" always;
add_header X-Content-Type-Options "nosniff" always;
add_header X-Frame-Options "SAMEORIGIN" always;
add_header Referrer-Policy "strict-origin-when-cross-origin" always;
Что отдаёт сайт на самом деле, покажет проверка заголовков безопасности. Полный список пунктов по защите — в статье «Проверка сайта на безопасность».
Скорость и тяжёлые картинки
Главная причина медленного ИИ-сайта — изображения. Генератор картинок отдаёт PNG большого разрешения, и он попадает на страницу без сжатия. Перед публикацией уменьшите размер до реально показываемого и переведите в WebP:
cwebp -q 80 hero.png -o hero.webp
magick hero.png -resize 1600x -quality 80 hero.webp
Первая команда из пакета libwebp, вторая из ImageMagick 7. Для картинок ниже первого экрана добавьте loading="lazy", а у всех img пропишите width и height, иначе при загрузке вёрстка будет прыгать. Вторая частая причина — несколько библиотек анимации и иконок, подключённых целиком ради пары эффектов. Итог по весу и времени загрузки покажет проверка скорости.
404, битые ссылки и «всё отвечает 200»
У сгенерированного сайта две противоположные проблемы. Первая: ссылки на страницы, которые никто не создал. Вторая характерна для SPA: сервер на любой адрес отдаёт одну и ту же index.html с кодом 200, а «страница не найдена» рисуется уже в браузере. Для поисковика это мягкая 404: мусорные адреса выглядят как настоящие страницы. Проверка занимает одну команду:
curl -s -o /dev/null -w "%{http_code}\n" https://site.ru/takoy-stranicy-net-123
Правильный ответ — 404. Если пришло 200, настройте отдачу 404 для неизвестных путей или соберите сайт статически, чтобы для каждой страницы существовал отдельный HTML-файл. Все ссылки меню, футера и кнопок проверит поиск битых ссылок; подробнее о том, что ещё ломается на свежем сайте, — в «техническом чек-листе ошибок».
robots.txt и noindex, оставшиеся с заготовки
На стадии разработки сайт правильно закрывают от поисковиков. Проблема в том, что этот запрет переезжает в рабочую версию. Проверьте три места:
curl -s https://site.ru/robots.txt
curl -s https://site.ru/ | grep -i 'name="robots"'
curl -sI https://site.ru/ | grep -i x-robots-tag
В robots.txt не должно быть Disallow: / для всех роботов, в коде страницы — <meta name="robots" content="noindex">, в заголовках — X-Robots-Tag: noindex. На WordPress запрет включается галочкой «Попросить поисковые системы не индексировать сайт» в разделе «Настройки → Чтение», в конструкторах — переключателем в настройках сайта. Заодно убедитесь, что в robots.txt указан адрес sitemap.xml с рабочим доменом, а не тестовым поддоменом.
Title и description вместо заглушек, дубли страниц
У одностраничного приложения title часто один на все страницы, а в исходном HTML нет ни текста, ни ссылок: всё появляется после выполнения JavaScript. Сравните, что видит браузер, с тем, что отдаёт сервер:
curl -s https://site.ru/uslugi | grep -i '<title'
curl -s https://site.ru/uslugi | wc -c
Если title совпадает с главной, а размер HTML — пара килобайт при длинной странице в браузере, контент рисуется только скриптом. Не рассчитывайте, что поисковик выполнит JavaScript так же, как браузер: для страниц, которые должны находиться в поиске, нужен HTML с текстом уже в ответе сервера (статическая сборка или серверный рендеринг). Уникальность title и description по всем страницам, а также дубли вида «со слешем и без», «с www и без» проверит SEO-аудит.
Формы, политика и согласие по 152-ФЗ
Форма заявки, которую нарисовала нейросеть, собирает имя и телефон, то есть персональные данные. Значит, владелец сайта становится оператором по закону № 152-ФЗ. Что проверить в каждой форме:
- рядом с формой есть ссылка на политику обработки персональных данных, и она открывается, а не ведёт на 404;
- согласие на обработку оформлено отдельно, а не спрятано внутри политики или пользовательского соглашения;
- галочка согласия не стоит заранее;
- заявка уходит на ваш сервер или в сервис с хранением данных в России, а не в зарубежный сервис форм, который подставил генератор;
- тестовая заявка действительно доходит до почты или CRM.
Как составить сам документ, разобрано в статье «Политика конфиденциальности для сайта». Нейросеть может написать черновик политики, но в нём будут чужие реквизиты и обобщённые цели обработки — сверяйте текст с тем, что сайт реально собирает.
Ключи API и секреты в клиентском коде
Самая дорогая ошибка. Если сайт вызывает нейросеть, платёжный шлюз или почтовый сервис, сгенерированный код нередко кладёт ключ прямо в JavaScript, а всё, что уходит в браузер, может прочитать любой посетитель. В сборщиках это часто происходит незаметно: в Vite все переменные окружения с префиксом VITE_ встраиваются в клиентский код (документация Vite), в Next.js то же делает префикс NEXT_PUBLIC_. Проверьте готовую сборку:
grep -rnoE "sk-[A-Za-z0-9_-]{20,}|sk_live_[A-Za-z0-9]{10,}|AIza[0-9A-Za-z_-]{30,}" dist/
Шаблоны ловят ключи OpenAI, секретные ключи Stripe и ключи Google API; допишите префиксы своих сервисов. Совпадения просмотрите глазами: шаблон sk- иногда цепляет обычные слова вроде task-list. Если сборки на руках нет, откройте в браузере инструменты разработчика, вкладку Sources, и поищите по всем файлам (Ctrl+Shift+F) слова key, token, secret. Найденный ключ считайте скомпрометированным: отзовите его и выпустите новый, а запрос перенесите на сервер или в серверную функцию. Как устроены ключи и где их хранить, объясняет статья «Ключ API нейросети».
Отдельно проверьте, что наружу не торчат служебные файлы:
curl -s -o /dev/null -w "%{http_code}\n" https://site.ru/.env
curl -s -o /dev/null -w "%{http_code}\n" https://site.ru/.git/HEAD
Оба запроса должны вернуть 403 или 404. Если платформа дала публичный ключ базы данных (так устроены, например, Supabase и Firebase), сам ключ в клиенте допустим, но доступ к таблицам должен быть ограничен правилами на стороне базы — иначе через этот ключ читаются все заявки.
Почему ИИ-сайт не работает после публикации
Частая ситуация: в превью всё открывается, а на хостинге — белый экран или ошибка. Типичные причины:
- Белый экран. Скрипты собраны с путём от корня, а сайт лежит в подкаталоге. Откройте консоль браузера (F12) — там будут 404 на файлы .js.
- 404 при обновлении внутренней страницы. У SPA маршруты существуют только в браузере. В nginx нужна отдача index.html для путей приложения:
try_files $uri $uri/ /index.html;. После этого вернитесь к пункту про мягкие 404. - Не работают формы или ответы нейросети. На хостинге не заданы переменные окружения, закончились лимиты ключа или сторонний API не принимает запросы с вашего домена из-за CORS.
- Сайт не открывается у части посетителей. Не обновились DNS-записи после привязки домена или сертификат выпущен не на все имена.
Мониторинг доступности после запуска
Чек-лист проверяет сайт в момент запуска, но сайт ломается и потом: истекает сертификат, хостинг-платформа меняет тариф, заканчивается баланс на ключе API. Поставьте главную страницу и форму заявки на регулярную проверку доступности с уведомлениями в почту или Telegram и отдельно следите за сроком сертификата и домена. Как выбрать интервал и не утонуть в ложных тревогах, описано в статье «Мониторинг сайта».
Как проверить сгенерированный сайт за 10 минут
- Запустите проверку SSL для адреса с www и без: сертификат действителен, домены совпадают.
- Проверьте заголовки безопасности и добавьте недостающие на сервере или в настройках платформы.
- Прогоните поиск битых ссылок по главной и меню, затем вручную выполните команды из этой статьи для robots.txt, 404, .env и ключей в сборке.
Частые вопросы
Можно ли создать сайт с помощью нейросети бесплатно?
Да, с ограничениями. У конструкторов обычно есть бесплатный тариф с их поддоменом и логотипом, а код от ассистента можно бесплатно разместить на статическом хостинге вроде GitHub Pages. Собственный домен в любом случае оплачивается отдельно.
Нужно ли проверять сайт из конструктора, если хостинг и HTTPS за платформой?
Да. Платформа отвечает за сервер, но не за тексты-заглушки, битые ссылки, title, тяжёлые картинки, формы и согласие на обработку данных. Эти пункты чек-листа остаются на вас.
Попадёт ли в поиск сайт, который нейросеть сделала на React?
Попадёт хуже, если текст страниц появляется только после выполнения JavaScript, у всех страниц один title и любой адрес отдаёт 200. Нужна статическая сборка или серверный рендеринг и настоящий ответ 404.
Что делать, если ключ API уже попал в код сайта?
Сразу отозвать его в кабинете сервиса и выпустить новый, проверить расходы за последние дни и перенести вызов на сервер. Удалить ключ из кода недостаточно: он остаётся в истории репозитория и в копиях страницы.
Может ли нейросеть сама проверить готовый сайт?
Модель может прочитать код и указать на очевидные ошибки, но не видит, что реально отдаёт сервер: заголовки, коды ответов, сертификат. Это проверяется запросами к живому сайту — командами curl и инструментами из таблицы.