Tilda · 8 мин чтения

Экспорт кода Тильда: что выгружается и как разместить на своём хостинге

Экспорт кода Тильда отдаёт сайт статичным HTML-архивом, который можно положить на любой обычный хостинг и открывать без конструктора. Функция есть только на тарифе Business: на Personal её нет, хотя тариф платный. Ниже то, что я проверяю до выгрузки, что оказывается в архиве и что приходится донастраивать после переезда.

Выгрузка сайта с Тильды: на каком тарифе и зачем она нужна

В таблице сравнения тарифов на странице цен Тильды у строки «Экспорт исходного кода» стоит галочка только у Business. У Free и Personal этого флага нет вообще. Подсказка к функции звучит так: экспорт статичного HTML, скачайте архив и интегрируйтесь с любым сайтом через API. Поэтому формулировка «экспорт доступен на платных тарифах» неверна, и я всегда уточняю это у клиента до того, как обещаю перенос.

Задачи, с которыми ко мне приходят, повторяются:

  • сайт нужно разместить на хостинге, который уже оплачен под другие проекты;
  • страницу Тильды нужно встроить в существующий сайт на PHP или WordPress;
  • заказчик хочет иметь копию сайта на своей стороне, независимо от подписки на конструктор;
  • нужна доработка, которую в самом конструкторе делать неудобно, и проще работать с файлами.

Если причина только в «хочу копию на всякий случай», подумайте, нужен ли ради неё Business. Резервную копию проекта на дату Тильда восстанавливает через поддержку, а экспорт даёт совсем другое: рабочие файлы, которые открываются где угодно.

Как сделать экспорт кода Тильды: проект целиком и отдельная страница

Путь для всего проекта: Настройки сайта, раздел «Экспорт». Для одной страницы: Настройки страницы, тоже раздел «Экспорт». В обоих случаях Тильда собирает выгрузку и отдаёт ссылку на скачивание. На выходе статичный HTML, картинки, CSS и JS.

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

Способов получить код на самом деле три, и они закрывают разные задачи:

Способ Что отдаёт Когда беру
Экспорт проекта Статичный HTML, картинки, CSS и JS, ссылка на скачивание Переезд сайта целиком на свой хостинг
Экспорт страницы Та же выгрузка для одной страницы Одна страница нужна внутри чужого сайта
API Тильды (getpageexport, getpagefullexport) Ответ в JSON, html лежит полем ответа Нужно подтягивать страницы в собственный код

Все три способа доступны на одном тарифе, Business, поэтому отдельной колонки с тарифом в таблице нет.

Бесплатный материал

🎁 Полезный скрипт в подарок

Подпишитесь на Telegram - пришлю готовый скрипт по этой теме.

Без спама. Отписка в 1 клик.

Что внутри архива и что работает иначе, чем на самой Тильде

Архив это набор файлов, а не копия конструктора. Редактора на вашем хостинге не будет: он остаётся в аккаунте Тильды. Архив сам не обновляется, после любой правки её делают в Тильде, публикуют страницу и выгружают проект заново.

Главное расхождение связано с сертификатом. Справка Тильды говорит прямо: сертификат работает только для сайтов, расположенных на Тильде, а после экспорта его нужно подключать на стороне своего сервера. Значит, HTTPS на новом хостинге настраивается отдельно, и об этом позже.

Другие места, которые я проверяю после переезда, перечислены в таблице.

Элемент сайта Что проверять после переноса
Формы Отправляю тестовую заявку и смотрю, дошла ли она туда, куда должна: на почту, в CRM, в Telegram
Каталог товаров Витрина рисуется скриптом из данных, которые браузер запрашивает у store.tildacdn.com. Открываю вкладку «Сеть» в браузере и смотрю, откуда реально грузятся товары
Корзина и оплата Делаю тестовый заказ с каждым способом оплаты и доставки
Статистика Смотрю, куда уходят события, и обновляю политику конфиденциальности, если поменялась схема
Ссылки и картинки Прохожу по меню и кнопкам: ищу ссылки на старый адрес и пути, которые не открываются

Самое неприятное здесь магазин. Если на сайте стоит каталог с корзиной, перенос на свой хостинг не отвязывает его от инфраструктуры Тильды автоматически. Я не обещаю клиенту «полностью независимый магазин», пока не проверил тестовым заказом, как ведёт себя выгруженная копия. Для лендингов, визиток и блогов такой проблемы обычно нет: это почти чистая статика.

Размещение выгруженного сайта на своём хостинге

Статичным файлам не нужен ни Python, ни Node.js, ни отдельный сервер. Хватает обычного хостинга, на котором и так работает сайт на PHP с MySQL. Ничего настраивать на уровне VPS не надо, и это главный аргумент в пользу такого переезда.

Загрузка файлов

Распаковываю архив локально, смотрю на структуру и убеждаюсь, что рядом с HTML лежат папки с CSS, JS и картинками. Дальше загружаю всё содержимое в корень сайта на хостинге (обычно это папка public_html или www) через FTP-клиент или файловый менеджер панели. Главная страница должна называться index.html, иначе по адресу домена хостинг её не откроет. Если в корне уже есть чужой сайт, сначала делаю его копию, а выгрузку кладу в подпапку и проверяю по её адресу.

Домен

Если домен был подключён к Тильде, его надо перенаправить на хостинг. Либо в панели регистратора правятся A‑записи на IP хостинга, либо меняются NS-серверы, если домен делегирован Тильде (ns1.tildadns.com и ns2.tildadns.com). Смена NS занимает до суток, изменение записей от 3 до 24 часов. Пока записи обновляются, часть посетителей видит старый сайт, а часть новый, поэтому переключаю домен в период низкой нагрузки и после этого не удаляю проект в Тильде, пока не убедился, что всё работает.

