首页 > 解决方案 > 如何仅向搜索机器人提供 SSR 版本的 SPA (React)

问题描述

我们正在完成 React 网站,但出于 SEO 目的,我们需要识别用户代理并为搜索引擎爬虫“交付”网站的静态版本 (SSR),以及向其他用户代理的正常 SPA。我发现使用 next.js 我们可以制作 SSR,但在这种情况下,似乎网站将成为所有用户代理的 SSR。

所以问题是如何识别用户代理并根据用户代理类型交付网站版本(SPA/CSR 或 SSR)。

我知道如果在 React 服务器前面设置 Nginx 来路由(有点代理)请求,有一种方法。但我对 React only 解决方案感兴趣

标签: reactjsseosingle-page-applicationuser-agentserver-side-rendering

解决方案


我认为您在谈论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)
            ));

推荐阅读