Ne v kontakte Asocial programmer's blog

Сравнение выдачи по регионам: Я.Вебмастер.

Не секрет, что с выходом Арзамаса сообщество сеошников пришло в некоторое смятение. Одним из популярных поводов для оного было как нормально продвигать сайты и отчитываться перед заказчиком, если у тебя выдача одна, у заказчика - другая, а у потенциального клиента - третья.

И вот, спустя две недели после релиза, Яндекс наконец анонсировал новый инструмент для сравнения выдачи по разным регионам. Однако, тут имеет место небольшой казус, о котором я подробно расскожу в конце поста, из-за которого этот инструмент работает только в Опере. Если вы, как и я, пользуетесь Firefox или, не дай бог, IE, то выход все равно есть, даже два.

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

  1. Открываете в Яндексе выдачу по интересующему вас вопросу.
  2. Дописываете в адресной строке параметр lr=<код_региона>, где код региона для Москвы - 213, Питера - 2, всей прочей России - 225, Украины - 187 и Казахстана - 159.

Все, желанная выдача перед вами.

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

  1. Скачиваем скрипт.
  2. Меняем расширение на .php
  3. Заливаем на сервер и открываем в браузере.
  4. Далее все интуитивно понятно.

Хинт: для работы скрипта нужно, чтобы в php.ini стояло allow_url_fopen=On.

Ну а теперь об этом самом казусе, на который я ссылался в начале. Суть в следующем: региональная выдача  загружается фо вреймах, а у яндекса испокон веков есть скрипт, запрещающий открывать его в них. Находится он в самом начале файла http://css.yandex.net/css/search/r9/_serp.js:

if((self.parent&&!(self.parent===self))&&(self.parent.frames.length!=0)){self.parent.location=document.location}

Забавно, что в Опере, кстати переброс не происходит. Причина в том, что предшествующий редиректу код непосредственно в теле страницы вызывает ошибку Security error: acodeempted to write protected variable и все дальнейшие скрипты не отрабатывают:

<script type="text/javascript"> var code = { // Вырезано dsuf: "ru", // Вырезано } document.domain = (code.dsuf == 'ua') ? 'yandex.ua' : 'yandex.ru'; // Вот тут возникает ошибка </script>

Из этого, кстати, можно сделать вывод, что программисты Яндекса любят Оперу, иначе они бы обязательно заметили проблему. :)

UPD. Яндексоиды баг починили.