Могут ли возникнуть проблемы с поисковиками, если использовать ES6 без транспиляции?
Привет, коллеги.
Я очень давно уже не занимался разработкой сайтов, работаю немного в других направлениях. Так что прошу прощения, если спрашиваю банальные вещи, понятные всем web-разработчикам.
Возникла необходимость модернизировать сайт одного хорошего знакомого.
Собираюсь писать клиентскую часть максимально с использованием ES6.
Страницы сайта полностью генерируются на сервере. Весь контент, который должны видеть поисковики, сразу доступен после загрузки страницы.
JS используется исключительно для интерактивщины при естественном взаимодействии пользователя с сайтом: показать блок скрытый под display: none; подгрузить форму, ещё что-нибудь; произвести валидацию формы; и т.д.
Ну, на самом деле, на JS будут и другие, более сложные вещи, но в том, что будет делаться на JS, не будет ничего интересного для поисковиков.
Поддержка старых версий браузеров не требуется.
Анализ аудитории показывает, что сайт будет нормально работать у подавляющего большинства посетителей, даже если не транспилировать ES6 в ES5.
Читал, что в настоящее время поисковики пытаются выполнять javascript на сайтах. но тот же GoogleBot использует Chrome41 и не умеет в ES6. О чём прямо говорится на странице справки.
Непосредственно вопрос в том и заключается: не повлияет ли использование ES6 на лояльность поисковиков?
Например, тот же GoogleBot, зайдя на страницу, не сможет выполнить JS и "обидится"))).
Конечно можно транспилировать мой код тем же Babel. Но, как я уже писал выше, это, в общем-то, и не нужно. Т.к. у пользователей всё будет и так работать. Так зачем делать лишнее.
Смущают только поисковики.
У гугля есть другие критерии, которые гораздо сильнее влияют на индексацию, (mobile first, скорость загрузки, наличие микроразметки) кроме того, у гугля есть прекрасный инструмент, чтобы посмотреть как он видит вашу страницу https://search.google.com/search-console/
Для того, чтобы оценить поддержку тех или иных фич браузерами, можете использовать https://caniuse.com/
Ну и в документации гугл рекомендует использовать полифилы, например, тогда в новых браузерах будет работать нейтивный ES6 https://polyfill.io/v3/api
Спасибо.
Про эти критерии знаю, учтены.
Поддержку браузерами фич на caniuse.com тоже проверял. Всё ОК.
Точнее, у части посетителей сайт конечно будет работать некорректно (страницы отображаться будут, но некоторый функционал будет недоступен), но там процент на уровне статистической погрешности. Этим процентом можно пожертвовать без особого ущерба.
В консоли тоже всё отображается как надо. Собственно, другого и не может быть. Страница прилетает с сервера в готовом виде.
Т.е. с учётом всего этого, я могу не беспокоиться?
И ещё вопрос.
Поисковики обрабатывают события click, или нет?
Есть форма. И есть необязательные фильтры ввиде ссылок.
В ссылке есть href с реальным URL, и есть data-атрибут с неким значением.
Когда пользователь кликает по ссылке, я отменяю переход по event.preventDefault() и записываю значение data-атрибута в скрытый input формы.
Если, скажем, JS отключён, то происходит переход по ссылке, где происходит обработка запроса аналогичная той, если бы была отправлена форма с одним только значением в input hidden.
Другими словами, мне бы хотелось, чтобы Гугл обрабатывал URLы из этих ссылок.
Как я понимаю, робот парсит URLы на странице и обрабатывает их отдельно, а не эмулирует клики? Верно ли я понимаю?
Все вокруг используют https://babeljs.io как Вы думаете зачем?
Что бы писать на ES6, а в браузер давать ES5. И нет проблем. Если бы можно было безнаказанно использовать ES6, наверное так бы и делали.
Вы описали почему не надо использовать ES6 без babeljs и все равно планируете его использовать. Где логика? Откуда такие идеи? Это что-то из серии "а вдруг"?
Не хотите юзать babeljs, юзайте ES5. И кстати там тоже не 100% юзеров оценят.
Полагаю, что его используют всё же преимущественно для обеспечения работы сайтов в старых браузерах (у пользователей).
Но, как я писал, для меня это некритично. Поддержка старых браузеров не требуется.
Вопрос интересует исключительно в аспекте поисковых систем.
У меня JS не используется для генерации контента, страница генерируется исключительно на сервере. Весь контент доступен сразу, поисковик его увидит.
И если с учётом всего этого, невозможность выполнить JS не повлияет на отношение поисковика к сайту, то я бы и не стал транспилировать код.
Читал, что в настоящее время поисковики пытаются выполнять javascript на сайтах. но тот же GoogleBot использует Chrome41 и не умеет в ES6. О чём прямо говорится на странице справки.
Если это не ответ на вопрос, то не знаю как помочь