Как улучшить 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)
- не требует сложной обработки сервера, потому что страница уже построена.