Как работает поисковый робот Google: результаты экспериментов

Польский специалист Max Cyrec провел трехмесячный SEO-эксперимент, анализируя работу разных видов внутренних ссылок. Мы перевели его статью об эксперименте, выводах, чтобы вы могли использовать эти лайфхаки на ваших сайтах.

как работают поисковые роботы

3 месяца экспериментов. В какие игры я играл с Googlebot

На интернет-форумах и в тематических группах Facebook часто разгораются дискуссии о том, как работает Googlebot — что он может и не может видеть, по каким ссылкам переходит и как это влияет на SEO.
В статье я расскажу вам о результатах трехмесячного эксперимента.

Почти каждый день Googlebot заходил ко мне как друг на пиво.

Иногда он был один:

[02/09/2018 18:29:49]: 66.249.76.136 /page1.html Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)

[02/09/2018 19:45:23]: 66.249.76.136 /page5.html Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)

[02/09/2018 21:01:10]: 66.249.76.140 /page3.html Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)

[02/09/2018 21:01:11]: 66.249.64.72 /page2.html Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)

[02/09/2018 23:32:45]: 66.249.64.72 /page6.html Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)

Иногда он приводил с собой друзей:

[16/09/2018 19:16:56]: 64.233.172.231 /page1.html Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko; Google Search Console) Chrome/41.0.2272.118 Safari/537.36

[16/09/2018 19:26:08]: 66.249.69.235 /image.jpg Googlebot-Image/1.0

[27/08/2018 23:37:54]: 66.249.76.156 /page2.html Mozilla/5.0 (Linux; Android 6.0.1; Nexus 5X Build/MMB29P) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.96 Mobile Safari/537.36 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)

И мы развлекались, играя в разные игры:

Поймай меня если сможешь: Я наблюдал, как Googlebot нравится переходить по редиректам 301, просматривать картинки и убегать от канонических ссылок.

Прятки: Googlebot прятался в скрытом контенте — который по словам его родителей, он не одобряет и которого избегает.

Игра на выживание: Я подготовил ловушки и ждал, пока он в них попадет.

Бег с препятствиями: Я поставил препятствия с разными уровнями сложности, чтобы посмотреть, как мой маленький друг справится с ними.

Как вы можете догадаться, Googlebot меня не разочаровал. Мы отлично повеселились и стали хорошими друзьями.

Перейдем ближе к делу.

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

У контента было много достоинств, но на самом деле текст был кучей бреда.

Структура экспериментального сайта выглядела так:

Изображение структуры сайта

Я предоставил уникальный контент и удостоверился, что каждый анкор/заголовок/alt тег, как и другие коэффициенты, были глобально уникальными.

В описании я использовал слова anchor1, или якорь1 и т.д. Пока вы читаете статью, откройте изображение со структурой сайта в отдельном окне — так вам будет удобнее.

Часть 1: Правило первой ссылки

Я хотел проверить правило о том, что из нескольких ссылок на одну и ту же страницу Google учитывает только первую. Я хотел узнать, можно ли не следовать этому правило, и как оно влияет на оптимизацию.

Согласно правилу, если у вас две ссылки на одну и ту же подстраницу на одной странице, вторая будет игнорироваться. Googlebot будет игнорировать анкор во второй и каждой следующей ссылке, тем временем, определяя позицию страницы для поисковой системы.

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

В большинстве магазинов есть статичное выпадающее меню, которое выдает, к примеру, 4 ссылки на основные категории и 25 скрытых ссылок на подкатегории.
Во время разметки структуры сайта Googlebot видит все ссылки на каждой странице с меню. Это приводит к тому, что все страницы одинаково важны, и их вес распределяется равномерно. Это выглядит приблизительно так:

Обычная структура сайта
Самая распространенная, но неправильная, на мой взгляд, структура

Пример на картинке нельзя назвать правильной структурой, потому что все категории ссылаются друг на друга со всех страниц, где есть меню. Поэтому
у домашней страницы, всех категорий и подкатегорий равное количество входящих ссылок, и вес всего сайта распределяется между ними равномерно. Таким образом, вес домашней страницы делится на 24 категории и подкатегории. Поэтому каждая из них получает только 4% веса домашней страницы.

Как должна выглядеть структура:

Правильная структура сайта с точки зрения SEO

Если вам нужно быстро протестировать структуру страницы и просмотреть ее, как Google, используйте сервис Screaming Frog.

В этом примере вес домашней страницы делится на 4, и каждая категория получает 25% от ее веса. Потом категории распределяют вес между подкатегориями. Так внутренняя перелинковка тоже становится лучше.

Например, если вы пишете статью на блоге интернет-магазина и хотите ее перелинковать с одной из подкатегорий, Googlebot заметит ссылку, просматривая сайт. В первом примере он так делать не будет из-за правила первой ссылки. Если ссылка на подкатегорию была в меню сайта, ссылка в статье будет игнорироваться.

