В настоящее время существует множество интересных инструментов для создания мощных "одностраничных" сайтов JavaScript. На мой взгляд, это делается правильно, позволяя серверу действовать как API (и не более того) и позволяя клиенту обрабатывать все элементы генерации HTML. Проблема с этим "шаблоном" - отсутствие поддержки поисковой системы. Я могу представить два решения:
- Когда пользователь входит на веб-сайт, пусть сервер отображает страницу точно так же, как клиент будет при навигации. Поэтому, если я перейду к
http://example.com/my_path
напрямую, сервер будет делать то же самое, что и клиент, если я перейду к/my_path
через pushState. - Пусть сервер предоставляет специальный сайт только для ботов поисковой системы. Если обычный пользователь посещает
http://example.com/my_path
, сервер должен предоставить ему тяжелую версию сайта на JavaScript. Но если бот Google посещает, сервер должен предоставить ему минимальный HTML-код с содержимым, которое я хочу индексировать Google.
Первое решение обсуждается далее здесь. Я работаю над этим сайтом, и это не очень приятный опыт. Это не СУХОЙ, и в моем случае мне пришлось использовать два разных механизма шаблонов для клиента и сервера.
Я думаю, что я видел второе решение для некоторых хороших веб-сайтов Flash. Мне нравится этот подход намного больше, чем первый, и с правильным инструментом на сервере это можно сделать безболезненно.
Так что мне действительно интересно:
- Можете ли вы придумать какое-нибудь лучшее решение?
- Каковы недостатки второго решения? Если Google каким-то образом узнает, что я не обслуживаю точный контент для бота Google в качестве обычного пользователя, был ли я наказан в результатах поиска?