Meteor - SEO



Spiderable: - done reading - done reading - done reading - printed

Server-side rendering:


How can we make our application indexable by search engine without using the spiderable package?

Use the meteorhacks:ssr package. See meteor-server-side-rendering

How can we make our Meteor single page web application SEO-friendly?

The HTML and data for a single page application typically reside in JavaScript (as JSON) or template file and search engine may or may not know what to do with these. You can try to make your single page application discover-able by search engine yourself if that is important to you and if you know how to do it (like the Google's standard way / protocol for indexing single page application). Alternatively, you can use, a commercial service or API that make your single page application discover-able by search engine.

Galaxy has integrated the leading pre-rendering service,, to improve your Meteor app’s search engine optimization (SEO). Galaxy will automatically pass requests from search engine and social network crawlers (e.g. Google, Bing, Facebook, Twitter, etc.) to the service, which then runs your page using a headless web browser.

Whether you’re using Blaze, Angular, or React to drive your user interface, your Meteor app relies on client-side JavaScript to render content. Crawlers from search engines and social networks have historically not executed JavaScript. Imagine executing JavaScript for every single page on the web, and you can imagine how much computing power this would require. Crawlers are starting to get smarter — Google has recently made strides towards executing JavaScript — but it’s still recommended to pre-render your Meteor app so all crawlers reliably get HTML that they can easily parse.

We are making pre-rendering automatically available in Galaxy. When deploying to Galaxy, all you have to do is add the mdg:seo package to your app, and deploy your app to Galaxy. With automatic pre-rendering, Galaxy solves a common challenge that faces many JavaScript apps, so you can stay focused on developing your Meteor app.

For more information, see the comments on

Why do we need the special meta tag?

We need the meta tag:

<meta name="fragment" content="!">

This meta tag indicates to search engine that this site is entirely a JavaScript application, and we want the search engines to index our site. When the search engine see this meta tag, it will appends ?_escaped_fragment_= to the current URL and do a redirect. This is so that our JavaScript application can detect that it is being crawled by search engine and can respond appropriately.

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License