skip to Main Content

I’m trying to use ms-seo package for meteor but I’m not understanding how it works.

It’s supposed to add meta tags to your page for crawlers and social media (google, facebook, twitter, etc…)

To see it working according to the docs all I should have to do is

 meteor add manuelschoebel:ms-seo

and then add some defaults

Meteor.startup(function () {
 if(Meteor.isClient){
   return SEO.config({
     title: 'Manuel Schoebel - MVP Development',
     meta: {
       'description': 'Manuel Schoebel develops Minimal Viable Producs (MVP) for Startups',
     },
     og: {
       'image': 'http://manuel-schoebel.com/images/authors/manuel-schoebel.jpg',
     }
   });
 }
});

which I did but that code only executes on the client (browser). How is that helpful to search engines?

So I test it

curl http://localhost:3000

Results have no tags

If In the browser I go to http://localhost:3000 and inspect the elements in the debugger I see the tag but if I check the source I don’t.

I don’t understand how client side added tags have anything to do with SEO. I thought Google, Facebook, Twitter when scanning your page for meta tags basically just do a single request. Effectively the same as curl http://localhost:3000

So how does this package actually do anything useful? I feel stupid. 27k users it must work but I don’t understand how. Does it require the spiderable package to get static pages generated?

3

Answers


  1. You are correct. You need to use something like the spiderable package or prerender.io to get this to work. This package will add tags, but like any Meteor page, it’s rendered on the client.

    Try this with curl to see the result when using spiderable:

    curl http://localhost:3000/?_escaped_fragment_=
    

    Google will now render the JS itself so for Google to index your page correctly you don’t need to use spiderable/prerender.io, but for other search engines I believe you still do have to.

    Login or Signup to reply.
  2. An alternate answer:

    Don’t use spiderable, as it uses PhantomJS which is rather resource intensive when bots crawl your site.

    Many Meteor devs are using Prerender these days, check it out.

    Login or Signup to reply.
  3. If you still have some problems with social share buttons or the package, try to read this: https://webdevelopment7636.wordpress.com/2017/02/15/social-share-with-meteor/ . It was the only way I got mine to work. You don’t have to worry about phantomJS or spiderable to make it work fine.

    It is a complete tutorial using meteorhacks:ssr and meteorhacks:picker. You have to create a crawler filter on the server side and a route that will be called by it when it is activated. The route will send dynamically the template and the data to a html on the “private” folder, and will render the html to the crawler. The template on the private folder will be the that gets the metatags and the tag.

    This is the file that will be on the private folder

    I can’t put the other links with the code here, but if you need anymore help, go to the first link and see if the tutorial helps.

    Login or Signup to reply.
Please signup or login to give your own answer.
Back To Top
Search