Pull to refresh

Comments 50

Дык эта. Про это чётко написано в спецификациях HTML:
The "get" method should be used when the form is idempotent (i.e., causes no side-effects). Many database searches have no visible side-effects and make ideal applications for the "get" method.

If the service associated with the processing of a form causes side effects (for example, if the form modifies a database or subscription to a service), the "post" method should be used.
Я так понимаю что googlebot пытается с помощью каких-то эвристик понять - что стоит сунуть вашему cgi-скрипту чтобы получить в ответ что-нибудь интересное. Вряд ли он включает сколько-нибудь полноценный интерпретатор JavaScript'а... Хотите чтобы он куда-то не лазил - robots.txt к вашим услугам...

Меня скорее напрягает тот факт, что он паршиво понимает пока JavaScript (скажем с fanfiction.net и deviantart.com явно не все страницы в индекс попали).
В спецификации написано, как страницы строить и как браузерам их показывать. А про то, что со всем этим googlebot делать будет, там ничего нет ;-)

У меня ж форме прописано method="post", да и в JS тоже post отправляется. Понятно, что роботу легче get отправить - вдруг прокатит. Меня удивило, что он сам УРЛ из JS достал, так как форма сабмитится только из JS.

А на счёт robots.txt - это правильно. Добавил несколько Disallow, чтоб робот не лез, куда не просят.
Возможно все-таки у Google есть интерпритатор.
У оперы ведь есть Opera mini, которая страницы через свой сервер направляет, а на сервере в свою очередь выполняет javascript в течении некоторого времени и потом отсылает результат в браузер.
Кроме того, сподобились же на создаия Google Web Toolkit, значит потенциал чтобы разобраться с javascript у гугла должен быть.
То что Googlebot понимает и частично выполняет JS, про это Гугловчане открытым текстом говорят. Я же привёл цитаты с их официального блога.

Вопрос в том, при каких условиях googlebot это делает и какие у него ограничения.
да иногда поисковики творят магию: залил на сервак сайт клиента в отдельную папку (/1/) просто для теста. Потом вижу он в индексе Яндекса вылез. Хотя никаких ссылок не было, и даже в роботс.тхт папка не была прописана. Как это получилось я уже 2 года понять не могу)
Поисковики не только по ссылкам могут ходить, например сами гугловцы рекомендуют прописывать Disallow в robots.txt для папок со скриптами и иными служебными файлами, обьясняя это тем что уменьшается нагрузка на поисковой бот.
Ну вероятность попадания скрипта в результаты гугла пока маловероятно. О нагрузке на их бот я мало волнуюсь. Мне скорее вазна нагрузка на мой сервер.

А вот попадание "недостраниц" в результаты поиска, как в моём случае, весьма нежелательно. Для них точно нужно Disallow добавлять. Хотя для одного из таких урлов Disallow уже почти месяц как добавлен, а он всё ещё в индексе.
Нагрузка на их бот влияет на то как долго он будет серфить по вашему сайту и индексировать страницы
Disallow выходит за рамки темы поста. И это не спасет от парсинга JS.
А вот как защитить JS от получения кривых ссылок в индексах поисковиков - вопрос интересный.
Использование "noindex" поможет?
А куда "ноиндекс" добавлять? У меня же Ajax'ом не полные страницы подгружаются, а кусочки. Там нет meta тэгов :(
Приходится Disallow спасаться
сам себе отвечаю: можно просекать, что хитрый гугл GET-ом вместо POST-а лезет и подсовывать ему страницу с meta noindex.

Правда тут cloaking'ом попахивает. Подожду пока. Посмотрю, как он на Disallow отреагирует.
noindex-ом нужно (по идее должно помочь) обрамлять JS.
noindex
    script ...... /script
/noindex
Вот это имхо и есть решение.
те поисковые системы которые поддерживают тэг noindex, говорят что пропускают все что в нем.. но гарантий как известно никаких.
<noindex> — это самодельный невалидный тег Рамблера и Яндекса. Google о нём не знает.
ахх.. точно :) забыл. а как все было бы просто...
Ну и? как лечить то?

по поводу robots.txt - рекомендации гугеля:
http://www.google.ru/support/webmasters/…

но для данного случая не подходит - тут подгружается AJAX-ом xml, если я правильно понял.
Не. В одном случае plain/text в другом простой HTML гружу (фрагменты реальной страницы). Суть дела правда это почти не меняет.
нарыл в инете как делать валидным noindex:

