Могут ли поисковые роботы или спам-боты эмулировать / запускать события JavaScript?

Могут ли поисковые роботы или спам-боты эмулировать / запускать события JavaScript во время чтения страницы?

2 ответа

Нет, потому что поисковые роботы получают статический поток HTML. Они не запускают какие-либо события инициализации, такие как init() или же myObj.init(), который находится в вашем коде JavaScript. Они не загружают никакие внешние библиотеки, такие как jQuery, и не выполняют $(document).ready код или любой из стандарта .click() слушатели. Так что, если у автора поискового бота нет особой причины намеренно создавать своего поискового бота для запуска или выполнения <script> блоки, находящиеся на странице, обычно не запускают код JavaScript.

Я написал поисковый бот. Все, что меня волнует, - это извлечение ссылок и текста со страницы. Однако я не хочу запускать чужой компонент календаря на стороне клиента или компонент видеопроигрывателя. Я не хочу, чтобы этот код JS был вставлен в мою базу данных, где он мог бы оказаться на странице результатов поисковой системы ( SERP). Так что нет никаких причин, чтобы запустить eval() Команда на любой код в <script> не блокирует и не инициирует какие-либо события инициализации на уровне JS.

Когда поисковые роботы загружают HTML DOM, в них обычно встроены внешние файлы.js. Таким образом, для выполнения JS потребуется анализ строк для нескольких файлов.js, затем создание конкатенатора для этих файлов и затем попытка выполнить все, что было загружено. Это дополнительная работа для автора поискового бота, без какой-либо чистой выгоды. Мы просто не хотим, чтобы этот код JS появлялся где-либо в наших поисковой выдаче. В противном случае, просмотр кода JS в поисковой выдаче выглядит как плохой результат поиска. Тем не менее, боты могут видеть содержимое в <script> теги & только для поиска ссылок для сканирования. Возможно, именно поэтому люди начинают думать, что боты могут выполнять JavaScript, но на самом деле они только анализируют их для своих текстовых ссылок.

Вот кто-то, кто доказывает, что Google загружает страницы в автономном WebKit при сканировании, чтобы получить возможность индексировать содержимое AJAX, и по другим причинам. Поисковые роботы обычно не отправляют формы.

Я посмотрел на ваш сайт, и защита полностью на стороне клиента. Поскольку HTML-форма на самом деле представляет собой просто описание того, какие ключи / значения следует отправлять на какой-либо URL-адрес, нет никаких причин, по которым никто не может просто отправить эти данные с помощью бота.

Пример:

POST /contact
/* ... */

fullname=SO+test&email=test%40example.com&reason=test&message=test

Кроме того, и это важно, вы наказываете законных посетителей таким образом. Существует множество причин, по которым JavaScript может быть заблокирован, не загружен или просто не работает.

Другие вопросы по тегам