
Заявок стало меньше, реклама идёт, позиции те же. Владелец открывает сайт — всё на месте: страницы грузятся, картинки видны, кнопка «Отправить» нарисована. А посетитель в это время нажимает на эту кнопку четвёртый раз, ничего не происходит, и он уходит к конкуренту. Ошибка javascript на сайте выглядит именно так: внешне целый сайт, внутри которого не работает то, что приносит деньги.
Эта поломка коварнее, чем упавший сервер. Когда сайт лежит, вы узнаёте об этом в первый же день — вам звонят. Когда сломался скрипт, не происходит ничего: нет ошибки на экране, нет письма от хостинга, в аналитике визиты идут как обычно. Проседает только последний шаг, на котором человек превращается в заявку.
Дальше — почему это не видно, как проверить за десять минут без программиста, почему ломается после обновления и что отдать исполнителю, чтобы не слышать «у меня всё работает».
Почему сломанный скрипт невидим
Страница собирается в два этапа. Сначала браузер получает разметку и оформление — из них рисуется всё, что вы видите: текст, картинки, поля, кнопки. Потом запускаются скрипты, которые делают эту картинку живой: отправляют форму, считают корзину, листают слайдер, открывают меню на телефоне, показывают всплывающее окно.
Если ломается второй этап, первый остаётся целым. Кнопка нарисована разметкой, а обработчик, который должен сработать при нажатии, не запустился — нажатие уходит в пустоту. Сообщения об ошибке посетитель не получает: браузер записывает её в технический журнал, который никто не открывает.
Отсюда главная особенность: такие поломки не ищут, их обнаруживают случайно. Обычно через месяц, когда знакомый говорит «а я вам писал через форму, вы не ответили».
Симптомы и что за ними стоит
Диагностику начинаю от того, что именно перестало работать. Симптом сильно сужает список причин.
| Что видит посетитель | Что обычно сломано | Первое, что проверить |
|---|---|---|
| Нажимает кнопку «Отправить» — ничего не происходит | Скрипт формы не загрузился или упал раньше | Открыть ту же форму в другом браузере и с телефона |
| Форма отправляется, но письмо не приходит | Скорее всего, не скрипт, а почта или настройки отправки | Проверить, появляется ли сообщение «спасибо» |
| Корзина показывает неверную сумму или не обновляется | Скрипт пересчёта конфликтует с другим | Добавить товар при пустой корзине и посмотреть, считает ли |
| Слайдер на главной не листается, висит первый кадр | Библиотека слайдера не подгрузилась | Обновить страницу с полной перезагрузкой |
| Меню на телефоне не открывается | Скрипт мобильного меню упал или конфликтует | Открыть сайт на другом телефоне |
| Всплывающее окно не закрывается, перекрывает контент | Скрипт закрытия не отработал | Проверить в режиме инкогнито |
| Калькулятор выдаёт ноль или «NaN» | В расчёт попало нечисловое значение | Ввести простые целые числа и повторить |
Обратите внимание на вторую строку. Не всё, что похоже на сломанный скрипт, им является: если после отправки появляется благодарность, а письма нет, скрипт как раз работает, проблема дальше — в почте. Это разные исполнители и разные правки. Про калькуляторы отдельно: они ломаются чаще прочего, потому что в них больше логики, и я писал о том, когда калькулятор на сайте приносит заявки, а когда пугает ценой.
Сколько это стоит в заявках
Посчитать можно грубо, но честно, по своим же числам. Возьмите средний месяц: сколько посетителей приходит на страницу с формой и сколько заявок вы обычно получаете. Если форма не работала две недели, вы потеряли примерно половину месячной нормы заявок — плюс тех, кто ушёл и уже не вернётся.
Дальше умножьте на свой средний чек и на долю сделок, которые доходят до оплаты. У большинства бизнесов, с которыми я работаю, получается сумма, заметно превышающая стоимость починки. При этом расход на рекламу в эти две недели шёл полностью: вы платили за переходы на страницу, где кнопка не нажимается.
И отдельная потеря: те, кто не смог отправить заявку, обычно не звонят и не пишут в мессенджер. Они возвращаются в поиск и открывают следующий сайт. Обратной связи от них не будет.
Как проверить самому
Четыре способа, от простого к более техническому. Ни один не требует программиста.
Пройдите путь клиента целиком. Не глазами владельца, а до конца: выберите товар, положите в корзину, заполните форму, нажмите отправку, дойдите до страницы благодарности. Владельцы обычно проверяют только внешний вид, а ломается почти всегда последний шаг.
Откройте сайт в другом браузере. Если в одном форма работает, а в другом нет, дело почти наверняка в скриптах или в расширениях браузера. Заодно это отсекает вариант «у меня в кэше лежит старая версия».
Проверьте в режиме инкогнито. В таком окне не работают расширения и нет сохранённого кэша — вы видите сайт примерно как новый посетитель. Если в инкогнито всё работает, а в обычном окне нет, дело в вашем браузере, и клиенты этого не видят.
Возьмите телефон. Не уменьшенное окно на компьютере, а настоящий телефон, лучше два разных. Мобильные скрипты — отдельная история: меню, липкая кнопка звонка, маски телефона в форме. Часть поломок живёт только там, а с телефонов приходит больше половины посетителей у большинства сайтов.
Если хочется увидеть саму ошибку, в браузере на компьютере есть журнал, куда пишутся сообщения скриптов — обычно он открывается из меню разработчика или клавишей F12, и красные строки в нём означают упавший скрипт. Понимать их не нужно: достаточно сделать снимок экрана и передать исполнителю. Именно этот снимок экономит больше всего времени.
Почему ломается после обновления
Самый частый сценарий такой: неделю всё работало, потом обновилась тема или плагин, и форма замолчала. Механизм простой. Скрипты на сайте живут вместе: тема грузит свои, плагин формы свои, плагин корзины свои, чат и аналитика добавляют по одному. Все они опираются на общие библиотеки.
Когда одно обновление приносит новую версию библиотеки, старый код соседа может к ней не подойти — он вызывает то, чего в новой версии больше нет. Скрипт падает на этой строке и не доходит до своей работы. Причём падает молча, и ломается, как правило, не то, что обновили, а сосед.
Второй вариант — конфликт двух плагинов, которые делают одно и то же: два оптимизатора скорости, две формы, два обработчика корзины. Третий — ускорители. Модули, которые склеивают и сжимают скрипты или отдают их через внешнюю сеть доставки, часто работают исправно, но иногда после обновления отдают старую склеенную версию или ломают порядок загрузки. Когда стоит подключать такую сеть, а когда она добавляет проблем, я разбирал в материале про то, нужен ли CDN для сайта.
Отсюда правило, которое я прошу соблюдать всех: после любого обновления темы или плагинов пройдите путь клиента. Пять минут после обновления против двух недель тишины — обмен выгодный. На самой распространённой CMS поломки после обновлений разбираются по знакомому сценарию, я его описал в заметке про ошибку на сайте WordPress и как понять её причину.
Сравнение способов проверки
| Способ | Что находит | Чего не находит | Сколько занимает |
|---|---|---|---|
| Пройти путь клиента до конца | Любую поломку на пути к заявке | Редкие случаи в других браузерах | 10 минут |
| Другой браузер | Конфликты скриптов и кэш | Мобильные поломки | 5 минут |
| Режим инкогнито | Влияние расширений и старого кэша | Ошибки в самих скриптах сайта | 2 минуты |
| Настоящий телефон | Мобильное меню, маски, липкие кнопки | Поломки, видимые только на компьютере | 10 минут |
| Журнал сообщений в браузере | Точное место падения скрипта | Логические ошибки, где скрипт работает неверно | 5 минут, снимок экрана |
| Регулярная проверка формы раз в неделю | Поломку в первые дни, а не через месяц | Ничего не находит сразу, но сокращает простой | 3 минуты в неделю |
Последняя строка — самая недооценённая. Один регулярный тест формы своими руками дешевле любой диагностики: он превращает двухнедельную потерю заявок в двухдневную.
Когда дело не в JavaScript
Три ситуации, в которых искать сломанный скрипт бессмысленно.
Сообщение «спасибо» появляется, письма нет. Скрипт отработал, данные ушли на сервер. Дальше вопрос к почте: отправка с хостинга, попадание в спам, фильтр на ящике. Это отдельная и очень частая история, к скриптам она отношения не имеет.
Заявок стало меньше, но всё работает. Проверили в трёх браузерах и с двух телефонов, форма проходит, письма приходят — тогда причина в другом: упал трафик, сменился сезон, конкурент снизил цену, поменяли объявления. Не надо чинить исправное.
Форма работает, но люди не заполняют. Шесть полей, требование ввести отчество, отсутствие галочки согласия или, наоборот, пугающий юридический текст на пол-экрана. Это не техника, а содержание. Кстати, отсутствие правильно оформленного согласия — отдельный риск, не только для конверсии, и я описал его в разборе согласия на обработку персональных данных на сайте.
Что отдать программисту
Половина потерянного времени уходит на переписку в стиле «не работает» — «у меня работает». Чтобы этого не было, соберите набор сведений заранее.
| Что приложить | Зачем это нужно |
|---|---|
| Точный адрес страницы, где ломается | Исполнитель откроет то же самое, а не похожее |
| Что вы нажимали и что ожидали увидеть | Отделяет поломку от непонимания, как задумано |
| Браузер и устройство, на которых воспроизвели | Половина ошибок видна не везде |
| Снимок экрана с красными строками из журнала браузера | Даёт точное место падения, экономит часы поиска |
| Видео с телефона, как вы нажимаете и ничего не происходит | Снимает спор «у меня работает» |
| Дата, когда работало последний раз, и что меняли между | Сразу указывает на обновление или новый плагин |
| Есть ли ошибка в режиме инкогнито | Отсекает расширения и кэш |
| Воспроизводится каждый раз или иногда | Плавающие ошибки ищут иначе, чем постоянные |
С таким набором починка обычно занимает часы, а не дни. Если исполнителя нет вообще, поиск и устранение таких поломок — часть технической доработки сайта. Когда непонятно, где вообще искать и что на сайте мешает заявкам, я прохожу его целиком и отдаю список правок с приоритетами — это SEO-аудит сайта. Полный список того, что чаще всего мешает продвигать сайт, собран в материале про ошибки на сайте и способы их устранения, а когда с техникой порядок, дальше идёт уже продвижение сайта в поиске.
Коротко
- Сломанный скрипт не портит внешний вид: разметку браузер уже нарисовал, а нажатие уходит в пустоту.
- Диагностику начинайте с симптома: кнопка, форма, корзина, слайдер, меню на телефоне — за каждым свой короткий список причин.
- Четыре проверки без программиста: пройти путь клиента до конца, другой браузер, режим инкогнито, настоящий телефон.
- Ломается чаще всего после обновления темы или плагина, причём падает не обновлённое, а сосед по общей библиотеке.
- Не всё похожее — скрипт: если благодарность появилась, а письма нет, вопрос к почте.
- Программисту нужны адрес, устройство, снимок журнала браузера, дата последней работоспособности и что меняли между.
- Проверка формы своими руками раз в неделю сокращает простой с двух недель до двух дней.
Частые вопросы
Как понять, что заявки теряются именно из-за скрипта?
Сравните два числа: посетителей на странице с формой и полученных заявок. Если посетители есть, а заявок ноль несколько дней подряд, отправьте заявку сами с чужого устройства и из другой сети. Не дошла — причина техническая.
Может ли сломанный скрипт повлиять на позиции в поиске?
Да, косвенно. Если поисковый робот не может получить контент, который подгружается скриптом, он его просто не увидит. А поведение людей, которые заходят и быстро уходят с нерабочей страницы, тоже учитывается. Но первым делом считайте не позиции, а потерянные заявки.
Стоит ли просто откатить обновление?
Как срочная мера — да, если есть резервная копия и вы точно знаете, что сломалось после конкретного обновления. Как решение — нет: старая версия плагина перестаёт получать исправления безопасности. Откат даёт время на нормальную починку, а не заменяет её.
Увеличьте позиции и продажи вашего сайта
Профессиональное SEO-продвижение с гарантией результата. Выберите подходящую услугу:
Остались вопросы по продвижению?
Меня зовут Анатолий Кузнецов, я SEO-оптимизатор с 20-летним стажем. Разберу ваш сайт, отвечу на вопросы и подскажу, что улучшить для роста позиций в Яндексе и Google.
Связаться со мной →
Комментарии
Алексей
Месяц крутили рекламу, заявок почти нет. Прочитал, полез проверять сам — форма не отправляется с телефона, на компьютере работает. Месяц бюджета в трубу.
Анатолий Кузнецов автор
Самый частый расклад: владелец проверяет с компьютера, а клиенты приходят с телефона. Снимите видео и приложите к заявке исполнителю — починят быстрее. И поставьте себе в календарь еженедельную проверку формы с телефона.
Ирина
У меня форма пишет «спасибо», а письма нет уже две недели. Значит, скрипт всё-таки работает? Программист говорит, что дело не в нём.
Анатолий Кузнецов автор
Он прав: благодарность появилась, значит, скрипт отработал. Смотрите почту: спам, отправку с хостинга, фильтры на ящике. И включите сохранение заявок в базе сайта, если плагин умеет: тогда потерянное письмо не равно потерянному клиенту.
Денис
Открыл журнал браузера впервые в жизни. Там 14 красных строк, из них половина про какую-то аналитику. Испугался, закрыл.
Анатолий Кузнецов автор
Красные строки есть почти на любом сайте, и часть безобидна: блокировщики, внешние счётчики. Разбираться в них не ваша работа — ваша сделать снимок экрана и приложить к заявке. Исполнитель отличит шум от причины за минуту.
Сергей
Не согласен с советом проверять после каждого обновления. У меня 22 плагина, обновления приходят через день. Так я буду только тестировать форму.
Анатолий Кузнецов автор
22 плагина — сама по себе причина частых поломок, обычно их можно сократить вдвое. И обновления не нужно ставить по одному: копите за неделю, ставьте разом, проверяйте форму один раз.
Наталья
Корзина считала неправильно: добавляешь второй товар, сумма не меняется. Оказалось, два плагина скидок стояли одновременно. Убрали один, всё сошлось.
Виктор
А как проверить, видит ли поисковик текст, который подгружается скриптом? У нас описания товаров открываются по нажатию на вкладку.
Анатолий Кузнецов автор
Грубая проверка: откройте исходный код страницы и поищите фразу из описания. Нашлась — текст есть в разметке, вкладка лишь прячет его визуально, это нормально. Не нашлась — текст подгружает скрипт, и нужна проверка индексации в Вебмастере.
Оксана
Всплывашка с подпиской не закрывалась на телефоне три недели. Люди просто уходили. Узнала от клиента, который дозвонился по телефону из шапки.
Павел
Вопрос про кэш: у меня после правок ничего не меняется, а у коллеги на его компьютере всё новое. Это тоже из этой темы?
Марат
Калькулятор выдавал NaN, когда человек вводил площадь через запятую. Полгода никто не замечал, потому что сами всегда вводили через точку.
Елена
Посчитала по вашей схеме, сколько потеряли за две недели нерабочей формы. Получилось больше, чем весь годовой бюджет на сайт. Неприятно, но отрезвляет.
Григорий
Подрядчик говорит, что виноват мой блокировщик рекламы, и чинить нечего. Но жалуются и клиенты. Как ему это доказать?
Юля
После включения плагина ускорения перестало работать мобильное меню. Отключила — заработало. Теперь сайт медленнее, но заявки идут.