Is there a way to correct SEO problems with Meteor?


I know that Meteor has issues with SEO. Is there a way of solving this problem?

Is a cure planned in one of the future releases?

Is there a way to have Meteor be great with SEO?


Is there a problem even if you use HTML5 History API (e.g. Iron Router)? I thought spiders (at least the big ones) could handle that by now.


The official answer to this is to use prerender:


Yes I would try out prerender. Google/Search engines work without SSR but Facebook for example does not get content properly yet from client rendered apps.

This is how to do it with the prerender-node npm package (I suggest using that one versus the package since it imports Blaze & jquery) Note, you should run this code as soon as possible server-side.

// require prerender and get prerender tokens
const prerender = require('prerender-node');
const settings = Meteor.settings.prerender;

// tell prerender to fetch page
if (settings && settings.token) {
    prerender.set('prerenderToken', settings.token);


Meteor + React can do awesome server-side rendering and good SEO, maintain a PageSpeed Insights score of 100/100 and still be a full blown web app.

  1. Very fast time-to-first-render on empty cache, like 500ms
  2. No “flash of styled content”
  3. Score 100/100 on Google PageSpeed Insights
  4. Use of any webfont without killing your PageSpeed score
  5. Full SEO control including page title and meta
  6. Perfect integration with Google Analytics and Facebook Pixels that accurately records every page view regardless of server- or client-side rendering
  7. Google search bot and other crawlers see all of your pages’ real HTML immediately without running scripts
  8. Seamlessly handles #hash URLs to scroll to parts of a page
  9. Use a small number (like < 30) of icon font characters without adding requests or hurting speed score
  10. Scale up to any size of Javascript without impacting landing page experience
  11. All the regular awesomeness of a full Meteor web-app

See this Stack Overflow question and answer:

An example page: