Съобщение

Collapse
No announcement yet.

Как да забраня достъпа на мобилните роботи на Гугъл?

Collapse
X
  • Филтър
  • Период
  • Показване на
Clear All
нови коментари

  • Как да забраня достъпа на мобилните роботи на Гугъл?

    С две думи казусът е следния - имам мобилна версия на сайта Х, роботите я сканират, няма забележки.
    В същото време макар че съм поставил таг
    Code:
    <meta name="googlebot-mobile" content="noindex" />
    в настолната версия, те продължават да я ровят и да ми пишат в уебмастърските инструменти, че има грешки и е неподходяща за мобилни устройства. Как да е подходяща, като е за настолни компютри?

    Освен това, като се разрових из логовете открих, че мобилните роботи на Гошо изобщо не са само "googlebot-mobile". Има техни адреси, които сканират с различни видове User-Agent като от мобилни телефони или таблети. Ето пример:
    Code:
    66.249.78.3 - - [30/Mar/2015:07:55:18 +0300] "GET /phpbb2/topic750.html HTTP/1.1" 200 42573 "-" "Mozilla/5.0 (iPhone; CPU iPhone OS 6_0 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10A5376e Safari/8536.25 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"
    Та въпросът ми е как да ги принудя да сканират само мобилната версия?

    П. С. Не ми предлагайте варианта с robots.txt, защото двете версии ползват един и същ файл и така ще забраня и двете версии.

    П. С. 2 Използвам автоматичен редирект за мобилните версии, написан на РНР, който се препоръчва от Гугъл (пише го дори вътре в самия файл) и теоретично би трябвало да редиректва всеки мобилен User-Agent, но няма как да тествам всички и не мога да съм сигурен какво се случва.

    Благодаря предварително!
    Последна редакция от diabolic.bg; 30-03-2015, 10:28 AM.

  • #2
    Според мен няма смисъл да забраняваш нищо. Обмисли следните неща:
    1. Правилно ли прихващаш потребителските устройства по User-Agent?
    2. Имаш ли на мобилната версия връзка с rel=canonical на всяка страница към стандартната си?
    3. Има ли всяка страница от стандартната версия връзка с rel=alternate към съответната си мобилна?

    Тези три неща ако направиш, мобилният бот на Гугъл трябва да схване целия сайт.

    Коментар


    • #3
      Благодаря за съветите!
      На първия въпрос мога да отговоря само "надявам се". Ползвам последната актуална версия на детектора, а според това, което пише в нета, това е най-доброто.
      Другите два въпроса за rel=canonical и rel=alternate засега са с отговор не. Поради липса на време, нерви и средства, реално не ползвам отделна мобилна версия, а използвам тази техника - http://www.mikeindustries.com/blog/a...obile-friendly. Мобилните версии стават малко грозновати, но отговарят на всички изисквания на Гошо. Съответните релации и по-точно rel=canonical в момента се генерират динамично в настолната версия и съответно в мобилната се появяват с мобилния под-домейн. Ще се опитам да го коригирам някак си, както и да добавя rel=alternate, но все още не знам дали ще успея.

      За да нямам дублирано съдържание, в момента мобилната версия е с ноиндекс, фолоу.
      Последна редакция от diabolic.bg; 30-03-2015, 11:37 AM.

      Коментар


      • #4
        69
        Имам нужда от помощ от РНР програмист. Аз се справих сам и си направих rel=alternate към всяка мобилна страница от настолната, но ударих на камък с rel=canonical. Не ми достигат познания.

        Един приятел програмист, за съжаление НЕ на РНР ми написа нещо, което обръща в правилна посока rel=canonical и мобилната започна да сочи към настолната версия, но явно нещо е объркал и непрекъснато се генерира следната грешка:
        Code:
        [Tue Apr 17 20:19:22 2015] [error] [client 66.249.64.70] PHP Warning:  strpos() [<a href='function.strpos'>function.strpos</a>]: Offset not contained in string in C:\\реалния път до уеб директорията\\phpbb2\\global_prepend.php on line 15
        Неговият код е следния:
        Code:
        <?php
        function callback($buffer) {
           if ($_SERVER['SERVER_NAME'] == 'mobile.wasteland-bg.com') {
              $buffer = str_replace('http://wasteland-bg.com/phpbb2/', 'http://mobile.wasteland-bg.com/phpbb2/', $buffer);
              $buffer = preg_replace('/[\n\r\t]+/', '', $buffer);
              $buffer = preg_replace('/\s{2,}/', ' ', $buffer);
               $buffer = preg_replace('/(<a[^>]*>)(<img[^>]+alt=")([^"]*)("[^>]*>)(<\/a>)/i', '$1$3$5', $buffer);
              $buffer = preg_replace('/(<link[^>]+rel="[^"]*stylesheet"[^>]*>|<img[^>]*>|style="[^"]*")|<script[^>]*>.*?<\/script>|<style[^>]*>.*?<\/style>|<iframe[^>]*>.*?<\/iframe>|<style[^>]*>.*?<\/style>|scroll5.gif|scroll_bg.gif|scroll6.gif|target="_blank"|meta name="robots" content="index,follow"|<!--.*?-->/i', '', $buffer);
              $buffer = preg_replace('/<\/head>/i', '<meta name="robots" content="noindex, follow"></head>', $buffer);
           }
        // това дотук работи в момента
        // промяната в кода на оригинала започва оттук
           $pos = 1;
        
           while (($pos !== false) or ($pos >= strlen($buffer))) {
             $pos = strpos($buffer,'rel="canonical" href="', $pos + 1);
        
          if ($pos !== false) {
            $pos = $pos + 22;
               $buffer = substr_replace($buffer,"http://wasteland-bg.com/phpbb2/",$pos,strlen("http://mobile.wasteland-bg.com/phpbb2/"));
           }
        }
           return $buffer;
        }
        ob_start("callback");
        ?>
        Моля някой да удари едно рамо и да оправим грешката!
        Благодаря предварително!


        Не ми е ясно как се генерират тези цифри в началото на поста, но не мога и да го редактирам - при опит за редакция виждам празен прозорец. Използвам последния Файърфокс.
        Обаче с новата Опера стана.
        Последна редакция от diabolic.bg; 19-04-2015, 10:10 AM.

        Коментар


        • #5
          63
          Няма ли живи програмисти вече в тоя форум? Нарочно дадох полуготовия код, който все пак работи, а предполагам, че за човек, който е наясно с материала, грешката е елементарна. Надявам се все пак да има една добра душа останала тук!

          Коментар

          Изчакайте...
          X