Привет! Я запускаю обучающие онлайн курсы по SEO. Подробности и форма записи на Alaev.school
promopult
 

Настройка счетчика Google Analytics. Расширенный отчет о 404 ошибках

Отслеживание 404 ошибок в Google Analytics Всем привет, друзья. Решил потихоньку продолжать пополнять блог публикациями по работе и настройке Google Analytics. Сегодня будет небольшая, но от этого не менее полезная заметка о том, как отслеживать 404 ошибки (404 Not Found) на сайте. Но не просто отслеживать, а получать еще очень полезную информацию: адрес страницы, которая отдала ошибку и страницу реферер (страницу с которой был совершен переход). Надеюсь, вы понимаете всю пользу этого метода.

Ведь если у вас большой сайт с десятками тысяч страниц, то отследить битые внутренние ссылки – задача не из легких. Хотя и на сайте с парой сотен страниц (а это любой среднестатистический блог) тоже проблематично найти неправильные ссылки. А если еще и структуру url’ов меняли, то вообще…

Короче, я надеюсь, что у вас уже давно установлен счетчик GA на сайте, при этом он новой версии (асинхронный код). Так ведь? Если еще не установили счетчик, то сделайте это, так как постепенно я планирую написать много полезных публикаций про настройку и отслеживание важных событий на сайте.

Хватит воды, приступаю к делу.

Для решения поставленной задачи (отследить битые ссылки и получить при этом максимум полезной информации) нам ничего сверхъестественного не понадобится, а всего лишь простой код:

<script type="text/javascript">
_gaq.push(['_trackPageview', '/error404?page=' + document.location.pathname + document.location.search + '&from=' + document.referrer]);
</script>

Я понимаю, что я не первый, кто об этом пишет, но все варианты, найденные мной в сети, либо для устаревшего кода GA, либо вообще не работают, потому я экспериментировал, пока не получил рабочий вариант.

Итак, представим, что мы сейчас работаем с движком WordPress, а потому идем в админку -> Внешний вид -> Редактор -> Шаблон ошибки 404 (404.php)

Далее в любое место этого файла вставляем указанный выше код. Я вставлял код сразу после заголовка <h2 class="center">Ошибка 404 — Не найдено</h2>.

Я думаю, что и для всех других более или менее приличных движков есть отдельный шаблон вывода сообщения об ошибке. Например, для DLE в папке своего шаблона надо найти файл info.tpl и туда вставить этот код.

Предлагаю сейчас еще раз взглянуть на код и понять, что же он делает и какие данные определяет:

'/error404?page=' + document.location.pathname + document.location.search + '&from=' + document.referrer

Разбираем:

  • location.pathname – возвращает путь в url’е.
    Например, для страницы http://alaev.info/blog/post/2784 будет возвращено значение /blog/post/2784
  • location.search – возвращает запрос в url’е.
    Например, для страницы http://alaev.info/feedback.html?email=example@mail.ru будет возвращено значение ?email=example@mail.ru
  • document.referrer – возвращает url документа с которого был совершен переход, иными словами реферер.
    Пример, я полагаю, не нужен, и так все понятно ;)

Теперь вернемся к коду Google Analytics:

_gaq.push(['_trackPageview', '/error404?page=' + document.location.pathname + document.location.search + '&from=' + document.referrer]);

Этот код передает в статистику просмотр страницы, а нашем случае это будет виртуальная страница /error404 с последующими параметрами, определяемыми JS-скриптом, описанными выше.

