Делаю сайт SPA. Переходы по страницам делаю с помощью window.History.pushState.
При этом возникла проблема скармливания сайта всяким ботам, так как все данные подгружаются аяксом.
Я решил эту проблему так:
- При переходе на любую страницу, например, my-site.ru/product1, я проверяю на бэкэнде user agent пользователя.
- Если это бот, я ничего не делаю и отдаю ему страницу с мета информацией.
- Если же это пользователь, то я делаю редирект на my-site.ru/#product1, то есть грузится главная страница, на которой я уже беру хэш, и делаю pushState на my-site.ru/product1.
Все хорошо, все работает. Но в истории браузера все адреса задваиваются.
Можно ли как-то использовать pushState и не писать это в историю?