Пропустить фрагмент кода javascript для сканеров

0

У меня есть веб-сайт в php, который передает определенные переменные php в переменные javascript, google сканирует меня, что создает ошибки и дублирует контент. Есть ли способ заставить искателя Google игнорировать объявление этих переменных в javascript?

    echo '<script language="javascript">var '.$item['Nombre'].'="'.$descripcion.'";</script>';

Извините за мой английский,

  • 1
    Не могли бы вы описать, как он «генерирует ошибки и дублирует контент»? Вы используете Инструменты для веб-мастеров? Дублированный контент обычно означает один и тот же контент на разных URL. Можете ли вы показать нам несколько примеров URL, где Google обнаружил дублированный контент? Эти параметры GET параметры за шанс? Я подозреваю, что вы неверно истолковали ошибку.
  • 0
    Это страница дистрибутивных брендов, каждый бренд загружается на страницу типа "/ firmas / 1.html", "/ fimas / 2.html" .. но все бренды загружаются с главной страницы в переменных javascript для отображения контента в div, чтобы сделать onmouseover, используя innerHTML выше названий брендов. Это «onmouseover» присутствует во всех брендах, так как оно является частью меню, поэтому, если вы введете «/ firmas / 1.html», загрузите все переменные, как в index.html, но отобразите только те, которые имеют идентификатор 1. Идеально используется один в пределах значения <noscript> для сканирования.
Показать ещё 4 комментария
Теги:
web-crawler
skip

4 ответа

1
Лучший ответ

Google сканирует код javascript и рассматривает его дубликат? Раньше я никогда не слышал об этой проблеме. Некоторые из моих страниц имеют встроенный javascript (если контент мал), это означает тот же <script>...</script> на каждой странице.

Существуют также случаи, когда я выдаю переменные javascript более или менее так же, как и вы. Google никогда не отмечал его как "дублированный контент".

Описание отсюда:

Дублируемое содержимое обычно ссылается на существенные блоки контента внутри или между доменами, которые полностью соответствуют другому контенту или в значительной степени похожи. В основном это не обманчиво по происхождению. Примеры неназванного дублированного контента могут включать:

  • Дискуссионные форумы, которые могут создавать как обычные, так и усеченные страницы, предназначенные для мобильных устройств
  • Хранить предметы, показанные или связанные через несколько разных URL-адресов.
  • Версия для печати только на веб-страницах

Вы можете получить такие ошибки, если у вас один и тот же контент на нескольких страницах, но Google не анализирует javascript как контент. (Хотя вы не можете точно знать, что делает или не делает Google). Точно так же, как Google не будет отмечать тэг <head> как дубликат, или нет штрафа за то, что он имеет одинаковый макет (меню, нижний колонтитул и т.д.) На каждой странице.

Вы можете поместить этот <script> тег <aside> чтобы быть уверенным.

Элемент HTML представляет собой раздел страницы, состоящий из содержимого, касающегося касательно содержимого вокруг него, которое можно считать отдельным от этого содержимого. Такие разделы часто представлены как боковые панели или как вставки. Они часто содержат боковые объяснения, как определение глоссария; более слабо связанные вещи, такие как реклама; биография автора; или в веб-приложениях, информацию профиля или связанные ссылки блога.

Это означает, что контент будет более или менее игнорироваться Google при индексировании страницы. Он не будет отмечать его как дубликат, поскольку он может быть коммерческим.

Также language="javascript" атрибут language="javascript" из тегов скрипта. Я сомневаюсь, что это каким-то образом путает google, так как этот атрибут устарел (используйте type вместо этого), и ничто не учитывает его в настоящее время. Но если google бот делает, правильным значением будет text/javascript вместо простого javascript. Возможно, Google не распознает значение javascript и анализирует его как неизвестный тип текстового содержимого.

Тип скрипта по умолчанию text/javascript, поэтому безопасно опустить.


Прежде всего, я подозреваю, что проблема заключается не в существовании JS-переменных, а в других URL-адресах, таких как параметры GET. Параметры GET можно решить, правильно настроив параметры URL в Инструментах для веб-мастеров.

  • 0
    Хорошо, я использовал ява = "javascript", я изменю его, чтобы посмотреть, решит ли это мою проблему.
0

Вы можете использовать следующий PHP-код:

$crawlers = array(
'Google'=>'Google',
'MSN' => 'msnbot',
'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 spider'=> 'Lycos',
'MSRBOT'=> 'MSRBOT',
'Altavista robot'=> 'Scooter',
'AltaVista robot'=> 'Altavista',
'ID-Search Bot'=> 'IDBot',
'eStyle Bot'=> 'eStyle',
'Scrubby robot'=> 'Scrubby',
);

function crawlerDetect($USER_AGENT)
{
// to get crawlers string used in function uncomment it
// it is better to save it in string than use implode every time
// global $crawlers
// $crawlers_agents = implode('|',$crawlers);
$crawlers_agents = 'Google|msnbot|Rambler|Yahoo|AbachoBOT|accoona|AcioRobot|ASPSeek|CocoCrawler|Dumbot|FAST-WebCrawler|GeonaBot|Gigabot|Lycos|MSRBOT|Scooter|AltaVista|IDBot|eStyle|Scrubby';

if ( strpos($crawlers_agents , $USER_AGENT) === false )
   return false;
// crawler detected
// you can use it to return its name
/*
else {
                                                                                                                                                        1,1           Top
 return array_search($USER_AGENT, $crawlers);
}
*/
}

Используя вышеописанный метод, вы можете проверить, что запрос поступает от искателя или нет.

0

Важно: это плохая практика в большинстве случаев. Если google уведомляет вас о том, что вы обслуживаете для него другой контент, и считает это релевантным, ваш сайт может нести штрафные санкции.

Я рекомендую это php-решение:

в PHP используйте этот код:

if (!strpos($_SERVER[‘HTTP_USER_AGENT],"Googlebot")) {
  //echo the script
}
else{ //dont echo, does nothing. }

Но если это не сработает, вы можете попробовать добавить этот код javascript в свой тег скрипта:

    if (!navigator.userAgent.contains('Googlebot')) {
    //do the script
    } else {
    //does nothing
    }

Ps: Вот список User-агентов http://www.useragentstring.com/pages/Crawlerlist/

  • 1
    Googlebot не является правильной строкой агента пользователя - см. Support.google.com/webmasters/answer/1061943?hl=ru.
  • 2
    Это плохая практика в большинстве случаев. Если Google замечает, что вы предоставляете другой контент для своего бота и считает его релевантным, ваш сайт может получить чрезмерные штрафы.
Показать ещё 6 комментариев
0

Другой (непроверенный, умозрительный) подход, требующий, чтобы вы могли написать собственный файл robots.txt:

  1. Перенесите все свои коды JavaScript в другой URL и включите это как скрипт javascript на своей странице: <script type="text/javascript" src="/path/to/my/php/that/generates/js/variables.php"></script>

  2. Добавьте этот URL в файл robots.txt (см. Ответ Google).

User-Agent: Googlebot

Disallow: /path/to/my/php/that/generates/js/variables.php

  • 0
    Очень скептически, это сделает то, что вы утверждаете. Хотя это предотвратит отображение файла variables.php при поиске в Google, я готов поспорить, что это не помешает Google использовать его в качестве сценария при индексации другой веб-страницы [allow-by-robots.txt], которая импортирует этот скрипт.
  • 0
    @ broofa Если честно, я не пробовал.
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню