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

Модификация Tilda: 7 типовых ошибок при доработке сайта

Модификация 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 или отдельный веб-сервис становится дешевле в поддержке, чем бесконечные обходные пути на Тильде.

Есть задача?

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

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

Самозанятый Калинкин Н. А. · работаю с физлицами и юрлицами

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