А есть какой-то хороших способ без танцев с бубном подготовить БЭМ-фулстек проект с Express API на бэкэнде к индексированию поисковиками? (https://yandex.ru/support/webmaster/robot-workings/ajax-indexing.xml)
А есть какой-то хороших способ без танцев с бубном подготовить БЭМ-фулстек проект с Express API на бэкэнде к индексированию поисковиками? (https://yandex.ru/support/webmaster/robot-workings/ajax-indexing.xml)
@Mellanore А в чем сейчас проблема с индексированием? По умолчанию стек изоморфный (употребляя модные словечки). Кажется никаких танцев не должно быть
Хм.. Ну вот например, когда я делаю в js блока так:
BEMDOM.append( this.elem("element_name"), "hello, element" );
Я не вижу в html'е, который уходит на клиент фразы "hello, element". Поисковик, полагаю, тоже.
@Mellanore Это справедливо для любого JS меняющего DOM на клиенте. Если вы хотите, чтобы это увидел поисковик - делайте тоже самое на сервере. Собственно так делают любые изоморфные/универсальные фреймворки.
По вашей ссылке рекомендации как добиться индексации, когда код формирующий контент не может быть выполнен на сервере: т.е. необходимо подготовить и сделать доступными статичные страницы специально для поисковика. Обычно это достигается запуском сайта, например, в Phantom и сохранением сформированного клиентским кодом в html.
С изоморфными стеками в этом подходе нет никакого смысла и необходимости.
Понял, спасибо. А где-нибудь можно почитать или посмотреть примеры про то как в БЭМ (использую https://github.com/bem/project-stub на enb и bemhtml) выполнять код формирующий контент на сервере?
Гуглил, но ничего по теме не нашел :(
Ну так в
project-stub
как раз всё на сервере исполняется. Только надо иметь ввиду, что это не production сервер, а подобие верстака разработчика.Есть ещё такие примеры:
https://github.com/vithar/bem.info(#624) статичный сайт с серверной шаблонизацией@Guria Кажется можно все проще. При одном условии. Если при шаблонизации кусков кода на клиенте меняется и URL то все уже готово. Нужно просто по этому адресу шаблонизировать этот запрос на сервере если клиент заходит первый раз, далее все шаблонизируется на клиенте. Таким образом все страницы у нас попадут в поисковик.
Еще добавлю мою сборку для начала работы с express сервером + bemtree
@voischev кажется именно этот подход и принято называть изоморфностью. Я говорил про тоже самое. А вариант с фантомом это костыль специльно для поисковиков если не получается рендерить шаблоны на сервере.
@Guria не надо нам костылей :)
@voischev я и не предлагал. лишь объяснял про что ссылка была. Для БЭМ стека этот костыль не актуален.
@Mellanore Ваше приложение на сервере получает данные из API, самостоятельно или посредством
bemtree
формируетbemjson
. Передаёт полученныйbemjson
вbemhtml.apply(bemjson)
и на выходе получает html строку. отдаёт html браузеру.project-stub
по-умолчанию преобразуетbemjson
вhtml
посредствомbemhtml
на сервере.К слову если речь именно про i-bem.js
То да, он выполняется только на клиенте. Но не надо с его помощью генерировать контент страницы.
Схематично:
bem.info мой зря приводите, там чистая статика генерируется и пока не предполагается ничего про express.
@vithar fixed