JavaScript и поисковые роботы

Тема в разделе "JavaScript", создана пользователем Mister Gold, 6 дек 2013.

Модераторы: ZiX
  1. Mister Gold

    Mister Gold Создатель

    Регистр.:
    23 июл 2013
    Сообщения:
    1
    Симпатии:
    0
    Доброе время суток!

    Это вставляется в начале html страницы:

    Код:
    <script type="text/javascript">
    var spider_detect = function(user_agent) {
    var agent_dump = [
    ['Aport', 'Aport robot'],
    ['Google', 'Google'],
    ['msnbot', 'MSN'],
    ['Rambler', 'Rambler'],
    ['Yahoo', 'Yahoo'],
    ['AbachoBOT', 'AbachoBOT'],
    ['accoona', 'Accoona'],
    ['AcoiRobot', 'AcoiRobot'],
    ['ASPSeek', 'ASPSeek'],
    ['CrocCrawler', 'CrocCrawler'],
    ['Dumbot', 'Dumbot'],
    ['FAST-WebCrawler', 'FAST-WebCrawler'],
    ['GeonaBot', 'GeonaBot'],
    ['Gigabot', 'Gigabot'],
    ['Lycos', 'Lycos spider'],
    ['MSRBOT', 'MSRBOT'],
    ['Scooter', 'Altavista robot'],
    ['AltaVista', 'Altavista robot'],
    ['WebAlta', 'WebAlta'],
    ['IDBot', 'ID-Search Bot'],
    ['eStyle', 'eStyle Bot'],
    ['Mail.Ru', 'Mail.Ru Bot'],
    ['Scrubby', 'Scrubby robot'],
    ['Yandex', 'Yandex'],
    ['Mediapartners-Google', 'Mediapartners-Google (Adsense)'],
    ['Slurp', 'Hot Bot search'],
    ['WebCrawler', 'WebCrawler search'],
    ['ZyBorg', 'Wisenut search'],
    ['ia_archiver', 'Alexa search engine'],
    ['FAST', 'AllTheWeb'],
    ['YaDirectBot', 'Yandex Direct']
    ];
    for(var j=0;j<agent_dump.length;j++) {
    if(user_agent.toLowerCase().indexOf(agent_dump[j][0].toLowerCase())!=-1) {
    return agent_dump[j][1];
    }
    }
    return false;
    }
    </script>


    Это вставляется в то место где расположен тизер либо баннер:

    Код:
    <script type="text/javascript">
    if(!spider_detect(navigator.userAgent))
    {
    document.write("рекламный материал");
    }
    </script>


    Проверял на браузере Opera, при вписывании User Agent браузера, реклама не отображалась.

    Возник вопрос, способен ли робот от Яндекса и Google обрабатывать сию конструкцию и не отображать рекламу поисковому роботу?
     
  2. biven

    biven Создатель

    Регистр.:
    22 май 2013
    Сообщения:
    31
    Симпатии:
    11
    Я бы не рискнул. Будь я ботом, меня бы насторожила проверка, являюсь ли я user_agent поисковой системы. Вполне логично, что мне могут показать контент отличный от того, который видит пользователь.
    Правда не знаю, прокатит ли такая схема, если код пропустить через обфускатор.
     
  3. woleboy

    woleboy Постоялец

    Регистр.:
    22 июл 2008
    Сообщения:
    55
    Симпатии:
    6
    я думаю если бот сам видит этот скрипт полностью и сам себе должен запрещать это , то подозрительно конечно.. А если сайт будет запрещать сам выдачу контента то и бот не узнает ничего.
     
  4. esche

    esche

    Регистр.:
    9 авг 2009
    Сообщения:
    359
    Симпатии:
    243
    Вообще, всё тоже самое делается на стороне сервера (будь то PHP или другой серверный язык)...
    Код:
    <?php
    if (!is_search_bot()){
    // тут выводим блок с рекламой
    }
    Реализацию можно подсмотреть здесь, например..
    http://stackoverflow.com/questions/1154420/how-to-detect-search-engine-visites-on-my-site-like-phpbb
    при необходимости - дополнить (yandex, rambler и тд)

    Однако, формально это чистой воды клоакинг, который не приветствуется поисковыми системами.
     
    woleboy нравится это.
  5. Wounderer

    Wounderer Создатель

    Регистр.:
    11 янв 2007
    Сообщения:
    21
    Симпатии:
    6
    Постарайтесь "замаскировать" логику выполнения под что то другое.. Например под вывод комментариев (что поисковые боты вполне хорошо понимают). Используйте в именах переменных и функций завуалированные слова типа "comments, show_comments, detect_comment"... Чем сложнее логика функции тем меньше шансов что клоакинг будет распознан )
     
  6. Prometeus

    Prometeus Постоялец

    Регистр.:
    9 дек 2013
    Сообщения:
    57
    Симпатии:
    12
    Лучше такую логику выполнять на стороне сервера и боту подсовывать уже сформированную страницу. Поисковый робот может и не обрабатывать javascript-ы на странице или расценивать результат их действий с минимальным весом.