SEO of Jekyll website

How can we improve the SEO of a website?

Don’t bother. Just create good content.

Seriously, the search engines try to defeat every possible CEO trickery. Just create good content and the rest will take care of itself.

But I am not able to add the content inside the meta tags?

<meta name="description" content="{{ post.description }}" />
I thought this will work, but it didn’t. Can you suggest a better way?

IIRC just use the YAML ‘description’ tag, and the meta-description tag will be generated automatically.
Though this does depend on the theme you are using.

assuming you have a front matter variable for description, it should be {{page.description}}

Good SEO practices are bundled in

You also should add


How to use these plugins?

This is not really related to Jekyll but…

My advice?

  1. Good content! Not just nice one!
  2. Use meta tags, like description etc.
  3. Use title tags accordingly
  4. Add share buttons - sharing indicates something to google, as I have learned at customer site
  5. Add opengraph tags (for sharing)
  6. Structure your html nicely
  7. Make use of page speed tips:
  8. Create good links: readable (for the users) and short (for the users too). Makes your site more trustworthy and shareworthy, if there is good content
  9. Create a good mobile version! (Pagespeed tool above helps!)
  10. Consider AMP - not sure if it helps
  11. Use https - Google is said to use that as ranking factor
  12. No fancy JS, even when Google says it can render it. We have tested it at large scale and fance JS stuff which shows content is not as good as plain html/content

Could go on, but that’s probably the best. People are saying keywords and bla, but I believe it’s not necessary. Just write good content so people share it, and you are done.

Having done that all above, some pages of mine work really well and some don’t. So it’s also a matter competition. Again, when you have the BEST content out there competition will be left in dust.


Yes, I have tried. But it is not working. All the values are blank.

can you post the code/repo so we can see what you are doing? very hard to troubleshoot without more info.

<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="{{ card.meta }}" />
<meta name="keywords" content="{{ card.keywords }}" />
<meta name="robots" content="index, follow">
<meta name="author" content="{{ }}" />
<title>{{ post.title }}</title>

<!-- Google Card -->
<meta itemprop="description" content="{{ card.description }}" />
<meta itemprop="image" content="{{ card.image }}" />

<!-- Facebook Card -->
<meta property="og:type" content="website" />
<meta property="og:title" content="{{ card.title }}" />
<meta property="og:image" content="{{ card.image }}" />
<meta property="og:url" content="{{ card.url }}" />
<meta property="og:description" content="{{ card.meta }}" />

<!-- Twitter Card -->
<meta name="twitter:title" content="{{ card.title }}" />
<meta name="twitter:description" content="{{ card.meta }}" />
<meta name="twitter:image" content="{{ card.image }}" />
<meta name="twitter:url" content="{{ card.url }}" />

I’m guessing all of the card. variables are blank correct? Unless you’re using an assign before them to create an array those are always going to be blank.

As suggested above I would just use the jekyll-seo-tag plugin as you get all of those meta tags “for free.” The plugin had been widely tested and works very well with little to no config on your part.

Otherwise I would suggest changing card to post so you end up with post.title, post.url, etc.

Yes, you are right? All the variables are blank.
Still I am not able to understand how to use the Jekyll Plugins: :confused:

I have tried changing to post.title, post.url but still didn’t work.

Take a look at Jekyll’s official documentation. It does a pretty good job explaining all the ways you can install a plugin. Each plugin is slightly different, when in doubt refer to their docs on how best to install.

I have used this method, someone has create a issue on GitHub.

In the file. That 1st step is missing.

But I want to ask, which social media is support. For example: Google, Facebook, Twitter.

It supports Twitter cards and Facebook’s OpenGraph.

1 Like