如何仅向搜索机器人交付SSR版本的SPA(反应)

时间:2018-12-24 04:26:03

标签: reactjs seo single-page-application user-agent serverside-rendering

我们正在React上完成网站,但是出于SEO的目的,我们需要标识用户代理,并为搜索引擎抓取工具“交付”网站的静态版本(SSR),以及将SPA正常分发给其他用户代理。我发现使用next.js可以进行SSR,但在这种情况下,似乎所有用户代理的网站都是SSR。

因此,问题在于如何根据用户代理类型识别用户代理并交付网站版本(SPA / CSR或SSR)。

我知道,如果在React Server前面设置Nginx可以路由(kinda代理)请求,那是一种方法。但是我对仅React解决方案感兴趣

1 个答案:

答案 0 :(得分:0)

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