Я использую React & Узел JS для создания универсальных приложений(). Я также использую response-helmet как библиотеку для обработки заголовка страницы, мета, описания и т. Д. Но у меня есть некоторые проблемы при динамическом загрузке контента с помощью ajax, искатель Google не может правильно загрузить мой сайт, потому что содержимое будет загружаться динамически. Любое предложение по решению этой проблемы? Спасибо!Обработка SEO на изоморфном реакторе
ответ
У меня была схожая ситуация, но с backend как django, но я думаю, какой бэкэнд вы используете, не имеет значения.
Прежде всего, позвольте мне перейти к основам, боты Google на самом деле не дождались завершения ваших вызовов ajax. Если вы хотите протестировать его, зарегистрируйте свою страницу в инструментах Google для веб-мастеров и попробуйте выбрать в качестве google, вы увидите, как ваша страница видна ботами (моя была просто пустой страницей с иконкой загрузки), так как звонки не завершаются, а не данные и страница пуста, то есть плохой для SEO, так как боты читают текст.
Так что вам нужно сделать, это попробовать визуализацию на стороне сервера. Это можно сделать двумя способами: либо prerender.io, либо создать шаблоны на бэкэнд, которые загружаются при первом вызове страницы, после чего запускается одностраничное приложение.
Если вы используете prerender, render внутренне использует phantom.js, который вы можете использовать непосредственно. Но для меня это не сработало, поэтому я пошел создавать шаблоны на бэкэнд. Таким образом, боты или пользователь, пришедшие на страницу в первый раз (или первая запись), страницы подаются с бэкэнда еще переднего конца.
Не стесняйтесь спрашивать в случае каких-либо вопросов :)
ах ладно, спасибо за предложение. Можете ли вы объяснить мне более подробно о шаблоне на стороне сервера? –
yup .. шаблон, который вы создаете из кода реакции, просто скопируйте созданный html из элемента проверки и создайте html-файл на сервере. Я предполагаю, что вам нужны данные в html (который вы получаете от вашего API); что вы можете получить из db (или вызвать api) и передать его из представления в шаблон. –
можете ли вы поддержать ответ, если это помогло вам? –
Вы когда-нибудь слышали о серверной стороне рендеринга? – FurkanO
Да, уже используя сервер-рендеринг @FurkanO , так как мне нужно сначала получить данные из службы API, поэтому он будет выполняться асинхронно. –
Если вы выполняете SSR, у вас не должно быть проблем с SEO, поскольку каждая страница отображается на сервере. Я не уверен, что вы это делаете. SSR означает, что ваша первая страница извлекает данные на сервере. Ваше приложение делает это? – FurkanO