Главная Пинаем пингуем Яндекс и Google

Пинаем пингуем Яндекс и Google

Раздел: Оффлайн, 15 мая 2008 13 комментариев

Продолжаем тему XML-RPC, поднятую в прошлых постах. Сегодня расскажу, как сообщить Яндексу и Google о том, на вашем сайте что-то изменилось. Делается это с помощью механизма pingback’ов.

Wikipedia:

A Pingback is one of three types of Linkbacks, methods for Web authors to request notification when somebody links to one of their documents. This enables authors to keep track of who is linking to, or referring to their articles. [...].

Essentially, a Pingback is an XML-RPC request (not to be confused with an ICMP ping) sent from Site A to Site B. However, it also requires a link. When Site B receives the notification signal, it automatically goes back to Site A checking for the existence of a live incoming link. If that link exists, the Pingback is recorded successfully. This makes Pingbacks less prone to spam than Trackbacks.

В Вордпресса этот механизм работает, стоит лишь указать нужные адреса:

http://ping.blogs.yandex.ru/RPC2

http://blogsearch.google.com/ping/RPC2

Бегиннер работает не на Вордпрессе, значит надо поработать ручками :) Для пинга используются функции weblogUpdates ([ссылка]). Подробнее о пингах Яндекса можно почитать тут, для Google – тут.

Итак, переходим от слов к делу.


require('IXR_Library.inc.php');

// Что посылаем в пингах
// Название сайта
$siteName = 'Начинающий водитель';
// Адрес сайта
$siteURL = 'http://www.avtobeginner.ru/';
// Адрес страницы, которая изменилась (например)
$pageURL = 'http://www.avtobeginner.ru/news/test.html');
// Адрес страницы с фидом
$feedURL = 'http://www.avtobeginner.ru/news.rss';

/**
* Яндекс.Блоги
*/
$pingClient = new IXR_Client('ping.blogs.yandex.ru', '/RPC2');

// Посылаем challange-запрос
if (!$pingClient->query('weblogUpdates.ping', $siteName, $siteURL, $pageURL)) {
echo 'Ошибка ping-запроса [' . $pingClient->getErrorCode().'] '.$pingClient->getErrorMessage();
}
else {
echo 'Послан ping Яндексу';
}

/**
* Google
*/
$pingClient = new IXR_Client('blogsearch.google.com', '/ping/RPC2');

// Посылаем challange-запрос
if (!$pingClient->query('weblogUpdates.extendedPing', $siteName, $siteURL, $pageURL, $feedURL)) {
echo 'Ошибка ping-запроса [' . $pingClient->getErrorCode().'] '.$pingClient->getErrorMessage();
}
else {
echo 'Послан ping Google';
}

Все. Для русскоязычных сайтов, я считаю, что этого вполне хватит.

Собственно, все это успешно работает на начинающем водителе. Скоро места для иконок-кнопок не хватит :)


Смотрите также:

13 комментариев

  1. Клиент пишет:

    Пользователем ВП (WordPress) намного легче, там все автоматизировано.
    Для незнающих: Настройки -> Написание -> В поле “Сервисы обновления” вписываем:
    [ссылка]
    [ссылка]
    [ссылка]
    Жмем обновить ;)

  2. Knave пишет:

    Согласен.

    Я так и написал:

    В Вордпрессе этот механизм работает, стоит лишь указать нужные адреса

  3. Максим пишет:

    Яша теперь принимает SITEMAP в XML

  4. Knave пишет:

    Это очень хорошо, я уже добавил.

  5. Schnaps пишет:

    а фигли тоглку? добавил у гуглу карту в XML гугла через 2 дня пришла и все проиндексировала, а вот яша чото уже неделю прийти не может :( лучше расскажите есть какой нить злой метод чтоб у гуглы из песка сайт вытащить? в панели вебмастера гугля говорит что контент не повторяется, в выдаече по домену все страницы показывает, а в серпе по ключевикам позиций никаких нету :(
    вот сайт [ссылка] сайт мой самый первый сделан кривовато… но он для сапы…. :]

  6. Knave пишет:

    Яндекс – тормоз в отношении индексации. Остается только одно – ждать.

    Можно еще ссылок побольше на свой сайт поставить, чтоб быстрее проиндексировал.

  7. Alex_K пишет:

    Яндекс – тормоз. Могут и наказать за такие слова :)

  8. Hidden Object пишет:

    Что то я не понял, подскажите пожалуйста, где можно взять эту `IXR_Library.inc.php` ?

    1. Knave пишет:

      [ссылка]

  9. БECCTЫДHИK пишет:

    Прикольно! Спасибо за статью.

  10. ИМХО, Все таки разные вещи (разные модули одной поисковой машины) пинг сервису вебмастера и пинг модулю отвечающему за блоги. Sitemap универсален и не привязан к платформе и формату.

    В Google Sitemap Generator нашел кусок кода:

    //Ping Google
    if($this->GetOption(“b_ping”) && !empty($pingUrl))
    { $sPingUrl=”http://www.google.com/webmasters/sitemaps/ping?sitemap=”

    И для Яндекса есть подобный http-пинг:
    [ссылка]

    кто возьмется доработать указанный плагин?

  11. Masin пишет:

    а сайты свои так пинговать можно?

© 2008–2010 Копилефт и все такое...