Защита сайта от ботов на Tilda

Артём Азаров
Руководитель развития проекта «Пиксель Тулс»

Защита сайта от ботов на Tilda

По запросам пользователей, подготовили инструкцию, как установить скрипт для защиты сайта от ботов на Tilda.

Напомним, суть скрипта заключается в следующем: он откладывает загрузку счётчиков Яндекс.Метрики и Google Analytics до того момента, пока пользователь не нажмёт на кнопку во всплывающем окне.

Окно можно оформить как выбор региона, подтверждение возраста, предложение скидки и т.д.

Как установить скрипт на Tilda?

1. Зайдите в «Настройки сайта» — «Ещё» — «Пользовательские CSS-стили» — «Редактировать CSS».

Редактирование CSS-кода

Вставьте в него следующий код:

  
    .welcome-pt-overlay{opacity:0;visibility:hidden;position:fixed;top:0;left:0;right:0;bottom:0;overflow-y:auto;-webkit-overflow-scrolling:touch;background-color:rgba(0,0,0,.5);z-index:8000;transition:all 0.3s}.welcome-pt-message{opacity:0;visibility:hidden;width:100%;max-width:500px;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);z-index:8001;box-shadow:0 11px 15px -7px rgb(0 0 0 / 20%),0 24px 38px 3px rgb(0 0 0 / 14%),0 9px 46px 8px rgb(0 0 0 / 12%);text-align:center;padding:30px;margin:16px 0;border-radius:4px;background-color:#fff;box-sizing:border-box;transition:all 0.3s}@media (max-width:532px){.welcome-pt-message{width:auto;left:16px;right:16px;transform:translate(0,-50%)}}.is-active.welcome-pt-overlay,.is-active .welcome-pt-message{opacity:1;visibility:visible}.site-form-title{text-align:center;margin-bottom:20px;font-size:36px;line-height:40px;font-weight:300;color:#3d424b}@media (max-width:532px){.site-form-title{margin-bottom:14px;font-size:30px;line-height:36px}}.site-form-text{font-size:16px;line-height:20px;margin-top:0}.site-form-buttons{display:flex;justify-content:center;margin-top:32px}.welcome-pt-close{height:50px;line-height:50px;min-width:180px;padding:0 32px;border:none;font-size:16px;white-space:nowrap;color:#fff;cursor:pointer;text-decoration:none;border-radius:5px;background-color:#0836ff;transition:all 0.3s ease 0s;display:inline-block;margin:0;text-transform:uppercase;letter-spacing:.02em;box-sizing:border-box;text-align:center;box-shadow:0 3px 1px -2px rgb(0 0 0 / 20%),0 2px 2px 0 rgb(0 0 0 / 14%),0 1px 5px 0 rgb(0 0 0 / 12%)}.welcome-pt-close:hover{background-color:#0435c9}
  

2. Зайдите в редактирование страницы или в редактирование общего footer, добавьте блок «Другое» — «HTML-код».

Редактирование HTML-кода

Вставьте в него следующий код:

  
<div class="before-footer-scripts-place"></div>

<div class="welcome-pt-modal">
  <div class="welcome-pt-overlay">
    <div class="site-popup-inner welcome-pt-message">
      <form action="" enctype="multipart/form-data" method="post">
        <div class="site-form-title">Добро пожаловать!</div>
        <div class="site-row">
          <p class="site-form-text">Благодарим за посещение нашего ресурса.</p>
        </div>
        <div class="site-form-buttons">
          <div class="site-form-button">
            <a class="welcome-pt-close" href="#">Продолжить</a>
          </div>
        </div>
      </form>
    </div>
  </div>
</div>

