Модификация Tilda - это всегда компромисс между визуальным редактором и кастомным кодом, и большинство проблем возникает именно на стыке этих двух миров. За несколько лет доработки сайтов на Тильде я вижу одни и те же грабли: код теряется при пересборке блока, скрипты падают на телефонах, интеграция с СДЭК или эквайрингом Т‑Банка работает в тестах и отваливается в проде. Собрал 7 ошибок, которые встречаю чаще всего, и что с ними делать.
Ошибка 1. Правки в теле блока без сохранения оригинала
Самая частая история: заходишь в T123 или Zero Block, меняешь HTML прямо в редакторе блока, сохраняешь - и через месяц клиент просит поправить текст через визуальный конструктор. Тильда пересобирает блок, и кастомный код исчезает, потому что редактор хранит его как часть структуры блока, а не как отдельный слой.
Перед любой правкой я сохраняю оригинальный код блока в отдельный файл с датой и версией. Это не для галочки - когда клиент через полгода скажет «а раньше тут что-то другое было», у меня будет с чем сравнить. Для доработки Tilda, которая должна пережить редактирование блока через конструктор, код лучше выносить за пределы самого блока - в общий JS для страницы или проекта, а в блоке оставлять только контейнер с уникальным data-атрибутом.
Ошибка 2. Кастомизация Tilda через «Вставить код» без учёта порядка загрузки
Вторая по частоте ошибка - вставка скрипта в «Дополнительный код перед /body» без проверки, что нужный DOM-элемент вообще существует к моменту выполнения. Тильда подгружает блоки асинхронно, особенно Zero Block и T‑блоки с лениво загружаемыми изображениями, поэтому скрипт, написанный «в лоб», обращается к элементу, которого ещё нет на странице.
t_onReady(function () {
var btn = document.querySelector('.t-btn');
if (!btn) return;
btn.addEventListener('click', function () {
// логика обработки клика
});
});
Встроенная функция t_onReady - это не формальность, а единственный надёжный способ гарантировать, что DOM собран. Без неё скрипт то работает, то нет - в зависимости от скорости соединения пользователя, и отладить такую нестабильность на глаз почти невозможно.
Бесплатный материал
🎁 Полезный скрипт в подарок
Подпишитесь на Telegram - пришлю готовый скрипт по этой теме.
Без спама. Отписка в 1 клик.
Ошибка 3. Игнорирование мобильной версии при доработке сайта на Тильде
Тильда хранит десктопную и мобильную вёрстку как частично независимые сущности: скрытые на мобильной версии блоки, изменённые отступы, другой порядок элементов. Скрипт, протестированный только на десктопе, на телефоне может обращаться к элементу, которого физически нет в DOM мобильной версии, - и падать с ошибкой, обрывающей выполнение всего файла.
При доработке всегда проверяю сценарий на реальном брейкпоинте, а не через уменьшение окна браузера - это разные рендеры. Отдельная больная тема - калькуляторы и формы: если поля на мобильной версии переставлены или часть скрыта через display:none, логика подсчёта должна опираться на name или data-атрибут поля, а не на порядковый номер в DOM.
Ошибка 4. Обращение к DOM до отрисовки Zero Block
Zero Block рендерится через собственный JS-движок Тильды с заметной задержкой относительно остальной страницы, особенно если на блоке есть анимации или подгружаемые изображения. Обращение к его элементам сразу в t_onReady часто ловит момент, когда контейнер уже есть, а внутренняя разметка ещё не построена.
Для таких случаев я использую MutationObserver на контейнере блока или проверку через setInterval с ограничением по числу попыток - грубо, но предсказуемо работает во всех версиях движка Zero Block, включая старые страницы, пересобранные пять лет назад и с тех пор не трогавшиеся.
Ошибка 5. Жёсткая привязка к id и классам, которые Tilda меняет при пересборке
Тильда генерирует часть id и классов блоков автоматически при каждом добавлении нового блока на страницу - числовые суффиксы вроде t396__title смещаются, если между блоками добавили ещё один. Скрипт, завязанный на конкретный rec123456, ломается не из-за правки самого скрипта, а из-за того, что клиент добавил баннер выше по странице.
Практика, которая экономит часы переделок: вешаю на нужный элемент собственный data-атрибут через настройки блока в «Доп. HTML-атрибуты» и в скрипте обращаюсь только к нему. Так модификация Tilda переживает перестановку блоков на странице без единой правки JS.
Ошибка 6. Тестирование интеграций сразу на боевом сайте
Эквайринг Т‑Банка, виджет СДЭК, вебхуки в CRM или уведомления в Telegram через бота на aiogram - все эти интеграции завязаны на внешние API с собственными лимитами и тестовыми контурами. Правка кода приёма формы Tilda прямо на продакшене - гарантированный способ поймать реальный заказ с некорректной суммой оплаты или потерянным уведомлением менеджеру.
Беру тестовые ключи эквайринга и песочницу СДЭК для черновой версии, прогоняю 5-10 сценариев с граничными случаями - пустой корзиной, промокодом, доставкой в другой часовой пояс - и только потом переключаю на боевые данные. Если интеграция собирается через n8n как связующий слой между формой Tilda и CRM, отдельный тестовый workflow с логированием каждого шага экономит часы разбора, где именно потерялась заявка.
Ошибка 7. Отсутствие версионирования кода после сдачи проекта
Код, вставленный через интерфейс Тильды, не хранит историю изменений - нет diff, нет возможности откатиться к рабочей версии, если новая правка что-то сломала. Я держу все кастомные скрипты в отдельном репозитории с привязкой к конкретной странице сайта, а в код блока Tilda вставляю финальную минифицированную версию с комментарием о версии и дате.
Часть таких решений - калькуляторы, интеграции с CRM, кастомные формы - я оформляю как переиспользуемые заготовки в библиотеке готовых скриптов для Tilda, чтобы не собирать похожую логику с нуля под каждый новый проект.
Цены на доработку Tilda сильно зависят от объёма: разовая правка вроде кастомного скролла или анимации блока - от 3 000 ₽, а интеграция с CRM, эквайрингом или СДЭК как комплексная связка - от 40 000 ₽. Сайт на Тильде под ключ - от 30 000 ₽, а если после сдачи нужно регулярно поддерживать и допиливать логику - техподдержка от 15 000 ₽ в месяц.
Когда стандартных блоков не хватает
Кастомный скрипт
от 3 000 ₽
Подробнее →Частые вопросы
Можно ли дорабатывать Tilda без знания программирования?
Базовые вещи - смена цветов, шрифтов, перестановка блоков - доступны в визуальном редакторе без кода. Но кастомная логика: калькуляторы, условная показ блоков, интеграции с CRM или платёжными системами - требует JS и понимания, как Тильда рендерит DOM. Без этого правки через «Вставить код» чаще ломают страницу, чем чинят.
Почему после обновления Tilda мой скрипт перестал работать?
Тильда периодически меняет внутреннюю структуру блоков и порядок загрузки скриптов движка. Если код завязан на конкретные id, классы или на порядок выполнения относительно других скриптов страницы, обновление платформы может сдвинуть эти зависимости. Отсюда правило - держать код в общем файле с версионированием, а не в теле блока.
Как проверить, что доработка не сломается на мобильной версии?
Открыть страницу на реальном устройстве или через инструменты разработчика с эмуляцией конкретного брейкпоинта Тильды, а не просто сузить окно браузера. Отдельно проверить, что все элементы, к которым обращается скрипт, присутствуют в мобильной вёрстке - Тильда может скрывать их через display:none или вовсе не рендерить.
Стоит ли переносить сайт с Tilda на WordPress, если нужна сложная логика?
Зависит от масштаба. Если логика ограничивается несколькими интеграциями и калькуляторами, кастомный JS на Tilda справляется без переезда. Когда нужны личный кабинет, сложная CRM-логика на бэкенде или контроль над базой данных - WordPress или отдельный веб-сервис становится дешевле в поддержке, чем бесконечные обходные пути на Тильде.