> orange
заказ сайта "Орандж-К" веб студия заказ сайта
 
Главная > Статьи > Геотаргетинг - реализация в сети

Геотаргетинг - реализация в сети

Геотаргетинг или региональная привязка в сети очень похож на клоакинг (маскирование), поскольку предоставляет различный контент в зависимости от типа посетителя, но в данном случае разграничение выполняется по территориальному признаку. Поисковые роботы не рассматриваются как-то иначе по сравнению с людьми-посетителями. Эта техника успешно используется, например, когда нужно показывать различный контент пользователям из разных регионов.

Реализация региональной привязки мало, чем отличается от реализации маскирования, которая была описана в статье "Приемлемые области применения клоакинга (маскирования)". Поэтому для тех, кто знаком с этой статьей, при чтении данной работы может возникнуть ощущение, что здесь описывается очередной метод допустимого маскирования. И это естественно, поскольку и маскирование, и региональная привязка обычно реализуются с помощью одной и той же техники — подмены по IP.

Региональная привязка это поисковая оптимизация, которая позволяет сайту перестраивать контент для различных регионов. Например, Google использует региональную) привязку для перенаправления пользователей www.google.com в специальные домены отдельных стран, и такая подмена по IP считается вполне допустимой практикой. Хотя это, на наш взгляд, крепко не стыкуется с официальными заявлениями Google по поводу маскирования.

