гугловый краулер умеет использовать JS, но только он судя по всему это и умеет. Ну и да, есть куча подводных камней.
альтернатива - пререндринг на сервере, генерация
снэпшотов. Это дело умеют разруливать большинство поисковиков, в этом случае вы в метатегах помечаете что ваш сайт динамический.
Ну и еще вариант - тупо пропиать на уровне вэб сервера - если зашел бот - отдать ему снапшет.
для генерации снапшетов можно либо поднять у себя phantom.js либо воспользоваться сервисами типа
https://prerender.io/