Of course, some might call this out as cloaking, but Google said there is a specific policy change for dynamic rendering for this. You serve the server-side rendering to Googlebot and the client-side or hybrid rendering to the user. Here is John’s slide on that:
Tools to help you set it up are from Puppeteer and Rendertron:
Here is a diagram on how to set it up with the tools mentioned above:
I don’t know much more outside that Google will share more information about this in the future:
Yes, we’re going to have some docs about this over time.
— John ☆.o(≧▽≦)o.☆ (@JohnMu) May 14, 2018
— John ☆.o(≧▽≦)o.☆ (@JohnMu) May 15, 2018
Here is the video embed when John first began talking about dynamic rendering:
Forum discussion at Twitter.