В моей практике конверсия по формам обратной связи на WordPress-сайтах редко радует сама по себе. Это видно только тогда, когда в Метрике заранее настроены цели, а не когда владелец бизнеса задним числом пытается понять, сколько заявок пришло с рекламы за прошлый месяц.
Большинство проблем с целями в Метрике связаны не с самой настройкой, а с тем, что данные о новом посетителе и его действии на сайте расходятся во времени. Отправка формы через Contact Form 7 происходит через AJAX, и без правильного условия цель просто не срабатывает, хотя визуально всё выглядит настроенным верно.
Настройка целей в Метрике на WordPress с формой Contact Form 7 сводится к трём шагам: создать в Метрике цель типа "JavaScript-событие", прописать в коде формы отправку JS-события при успешной отправке и проверить срабатывание через отчёт "Live-данные" до запуска рекламы.
из практики настройки сайтов на WordPress
Дальше - пошаговая инструкция настройки именно для связки WordPress и Contact Form 7, чтобы конверсии от новых пользователей корректно попадали в отчёты аналитики. Если на сайте стоит другой конструктор форм, логика похожа, но названия полей и место вставки кода в интерфейсе будут отличаться.
Коротко:
- Цель в Яндекс.Метрике - правило, по которому система засчитывает конверсию: заявку, звонок, клик по кнопке или просмотр нужной страницы.
- Без счётчика Метрики на сайте цели настраивать нечего - сначала код должен собирать данные о посетителях, потом уже добавляются условия для целей.
- На WordPress счётчик ставится двумя способами: через плагин без правки файлов темы или вручную в header.php - оба варианта рабочие и занимают до 10-15 минут.
- Цель для формы Contact Form 7 требует отдельной настройки JS-события, потому что стандартная отправка формы происходит без перезагрузки страницы.
- Статистика по целям не пересчитывается задним числом: если запустить рекламу раньше цели, часть конверсий просто не попадёт в отчёты.
Зачем настраивать цели в Яндекс.Метрике на WordPress
Цель в Метрике - условие, при выполнении которого система засчитывает посетителю конверсию. Кто-то отправил форму, кликнул по кнопке "Заказать звонок", провёл на сайте больше двух минут или открыл страницу "Спасибо за заказ" - каждое такое действие можно превратить в цель и потом смотреть, сколько людей до неё дошло. Без этого механизма аналитика сайта превращается в разглядывание графика посещаемости, который сам по себе бизнесу почти ничего не говорит.
В моей практике настройка целей - первое, что мы делаем сразу после установки счётчика, ещё до запуска рекламы. Причина простая: без целей невозможно оценить, какой канал трафика реально приносит заявки, а какой просто гоняет посетителей по сайту. Реклама в Директе или в соцсетях может давать дешёвые клики и ноль заказов, и без целей это не видно - деньги продолжают уходить в пустоту.
Задачи, которые решают цели, отличаются в зависимости от типа проекта. Для интернет-магазина это обычно отслеживание добавления товара в корзину, оформления заказа и оплаты - воронка из нескольких целей подряд. Для лендинга чаще нужна одна главная цель - отправка формы или клик по номеру телефона. Корпоративный сайт студии, консалтинговой компании или медицинского центра обычно живёт на заявках через форму и звонках, а сайт-портфолио фрилансера или дизайнера - на переходах в мессенджер или на почту.
Отдельная польза целей - в маркетинге и продвижении: по ним удобно сравнивать разные источники трафика между собой. Если в этом месяце вырос трафик из социальных сетей, но количество заявок по целям не изменилось, это сигнал разбираться с качеством аудитории, а не радоваться росту посещаемости. Мы в студии на аудите нового проекта всегда проверяем в первую очередь именно настройку целей: если её нет или она сделана криво, любые выводы о рекламе и трендах окажутся просто неверными.
Отдельная оговорка: раз форма собирает имя, телефон или почту посетителя, на сайте должна быть опубликована политика конфиденциальности, а сама форма - получать согласие на обработку персональных данных в соответствии с 152-ФЗ. Это не связано напрямую с настройкой целей, но обычно делается в тот же момент, что и подключение аналитики.
Ещё один момент, который часто недооценивают: без корректно настроенных целей невозможно нормально оценить рост бизнеса во времени. Через полгода-год владелец захочет посмотреть, увеличилось ли количество заявок к целям, и если данных нет с самого начала, сравнивать будет не с чем. Приходится либо восстанавливать картину по косвенным кейсам, либо честно признавать, что часть истории проекта потеряна.
Установка счётчика Яндекс.Метрики на сайт WordPress
Прежде чем настроить цели, нужен работающий счётчик. Регистрация занимает примерно 10 минут: заходите в свой аккаунт Яндекса, открываете Метрику, создаёте новый счётчик, указываете адрес сайта и получаете код счётчика - блок html со скриптами js и уникальным номером (ID счётчика). Этот номер счётчика потом понадобится для вызова функции reachGoal при настройке целей вручную, так что его стоит сразу сохранить отдельно.
Дальше есть два способа поставить код на сайт. Первый - через плагин, например Insert Headers and Footers: он добавляет отдельную вкладку в админке WordPress, куда можно вставить код счётчика без единой правки файлов темы. В моей практике это один из самых безопасных вариантов для тех, кто не разработчик и не хочет случайно сломать сайт - плагин переживает обновление темы, потому что код хранится отдельно от неё.
| Способ установки | Когда подходит |
| Через плагин Insert Headers and Footers | Нет доступа к файлам темы или нет разработчика под рукой |
| Вручную в header.php | Есть дочерняя тема и понимание, что делаете |
Второй способ - вручную, через файл темы header.php. Откройте редактор темы в админке или зайдите через FTP, найдите файл текущей активной темы и вставьте код счётчика перед закрывающим тегом head. Важно: если тема не дочерняя, при следующем обновлении версии темы правки слетят и код придётся вставлять заново. Это частая проблема первой недели после переезда на новый шаблон, с которой ко мне обращаются за поддержкой уже постфактум.
Для части сценариев, особенно если на странице проекта есть всплывающие формы или отложенная загрузка скриптов, код счётчика лучше разместить не в head, а перед закрывающим тегом body - тогда он гарантированно установлен уже после того, как отрисовались остальные элементы страницы. На практике для большинства проектов разницы не видно, но так настройка будет надёжнее для тяжёлых страниц с кучей других скриптов.
После установки проверяйте результат не по ощущениям, а через раздел "Live-данные" в интерфейсе Метрики - режим отчёта, который показывает посетителей в реальном времени. Откройте сайт в отдельной вкладке, зайдите на пару страниц и посмотрите, появляется ли ваш визит в списке. Если счётчик установлен корректно, данные покажутся в течение минуты. Если тишина, скорее всего код попал не в тот файл темы или остался закомментированным после копирования.
Типы целей в Яндекс.Метрике: что выбрать
Прежде чем создавать цели, стоит понять, какие типы вообще доступны. Сервис Метрики предлагает базовые варианты: число просмотров, посещение страниц, JavaScript-событие и составную цель. Каждый работает по-своему и подходит для разных задач, а следующие блоки статьи покажут, как настроить конкретный тип на практике.
Цель "Число просмотров" оценивает вовлечённость пользователя числом просмотренных страниц - подходит для блогов и каталогов, где важна глубина просмотра, а не конкретное действие.
Цель типа "Посещение страниц" привязана к URL конкретной страницы или раздела ресурса. Она поддерживает несколько условий: URL содержит, URL совпадает, URL начинается с, регулярное выражение. Простой пример - страница "Спасибо за заказ" после оформления покупки.
Цель "JavaScript-событие" фиксирует взаимодействие пользователя с элементом сайта: клик по кнопке, отправку формы, добавление товара в корзину. Именно этот тип используется в примере с Contact Form 7 ниже - актуальная связка для форм.
Составная цель объединяет до 5 последовательных действий пользователя, которые должны состоять в определённом порядке. Например: заход в каталог, просмотр карточки товара, добавление в корзину, оформление заказа. Действия должны идти строго по порядку, без пропуска шагов, иначе цель не засчитается. Такая цель показывает, на каком шаге воронки посетители чаще всего уходят.
Ниже таблица-подсказка, которая поможет выбрать тип для отслеживания достижения конкретной цели.
| Тип цели | Когда использовать | Сложность настройки | Пример |
| URL-цель | Есть отдельная страница-результат (спасибо, успех) | Низкая, без кода | Переход на /order-success/ |
| JS-событие | Действие без перезагрузки страницы (отправка формы, клик) | Средняя, нужен код | Событие wpcf7mailsent после отправки формы |
| Составная цель | Нужно отследить всю воронку из нескольких шагов | Высокая, комбинирует другие цели | Каталог, корзина, заказ |
На практике для WordPress-сайта с формой Contact Form 7 чаще всего выбирают тип, который будет точнее отражать факт отправки, а не просто визит на страницу "Спасибо" - так будет выглядеть более честная картина по конверсиям, чем при URL-цели, которую пользователь мог открыть напрямую.