Региональная привязка считается приемлемой всеми поисковыми системами [1]. Мэтт Каттс из Google утверждает (http://www.mattcutts.com/blog/boston-pubcon-2006-day-l/#comment-22227): "Подмена по IP (для региональной привязки) вполне допустима, но не делайте ничего специально для Googlebot. Просто считайте его обычным пользоватем посетившим ваш сайт". Но поскольку Google в своих алгоритмах определения ранга может использовать физическое местоположение вашего Web-сервера, то, возможно, стоит использовать эту технику для перенаправления пользователей на сервер, который расположен в их регионе, а не просто заменять контент. Это один из примеров, который рассматривается в данной статье.

Новый релиз поиска Яндекса - «Арзамас»

8 апреля 2009 г. Яндекс предложил релиз нового поискового алгоритма. 10 апреля об этом было официально объявлено в блоге Яндекс.Поиска. Алгоритм, анонсированный как «Анадырь», вышел под именем «Арзамас». Пожалуй самым важным нововведением стала географическая привязка формирования выдачи. Основной особенностью новой поисковой программы Яндекса специалисты посчитали отличие региональной выдачи от московской и питерской (http://www.seonews.ru/events/detail/116931.php).
Сам алгоритм формирования региональной привязки вызывает ряд вопросов:
1. Как определяется местонахождение пользователя?
2. Как определяется региональная привязка сайта?
3. В каких случаях географические факторы более весомы, в каких менее?
По первому вопросу - ясно, это определение местонахождения по IP. Уже известно, что у пользователя, который действительно находится в Санкт-Петербурге другая выдача, нежели у пользователя, который выбрал Петербург с помощью tune.yandex.ru. Играет роль и региональность запроса, а также его прагматика (в Яндексе запросы классифицируются по прагматикам, то есть по потребностям пользователя, целям, которые он преследует в поиске).
Однако факторов региональной привязки сайта на самом деле может быть больше:
- География домена (см. выше)
- Регион согласно Яндекс.Каталогу (проверить, к какому региону приписан ваш сайт, можно там)
- Упоминания географических объектов в текстах на сайте, в мета-тэгах
- Региональный URL (например, 2moscow.msk.ru)
- Указание на сайте контактных данных организации, телефона с кодом города
- Регистрация сайта в каталогах, подобных «Жёлтым страницам» - организация с адресом и её сайт
- Александр Садовский обещал, что в Панели Вебмастера появится возможность указать регион сайта
- Ссылочные факторы – ссылки с региональных сайтов, анкоры с географическими наименованиями, и т.д.
- Есть предположение, что на региональность влияет посещаемость: Яндекс учитывает, из какого региона на сайт заходят пользователи.(Subscribe.Ru, Продвижение сайта. Профессиональные советы экспертов №277)

Важно помнить, что Яндекс относит те или иные факторы не к сайтам, а к разделам сайтов. Разделом может оказаться и сайт целиком, и одна страница, а по некоторым предположениям, и часть страницы. Именно поэтому в региональной выдаче появляются внутренние страницы, более релевантные региональному запросу, чем главная страница. Однако рассмотрение столь широкого спектра факторов региональной привязки выходит за рамки данной статьи, поэтому в дальнейшем ограничимся подменой по IP.

Одним из очевидных недостатков региональной привязки является то, что ее могут ввести в заблуждение виртуальные частные сети и нестандартные сетевые конфигурации, охватывающие несколько стран. Это может причинить неудобства, но они затронут лишь небольшое количество пользователей [1].

Далее мы создадим таблицу базы данных geo_locate_data для хранения диапазонов региональных IP-адресов, затем мы создадим простую библиотеку региональной привязки, в виде класса SimpleGeoLocate, который содержит все необходимые для региональной привязки возможности.
Этот класс SimpleGeoLocate будет содержать три метода, которые будут применяться в приложениях.

- getRegion () — принимает необязательный IP-адрес и возвращает код страны для данного IP. Если IP не задан, метод возвращает регион текущего посетителя.

- isRegion() — принимает код региона и необязательный IP-адрес. Возвращает true, если код региона совпадает с регионом IP-адреса, и false в противном случае. Если IP не задан, используется адрес текущего посетителя.

- importGeoLocatingData () — загружает в таблицу geo_locate_data базы данных файл региональной привязки MaxMind.

Ясно, что база данных региональной привязки не будет изменяться так же интенсивно, как данные поискового агента, при реализации маскирования. Поэтому в данном случае мы не будем реализовывать возможность ее автоматического обновления. Здесь просто предполагается, что мы один раз заполним базу данными региональной привязки, а затем лишь будем периодически ее обновлять.
Воспользуемся частично бесплатной базой данных региональной привязки, предоставляемой MaxMind (http://www.maxmind.com/).
Итак, мы создадим свою библиотеку региональной привязки, которая будет выдавать различные приветственные сообщения вашим посетителям. Например, посетитель из Беларуси получит сообщение: "Привет, посетитель из Беларуси !" , а пользователь из России — "Привет, посетитель из России !"

Реализация региональной привязки

Для реализации примера понадобится Apache, доступный из Интернета (для пользователей "Денвера" рекомендуем прочитать http://www.denwer.ru/faq/shared.html) , и РНР, установленный, как модуль Apache. Для тех, кто не знаком с "Денвером" можно предложить аналогичное изделие: XAMPP - это пакет, сделанный в рамках проекта Apache Friends (Друзья Апач, http://www.apachefriends.org/en/xampp.html ), куда входят Apache, PHP, MySQL и другие полезные вещи. Входите по вышеуказанному адресу и запускаете инсталяцию для вашей ОС. Apache и MySQL обязательно установите в виде служб (service),тогда они будут доступны из Интернета, и вопросов, как в "Денвере", не возникнет.

Самым простым, на наш взгляд, является просто завести отдельную папку на вашем собственном хосте, прикрыв ее от любопытствующих с помощью, скажем таких директив в robots.txt :

User-Agent:*
Disallow:/seophp

Дальнейшее изложение предполагает некоторое знакомство с PHP и MySQL.

1.Создадим в нашей MySQL базе seophp таблицу geo_locate_data для хранения диапазонов региональных IP-адресов. Для этого выполним следующие команды SQL:


USE seophp;
CREATE TABLE `geo_locate_data` (
`id` int(11) NOT NULL auto_increment,
`start_ip_text` varchar(15) NOT NULL default '',
`end_ip_text` varchar(15) NOT NULL default '',
`start_ip_numeric` bigint(20) NOT NULL default '0',
`end_ip_numeric` bigint(20) NOT NULL default '0',
`country_code` char(2) NOT NULL default '',
`country_name` varchar(50) NOT NULL default '',
PRIMARY KEY (`id`),
KEY `start_ip_numeric` (`start_ip_numeric`,`end_ip_numeric`),
KEY `country_code` (`country_code`)
);

2.Создайте в папке seophp папку с именем geo_locate_data. Затем загрузите файл http://www.maxmind.com/download/geoip/database/GeoIPCountryCSV.zip и распакуйте его в эту папку. В папке geo_locate_ data должен появиться файл GeoIPCountryWhois.csv.

3. Создадим конфигурационный файл seophp/include/config.inc для нашей базы даных:

include/config.inc


4. Опять же в папке seophp/include создадим файл simple_geo_locate.inc.php , куда поместим вышеупомянутый класс SimpleGeoLocate.

simple_geo_locate.inc


5. Создадим в папке seophp файл geo_locating_prepare.php и поместим в него следующий сценарий:

geo_locating_prepare.php


6. Теперь загрузим страницу http://seophp/geo_locating_prepare.php , немного подождем пока данные региональной привязки загрузятся в нашу БД , их там порядка 60 тысяч записей. Если все нормально, то будет выдано "База данных региональной привязки обновлена".

7. И, наконец, создадим в папке seophp файл geo_locating_test.php и поместим в него следующий сценарий:

geo_locating_test.php


Теперь, если посетитель из Беларуси загрузит этот сценарий, то получит сообщение: "Привет, посетитель из Беларуси !" , а пользователь из России получит: "Привет, посетитель из России !"

Если же вы загрузите этот сценарий с локальной машины, то ваш IP-адрес будет равен 127.0.0.1. Данный адрес не принадлежит какой-либо стране, поэтому вы получите сообщение "Привет, посетитель! Мы не смогли определить код вашей страны!" Для проверки своего региона вам нужно ввести свой сетевой IP-адрес во втором параметре метода SimpleGeoLocate::isRegion() или в первом параметре метода SimpleGeoLocate::getRegion().

Итак, мы научились выдавать различные выходные данные в зависимости от страны пребывания посетителя. Другим известным применением региональной привязки, о котором упоминалось в начале статьи является перенаправление пользователей на локализованные Web-сайты в зависимости от их регионов. Это похоже на перенаправление сайтом Google посетителей из зарубежных стран с www.google.com на соответствующие локальные версии Google.

Вот пример реализации этой возможности с помощью нашей простой библиотеки региональной привязки. Для перенаправления итальянских пользователей на сайт http://it.example.com нужно сделать примерно так:
if (SimpleGeoLocate::isRegion('IT')) {
header('Location: http://it.example.com');
exit() ;
}

Итак: региональная привязка повсеместно признается допустимой для выдачи более качественной информации зарубежным посетителям. Но ее работа, тем не менее, опирается на технологию подмены по IP.
1."Professional Search Engine Optimization with PHP. A developer's Guide to SEO"- J.Sirovich, C.Darie.Wiley Publishing,Inc.,2007, ISBN 978-0-470-10092-9.