<del class="inv"><![CDATA[<noindex>]]></del>
То, что запрещено к индексации
<del class="inv"><![CDATA[</noindex>]]></del>

источник
Спасибо. А сведения о корректном восприятии этого Яндексом есть?
На собственном опыте не пользовался(ибо только что сам нашел)
подробнее на блоге того кто это придумал:
http://www.seoburg.ru/2007/01/25/162/
копипаст от туда: "UPD: проверено, метод работает!"
Спасибо еще раз.
Возможно, теперь буду пользоваться noindex иногда.
нарыл в инете как делать валидным noindex:

<del class="inv"><![CDATA[<noindex>]]></del>
То, что запрещено к индексации
<del class="inv"><![CDATA[</noindex>]]></del>

источник
мда.. сорри за дублирование, хабр сегодня не голодный
Насчет первого места частая фишка у гугла. Не знаю почему, но новые сайты даже по высокочастнотным запросам он иногда выводит на первое вместо через пару недель после индексации. (так было у меня). потом опять вниз заталкивает правда :)
воопбще это даже наверно правильно, поначалу показывать новые сайты людям, а потом уже отодвигать их на действительный рейтинг.
Спасибо за ссылку. Для полноты картину - то что нужно.

Моя статья дабавляет к той ещё несколько аспектов:
1). ссылки определяются не только в JS-редиректах, но и в строках с HTML-кодом, и в AJAX-запросах.
2). ссылки могут быть относительными.
3). боты не только ходят по ссылкам, но и индексируют найденные таким образом страницы.
Все намного хуже.
4) Они перераспределяют по этим ссылкам PageRank
Думаю, причина в другом.

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

Я не интересовался, что входит в список отправляемых адресов, но, вполне может быть, что и AJAX-запросы туда включаются тоже. Аналогичная ситуация происходит, если у вас установлен плагин Google Toolbar.
Ну если люди с гугла в официальном блоге говорят, что Googlebot разбирает и частично выполняет JS, то не вижу повода им не верить.

На счёт Google Toolbar я высказал в статье свои сомнения.
На счёт Oper'ы - не исключено. Может кто-то Оперой заходил и наследил.
Правда тут теже сомнения, что и в случае с Google Toolbar: почему в индекс попал урл с пустым параметром, если в реальной жизни такого не могло появиться?
Наверное, это последствия инициатив гугла по раскрытию "невидимого интернета". В частности, контента сайтов, активно использующих AJAX. Лишь бы не начали формы заполнять и слать POST-запросы. Это будет уже полнейшее свинство.

Такими темпами, скоро придётся все обработчики форм и AJAX-запросов закрывать в robots.txt...
Абсолютно согласен на счёт POST-запросов и заполненных форм.

Так гугл-бот подпишется на все рассылки, начнет отправлять липовые заказы, удалять пользователей и списывать деньги со счетов ;)
Надо капчу ставить перед каждым AJAX запросом :)
У вас в коде страницы написано:
У вас в коде страницы страницы написано:
<a href="/security-tools/find-hidden-links/site/?siteUrl='

В индекс попал с пустым параметром именно потому, что гугл никакого js не выполнял, а просто увидел тег <a> и взял из него ссылку. А уж добавлять к ссылке адрес сайта Гугл умеет ;)
Возможно и так. А возможно и выполнил. С пустым значение тоже самое получится. А уж строчки складывать он, думаю, умеет. Вот выше есть ссылка, где у народа и зашифрованную ссылку робот подхватывал.

В любом случае, какую-то логику скрипта нужно понимать, чтоб ссылки правильно выдирать.
А если <a rel="nofollow" href="..." или как-то так?
Ну поле для разных экспериментов обширно, так как трюков можно придумать множество, а официальной информации о том, что и как интерпретируется googlebot'ом в скриптах, почти нет.
Ну ведь как раз nofollow и описан где-то в статьях как рекомендованый Гуглом веб-мастерам для запрета индексации и учета "веса" ссылки... не так?
Это они в HTML вставлять рекомендуют. JS совсем другой зверь. Для него у гугла чётких рекомендаций нет. Разве что дублировать важные части проcтым HTML.
Опера не делает такого. "Проверено". У меня браузер выходит через мой локальный прокси, так что вижу все УРЛы куда она обращается.
Значит, недоглядели.