Пошаговое создание цели JavaScript-событие в интерфейсе Метрики
Процесс создания цели проходит по одинаковым шагам для любого сайта на WordPress, независимо от темы, разделов админки и набора плагинов.
- Зайдите в интерфейсе Метрики в раздел "Настройки" нужного счётчика, откройте вкладку Цели и нажмите кнопку "Добавить цель" - так вы создаёте новую цель с нуля.
- Заполните название - оно должно быть понятным, например "Отправка формы обратной связи".
- Выберите тип условия "JavaScript-событие" из списка доступных типов.
- Появится поле для идентификатора цели. Идентификатор должен состоять из латинских букв и цифр без спецсимволов, обычно в пределах 20-30 символов - пробелы, кириллица и дефисы недопустимы.
- Придумайте короткое понятное значение, например form_sent, и скопируйте его - оно понадобится в коде на следующем шаге.
- Обратите внимание на переключатель "Ретроактивность" - для новой цели он не критичен, изменения задним числом не применяются.
- Сохраните цель кнопкой "Сохранить" - она появится в общем списке со статусом активной.
После того как код добавлен на сайт (об этом - в следующем блоке), проверить срабатывание можно там же, в разделе "Цели", либо через отчёт "Конверсии". Увидеть первые данные можно уже в течение нескольких минут после реальной отправки формы.
Если планируете отслеживать несколько форм на сайте, создайте под каждую отдельную цель со своим идентификатором - так в отчётах будет видно, какую форму нужно настроить лучше, а какую пора переделывать. Настраивать цели стоит сразу после публикации формы, чтобы не потерять первые конверсии.
JS-событие wpcf7mailsent: код для отслеживания отправки Contact Form 7
Contact Form 7 генерирует событие wpcf7mailsent при успешной отправке письма. Это не единственное событие плагина - есть ещё wpcf7invalid и wpcf7mailfailed для ошибок, но нас интересует именно факт успешной отправки.
Ранее в CF7 использовался устаревший метод on_sent_ok в настройках формы, но он заменён на обработчик события wpcf7mailsent через document.addEventListener. Если в старых инструкциях встречаете on_sent_ok, не настраивайте по нему - актуального способа он уже не отражает.
Метод ym(counterID, 'reachGoal', 'goalID') - актуальный способ передачи цели в Метрику. Вот готовый пример кода для вставки:
document.addEventListener('wpcf7mailsent', function(event) {
ym(XXXXXXXX, 'reachGoal', 'form_sent');
}, false); Вместо XXXXXXXX подставьте номер вашего счётчика Метрики, а form_sent замените на идентификатор, который вы создали ранее в интерфейсе Метрики. В коде выше работают вместе document addEventListener wpcf7mailsent function event - именно эта связка ловит момент успешной отправки. Обратите внимание: у Contact Form 7 в объекте event.detail доступны данные о форме. При желании можно отслеживать конкретную форму по идентификатору - его возвращает event detail contactFormId, если на сайте несколько форм и нужны свои цели для каждой. Такой код легко адаптировать под собственные задачи проекта - например, отправлять разные цели для разных форм на одной странице.
Куда вставлять этот script: место вставки проще всего выбрать в том же плагине Insert Headers and Footers, в поле для футера, перед закрывающим тегом body - это стандартное место установки кода для большинства сайтов на WordPress. Если вставляете вручную в footer.php темы, оборачивайте код в тег script и следите, чтобы он шёл после подключения счётчика Метрики.
На аудите клиентских сайтов эта ошибка встречается регулярно: код события либо вставлен в шапку до объявления функции ym, либо забыт вовсе после смены темы. Связка работает только если счётчик и событие живут на одной странице сайта.
После добавления кода отправьте тестовое сообщение через форму и проверьте результат в отчёте по целям. Если счётчик не сработал, откройте консоль браузера и убедитесь, что скрипт не выдаёт ошибок при загрузке страницы.