HTTPS и адреса страниц

Сертификат выпускаю на стороне хостинга: в большинстве панелей это бесплатный сертификат Let’s Encrypt, который включается отдельным пунктом. Затем включаю редирект с http на https. На Apache это делается в файле .htaccess в корне сайта:

RewriteEngine On

RewriteCond %{HTTPS} off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

Сразу проверяю, как называются файлы страниц в архиве и совпадают ли адреса с теми, что были на Тильде. Если на старом сайте страница открывалась по /about, а в архиве лежит about.html, поисковик увидит новый адрес и посетители с закладок получат 404. Для этого достаточно двух правил: открывать страницы без расширения и вручную перенаправлять то, что изменилось.

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.html -f
RewriteRule ^(.+?)/?$ $1.html [L]

Redirect 301 /old-page /new-page.html

На Nginx эти правила выглядят иначе и пишутся в конфигурации сервера, поэтому, если хостинг не на Apache, я смотрю документацию хостера, а не копирую пример из интернета.

Формы и заявки

После переезда я прохожу тестовыми заявками все формы. Если заявки раньше уходили в вебхук на PHP-скрипт, нужно проверить, что адрес обработчика остался рабочим. Вебхук Тильды шлёт обычный POST в формате form-urlencoded, поэтому читать данные нужно из $_POST, а не из php://input с json_decode. Скрипт должен отвечать в течение пяти секунд по HTTPS: если не успел, Тильда делает ещё две попытки с интервалом в минуту. Тяжёлую работу, вроде отправки в CRM и Telegram, лучше выполнять уже после ответа 200.

Экспорт через API: когда готовый архив не подходит

API Тильды работает только на Business. Ключи publickey и secretkey берутся в Настройках сайта, в разделе «Экспорт», блок API. Методов семь: getprojectslist, getprojectinfo, getpageslist, getpage, getpagefull, getpageexport и getpagefullexport. Все запросы идут методом GET, ответ приходит в JSON. Лимит 150 запросов в час.

Архив API не отдаёт, метода «выгрузить проект целиком» в нём нет. У getpageexport html лежит одним из полей JSON, и дальше его разбирает ваш код. Запись через API тоже невозможна: страницы и товары читать можно, менять нельзя.

Схему с API я беру в двух случаях. Первый: страницы Тильды нужно подтягивать в уже существующий сайт на PHP и держать актуальными без ручной выгрузки. Второй: нужно автоматически выгружать копию страниц по расписанию. Для разового переезда проще архив из настроек.

У Тильды есть и вебхук на публикацию страницы, поэтому обновление можно запускать по событию, а не по таймеру. Настройку такой связки я обычно делаю как кастомную доработку сайта на Тильде, потому что там много мелочей: ключи, хранение выгруженных файлов, обработка ошибок при превышении лимита запросов.

Обновление сайта после переезда: как не потерять правки

Самая частая проблема после выгрузки кода: через месяц кто-то правит текст прямо в HTML на хостинге, а потом в Тильде делают очередную правку, выгружают проект заново, перезаписывают файлы, и ручная правка исчезает. Я договариваюсь с клиентом об одном месте правды.

Есть два рабочих варианта:

  • Все правки делаются в Тильде, на хостинг уходит новая выгрузка. Файлы на хостинге вручную не трогают, кроме .htaccess и отдельных служебных файлов, которых в архиве нет.
  • Сайт после выгрузки становится обычным кодом, и дальше его ведут разработчики без Тильды. Возвращаться к конструктору нельзя, потому что новую выгрузку придётся сливать с изменениями вручную.

Первый вариант дешевле в обслуживании, второй нужен, когда на сайте появляется своя логика: личный кабинет, расчёты, интеграции. Для них пригодится PHP и MySQL на том же хостинге: приём формы, промокоды, уведомления в Telegram решаются обычным обработчиком, отдельный сервер не нужен.

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

Условия и возможности Тильды меняются, поэтому перед запуском я уточняю их у самого сервиса, в первую очередь состав тарифов и пути в настройках.

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

Можно ли сделать экспорт кода Тильды на тарифе Personal?

Нет. В таблице тарифов экспорт исходного кода отмечен только у Business. Если нужна копия или перенос, придётся перейти на этот тариф. Резервную копию проекта на дату можно запросить через поддержку, но это отдельный механизм: Тильда восстанавливает содержимое страниц в новый проект, а не отдаёт файлы для хостинга.

Будет ли работать SSL-сертификат Тильды на моём хостинге?

Нет. Сертификат работает только для сайтов, расположенных на Тильде. После экспорта HTTPS подключают на стороне своего сервера: в панели хостинга выпускают сертификат и настраивают редирект с http на https.

Обновится ли сайт на хостинге после правок в Тильде?

Нет, архив сам не обновляется. Правки вносят в Тильде, публикуют страницу и выгружают проект заново, затем заменяют файлы на хостинге. Если вручную правили HTML на хостинге, эти изменения при замене пропадут.

Нужен ли отдельный сервер, чтобы разместить выгруженный сайт?

Нет. Выгрузка состоит из статичных файлов, их достаточно положить на обычный хостинг по FTP. PHP и MySQL понадобятся, только если вы добавляете к сайту свою серверную логику, например приём заявок вебхуком.

Есть задача?

Обсудим в мессенджере

Расскажите, что нужно сделать — отвечу в течение 4 часов в рабочее время. Первая консультация бесплатно.

Продолжая пользование настоящим сайтом Вы выражаете своё согласие на обработку Ваших персональных данных (файлов куки) с использованием Yandex.Metrika.
Понятно