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

Так и у меня на одном из проектов, у заказчика интернет-магазин, многие страницы выполнены в формате лендингов для показа величины масштаба компании и прочих преимуществ, ну и само собой на этих страницах расположены множество форм, которые притягивают лиды и основной проблемой этих форм стали эти самые боты. Для решения проблемы было решено подключить google recaptcha 2.0 так как альтернатив особо не было, на каждую формочку была подключена google recaptcha в режиме invisible. Проблема решена, все довольны.

Через 2 недели сеошники которые пришли продвигать проект, скинули ссылку на PageSpeed Insights (сайт не указываю в целях отсутствия пиара) с предъявой, в ТЗ было прописано что должно быть минимум 70 баллов по мобильной и десктопной версии, а было 67. Появилось непонимание, ведь тестировали верстку после того как натянули её, было за 70 балов по мобильной, и 85 на десктопах.

Так же пользователи с регионов начали жаловаться на появления всплывающих окон, таких могло выскочить от 1 до 4ех и более.

Медленный интернет
Начали разбирать, PageSpeed Insights показал несколько картинок, которые не были сжаты как следует и несколько баллов было потеряно на этом.

image

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

Показатели с гугл каптчей

Лихорадочно начали отключать все недавно подключенные скрипты и наткнулись как раз на google recaptcha 2.0.

После её отключения показатели пришли в норму и стали.

Показатели без гугл каптчи

и показатели без гугл капчи на PageSpeed Insights

image

На данный момент за неимением лучшей альтернативы было решено полностью отказаться от гугл капчи и заменить её на простенький способ с input[type="text"] display:none; и проверять: если заполнено, значит, бот.

Советую так же тем, у кого много форм и стоит гугл капча, проверить свои сайты.

А как вы защищаете свои формы от спама?

Комментарии (8)


  1. quantum
    02.11.2017 17:56

    Слишком много значения придаете этим циферкам. Так и до инфаркта недалеко


    1. demimurych
      02.11.2017 19:30

      Вероятно Вы недооцениваете значение этих циферок. Меньше знаешь — крепче спишь.


  1. surrealmix
    02.11.2017 18:33

    input[type="text"] display:none
    Современные боты умны и не будут заполнять это поле.
    Более лучший вариант:
    1. Скрытое заполненное поле.
    2. По событию onsubmit очищать это поле. Если поле не очищено — значит бот.


    1. Phoenix-lib Автор
      02.11.2017 23:30

      Приму к сведению ваши рекомендации, если прорвется много ботов, поменяю алгоритм


      1. remzalp
        03.11.2017 10:37

        Я делал кастомное решение с задачей, при этом с base64 в hidden поле упаковывал правильный ответ (молодой был).


        Сайт продержался три года, потом один бот (american med pills ) всё же прорвался, что говорит о том, что иногда формы анализируются и глазами человека.


  1. aliencash
    02.11.2017 20:21

    Для начала непонятно что мешает выполнить рекомендации гугла? Не особо напрягаясь можно догнать до 90/100.
    Потом вы не правильно установили капчу. Ключевая мысль такая — скрипт капчи не нужен, пока пользователь не установит фокус в поле ввода в форме где требуется капча. При первоначальной загрузке страницы скрипт капчи не загружается. Т.о. вы хотя бы сохраните первоначальные 71/100.


    1. Phoenix-lib Автор
      02.11.2017 23:57

      1ое что мешает, магазин на Битриксе. Можно но дорого.

      Метод с фокусом опробуем, если зайдет, отпишусь в статье.


  1. Akuma
    02.11.2017 22:54

    А как вы защищаете свои формы от спама?

    Аякс-формы + запрос csrf токена так же через аякс непосредственно перед запросом.
    Бота написать не проблема, но еще ни один автоматический бот ничего не прислал на такие формы.