SEO для тяжелой страницы магистрали js
Мы используем основную основу для рендеринга наших страниц. Все данные передаются как json с сервера, а html создается на клиенте с основой и усами.
Это создает большую проблему для SEO. Один из способов, которым я собирался обойти это, - обнаружить, является ли запрос от бота, и использовать что-то вроде HtmlUnit, чтобы отобразить страницу на сервере и выплюнуть ее.
Будут любить некоторые альтернативные идеи. Также хотел бы знать, есть ли недостаток в том, что я планирую делать.
Ответы
Ответ 1
Мне не обязательно нравится, что единственный вариант, который у вас есть для ответов, - это переделать все, чтобы соответствовать широкой передовой практике. Есть все основания считать, что вы делаете что-то, используя ненавязчивый подход Javascript, но, возможно, есть веская причина, по которой вы делаете это как сайт, требующий JS. Пусть притворяется, что есть.
Если вы делаете приложение Backbone.js с динамическим заполнением клиентских шаблонов, лучший способ, который я мог бы сделать, - это ссылка ниже. В основном, это означает, что браузер без браузера запускает набор навигационных команд для просмотра всех ваших пользователей/продуктов/страниц и сохранения статического html файла на каждом шаге по причинам SEO.
Каков наименее избыточный способ создания сайта с помощью JavaScript-обходного кода HTML?
Ответ 2
Создайте свой сайт, используя Progressive Enhancement и Ненавязчивый JavaScript.
Когда вы делаете значительный материал Ajax, используйте API истории.
Тогда у вас есть реальные URL-адреса для всего, и Google не будет проблемой.
Ответ 3
В проекте, над которым я работаю, в настоящий момент я пытаюсь охватить все базы. По возможности, клиент с базой данных, pushstate uris, страницы-закладки и html-резерв. Подход, который я принял, - использовать Mustache для шаблонов, разбить их на красивые небольшие компоненты для моих позвоночных представлений и сделать их доступными в необработанном формате для клиента. Когда запрашивается страница, шаблоны могут обрабатываться на сервере для создания полной страницы, а магистраль привязывается к элементам, которые она хочет контролировать.
Это не простая настройка, но до сих пор я не ударил никаких дорожных блоков, и я не дублировал никаких шаблонов. Я должен был создать шаблон обертки страницы для каждого доступного URL-адреса, поскольку Mustache не делает "обертки", но я думаю, что мне удастся устранить их с некоторым дополнительным кодированием на сервере.
План состоит в том, чтобы иметь некоторые компоненты как чистые js, где это требуется интерфейсом, и некоторые, отображаемые сервером, и улучшенные с помощью js, где это необходимо.
Ответ 4
Там есть плюсы и минусы использования схемы обхода google ajax - я использовал ее для сайта социальной сети (http://beta.playup.com) со смешанными результатами...
Я написал жемчужину, чтобы обработать это прозрачно, как промежуточное промежуточное ПО для рубиновых пользователей (gem install google_ajax_crawler) (https://github.com/benkitzelman/google-ajax-crawler)
Читайте об этом на http://thecodeabode.blogspot.com.au/2013/03/backbonejs-and-seo-google-ajax-crawling.html
Резюме состоит в том, что, хотя я успешно разместил сделанные снимки dom для запрашивающей поисковой системы, и я мог видеть, что с помощью инструментов для веб-мастеров, которые Google сканировал, как 11 000 страниц сайта, я обнаружил, что Google более подвержен классификации приложений различные состояния (urls) как версии одной и той же страницы, а не как отдельные индексы. Попробуйте выполнить поиск для beta.playup.com - указана только один индекс, хотя рендеринг контента радикально меняется между URL-адресами)....
Ответ 5
если вы используете node.js, используйте rendr
Render your Backbone.js apps on the client and the server, using Node.js.