Я начал этот SEO-эксперимент, сделав следующее:

  • Сначала на странице page1.html я добавил ссылку на подстраницу page2.html как классическую ссылку dofollow с анкором anchor1.
  • Затем в тексте на этой же странице я добавил слегка измененную ссылку, чтобы проверить, будет ли Googlebot просматривать их.

Я протестировал такие решения:

  • На домашней странице сервиса я назначил одну внешнюю ссылку dofollow фразе с URL в анкоре, и это ускорило индексирование.
  • Я подождал, пока страница page2.html начала ранжироваться по фразе из первой ссылки dofollow (anchor1), идущей со страницы page1.html. Эта ненастоящая фраза или любая другая, которую я протестировал, не была найдена на целевой странице. Я предположил, что если другие ссылки сработают, тогда page2.html также проранжируется в результатах поиска по другим фразам из других ссылок. Это заняло около 45 дней. И затем у меня получилось сделать первый важный вывод.

Сайт, где ключевое слово не находится ни в контенте, ни в метатеге title, но привязано к запрашиваемому анкору, может ранжироваться в результатах поиска выше, чем сайт, который содержит это слово, но не ссылается на него.

Более того, домашняя страница page1.html, которая содержала запрашиваемую фразу, была самой сильной страницей в веб-сервисе. На нее ссылалось 78% подстраниц. Но она ранжировалась ниже по запрашиваемой фразе, чем подстраница page2.html, на которую ссылается искомая фраза.

Ниже 4 вида ссылок, которые я протестировал. Все из них идут после первой ссылки dofollow, ведущей к странице page2.html.

Ссылка на сайт с якорем

Первая из дополнительных ссылок в коде ссылки dofollow была ссылкой с якорем, или хештегом. Я хотел увидеть, просмотрит ли Googlebot ссылку и проиндексирует ли страницу page2.html под фразой anchor2. И это несмотря на то, что ссылка ведет к странице page2.html, но ссылка, которая меняется на page2.html#testhash, использует anchor2.

К сожалению, Googlebot не запомнил эту связь и не передал вес подстранице page2.html по этой фразе. В итоге в результатах поиска по фразе anchor2 была только одна подстраница page1.html, где слово могло было обнаружить в якоре ссылки.

Ссылка на сайт с параметром

page2.html?parameter=1

В начале Googlebot был заинтересован в части ссылки после знака запроса и анкоре внутри ссылки anchor3.

Googlebot был заинтригован и попытался вычислить, что имелось в виду. Чтобы избежать индексирования дублирующегося контента под другими ссылками, каноническая страница page2.html ссылалась на себя. Логи зарегистрировали 8 просмотров по этому адресу, но выводы отсюда довольно печальные:

  • Через 2 недели Googlebot стал туда заходить гораздо реже. В конце концов он ушел и больше не вернулся.
  • Ни страница page2.html, ни параметр с параметром ссылки parameter1 не индексировались по фразе anchor3. Согласно Search Console, эта ссылка не существует — не учитывается среди входящих ссылок. Но в то же время, фраза anchor3 считается якорной фразой.

Ссылка на сайт от редиректа

Я хотел заставить Googlebot тщательнее просмотреть мой сайт. В итоге каждые несколько дней Googlebot заходил по ссылке dofollow с анкором anchor4 на странице page1.html, ведущей на страницу page3.html. Страница page3.html редиректила с кодом 301 на страницу page2.html. К сожалению, в случае страницы с параметром, через полтора месяца страница page2.html еще не ранжировалась по фразе anchor4, которая появилась в ссылке редиректа на странице page1.html.

Однако в Google Search Console, в разделе Anchor Texts anchor4 виден и индексируется. Это может значить, что через какое-то время редирект стал работать как положено. Поэтому страница page2.html будет ранжироваться в результатах поиска по anchor4, несмотря на то, что это вторая ссылка на ту же целевую страницу на сайте.

Ссылка на страницу с помощью тега canonical

На странице page1.html я разместил отсылку к странице page5.html сcылкой follow с помощью анкора anchor5. В то же самое время на странице page5.html был уникальный контент. В нем был тег canonical на страницу page2.html.

< link rel=“canonical” href=”https://example.com/page2.html” />

Результаты теста:

  • Страница page5.html проиндексировалась несмотря на тег canonical.
  • Страница page5.html не проранжировалась в результатах поиска по anchor5.
  • Страница page5.html проранжировалась по фразам, используемым в тексте страницы. Это значит, что Googlebot полностью проигнорировал теги canonical.

Похоже на то, что не получится использовать rel=canonical, чтобы избежать индексирования какого-то контента.

Часть 2. Краулинговый бюджет

Краулинговый бюджет — это некоторый объем страниц, который поисковый робот Google может просканировать за один раз.

Когда я продумывал свою SEO-стратегию, я хотел заставить Googlebot танцевать под мою дудку. Я проверял SEO-процессы на уровне серверных логов, что мне очень помогло. Благодаря этом я знал о малейших телодвижениях бота, и как он реагировал на изменения — реструктуризацию сайта, полную переделку внутренней перелинковки, отображение информации.

