От автора: традиционно поисковые системы читали и отображали только HTML-код веб-сайта. Это означало, что оптимизация кода HTML заключалась в том, на что ориентировались оптимизаторы. Что это будет означать для поисковой оптимизации теперь, когда робот Googlebot может также сканировать и индексировать JavaScript? Мы попросили нескольких экспертов выяснить это.
Чтобы получить ряд перспектив по теме чтения роботом Google JavaScript, мы задали нашим специалистам следующие вопросы:
Google говорит, что Googlebot может сканировать веб-сайты, основанные на JavaScript — какие проблемы и возможности вы видите в этом для оптимизаторов?
Какие конкретные аспекты нужно рассмотреть, если планируется повторный запуск веб-сайта JavaScript?
Какие изменения с точки зрения эффективности и точности вы ожидаете от обновления веб-рендеринга в Chrome?
И вот пришли ответы.
Martin Tauber. Управляющий партнер, Marketing Factory GmbH
С точки зрения пользователей, веб-сайты на основе JavaScript предоставляют большие возможности, потому что они быстрее и интерактивнее.
Однако Googlebot все еще испытывает трудности с интерпретацией JavaScript, и это означает, что разработка должна быть чрезвычайно чистой и производиться в тесном сотрудничестве с подразделением SEO, чтобы избежать неприятных сюрпризов.
Dominik Wojcik. Управляющий директор, Trust Agents
Возможности заключаются в том, что теперь нет двух отдельных миров программирования (например, для экранированных фрагментов), позволяя сосредоточиться на чистом коде и чистой веб-среде. Пока разработчики рассматривают прогрессивное совершенствование и развитие своих веб-приложений соответственно, Google должен отлично справляться с этим.
Однако есть скрытые проблемы. Какая структура используется? Будет ли рендеринг на стороне клиента и возможно ли реализовать рендеринг на стороне сервера? Можно ли реализовать изоморфный JavaScript? Является ли JavaScript реализованным внутри или снаружи? Как оптимизаторам, нам нужно будет сделать невероятное количество тестов и попробовать разные вещи, чтобы Google индексировал и взвешивал наши страницы по своему усмотрению.
Перед повторным запуском следует принять взвешенное решение насчёт структуры, которая будет использоваться. Следует учитывать способность к сканированию и производительности. В идеале должна быть создана тестовая среда, которая позволит тестировать текущую разработку извне, если используется рендеринг на стороне клиента. Тем не менее, я настоятельно рекомендую использовать также рендеринг на стороне сервера. Это хоть и влияет на производительность сервера, но всё же должно минимизировать риски. Прежде всего, вам действительно нужно тестировать, тестировать и ещё раз тестировать, используя fetch & render, чтобы узнать, что находит, индексирует и сканирует Googlebot.
Если Google окончательно переключится на версию Chrome выше V49, тогда мы можем использовать безглавую Chrome в сочетании с чем-то вроде Rendertron для создания тестовых сред, которые позволят нам смоделировать настройку, аналогичную настройке Googlebot. Это поможет лучше понять, как и что может интерпретировать Google и упростит SEO-оптимизацию.
Bartosz Goralwicz. Соучредитель и руководитель отдела SEO, Elephate
На саммите Searchmetrics в ноябре 2017 года Bartosz Goralwicz из Elephate рассказал о взаимоотношениях между роботом Googlebot и JavaScript:
Stephan Czysch. Основатель и управляющий директор,Trust Agents
Мы не хотим, чтобы поисковые системы (или агентства) слышали, как люди говорят: «Кстати, мы скоро переходим на JavaScript. Есть ли что-то, о чём мы должны думать с точки зрения SEO? Не должны? Но было бы здорово, если бы можно было бегло ознакомиться, прежде чем начать с понедельника новую жизнь с новым сайтом». Этот сценарий неизбежно закончится полным хаосом. Bartosz [в видео выше] предоставил замечательный взгляд на тему JavaScript и SEO.
Кроме того, чтобы спросить, что может делать Google, оптимизаторы должны следить, когда перезапускают веб-сайт, за тем, что бот может видеть, и устанавливать то, что отличается от старого веб-сайта. Недавно я просматривал сайт, на котором полная внутренняя система ссылок была перепутана после перезапуска JavaScript, потому что логика ссылок старого сайта не была перенесена. Были также проблемы с hreflang. Поэтому важно работать с контрольным списком желаемых «функций SEO». Кроме того, вы должны спросить, что для ваших целей значит рендеринг JavaScript: какое оборудование он использует для доступа к вашему сайту и как это повлияет на время загрузки? Для получения дополнительной информации по этой теме, рекомендую эту статью Addy Osmani.
Sebastian Adler. Консультант SEO, leap.de
Даже с улучшенной способностью сканировать JavaScript, Google предпочитает чистый HTML-контент, потому что он потребляет меньше ресурсов. Вопрос заключается не в том, может ли Google читать и отображать JS, а можете ли вы и хотите ли снять часть работы с Google. Если мой контент может быть прочитан, он работает и быстро загружается без JS, то для меня это все же лучше.
Способность рендерить всегда зависит от технологии, стоящей за ней, и, как сказал Bartosz (уважаю его за все усилия, которые он вкладывает в свои эксперименты и исследования!), Вы должны полностью понять эту технологию, если вы хотите использовать ее наилучшим образом, Огромная возможность здесь заключается в минимизации рисков, предоставляя важный контент как HTML и используя JS, только как он предназначен: для дополнительных функций. Если вы полностью выполняете в JavaScript, самая большая трудность заключается в поиске ошибок.
При повторном запуске страницы убедитесь, что контент, который вы хотите присвоить, работает без JavaScript. Это включает не только основное содержание, но и навигационные элементы. На многих страницах нет меню, когда JS отключен. Имеет смысл не включать каждую отдельную функцию, а задавать вопрос, действительно ли функция необходима для вашего бизнеса и вашей целевой аудитории. Каким было бы воздействие, если бы какая-то функция не сработала? А затем выполните соответствующие тесты.
Помимо того факта, что я не ожидаю, что Google будет очень хорошо передавать веб-рендеринг для веб-мастеров, я ожидаю, что главное, что изменится, будет восприимчивость к ошибкам. Chrome и фреймворки развиваются очень быстро, и с новыми версиями в RWS, скорее всего, появятся новые ошибки.
Несколько вещей наверняка будут обработаны быстрее или станут более чистыми. Но основная проблема остается прежней. Код с ошибкой (с точки зрения используемого двигателя) не может быть интерпретирован. Нам нужно выяснить, как двигатель интерпретирует наш код. Во время разработки это изменяет инструмент, который мы должны использовать для отладки. Но если у вас есть ваши самые важные активы в качестве загружаемых файлов HTML (и т. д.), тогда вам не нужно беспокоиться — вы можете сосредоточиться на правильной работе SEO.
Björn Beth. Директор по профессиональным услугам, Searchmetrics
Мы должны различать сканирование и индексирование. Google может сканировать JavaScript, но для этого требуется гораздо больше ресурсов, чем при сканировании чистого HTML. Для индексатора более проблематично отображать ссылки (URL-адреса), которые он получает от искателя, с помощью службы веб-рендеринга (WRS), аналогично Fetch & Render в Search Console. Для этого Google использует собственный браузер Chrome (версия 41). С помощью браузера он пытается создать Document Object Model (DOM) и интерпретировать страницу так же, как она будет отображаться в браузере. Это может привести к проблемам, поскольку Google, например (как показано в тестах, выполняемых Distilled и Bartosz Goralewicz), не может справиться с проблемами в коде, или, если возникают другие большие проблемы при рендеринге, так что Google перестает отображать страницу через пять секунд.
В основном, JavaScript делает сканирование и индексирование гораздо более сложными путями и создает очень неэффективную взаимосвязь между ними. Если SEO важен для вас, вы всегда должны быть уверены, что бот может быстро и эффективно читать ваши страницы.
Прежде чем переходить с веб-сайта на основе HTML на фреймворк или библиотеку на основе JavaScript, вы должны убедиться, что включен сторонний рендеринг. Например, React поставляется с собственным решением, которое называется renderToString. Он использует независимый от браузера DOM-интерфейс, который отображает JavaScript на сервере, создает DOM и отправляет его боту. AngularJS использует Angular Universal. Это доказывает клиенту, как важен предварительный визуализированный HTML. Затем клиент получает JavaScript, как требуется. Тем не менее, вы можете работать с безголовым Chrome на сервере и отправлять предварительно обработанный HTML-код боту.
Прежде всего, я ожидаю, что более быстрым и эффективным будет рендеринг от Chrome 59, продвигающийся к производительности наравне с чистым HTML. Только тесты покажут, действительно ли это так.
Сканирование через mud: оценка здоровья вашего сайта
Проанализируйте как HTML, так и JavaScript с оптимизацией структуры сайта, включая JavaScript-сканер с помощью Searchmetrics! Ваши преимущества:
Сканирование всех соответствующих фреймворков JavaScript, включая Angular и React
Повышение эффективности веб-сайта за счет приоритетного списка технических проблем
Сравнение обходов с использованием JavaScript и без него
А что думаешь ты?
Это то, что думают эти пять экспертов, нона самом деле экспертов, читающих этот блог, намного больше. Итак, что вы думаете о JavaScript? Вы уже внесли изменения на свои веб-сайты? Или может обнаружили что-нибудь интересное в своих тестах?
Автор: Lea Manthey
Источник: //blog.searchmetrics.com/
Редакция: Команда webformyself.