Защита сайта от ботов на 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 оценки)
Задайте вопрос или оставьте комментарий

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

Пиксель Вайб — UGC-платформа для компаний, специалистов и блогеров
Пиксель Вайб — UGC-платформа для компаний, специалистов и блогеров
Пиксель Вайб — площадка, где компании, эксперты и блогеры публикуют статьи, кейсы и обзоры. Растите аудиторию, привлекайте клиентов и демонстрируйте экспертность. Зарегистрируйтесь на pixelvibe.ru и опубликуйте первый материал уже сегодня!
Ассоциация GEO-агентств by Пиксель Тулс
Ассоциация GEO-агентств by Пиксель Тулс
Запущена ассоциация GEO-агентств. В составе уже 5 агентств, которые будут обмениваться практиками и формировать стандарты GEO. Участники получат доступ к закрытому сообществу и знак ассоциации. Присоединяйтесь, участие бесплатное!
Добавили ИИ-помощника в SEO-проекты
Добавили ИИ-помощника в SEO-проекты
Добавили ИИ-помощника в SEO-проекты. Он учитывает данные проекта, помогает анализировать позиции и конкурентов, находить точки роста и составлять план продвижения в Яндексе и Google. Создайте SEO-проект и попробуйте!
Полный гайд по GEO 2026 — как бренду попасть в ответы нейросетей
Полный гайд по GEO 2026 — как бренду попасть в ответы нейросетей
Как бренду попасть в ответы нейросетей? В гайде по GEO 2026 от Пиксель Тулс — 55 слайдов о выборе площадок, подготовке контента и сайта, оценке результата. Примеры, шаблоны и план на 30 дней помогут перейти к практике. Скачайте гайд и начните с первого шага.
ИИ подводит итоги и составляет план действий в GEO-отчётах
ИИ подводит итоги и составляет план действий в GEO-отчётах
Добавили в GEO-отчёты выводы ИИ по бренду и сайту, цели на 90 дней и план задач на 7, 30 и 90 дней. Новый блок помогает оценить видимость в нейросетях и определить приоритеты. Создайте GEO-проект и получите отчёт с планом действий.
Курс по GEO «Попади в ответ»: как оказаться в ответах нейросетей, а не за их пределами
Курс по GEO «Попади в ответ»: как оказаться в ответах нейросетей, а не за их пределами
Запустили курс «Попади в ответ» по GEO (AI SEO): 17 практических уроков о том, как попасть в ответы ChatGPT, Алисы, Google AI Overview и других нейросетей. Изучите GEO бесплатно и начните применять знания на своём проекте.
Рейтинг SEO-агентств
Рейтинг SEO-агентств
Создали рейтинг SEO-агентств на основе реальных данных об активных проектах, специализациях, кейсах и командах. Найдите проверенного подрядчика или добавьте своё агентство в рейтинг.
Оптимизация 2026 — главная конференция года по SEO и GEO (AI SEO)
Оптимизация 2026 — главная конференция года по SEO и GEO (AI SEO)
8–9 октября в Сколково пройдёт Оптимизация 2026 — конференция по поисковому маркетингу. На ней вас ждут эксперты рынка, практические кейсы и новые подходы к продвижению. От Пиксель Тулс скидка 15% на билеты.
Добавили ИИ-помощника в GEO-проекты
Добавили ИИ-помощника в GEO-проекты
Он анализирует данные проекта, оценивает видимость бренда, помогает находить точки роста и разобраться в конкурентах, промптах и источниках. Создайте GEO-проект и попробуйте ИИ-помощника в работе.
Добавили проверку личного бренда в GEO-проекты
Добавили проверку личного бренда в GEO-проекты
Новая функция в GEO-проектах помогает понять, как Алиса AI, ChatGPT, Gemini, Perplexity и другие нейросети видят личный бренд: где упоминают, с кем сравнивают и на что ссылаются. Создайте GEO-проект для личного бренда прямо сейчас.
Запустили генератор материалов для GEO (AI SEO)
Запустили генератор материалов для GEO (AI SEO)
Запустили генератор материалов для GEO (AI SEO): создавайте статьи, рейтинги, гайды, сравнения и другие материалы для продвижения бренда и сайта в нейросетях. Гибко настраивайте регион, язык, промпты, обложки, иллюстрации и FAQ. Попробуйте наш новый инструмент прямо сейчас.
Запустили инструмент проверки GEO Rank
Запустили инструмент проверки GEO Rank
GEO Rank стал отдельным инструментом: вводите домены и получайте оценку авторитетности каждого как источника для нейросетей по шкале 0–100. Сравнивайте себя с конкурентами, подбирайте площадки для PR и отслеживайте динамику. Проверьте свой домен →

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

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