<script>
  class ptsLazyLoad{constructor(dataLazyLoadingJS,dataSettings){this.dataLazyLoadingJS=dataLazyLoadingJS;this.dataSettings=dataSettings}lazyLoadingJS(type,area){if(this.dataLazyLoadingJS['data'][type]['status']===false){this.dataLazyLoadingJS['data'][type]['status']=true;const render=(relEl,tpl)=>{const range=document.createRange();range.selectNode(relEl);const child=range.createContextualFragment(tpl);return relEl.appendChild(child)};render(area,this.dataLazyLoadingJS['data'][type]['html'])}}loadAllDataScripts(){for(let key in this.dataLazyLoadingJS['data']){this.lazyLoadingJS(key,document.querySelector(this.dataLazyLoadingJS['data'][key]['area']))}}showMessage(){let that=this;let modal=document.querySelector('.welcome-pt-overlay');let closeButton=document.querySelector('.welcome-pt-close');modal.classList.add('is-active');closeButton.addEventListener('click',function(event){event.preventDefault();modal.classList.remove('is-active');that.cookieSet();that.loadAllDataScripts();setTimeout(function(){modal.style.display='none'},300)})}isSearchSystemBotSigns(){let uaList=['APIs-Google','Mediapartners-Google','AdsBot-Google-Mobile','AdsBot-Google','Googlebot','AdsBot-Google-Mobile-Apps','YandexBot','YandexMobileBot','YandexDirectDyn','YandexScreenshotBot','YandexImages','YandexVideo','YandexVideoParser','YandexMedia','YandexBlogs','YandexFavicons','YandexWebmaster','YandexPagechecker','YandexImageResizer','YandexAdNet','YandexDirect','YaDirectFetcher','YandexCalendar','YandexSitelinks','YandexMetrika','YandexNews','YandexCatalog','YandexMarket','YandexVertis','YandexForDomain','YandexSpravBot','YandexSearchShop','YandexMedianaBot','YandexOntoDB','YandexOntoDBAPI','YandexVerticals','Mail.RU_Bot','StackRambler','Yahoo','msnbot','bingbot','PixelTools','PixelBot'];let sBrowser=false,sUsrAg=navigator.userAgent;for(let i=0;i<uaList.length;i+=1){if(sUsrAg.indexOf(uaList[i])>-1){sBrowser=true;break}}return sBrowser}cookieCheck(){return document.cookie.indexOf(this.dataSettings.cookie_name)>-1}cookieSet(){const date=new Date();date.setTime(`${date.getTime()}${(365*30*24*60*60*1000)}`);let expiryDate=`expiryDate="${date.toUTCString()}`;document.cookie=`${this.dataSettings.cookie_name}=true;${expiryDate};path=/`}simpleCheck(need_check){if(+need_check===1&&!this.cookieCheck()&&!this.isSearchSystemBotSigns()){this.showMessage()}else{this.loadAllDataScripts()}}}
</script>

<script>
  document.addEventListener('DOMContentLoaded', function() {
    let dataLazyLoadingJS = {
      data: {
        ya_counter: {
          status: false,
          html: 'Код счётчика Яндекс.Метрики',
          area: '.before-footer-scripts-place'
        },
        ga_counter: {
          status: false,
          html: 'Код счётчика Google Analytics',
          area: '.before-footer-scripts-place'
        }
      }
    };
    let dataSettings = {
      cookie_name: 'PST_VERIFIED_COOKIE',
    };
    let LazyLoad = new ptsLazyLoad(dataLazyLoadingJS, dataSettings);
    LazyLoad.simpleCheck(1);
  });
</script>
  

3. Получите коды счётчиков Яндекс.Метрики и Google Analytics, замените их в коде (или просто подставьте в код id своих счётчиков).

  
ya_counter: {
  status: false,
  html: `<script type="text/javascript">(function(m,e,t,r,i,k,a){m[i]=m[i]||function(){(m[i].a=m[i].a||[]).push(arguments)};m[i].l=1*new Date();k=e.createElement(t),a=e.getElementsByTagName(t)[0],k.async=1,k.src=r,a.parentNode.insertBefore(k,a)})(window,document,"script","https://mc.yandex.ru/metrika/tag.js","ym");ym(123456789,"init",{clickmap:true,trackLinks:true,accurateTrackBounce:true, webvisor:true }); <\/script><noscript><div><img src="https://mc.yandex.ru/watch/123456789" style="position:absolute; left:-9999px;" alt="" /></div></noscript>`,
  area: '.before-footer-scripts-place',
},
ga_counter: {
  status: false,
  html: `<script async src="https://www.googletagmanager.com/gtag/js?id=123456789"><\/script><script>function getCid(){var match=document.cookie.match('(?:^|;)\\\\s*_ga=([^;]*)');var raw=(match)?decodeURIComponent(match[1]):null;if(raw)match=raw.match(/(\\d+\\.\\d+)$/);var gacid=(match)?match[1]:null;return gacid?gacid:false;}<\/script>`,
  area: '.before-footer-scripts-place',
}
  

Важно! Перед вставкой выполните экранирование слэша, т.е. замените в кодах счётчиков </script> на <\/script>, /> на \/>, </div> на <\/div>, </noscript> на <\/noscript> и другие \ на \\.

4. Если установили скрипт на одну страницу, опубликуйте эту страницу, если на несколько или общий footer — опубликуйте все страницы.

Публикация изменений

Как проверить работу скрипта?

1. Откройте консоль в браузере (горячие клавиши «CTRL+SHIFT+J»).

2. Проверьте вкладку «Network» — «JS» при открытом всплывающем окне. В списке не должно быть скриптов «tag.js» и «js?id=123456789». Это значит, что счётчики не подгрузились.

Консоль браузера #1

3. Проверьте вкладку «Network» — «JS» после нажатия кнопки. В списке должны появиться скрипты «tag.js» и «js?id=123456789». Это значит, что счётчики подгрузились.

Консоль браузера #2

