Блог о SEO оптимизация и поисковое продвижение
8 Дек
Давным-давно полюбил статистику сервиса LiveInternet, и ни разу не было повода усомниться в своей любви. До сегодняшнего дня, точнее ночи... Но сначала опишу, чем мне так нравится счётчик LiveInternet. Его используют многие сайты, и можно получить представление о посещаемости почти любого сайта (хиты и хосты за день, неделю, месяц) даже если статистика под паролем, для этого надо воспользоваться ссылокой:
http://counter.yadro.ru/values?site=адрес-сайта.ру
Не забыть только подставить вместо «адрес-сайта.ру» нужный домен. Далее, т.к. синтаксис данных, возвращаемых counter.yadro-м очень прост, то идеально подходит для парсинга. Например, у меня есть скриптец, где в одной таблице выводится статистика по доброму десятку моих доменов. Выбрав домен в таблице, нажатием одной кнопки можно переместиться на страницу статистики сайта LiveInternet, где уже можно смотреть и поисковые запросы, и источники трафа, и многое другое.
А сегодня решил на ночь глядя как всегда глянуть статистику по своим сайтам, и опешил. На одном сайте число ~300 моментально упало на ноль:
А через некоторое время появилась красная надпись «Статистика за 7 декабря будет доступна 8 декабря». И стали считаться новые посетители, но старые (потерянные) так в статистике и не появились. Куда пропал пипл, непонятно. Теперь я просто уже склонен недоверять данным статистики LiveInternet
Кто-то, помнится, рекомендовал мне сервис Google-Analytics, где также есть все необходимые статистические данные для анализа сайта. Но мне теперь уже ясно, насколько бы ни были популярны и авторитетны сервисы — все они имеют право глючить, а их бесплатность подразумевает оставлять претензии при себе.
Но что может быть точнее, чем статистика посещений, полученная на самом сайте, без участия сторонних сервисов? Для этого потребуется поддержка PHP, что в наш высокотехнологичный век является почти стандартной услугой хостера. Не буду стремиться в одной статье объять всё необъятное, потому расскажу только как считать, оставляя за кадром другие связанные вопросы: «куда запоминать полученные сведения?», «как отображать статистику» и т.п. — кроме того, это дело вкуса.
Основные способы вставки своего счётчика:
Подключив фантазию, можно и ещё способов придумать (например, загрузка счётчика в iframe), но я ограничусь перечисленными. Не один из этих способов не идеален. Больше всего посещений будет учтено при вставке счётчика в PHP-код страницы. Но таким образом сложно определить, является посетитель человеком или ботом. Вообще, различение происходит по передаваемым сведениям «User-Agent» (глобальная константа $_SERVER['USER_AGENT']). В этом поле нужно искать слово, которое идентифицирует посетителя как поискового бота. Например, таким образом:
class robot_ident {<br />
var $user_agent;<br />
var $name;<br />
function robot_ident () {<br />
$this->user_agent = @ $_SERVER['USER_AGENT'];<br />
$this->name = '';<br />
# Слово, выявляющее принадлежность к поисковым роботам<br />
if (stristr ($this->user_agent, "Rambler")) $this->name = 'rambler';<br />
if (stristr ($this->user_agent, "Google") ) $this->name = 'google';<br />
if (stristr ($this->user_agent, "Yandex") ) $this->name = 'yandex';<br />
if (stristr ($this->user_agent, "Aport") ) $this->name = 'aport';<br />
if (stristr ($this->user_agent, "msnbot") ) $this->name = 'msnbot';<br />
if (stristr ($this->user_agent, "Yahoo!") ) $this->name = 'yahoo!';<br />
# И так далее.........<br />
}<br />
}
Но это не значит, что если мы не идентифицировали бота, то это непременно человек. Это может быть бот неучтённой поисковой системы или другого сервиса, а также бот может замаскироваться под браузер человека, чтобы проверить сайт на клоакинг. Вывод: вставлять счётчик в PHP-код страницы имеет смысл, если нас интересуют заходы на сайт ботов поисковых систем.
Наряду со счётчиком ботов не плохо бы всё же считать и реальных посетителей. Вариант с картинками меня, лично, не устраивает. Да, не все боты загружают картинки, но есть некоторые, которые всё же картинки загружают, а значит статистика будет завышенной — в качестве реальных посетителей посчитаются некоторые боты. При использовании java-script мы, наоборот, не досчтитаемся некоторых посетителей (может, одного из тысячи, десяти тысяч...) по той причине, что не у всех может быть включён java-script. Раньше много говорили по поводу опасности java-script и как важно его отключить. Наверное, есть люди, которые включают java-script только по особому случаю. Но оставим лирику, вот пример загрузки счётчика скриптом (вставляется в HTML-шаблон страницы):
<script type="text/javascript"><!--<br />
document.write ('<im'+'g sr'+'c="http://мой-сайт.ру/counter.php?ref'+<br />
escape(document.referrer)+((typeof(screen)=="undefined")?"":";screen"+<br />
screen.width+"*"+screen.height+"*"+(screen.colorDepth?screen.colorDepth:screen.pixelDepth))+<br />
";url"+escape(document.URL)+";"+Math.random()+'" width=3 height=3 alt="">');<br />
//--></script>
Здесь при помощи скрипта мы передаём считающему скрипту (counter.php) страницу, с которой пришёл пользователь (ref), параметры экрана — «ширина*высота*цветность», адрес самой страницы, где расположен счётчик (url), а также к строке запроса добавляется произвольное число, чтобы избежать кэширования счётчика на стороне пользователя. В данном примере счётчик тоже выводится в виде рисунка. Лучше не указывать размеры рисунка «1×1», т.к. такие размеры вызывают подозрение (похоже на стремление что-то скрыть), потому я указал размеры «3×3», вы можете выводить скриптом картинку любых размеров и указать соответствующие размеры. Какие данные можно получить таким счётчиком:
Как и говорил, моё дело — показать, что можно сделать «своими руками», а уже ваше — принять решение, использовать это в своём сайтостроении или нет. Если использовать, то необходимо решить ещё ряд задач: где хранить собираемые данные (лучше использовать MySQL, а не текстовые файлы), как делать выборку, как чистить базу (а это придётся делать, иначе за несколько месяцев её размер может достичь десятков и более мегабайт), как определять уникальность посетителя. Успехов в кодинге!
Запись опубликована 8 декабря 2009 года. Понравился пост? Читайте предыдущие посты рубрики «Web-кодинг»:
RSS подписка (как это?) поможет вам не пропустить ничего интересного на этом блоге.
На «Статистика посещений сайта» получено 3 отзыва
Cкажите, а вот как считать урл сам, и реферер также можно.
Тоесть, в файле counter.php идет обработка же.
а счетчик или информер выводит картинку, но данные цифровые выводит для определенного сайта, для каждого уникально...
Вот, идет обращение в яваскрипте
...url"+escape (document.URL)+";...
на сайте ххх.орг, в четчике
на сайте яяя.ру есть counter.php, который обрабатывает, выдает картинку.
Как в counter.php считать это значение, значение url, чтобы засунуть его в переменную какую-то, и средствами ПХП обработать ?
(тоесть, не должно быть никаких кликов по счетчику, а напрямую сайт и counter.php обмениваются же...)
Cпасибо.
Алекс, как-то путанно, но попробую хоть какую-то ясность внести.
Подключение счётчика в PHP коде можно сделать так:
include "counter.php";
(предполагается, что counter.php в той же папке, что и вызывающий его файл)
При подключении counter.php может получить данные о клиенте, которые он передал (рефку, информацию о браузере, IP и т.п.). А затем может даже нарисовать картинку с цифрой — но это лишняя нагрузка
Спасибо за ответ...
Просто была у меня проблема с кавычками (двойные,одинарные, заслешенные) в яваскрипте, где формировался сам запрос на counter.php
Я возможно неправильно высказался тогда, но смысл был в ГЕТах — и предпологалось, что скрипт стоит на сайте одном, и передает данные на родитель, counter.php, который на другом домене. А counter.php — выдает ему, первому сайту, картинку, ну, как счетчики или информеры одних сайтов мы себе ставим на свой сайт.
Тоесть, надо было же просто считать ГЕт запросы, из «ссылки» в яваскрипте — и все.
А из-за неправильних (а их часто сложно выставить правильно) кавычек — одни ГЕТы , если указаны явно, считывались, а другие, если указать как, напр,
url=”+escape (document.URL)+”; — нет.
Ну, потом разобрался, и ГЕт url нормально считывается,.
Но сначало меня повергло в шок какой-то, ибо немог понять, почему ГЕТ не передается, и начал думать, что это какими-то непонятными, неведомыми мне методами надо обрабатывать ту строку...!
Одним словом — теперь зарублю на носу, хоть уже должен был бы знать, что правильная работа яваскрипта зависит от правильных кавичек, хоть может казатся, что все должно работать и код выглядит якобы работоспособным.
Спасибо.
Ваше SEO-мнение
Я прошу высказать своё мнение, а не оставить ссылку на раскручиваемый сайт. В любом случае, ссылки в комментариях у меня закрыты от индексации, если интересует качественный обмен ссылками -обращайтесь