Настройка целей для нескольких форм и проверка работоспособности
Если на сайте несколько форм CF7 - в шапке, в футере, на странице контактов - и для каждой нужна своя цель, пригодится event.detail.contactFormId. У каждой формы свой идентификатор, и в коде можно сделать простое условие: если ID формы совпадает с нужным, отправлять определённую цель. Так вы получите отдельную статистику по каждой форме, а не общую цифру по всем отправкам.
Проверка цели выполняется через консоль разработчика (F12), вкладка Console. Выполните тестовую отправку формы - там должна появиться надпись об успешной отправке события ym и номере цели, без ошибок. Детали ошибки, если она есть, тоже видно прямо в консоли. Дальше открываете отчёт "Live-данные" в Метрике - там события видны почти сразу, в отличие от обычных отчётов, где данные обновляются с задержкой. Если всё настроено верно, вы увидите строку с достигнутой целью.
Типичные ситуации, когда цель не засчитывается: неверный идентификатор цели - опечатались при создании или скопировали код из другого проекта и забыли поменять номер; счётчик не грузится из-за кэширующего плагина, который агрессивно минифицирует JS и ломает порядок скриптов; событие не срабатывает, если обязательное поле формы не заполнено и вместо успешной отправки появляется сообщение об ошибке валидации CF7. Форму нельзя оставить незаполненной, иначе проверка покажет неточный результат.
Прежде чем закрывать задачу, убедитесь, что заполнили форму полностью тестовыми данными, дождались надписи о завершении отправки и только потом смотрели консоль. Мы в студии на этом этапе всегда тестируем форму дважды: с ошибкой в обязательном поле и с корректными данными, чтобы увидеть разницу в поведении события и убедиться, что цель считает только реальные заявки, а не попытки отправки. Тестируйте форму перед запуском рекламы, чтобы быть уверенным: настройка цели сделана верно и бюджет не уйдёт впустую.
Готовые решения: плагины интеграции CF7 с Яндекс.Метрикой
Если возиться с кодом не хочется или нет прав на правку файлов темы, есть готовые плагины интеграции CF7 с Метрикой. Некоторые из них добавляют отдельную вкладку "Яндекс.Метрика" прямо в редакторе формы: это делается прямо в настройки плагина - выбираете нужную цель из списка, привязанного к счётчику через API, и сохраняете форму без единой строчки кода.
Такой подход стоит выбрать, если у вас нет доступа к разработчику постоянно, права в админке ограничены ролью редактора, или просто нужно быстро запустить настройку без ожидания правок файлов. Плюсы очевидны: экономия времени и минимум технических знаний, не нужно углубляться в детали установки кода вручную. Минусы тоже есть - лишний плагин нагружает сайт, а при обновлении CF7 или самой Метрики зависимость от стороннего разработчика плагина может привести к тому, что интеграция временно перестанет работать.
Кратко о Google Analytics: если вы используете обе системы аналитики, событие wpcf7mailsent можно передать и туда через Google Tag Manager (менеджер тегов Google) - один код формы, два получателя данных. Это удобно, когда часть команды работает с отчётами Яндекса, а часть - с Google.
Для WooCommerce схема похожая: помимо форм обратной связи, полезно настроить цели на оформление заказа, покупку товара и добавление в корзину. Эти цели строятся не через CF7, а через встроенные события WooCommerce или отдельные плагины интеграции, но принцип тот же: вы определяете действие и привязываете его к цели в Метрике. Если тема отдельная и нужны подробности по SEO и аналитике для интернет-магазина, рекомендую разобрать её в отдельном материале.

