Проверка обратной ссылки по данным Яндекс.Вебмастера

В своей заметке: «Скрипт проверки наличия обратной ссылки» — я предложил одно из решений, позволяющее проверять наличие обратных ссылок. Но в тоже время, обещать, что это позволит вам «спать спокойно» будет, конечно же, не правдой.

Ясно, что нам нужно более надежное решение. Одно из таких я и предлагаю Вашему вниманию. Компания Яндекс, пошла на встречу веб-мастерам и предоставила в использование такой сервис как Яндекс.Вебмастер. При клике на ссылку «Мои сайты», после авторизации, Вы будете иметь возможность в получении доступа к очень полезные данным, которые после добавления прошли подтверждение «прав на управление» сайтом. На нашем примере это «внешние ссылки на страницы сайта»: Индексирование сайта > Входящие ссылки > Внешние.

Самый простой способ для проверки: есть ли Ваша ссылка на том или ином сайте, — это воспользоваться следующим адресом:

http://webmaster.yandex.ru/site/indexed/links_from.xml?host=[ID хоста]&path=*&fromhost=[хост сайта]

где ID хоста — уникальный идентификатор сайта в системе Яндекс.Вебмастер, а хост сайта — хост (домен) сайта на котором происходит проверка наличия ссылки. Всё это очень хорошо, но конечно не столько удобно как бы этого хотелось.

Разработчики Яндекса тоже это понимают. Поэтому и предоставили такую возможность как получение всех внешних ссылок в виде одного архива. Для этого заходите на страницу «Настройки» (ссылка находится в верхнем правом углу, под вашим логином). В левой колонке находите ссылку «Выгрузка внешних ссылок» — кликаете. На странице, которая откроется, устанавливаете галочку «Я хочу выгружать внешние ссылки в виде архива» и кликаете на «Сохранить». Архив будет формироваться в течение недели, а в дальнейшем будет еженедельное обновление. Адрес доступа к архиву имеет следующий вид:

http://webmaster.yandex.ru/downloads/offline_links.gz.xml?host=[ID хоста]

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

Вот формирование архива закончено, и мы его скачали. Для одного из моих сайтов объём такого архива состоит из 3,5 Мб, а файл, который в нём содержится, весит все 44 Мб. Всё дело в том, что в нем находятся все внешние ссылки: со всех сайтов, со всех страниц сайтов — плюс тексты ссылок и адреса. Ясное дело, что обработка такого файла будет несколько затруднительной. Особенно если дело касается виртуального хостинга.
Возникает вечный вопрос: «что же делать?» — и я принял решение создать php-скрипт предварительной обработки, использование которого позволит уменьшить объем данных до нормальных 33 Кб. Не углубляясь в подробности, отмечу лишь то, что скрипт читает исходный файл ($source) а затем записывает те данные, которые обработал – фрагментами, небольшими частями длинной в 8192 байт. Основным преимуществом тут является то, что в процессе происходит отслеживание так называемого «переноса каретки» и отсечение обработанных данных. В результате при помощи скрипта происходит формирование файла ($resource) из названий хостов (доменов) сайтов, которые разместили ссылку на ваш сайт.

Стоит учитывать, что исходный файл данных предоставляется в кодировке UTF-8. Для корректной работы php-скрипта лучше использовать mbstring функции. Если Вами так же используется сборка Денвер, для личного локального сервера, то вероятно для Вас будет полезной информация, о том, что для подключения этих функций Вам будет необходимо раскомментирование следующей строки в файле php.ini:


;extension=php_mbstring.dll

т.е. нужно будет убрать перед ней знак точки с запятой – «;». Так же, есть еще и соответствующие настройки для данного модуля. Я применил только две из них, которые привожу уже с установленными значениями:


mbstring.language = Russian
mbstring.internal_encoding = UTF-8

Если не ошибусь, то для установки кодировки прямо в php-скрипте можно использовать функцию:


mb_internal_encoding("UTF-8");

Также, стоит учитывать и время обработки скрипта. У меня на это ушло несколько секунд, но тем не менее. Как я понимаю, то за время на обработку отвечает опция:


max_execution_time = 30

В представленном примере, выставлены 30 секунд. Однако, возможно и увеличение этого времени и из php-скрипта при использовании функции:


set_time_limit(30);

Здесь к 30 имеющимся секундам добавляются ещё 30.

Сам же скрипт, предназначенный для предварительной обработки данных по внешним ссылкам Яндекс.Вебмастер можно скачать здесь. Спасибо за Ваше внимание.
[author_infos]

kurilka

Несколько слов об авторе kurilka

Каждому любознательному человеку нужно посетить данный сайт. Здесь вы можете найти разнообразные заметки на любую тему. На этом сайте вы найдете заметки на тему от денег и юмора до уже серьезных вещей таких как софт и железо.
http://kurilka.co.ua

Пока молчат

Leave A Reply

You must be logged in to post a comment.