I am using walmart's electrode framework which is a universal framework that can render components/routes in reactjs on the server side and send back compiled html. Currently what happens is that the initial page load will render on the server and send me back compiled html. However, after clicking on any Link's, the subsequent routing navigation is handled in a SPA-like way and I am no longer receiving templates from the server, rather the client is building them.
So my questions are:
Is there a way I can set it up so that when I click to hit new routes, I continue to receive server-rendered html?
Or is this intentionally the idea that only the initial pageload needs to be rendered server-side and the rest is ok client-side?
Will it negatively impact SEO if only initial page loads and reloads serve html from the server while clicks and routing render html client-side?
Thanks
Its intentionally setup this way. Once the server has generated HTML markup, there is no need to get "HTML" from the server, the client can generate the markup as required.
The answer would be No, Google and certain other bots are able to render Javascript on the client and index results. However for other bots, your HTML output is valuable and they will continue to navigate and load full pages - Essentially a multi-page application.
Bottom line: Use server rendered markup for SEO and performance value and continue client side.