Аргументирую. Статья "У Google под колпаком". Почитайте, проверьте сами. Я лично уже неоднократно убедился на собственном опыте. Открыл в Опере (и больше ничего) - завтра по логам уже заметишь посещение гуглобота. Причём, именно тех страниц, которые ты открывал. Т.е. ссылок на них не было ниоткуда.

Например, гуглобот посетит страницы результатов поисковых запросов, которые ты делал накануне, если поисковая форма получает данные через GET. Ссылок прямых на эти запросы нет, всякими глупостями, вроде "последние поиски на сайте" не балуюсь.
Прочитал. Проверить про Оперу не могу, т.к. там ничего про нее конкретно не написано, всё очень расплывчато. :)
Эта статья не аргумент. Вы еще статью Криса о WebMoney Keeper почитайте. Например, эта страница забавная, где он нашел в файле три буквы "pci" и делает вывод, что идет обращение к PCI-шине, хотя там невооруженным глазом видно, что просто формируется HTTP-запрос. Сам список параметров, начинающихся на pci_*, можно посмотреть на сайте WM.
Я не верю лично Крису. Я верю своим наблюдениям последних лет.

Опыты ставил специально. Гугл - вездесущ. И вездесущность его сильно пересекается с браузерами. Например, в разработке находится специальный раздел сайта, адрес стартовой страницы которого, на всём белом свете, знаю только я и мой браузер (никому другому ещё ссылок не давал). Достаточно. Назавтра гугл уже всё сожрал. С тех пор, пока тестирую сайт, взял за правило выкладывать запрещающий всё robots.txt

Про WebMoney я читал. Но тут как в притче о мальчике с волками. Похоже, в этот раз Крис прав. Да и аргументация в статье уже посерьёзнее, не как в случае с WM. И прочёл я её уже после того, как сам столкнулся с поведением гуглобота.

Вообще, "дополнительные заработки" разработчиков браузеров - это тема для отдельной статьи, если не серии статей. Вы когда-нибудь интересовались стоимостью SSL-сертификатов у какого-нить VeriSign, Thawte и т.п.? Тысячи долларов! За то, что любой человек с пакетом openssl может сделать за секунду! Затрат у сертификационных центров особых нет. Это делание денег из воздуха, и хороших денег. Фактически, вы платите за то, что сертификат центра сертификации будет установлен "из коробки" во всех популярных браузерах. И мне страшно представить, сколько тот же VeriSign отстёгивает в Mozilla, Opera и Microsoft.

Я люблю Opera Software и Mozilla Foundation, но не склонен их идеализировать. Поверьте, альтруизмом и заботой о всемирной справедливости там и не пахнет.
UFO just landed and posted this here
я вот лично склоняюсь больше к такому варианту — Гугл же может определять параметры и вырезать их из адреса. К тому же, работы по серверной интерпретации клиентского JavaScript уже давно ведутся
http://ejohn.org/projects/bringing-the-b…
Кстати googlebot индексирует также некоторые элементы форм, которые за закрытыми тегами.
Например заполненный textarea или все select-ы.
Так что пользуйтесь ;) особенно хорошо можно поднять рейтинг select-ами.
Игнорирует всё что в тегах.
Ох, эксперты…
Вот здесь написано, как бот Гугла обращается с формами, отправляемыми методом Get.
А вот здесь у автора топика как раз такая форма.

Так что никакой JavaScript тут не причём. Просто Гугл пытается угадать, какая же страница получится, если отправить такую форму. Причём, судя по приведённому скриншоту выдачи, форма отправляется пустая.
Спасибо., за ссылку. Почему-то эту статью я пропустил…

Кстати она совершенно не отрицает того, что я написал в этом посте.

Статья начинается с того, что они говорят, что они уже сканируют JavaScript и Flash на предмет обнаружения ссылок.

А в описании алгоритма генерации URL's для сабмита GET форм, сказано, что для заполнения текстовых полей googlebot автоматически подбирает слава, найденные на сайте, на котором размещена форма. Поэтому следовало бы ожидать, что он проиндексирует страницу с URLом с заполненым параметров, а не с пустым (благо слов на на сайте достаточно и у бота не должно было возникнуть проблем с выбором ;-)
Sign up to leave a comment.

Articles