Определение поискового робота - PullRequest
1 голос
/ 16 сентября 2010

Я работаю над сайтом, который загружает свои данные через AJAX.Я также хочу, чтобы весь сайт можно было сканировать с помощью поисковых систем, таких как Google и Yahoo.Я хочу сделать 2 версии сайта ... [1] Когда пользователь заходит, гиперссылки должны работать так же, как GMAIL (# 'ed гиперссылки) [2] Когда приходит сканер, гиперссылки должны работать нормально (режим AJAX выключен)

Как я могу определить Crawler ??

Ответы [ 4 ]

1 голос
/ 16 сентября 2010

Сканеры обычно можно идентифицировать с помощью HTTP-заголовка User-Agent.Посмотрите на на этой странице список пользовательских агентов для сканеров.Вот некоторые примеры:

Google:

Также вот несколько примеров получения строки агента пользователя на разных языках:

PHP:
$_SERVER['HTTP_USER_AGENT']

Python Django:
request.META["HTTP_USER_AGENT"]

Ruby On Rails:
request.env["HTTP_USER_AGENT"]

...
0 голосов
/ 16 сентября 2010

Такой подход просто осложняет жизнь. Это требует, чтобы вы поддерживали две совершенно разные версии сайта и пытались угадать, какую версию обслуживать тому или иному пользователю. Поисковые системы - не единственные пользовательские агенты, у которых JavaScript не доступен и не включен.

Следуйте принципам ненавязчивого JavaScript и , основанного на вещах, которые работают . Это избавляет от необходимости определять, какую версию предоставить пользователю, поскольку JS может постепенно завершиться ошибкой, оставив рабочую версию HTML.

0 голосов
/ 16 сентября 2010

Вы не должны представлять другую форму вашего сайта вашим пользователям и сканеру.Если Google обнаружит, что вы это делаете, из-за этого они могут снизить рейтинг вашего поиска.Кроме того, если у вас есть версия, предназначенная только для сканера, она может сломаться, если вы не заметите, что приведет к тому, что поисковые системы получат неверные данные.

Я бы порекомендовал создать версию вашего сайта, в которой не требуетсяAJAX, и наличие заметных ссылок на каждой странице не-AJAX-версии.Это также поможет пользователям, которым может не понравиться версия AJAX или у которых есть браузер, который не способен правильно с ним работать.

0 голосов
/ 16 сентября 2010

Заголовки http сканера должны содержать поле User-Agent.Вы можете проверить это поле на вашем сервере.

Здесь - это список ТОНН Агентов пользователей.Некоторые примеры:

Google robot 66.249.64.XXX ->
Googlebot/2.1 ( http://www.googlebot.com/bot.html)       

Harvest-NG web crawler used by search.yahoo.com 
Harvest-NG/1.0.2     
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...