SearchEngines.bg

Това е примерно съобщение за гост. Регистрирайте безплатен акаунт днес, за да станете потребител на SearchEngines.bg! След като влезете, ще можете да участвате в този сайт, като добавите свои собствени теми и публикации, както и да се свържете с други членове чрез вашата лична входяща кутия! Благодарим ви!

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

diabolic.bg

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

Освен това, като се разрових из логовете открих, че мобилните роботи на Гошо изобщо не са само "googlebot-mobile". Има техни адреси, които сканират с различни видове User-Agent като от мобилни телефони или таблети. Ето пример:
Код:
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, но няма как да тествам всички и не мога да съм сигурен какво се случва.

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

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

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

Един приятел програмист, за съжаление НЕ на РНР ми написа нещо, което обръща в правилна посока rel=canonical и мобилната започна да сочи към настолната версия, но явно нещо е объркал и непрекъснато се генерира следната грешка:
Код:
[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

Неговият код е следния:
Код:
<?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");
?>
Моля някой да удари едно рамо и да оправим грешката!
Благодаря предварително!


Не ми е ясно как се генерират тези цифри в началото на поста, но не мога и да го редактирам - при опит за редакция виждам празен прозорец. Използвам последния Файърфокс. :confused:
Обаче с новата Опера стана.
 
Последно редактирано:
63
Няма ли живи програмисти вече в тоя форум? :cry: Нарочно дадох полуготовия код, който все пак работи, а предполагам, че за човек, който е наясно с материала, грешката е елементарна. Надявам се все пак да има една добра душа останала тук!
 

Горе