Опубліковано: 9 листопада 2011 / Оновлене: 19 cічня 2016
Всім привіт, друзі. Вирішив потихеньку продовжувати поповнювати блог публікаціями по роботі і налаштуванні 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><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'/ Error404? Page =' + document.location.pathname + document.location.search + '& from =' + document.referrer
розбираємо:
- location.pathname - повертає шлях в url'е.
Наприклад, для сторінки https://alaev.info/blog/post/2784 буде повернуто значення / blog / post / 2784 - location.search - повертає запит в url'е.
Наприклад, для сторінки https://alaev.info/feedback.html?email=example@mail.ru буде повернуто значення [email protected] - document.referrer - повертає url документа з якого був здійснений перехід, іншими словами реферер.
Приклад, я вважаю, не потрібен, і так все зрозуміло;)
Тепер повернемося до коду Google Analytics:
_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]);
Цей код передає в статистику перегляд сторінки, а нашому випадку це буде віртуальна сторінка / 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']); (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><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 розуміти пошуковий трафік !
З повагою, Олександр Алаев
Опубліковано: 9 листопад 2011
TrackPageview', '/ error404?
TrackPageview', '/ error404?
Html?
Ru буде повернуто значення ?
TrackPageview', '/ error404?
TrackPageview', '/ error404?
Protocol?
Protocol?
TrackPageview', '/ error404?