There’s a popular idea within the React community that SSR (server-side rendering) isn’t necessary, and it’s a popular idea for some very attractive reasons.

Firstly, it’s not trivial to get SSR working well. It involves a lot of bootstrap code on both client and server, and it often needs to be highly bespoke to your particular project. Additionally, React is very slow at rendering a component tree to a string on the server (there are tricks to speeding this up, but the most effective ones are a little… dirty). There are also tricks you need to do on the client to deal with interactivity issues related to pre-rendered content.

Secondly, the most common reason why people think SSR is unnecessary is because it’s not needed for SEO. The justification for this is that Google crawls JavaScript just fine, and it does — people have tested it pretty thoroughly. This has led many people to argue that you don’t need SSR for SEO purposes. However, for some reason we’ve fallen into the trap of thinking we only need to optimise for Google. But Bing and Yahoo have a higher market share than you might think, and then there’s Baidu in China, and it seems that none of them will execute your JavaScript. But despite all this, not needing it for SEO remains the most common argument against the effort of implementing SSR in your React-based websites/apps.

Even if you don’t care about the SEO of your particular project, usually because it’s an app and content doesn’t need to be indexed, you may still need SSR.