5 SEO Tips for JavaScripters


#1

I recently spent some time working on SEO for React (and some Meteor) apps, so I thought it would be fun to share my findings on things people should be doing for their JS apps: http://bit.ly/2hNx7V6


#2

Thanks Josh! Looking forward to your post on SSR. Last time I tried to get into it, it wasn’t working so well (I was using FlowRouter SSR and getting errors about client/server being out of sync). I plan on moving away from FlowRouter at some point and using ReactRouter instead, so a solution using that would be ideal.


#3

Yeah, I used React Router, React, and Meteor-React-Router-SSR package to get it working. Next.js was certainly WAY easier to get SSR going (no work out of the box), but I’ve been testing both. Turns out SSR isn’t the silver bullet everyone hopes it to be, you really have to put caching in place or the server gets hit with some load on each page load.


#4

Thanks für sharing. Is there any good approach to implement SEO in Blaze environments? Last time I did a research the only option I found was to use an external service to crawl my page and translate it into pure HTML. All other options did not work reliable enough.


#5

Honestly, I found prerender to be terrible & slow in my usage of it. I was having trouble getting a 1gb DO server with an OSS install of prerender to work reliably for more than 24 hours. I put nginx cache in front of it in an effort to help, but with 5k+ links on Crater, it just didn’t help.

The work I used for Meteor + React was based on early flow router SSR work. I would think FlowRouter SSR with Blaze would be an ok option.

Either way, SSR means you need to have caches in place. My next article will dive into that more.


#6

Very timely! Thank you! I’ve been looking at Helmet and JSON-LD, and it’s great to hear how they’ve been picked up by other projects. Glad to hear how they all fit into the SEO story.


#7

Sure, thanks for the read and the kind words :slight_smile:


#8

This is really helpful! What do you use to setup json-ld in your meteor apps?


#9

I used React Helmet for the React app I was working on. For https://conf.crater.io, I used Next.js which comes with it’s own Head class to handle this stuff.


#10

Nice pointer @joshowens
Thanks for sharing.