Одной из задач на протяжении SEO-кампании было перестроить сайт так, чтобы Googlebot посещал только те ссылки, которые он может проиндексировать и которые мы бы хотели видеть проиндексированными. То есть, в индексе Google должны быть только те страницы, которые важны нам с точки зрения SEO. С другой стороны, Googlebot должен просматривать только те сайты, которые мы хотим проиндексировать. Это очевидно не всем, например, когда интернет-магазин внедряет фильтрацию по цветам, размеру и ценам с помощью манипуляций с параметрами ссылки:

example.com/women/shoes/?color=red&size=40&price=200-250

Может оказаться, что решение, которое позволяет Googlebot просматривать динамические ссылки, заставляет его посвящать время их тщательной проверке и индексации, вместо обычного просмотра.

example.com/women/shoes/

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

Во время эксперимента я также хотел проверить методы структуризации контента без использования rel=”nofollow”. Для этого я блокировал Googlebot в файле robots.txt или размещал часть HTML-кода в фреймах, которые невидимы для бота.

Я протестировал 3 вида JavaScript ссылок.

Ссылка JavaScript с событием по клику

Простая ссылка, созданная на JavaScript:

< a href=”javascript:void(0)” onclick=”window.location.href =’page4.html’” >anchor6< /a >

Googlebot легко перешел к странице page4.html и проиндексировал целую страницу. Подстраница не ранжируется в результатах поиска по фразе anchor6, и ее нельзя найти в разделе Anchor Texts в Google Search Console. Вывод: ссылка не передала вес.

Итоги:

  • Классическая ссылка JavaScript позволяет Google просматривать сайт и индексировать страницы, на которые он приходит.
  • Ссылка не передает вес — она нейтральна.

Ссылка Javascript с внутренней функцией

Я решил поднять ставки, но к моему удивлению Googlebot преодолел препятствие меньше, чем за 2 часа после публикации ссылки.

< a href=”javascript:void(0)” class=”js-link” data-url=”page9.html” >anchor7< /a >

Чтобы управлять этой ссылкой, я использовал внешнюю функцию. Эта функция должна была считывать ссылку из данных и редиректа — только из редиректа пользователя на целевую страницу page9.html, как я надеялся. Как и в предыдущих случаях, страница page9.html полностью проиндексировалась.

Интересно то, что несмотря на недостаток входящих ссылок страница page9.html была третьей по популярности у Googlebot после страниц page1.html и page2.html.
Я использовал этот метод раньше для структуризации веб-сервисов. Однако как мы видим, он больше не работает. В SEO ничто не работает вечно.

Ссылка JavaScript с кодировкой

Но я не сдавался и решил, что смогу одержать верх над Googlebot. Поэтому я построил простую функцию, кодируя данные алгоритмом base64, и отсылка выглядела так:

< a href=”javascript:void(0)” class=”js-link” data-url=”cGFnZTEwLmh0bWw=” >anchor8< /a >

В итоге Googlebot не смог сгенерировать код JavaScript, который бы раскодировал контент атрибута ссылки и редиректа. И вот оно! У нас есть способ структурировать веб-сервис, не используя rel=nonfollow, чтобы боты не просматривали все, что им захочется. Куда бы мы ни ставили функцию — на ту же страницу в разделе head или размещали ее во внешнем JS-файле, мы не нашли следов Googlebot в логах сервера или Search Console.

Часть 3. Скрытый контент

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

Я хотел подтвердить или опровергнуть эту гипотезу. Чтобы сделать это, я разместил текст на более, чем 2000 знаков на странице page12.html, спрятал около 20% текста в CSS и добавил кнопку «Показать больше». Внутри скрытого текста была ссылка на страницу page13.html с анкором anchor9.

Нет сомнений, что бот может отобразить страницу. Мы можем видеть это в Google Search Console и Google Insight Speed. Тем не менее, мой эксперимент показал, что скрытый блок текста был полностью проиндексирован. Фразы, спрятанные в тексте, проранжировались в результатах поиска, а Googlebot перешел по ссылкам, спрятанным в тексте. Более того, анкоры ссылок из скрытого блока текста были видны в Google Search Console в секции текста анкора. Страница page13.html также начала ранжироваться в результатах поиска по ключевому слову anchor9.

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

Выводы эксперимента

  • Самый важный вывод, который я сделал из этого эксперимента, — нет прямого способа обойти правило первой ссылки, используя измененные ссылки — ссылки с параметром, редиректы 301, канонические и якорные ссылки.
  • Важно построить структуру сайта, используя ссылки Javascript. Благодаря этому уходят ограничения правила первой ссылки.
  • Googlebot может видеть и индексировать контент, спрятанный во вкладках, и переходить в нем по ссылкам.

Источник: статья в издании Search Engine Land

Валерия

Маркетолог HOSTiQ и альтер-эго кота Хвостика. Ест за себя и за Хвостика.
Понравилась статья? Оставь свой голос!