Что видит Googlebot при сканировании Discourse

TL;DR: частично возможно имитировать краулинг Googlebot на Discourse. Вот как начать…

Станьте Googlebot

  1. Откройте окно в режиме инкогнито (всегда начинайте заново)
  2. Откройте DevTools
  3. Откройте Network Conditions в DevTools
  4. Снимите галочку с «Use browser default»
  5. В выпадающем меню выберите Googlebot Smartphone
  6. Затем перейдите на https://meta.discourse.org (выглядит совсем иначе; не проблема, ведь вашему Googlebot и ботам это не важно)
  7. Перейдите в View > Developer > View Source
  8. Скопируйте код и вставьте его в файл с расширением .html

Отличная работа! Вы создали файл, на который ссылаются люди, чтобы увидеть, что Googlebot проиндексировал и закешировал.

Работа Googlebot завершена. Теперь нужно отрендерить закешированный файл в браузере.

Станьте Chrome

  1. Откройте терминал и выполните команду npx http-server
  2. Перейдите к файлу
  3. Откройте Chrome DevTools
  4. На панели Elements щелкните правой кнопкой мыши по тегу <html... и выберите Copy outerHTML.
  5. Это тот контент, который будет индексироваться, а не кешироваться — именно он индексируется.

Итог: Googlebot получает HTML, а Chrome его рендерит. Отрендеренный HTML — это золото. Убедитесь, что ваш ценный контент и ссылки отображаются именно там.

Какова цель шагов под заголовком «Станьте единым с Chrome»?

Нельзя ли выполнить шаг «Копировать outerHTML» вместо шага 7 в первом списке?

Я думаю, что вы также можете получить его с помощью curl:

curl -s https://meta.discourse.org/ > page.html

(Он будет содержать классы "crawler".)

Затем откройте файл page.html в браузере.

Или чтобы просмотреть код в редакторе:

curl -s https://meta.discourse.org/ | vim -

Кэшированный HTML-код отображается в Chrome (headless). При отображении через JavaScript в DOM могут добавляться дополнительный текст и ссылки. Google учитывает эту информацию при индексации.

Именно так Googlebot получает контент из приложений, heavily использующих JavaScript. Перейдите в Google, выполните поиск по запросу, который вы знаете, отображает контент только с помощью JavaScript > нажмите на иконку с тремя точками > нажмите кнопку “Сохранённая копия” > нажмите “Просмотреть исходный код” > скопируйте его и отобразите в Chrome, чтобы увидеть, какой контент появляется в DOM.

Примечание: Перед отображением в Chrome обновите все относительные пути (ресурсы CSS и JS) на абсолютные ^^

Использование curl упрощает задачу, отлично!

Обязательно добавьте строку user agent для Googlebot, например: Mozilla/5.0 (Linux; Android 6.0.1; Nexus 5X Build/MMB29P) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Mobile Safari/537.36 (compatible; Googlebot/2.1; +http://www.google.com/bot.html). Сервер может отправлять Googlebot другой HTML-код.

Думаю, вывод будет таким же, но наличие User-Agent не повредит. Насчет Chrome я не уверен, но в Firefox можно кликнуть правой кнопкой мыши по запросу во вкладке «Сеть» и выбрать «Копировать как cURL», чтобы получить полный набор заголовков, имитирующий запрос браузера.