Как поставить SSR-версию SPA (React) только поисковым роботам

Мы завершаем работу над веб-сайтом на React, но для целей SEO нам необходимо определить агента пользователя и «доставить» сканерам поисковых систем статическую версию (SSR) веб-сайта и обычный SPA для других агентов пользователя. Я обнаружил, что с next.js мы можем создать SSR, но, похоже, в этом случае веб-сайт будет SSR для всех пользователей.

Таким образом, проблема заключается в том, как определить агента пользователя и предоставить версию веб-сайта (SPA / CSR или SSR) в зависимости от типа агента пользователя.

Я знаю, что есть способ настроить Nginx перед сервером React для маршрутизации (вроде прокси) запросов. Но меня интересует только решение React

ну вот что мы сделали. сначала мы создали проверку на стороне сервера, которая решает показать SSR или компонент на стороне клиента на основе значения строки запроса в URL-адресе. Затем в карту сайта мы добавляем это значение строки запроса ко всем URL-адресам и вуаля только SSR для роботов SEO.

Sujit.Warrier 24.12.2018 07:08

так ты разобрал url? но у меня тот же URL-адрес для роботов и других пользователей, скажем, mysite.com/index Мне нужно, чтобы эта версия ssr была проиндексирована. Или я что-то неправильно понимаю?

Alexander Menschikov 24.12.2018 07:15

Я предполагаю, что роботы SEO используют ваш файл sitemap.xml для перемещения по вашему сайту. когда обычный человек посещает его, он переходит на mysite.com/index, но URL-адрес, который вы поместили в файл карты сайта, - mysite.com/index?srr=true

Sujit.Warrier 24.12.2018 07:25

на стороне сервера я проверяю наличие значения строки запроса ssr и действую соответственно

Sujit.Warrier 24.12.2018 07:26

Я бы предложил ретрансляцию в заголовке, я заметил, что если пользователь скопирует и вставит мой URL-адрес SPA в социальной сети, они не будут работать должным образом, чтобы показать карту предварительного просмотра, прямо сейчас думая о создании простой версии веб-сайта с требуемой мета просто для социальных роботов. Что касается SEO, я не уверен, с чем буду иметь дело.

amir beygi 31.12.2019 19:02
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Массив зависимостей в React
Массив зависимостей в React
Все о массиве Dependency и его связи с useEffect.
3
5
833
1

Ответы 1

Я думаю, вы говорите о файле robots.txt. Вы можете добавить этот файл в статическая папка и определить в server.js

const options = {
              root: path.join(__dirname + '/../static/'),
              headers: {
                'Content-Type': 'text/plain;charset=UTF-8',
              }
            };

            server.get('/robots.txt', (req, res) => (
              res.status(200).sendFile('robots.txt', options)
            ));

спасибо, но не про robots.txt. Но о статической версии всего сайта

Alexander Menschikov 24.12.2018 06:17

Другие вопросы по теме