Если всё произошло как описано выше, скрипт установлен и работает корректно, если нет — повторите установку сначала.

Важно! Статус счётчика в Яндекс.Метрике может быть «Не найден», не пугайтесь, если скрипт установлен правильно, то данные будут собираться в полном объёме.

Рейтинг новости
5 (52 оценки)
Задайте вопрос или оставьте комментарий

Читайте также

Рейтинги лучших брендов в России по мнению ИИ
Рейтинги лучших брендов в России по мнению ИИ
Открыли доступ к 10+ рейтингам брендов, от Авто до Медицины. Используйте данные для GEO-оптимизации и PR-стратегии, чтобы чаще попадать в рекомендации ИИ. Смотрите рейтинги по ссылке внутри.
18 Февраля 2026
AI Пиксель Тулс ищет амбассадоров
AI Пиксель Тулс ищет амбассадоров
AI Пиксель Тулс приглашает экспертов и блогеров по AI-маркетингу стать амбассадорами. Участников ждёт тариф «Бизнес» на 500 000 лимитов бесплатно, партнёрский доход и информационная поддержка. Хотите развивать AI-маркетинг вместе с нами? Оставьте заявку прямо сейчас!
16 Февраля 2026
ИИ-генератор текстов: запускайте сразу 2+ нейросети и выбирайте лучший ответ
ИИ-генератор текстов: запускайте сразу 2+ нейросети и выбирайте лучший ответ
Больше не нужно открывать несколько вкладок и вручную сверять результаты: отметьте сразу несколько нейросетей, получите ответы рядом и выберите лучший или соберите микс из удачных фрагментов. Попробуйте прямо сейчас.
4 Февраля 2026
 Пиксель Подкаст #19 — Как построить миллиардный стартап и замахнуться на долларового единорога — Максим Спиридонов
Пиксель Подкаст #19 — Как построить миллиардный стартап и замахнуться на долларового единорога — Максим Спиридонов
Миллиардная выручка, сделки с инвесторами, ИИ и личная устойчивость — честный разговор с Максимом Спиридоновым о том, как строить большие бизнесы и не сгореть по дороге к единорогу.
26 Января 2026
Изменение способов потребления контента вырастили аудиторию Telegram-каналов крупнейших российских СМИ в 6 раз
Изменение способов потребления контента вырастили аудиторию Telegram-каналов крупнейших российских СМИ в 6 раз
Исследование показало, что совокупная аудитория Telegram-каналов 9 крупнейших российских СМИ с 2021 по 2025 год выросла с 510 тыс. до 2,95 млн подписчиков. Средний рост на канал — в 6 раз. Абсолютные лидеры — «RT на русском» и «РБК. Новости», а в относительном росте первенствует «Газета.Ru». Полная статистика и экспертные рекомендации в статье.
14 Января 2026
Режим работы Пиксель Тулс в новогодние праздники
Режим работы Пиксель Тулс в новогодние праздники
Проекты и инструменты продолжат функционировать в обычном режиме. Изменения в работе технической поддержки, финансовой службы и персональных демонстраций описали внутри. Для решения срочных вопросов остаёмся на связи.
30 Декабря 2025
Новая вкладка «Сравнение упоминаний по датам» в AI SEO проектах
Новая вкладка «Сравнение упоминаний по датам» в AI SEO проектах
В AI SEO проектах появилась вкладка «Сравнение упоминаний по датам»: смотрите, когда бренд упоминают в нейросетях, и находите пики интереса после публикаций и кампаний. Подключайте проект и проверяйте!
29 Декабря 2025

ТОП-4 популярных инструментов

Список URL в ТОП
Сервис для быстрой выгрузки ТОП-10 до ТОП-200 сайтов по заданным поисковым запросам в Яндекс и Google. Получение списка URL в ТОПе с выбором региона по заданной глубине проверки
ИИ-генератор изображений
Онлайн-генерация картинок из текста на русском языке нейросетями Midjourney, Dall-E 3, Leonardo AI. Просто введите описание и искусственный интеллект (ИИ) создаст красивое и уникальное изображение.

Узнайте, как увеличить SEO‑трафик сайта в 3+ раза?

Укажите домен + регион продвижения, получите текущие позиции проекта в выдаче и первые 25 рекомендаций для роста трафика и заказов.
1
Выберите ваш сайт
Укажите сайт, регион и близких вам конкурентов
2
Магия поисковой оптимизации
25 персональных рекомендаций ждут вас
3
Отслеживайте прогресс
Получайте регулярные советы, рост трафика и продаж
0%
Подбираем семантику,
это займёт около 20-30 секунд
Открыть справку Написать в поддержку
Обратная связь и помощь
Если у вас есть идеи, как улучшить данный инструмент или остались вопросы по работе с ним, напишите в нашу службу поддержки, мы обязательно вам поможем.