Теперь мы знаем, как это работает, пришло время рассказать о некоторых особенностях:

  • Код для отслеживания ошибки должен ОБЯЗАТЕЛЬНО идти после основного кода GA. То есть, если код GA стоит у вас в футере, то это не сработает, надо перенести код ближе к началу документа, например, поставить его сразу после открывающего тега <body>.
  • Код отслеживания ошибки генерирует виртуальную страницу дополнительно к передаваемой странице, отдающей ошибку 404, стандартным кодом. То есть при просмотре страницы с ошибкой в статистике фиксируется просмотр сразу двух страниц, самой несуществующей страницы и виртуальной страницы /error404.
  • Особенностей предыдущего пункта можно избежать только в том случае, если на всех страницах сайта у вас будет вставлен стандартный код GA, а в шаблоне страницы ошибки будет измененный код GA.

    Например, на всех страницах сайта такой код:

    <script type="text/javascript">
      var _gaq = _gaq || [];
      _gaq.push(['_setAccount', 'UA-XXXXXXXX-X']);
      _gaq.push(['_trackPageview']);
      (function() {
        var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
        ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
        var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
      })();
    </script>

    А на странице ошибки такой:

    <script type="text/javascript">
      var _gaq = _gaq || [];
      _gaq.push(['_setAccount', 'UA-XXXXXXXX-X']);
      _gaq.push(['_trackPageview', '/error404?page=' + document.location.pathname + document.location.search + '&from=' + document.referrer]);
      (function() {
        var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
        ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
        var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
      })();
    </script>

После всех настроек данные об ошибках можно найти в отчете: Содержание -> Содержание сайта -> Страницы -> в форме поиска пишем «error404». В новом интерфейсе (интерфейс GA, к слову, меняется чуть ли не каждый месяц, так что будьте внимательны) отчет расположен тут: Поведение -> Контент сайта -> Все страницы -> в форме поиска так же пишем «error404».

Вроде и все. Извиняюсь за то, что в посте нет скриншотов, ошибок у меня нет на блоге (это хорошо, разумеется), а тестовые ошибки показывать как-то не круто.

Надеюсь, эти настройки вам помогут в улучшении вашего сайта. А еще не забудьте прочитать еще один мой пост про Google Analytics: Учим Google Analytics понимать поисковый трафик!

С уважением, Александр Алаев
 
Ерунда и баянЪ!Зачет! Плюсую!
+6
 
Оптимизация сайта

Профессиональный технический аудит и оптимизация вашего сайта.
Тот самый необходимый «фундамент» для успешного продвижения.

от 15 000 руб.
Продвижение сайта

Комплексный подход к решению поставленных задач, будь то достижение заветных позиций в ТОП 10 или увеличение трафика на сайт. В стоимость уже включены полный технический аудит и оптимизация сайта.

от 20 000 руб.
Консультация

У вас недостаточно знаний?
Нужен ответ на ряд вопросов?
Хотите узнать мнение эксперта?
Вы задаете вопрос — я отвечаю!

2 500 руб./час
 
Получай новости блога АлаичЪ'а на e-mail:
 
