Как улучшить SEO для одностраничного приложения

Мы создали поисковую систему для вакансий. По соображениям скорости и хорошего пользовательского опыта мы использовали архитектуру "Single Page Application" (SPA). Мы знаем, что для SPA-архитектуры это непростая задача для SEO, поэтому мы сделали довольно много оптимизаций для SEO. Несмотря на то, что Google индексирует наши страницы, наш рейтинг в Google очень низок, и мы просим внести предложения, чтобы улучшить это. Мы выполнили рекомендации Googles, но без удовлетворения.

СПА не может быть проиндексирован Google-ботом напрямую, так как бот Google не выполнит javascript на стороне клиента. Без javascript наш сайт вряд ли содержит какой-либо контент, потому что данные считываются асинхронно в формате json, и большая часть HTML отображается на клиенте. Отрисовка выполняется с помощью фреймворка под названием "knockout", который позволяет привязывать шаблоны HTML к объектам javascript. Различные страницы в SPA могут быть решены с использованием клиентских URL-адресов. Чтобы эти страницы были прочитаны Google, наши URL-адреса на стороне клиента содержат "# follow a". Этот синтаксис hash-bang заставляет робота Google переписывать URL-адрес на специальный "серверный URL-адрес". Когда этот специальный URL-адрес посещают наш сервер, мы запускаем "безгласный браузер" для отображения страницы на сервере. Полный HTML-синтаксис (после javascript-выполнения) затем отправляется клиенту. Этот так называемый HTML-снимок может использоваться ботом Google для индексации страниц. Чтобы сообщить Google, какие страницы присутствуют в нашем SPA, мы предоставили sitemap.xml различные URL-адреса, которые можно посетить. Когда мы просим Google показывать страницы, индексированные с нашего сайта, мы видим, что бот Google посещал и индексировал наши страницы. Поэтому наш вывод состоит в том, что технически мы хорошо работали, но ни одна из этих страниц не имеет рейтинга, достаточно высокого, чтобы появляться в обычных поисковых запросах Google. Мы не уверены, связано ли это с тем фактом, что мы используем архитектуру SPA, но в результате наши страницы не могут быть найдены.

Нам интересно, есть ли у кого-то такой же опыт с этим методом в отношении рейтинга Google, и если у кого-то есть дополнительные предложения, которые помогут нам улучшить рейтинг SEO нашего SPA (без полного изменения сайта на обычный сервер- боковая рендерная техника).

Ответы

Ответ 1

Чтобы решить проблему, вам нужно несколько вещей:

  • Реальные URL. Реальные теги <a> с hrefs, указывающими на них.
  • Вам нужно, чтобы сервер сгенерировал страницы, предварительно заполненные JSON, в явном запросе
    • это наиболее легко выполняется с помощью PhantomJS или аналогичного.
    • Если вы предполагаете, что контент изменяется реже, чем его чтение (то есть большинство успешных сайтов), вы можете использовать очередь для создания этих страниц в статические файлы.
    • затем сообщите веб-серверу отправить index.html , если запрошенный файл не существует

Для "мягких запросов" (они нажимают ссылку, которую вы используете для JSON/AJAX), она будет работать так же, как и в настоящее время.

Для жестких запросов (они нажимают ссылку с другого сайта, нажимают F5 или Googlebot, сканируя ваши URL-адреса), вы отправляете им предварительно скомпилированную версию, которая:

  • улучшает SEO
  • увеличивает производительность загрузки страницы (что также является бонус SEO)
  • не требует сложной обработки сервера, потому что страница уже построена.