Чек-лист настройки целей Яндекс.Метрики на WordPress
Соберём всё пройденное в короткий чек-лист - вот шаг за шагом, что нужно сделать:
- Установить счётчик Метрики на сайт и убедиться, что он собирает визиты
- Выбрать тип цели, который подходит под задачу (JS-событие для форм, посещение страниц для "спасибо")
- Создать цель в интерфейсе Метрики и сохранить идентификатор
- Добавить код передачи события в шаблон или подключить плагин интеграции
- Проверить срабатывание через консоль разработчика
- Смотреть отчёт по конверсиям, который строится на основе достигнутых целей
На примере одного из проектов такая настройка дала полезную информацию уже в первый месяц: стало видно, что часть рекламных кампаний в контекстной рекламе приводила посетителей на сайт, но заявок с этих объявлений почти не было. Раньше эту информацию просто не видели - смотрели только общий трафик. После обновления настройки целей клиент перераспределил бюджет в пользу кампаний, которые реально давали заявки.
Несколько полезных советов напоследок. Проверяйте цели примерно раз в месяц, а не только один раз при установке - особенно после смены темы, обновления плагинов CF7 или переезда на новый шаблон формы. Технически цель может остаться в интерфейсе, но код события давно потерян при обновлении, и статистика тихо обнуляется, а вы узнаёте об этом слишком поздно. Простая ежемесячная проверка ловит такую ситуацию заранее. Проверяйте настройки прямо в админке сайта и держите чек-лист обновлённым. Если что-то не работает после обновления плагинов, обращайтесь в техподдержку хостинга или к разработчику темы. Обычно решение находится в небольшой правке кода, которая потом годами работает без внимания.
Данная статья основана на личном опыте автора и актуальна на момент публикации. Интерфейсы сервисов и алгоритмы поисковых систем регулярно меняются - рекомендую проверять актуальность инструкций на официальных ресурсах. Если у вас остались вопросы - задайте их в комментариях.
И честная оговорка напоследок: если после чек-листа осталось ощущение «слишком много кода» - эту задачу необязательно решать самому. На бирже Kwork настройку целей Метрики делают за несколько сотен рублей, и по опыту студии дешевле заказать её один раз, чем неделями смотреть на пустой отчёт по конверсиям.
Список литературы
- Яндекс.Метрика. Справка - «Рекомендуемые цели»
- Яндекс.Метрика. Справка - «Как сделать отчёт по цели»
- Яндекс.Бизнес. Справка - «Настроить цели в Яндекс Метрике»
- Contact Form 7 - официальная документация плагина, раздел DOM events