Другие посты из категории Аналитика:
  1. dachnik (16 комм.)

    не совсем вас понял что будет если у меня на странице с 404 ошибкой выводиться стандартный код GA и после него будет идти указанный вами код. у меня сайт работает на drupal и код отслеживания выводиться модулем на всех страницах

    • АлаичЪ

      Я об этом и писал — в вашем случае (как, собственно, и в моем на всех моих сайтах) счетчик зафиксирует сразу два просмотра страницы. Например, в отчете Google Analytics зафиксируется страница http://site.ru/page-which-not-found.html (это раз) и страница http://site.ru/error404?page=/page-which-not-found.html&from=/referrer-page.html (это два),

      где:

      /page-which-not-found.html — страница, которая не существует и, соответственно, отдает ответ 404 Not Found;

      /referrer-page.html — страница с которой совершен переход на страницу, которая не существует.

      Понятно?

  2. Alex (8 комм.)

    Для WordPress можно заюзать плагин http://wordpress.org/extend/plugins/email-404/

    И получать сообщения в почту.

    • АлаичЪ

      Зачем плагин? Зачем почта? Это все ерунда, когда есть универсальный вариант, который не спамит и никакого мусора в движке ;)

  3. Евген (6 комм.)

    Проблема решается с помощью xenu

    • АлаичЪ

      Ну да, вероятно это и подойдет для очень небольших сайтов.

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

      Нет, я серьезно, вы попробуйте прямо сейчас! А я буду ждать от вас ответа ;)

  4. inftim (1 комм.)

    А как прописать в joomla 1.7 у меня с ним проблемы???

    • АлаичЪ

      В Joomla есть такой файлик, который лежит в папке templates/system/error.php, это самостоятельная html-страница.

      Поэтому вам надо будет не отдельно код вставлять туда, а полностью измененный код счетчика. Как раз для вас подойдет пункт в посте после слов "Особенностей предыдущего пункта можно избежать".

      Вставьте модифицированный код сразу после открывающего тега <body>. Все будет работать!

  5. Window (2 комм.)

    У меня вопросик хотть и не по теме но я так понял вы знатаки джумла. Скажите плиз где можно исправить в шаблоне сайта в верхней шапке надпись адресса фирмы там стоит заголовок h1. Из за этой ошибки сайт в поиске выводит совсем нето что надо сперва.

    • АлаичЪ

      Нет, это не так, я не люблю и не пользуюсь Джумлой, к вашему сожалению. А с ответом на предыдущий комментарий мне помог программист. Как только он будет в сети я попрошу его ответить на ваш комментарий.

  6. Миша unknownbiz (6 комм.)

    У меня cms modx любую страницу смогу настроить как хочу, вопрос про код GA

    1)Нужно ли вписывать дополнительные строки из поста про GA как научить распознавать другие поисковые системы помимо стандартных в код для страницы 404?

    2)У меня сама страница ошибки 404 задана в движке т.е. я номер страницы пишу в поле и создаю страницу 404.

    А потом я когда хочу ее проверить пишу имядомена.ру/керщткиш и отдает мне ошибку 404

    Страница которую я создаю доступна по адресу имя домена/404 — она везде и подгружается

    Как мне лучше сделать? создать отдельный счетчик для страницы 404 +(дополнительные поля из вопроса №1 который выше написал)

    Просто в моем случае конкретной страницы нет, вернее она есть, но на нее с ошибочных страниц не редиректит, а просто подгружает шаблон и отдает правильную ошибку

    • АлаичЪ

      1. Да, надо вписывать, на всякий случай.

      2. Я смутно что понял, на самом деле :( Но 100% вариант — взять и добавить в шаблон, который подгружается при 404 ошибке, тот JS-код, который указан в начале поста и все будет работать!

  7. Андрей (2 комм.)

    Что-то путанно написали:(

    Правильно ли я вас понял:

    если вставить в код ГА строчку _gaq.push (['_trackPageview', '/error404?page=' + document.location.pathname + document.location.search + '&from=' + document.referrer]);

    и поместить код ближе к началу страницы, — то все будет работать, но засчитываться будут две страницы.

    Чтобы этого избежать надо просто в код шаблона страницы об ошибке вставить текущий код ГА, но с добавлением строки _gaq.push (['_trackPageview', '/error404?page=' + document.location.pathname + document.location.search + '&from=' + document.referrer]);

    • АлаичЪ

      Может и путано, но мне все понятно =)

      Чтобы не было «двойного» просмотра, надо сделать так, чтобы на всех страницах сайта вставлялся стандартный код GA, а на страницах 404 немного измененный. А измененный он только в одном месте

      В стандартном коде GA есть такая строчка:

        _gaq.push(['_trackPageview']);

      А в измененном строчка заменяется на такую:

        _gaq.push(['_trackPageview', '/error404?page=' + document.location.pathname + document.location.search + '&from=' + document.referrer]);

      Понятно?

      • Андрей (2 комм.)

        Ага. спасибо.

        Про настройку корзины не хотите написать?;)

        • АлаичЪ

          Про настройку отслеживания действий покупателей в разделе корзины для интернет-магазинов?

          Неее... Я дела с интернет магазинами не имел, и не собираюсь пока, так что в этом вопросе я не компетентен :(

  8. Блогер фотограф (9 комм.)

    А возможно настроить через отдельный профиль и фильтры в профиле, но с возможностью, просмотра страницы, откуда попали на 404

  9. Tania (1 комм.)

    Для сервера типа Apache должен быть файл у папки со страницами сайта и названием

    .htaccess и содержанием файла хотя бы:

    ErrorDocument 404 /?error=404

  10. Дмитрий (1 комм.)

    Содержание-Все страницы. Там есть возможность выбрать основной параметр — заголовок.

    Далее фильтруем по заголовку (title) страницы с ошибкой — ну к примеру Страница не найдена.

    Далее Дополнительный параметр-Целевая страница.

  11. Андрей (1 комм.)

    На друпальный сайт кто нить ставил данный код?

  12. Женя (4 комм.)

    После сделанных манипуляций перестал индексировать страницы гугл. Яндекс как индексировал так и индексирует! В чем может быть проблема?

  13. Иван (10 комм.)

    Подскажите, данная схема:

    В стандартном коде GA есть такая строчка:

    _gaq.push (['_trackPageview']);

    А в измененном строчка заменяется на такую:

    _gaq.push (['_trackPageview', '/error404?page=' + document.location.pathname + document.location.search + '&from=' + document.referrer]);

    Как будут показаны страницы, если пользователь перешел со стороннего сайта или из поисковика. Будет работать? Просто сейчас сделали перенос сайта и все урл перенесли на другие по 301 редиректу, хотелось бы отследить страницы с 404 на которые заходят из сторонних сайтов, а не по внутренним ссылкам. Спасибо.

    • АлаичЪ

      Заходите в отчет: Содержание — Содержание сайта — Все станицы,делайте там поиск по error404

  14. RUS777 (1 комм.)

    А если в страницу с выводом счетчика добавить условие пхп, <? if ($mode=='error404') : ?> то выводим код счетчика с отслеживание страниц 404, если <? else: ?>, то есть если страница существует, то выводим страндартный код ГА, тогда не будет такой проблемы когда считается два захода итд.

  15. Владимир (18 комм.)

    Сделал как Вы и написали. Основной код аналитикса — в хедере. В коде 404 страницы после <h2> добавил скрип. После этого добавил сисмовлы к урл — получил 404 ошибку пару раз. Но в статистике ничего нет... тут же нужно смотреть в Аналитиксе — http://prntscr.com/9cua39?

    • АлаичЪ

      Во вкладке События посмотрите.

      • Владимир (18 комм.)

        В событиях вообще пусто — http://prntscr.com/9dxtz0. При размещения комментария я указывал адрес сайта на котором реализовано. Если можно, посмотрите, пожалуйста, почему может не работать данный метод на моем сайте... Вроде сделал же все как написано... Заранее благодарен.

        • Владимир (18 комм.)

          Здравствуйте, Саша.

          Так и не получил от Вас ответа... Возможно мой комментарий с адресом сайта попал в спам и Вы его не видели... :( Все еще надеюсь, что сможете помочь мне советом, почему описанный Вами метод может не работать на моем сайте на вордпрессе... Все сделал как написано, тем более пример у Вас для вордпрессе как раз, а статистики нет... В чем может быть проблема? Заранее благодарен за ответ.

          • АлаичЪ

            В новом интерфейсе отчет расположен тут: Поведение -> Контент сайта -> Все страницы -> в форме поиска так же пишем «error404».

            • Владимир (18 комм.)

              Спасибо за ответ. Но я там тоже проверял и смотрел сразу же — тоже нет данных...

              В heder.php перед закрывающимся тегом </head> вставлен код Аналитикса.

              В 404.php после заголовка <h2> вставлен скрипт из статьи — вот http://prntscr.com/9s1a60, но данных почему-то нет... :((

              • АлаичЪ

                Значит что-то не правильно. У меня стата есть в GA до сих пор, хотя я данный отчет с момента написания поста не смотрел.

                • Владимир (18 комм.)

                  Все сделал как написано в статье. На скриншотах это показал в комментариях. Значит Ваш метод при каких-то условиях — не работает... :(

Оставь комментарий, Бро!

· Малоинформативные комментарии или комментарии, не содержащие вопрос, удаляются.
· В поле URL оставляйте ссылку только на свой сайт/блог. Эта ссылка для админа, посетители ее не увидят.
· Любой html-код отображается в виде текста, любые ссылки неактивны.
· Для спаммеров - БЛОГ НЕ DOFOLLOW!!!