Back
Question
Asked

SEO experts familiar with SSR: is there a point to SSR for my use case or can I get away with prerendering (SSG)?

I prefer to build my apps as follows:
App:
* Golang backend, APIs all return JSON bodies. No HTML output
* Vue frontend (single page app / client rendered HTML) hosted on `app.mysite.com` with Cloudflare Pages

Marketing/landing page/blog:
* Static HTML hosted on `mysite.com` with Cloudflare Pages

As I'm starting a new project soon, I realize I've been ignoring SEO and want to change that, and along with that I want to make sure my preferred setup is good enough for SEO purposes. Questions about this setup:

1. Will Google penalize me in terms of search ranking if part of my app (the main frontend app in Vue which doesn't really have any content people would need to search for) is not SEO optimized? My thinking is that I'm solving 99.99% of the SEO issue by only optimizing the marketing content and blogs while avoiding the complexity of SSR for the rest of the app. Which brings me to my next question...

2. Is there any point at all to doing a full SSR setup with something like Nuxt or Next? I'm really not seeing the draw* with all the complexity these frameworks add, but if I'm going to get killed on SEO otherwise then I might consider adopting something like Nuxt and switching my stack to JS frontend and backend, or just having my Go backend return HTML 

* I know that client rendering performance varies by device (some customers may use shitty laptops) and you can get more consistent performance by rendering on the server with SSR, but I'm not doing anything complicated that would require insane JS execution times, and Vue is efficient so I don't care much about that concern

Thanks in advance!


No, SSG is good for SEO - often better due to lower latency.

Once you force yourself to keep SSG as far as possible, you start to actually design your information architecture according to SSG's shortcomings (lack of dynamic content).

Make sure to set the canonical URL. And have a sitemap and robots.txt. Host with SSL on all pages.

And, have a look at AstroJS, you can still use Vue or Next with it, but its content collections are super useful for SSG.

Great, this is basically my plan - thanks for the confirmation

I did look at Astro - the syntax in most of their template examples looks a bit weird (seems to be React inspired?) and I wasn’t sure Vue could be used directly with it. I’ll give it another look though as it does seem to have some useful features.

Astro is completely UX-framework-agnostic, not only can you use Vue, you can also mix various frameworks without issues due to it's Islands Architecture. So you can use React Charts if that is the best charting library, and mix it with Vue and Svelte.

docs.astro.build/en/guides/in…

Personally, I just use Astro with vanilla JS and barebone HTML Web Components where needed (rarely).

One thing. Your dashboard doesn't have to be SSR. There is no point of doing that. Rest of the app can be SSR or SSG. And still will be indexed by Google and they won't penalize you. Make sure you have proper sitemap and robots txt

Great, thanks for confirming. This was my general plan, was just trying to make sure that Google wouldn’t get mad that part of my app is “unoptimized” and rank me lower because of it

Sounds like my preferred approach of static landing + client rendered dashboard is fine 👍