Is apollo_state required for CSR? Is it required for SSR?

Does anyone know if apollo_state is required for CSR and/or if it could be removed for SSR?

We’ve ran into some SEO problems that we are trying to figure out. For some reason, we can rank really well using CSR but poorly (as in non-ranked) using SSR, even though our SSR performance numbers are ~5x better than CSR.

I’m still trying to chase down the exact cause but so far, it’s either the fact that the SSR HTML has more content than the rehydrated page or it’s the apollo_state causing dupe / keyword stuffing flags. Anyone experience something similar?

Also, I really don’t like exposing all of our data via apollo_client and would love to get that out of the client side if possible but it seems to cause some CLS / reloading issues when removed.

Thanks for any feedback!

Hi @Robert_Guice :wave: thanks for posting! A few thoughts about this:

window.__APOLLO_STATE__ is intended to hydrate the cache in the end user’s web browser. Not including it would trigger a fetch on the client that would essentially be a duplicate of the data already fetched on the server.

Awesome to hear that you’ve seen such a dramatic performance improvement with SSR. Getting solid answers about SEO might be difficult given that search engine algorithms are not able to be inspected. If you haven’t already, take a look at the HTML rendered by the CSR app and compare it to the HTML rendered by the SSR app. Maybe there are some anomalies worth taking a closer look at?

Hope that helps, thanks!