# SEO of Jekyll website

**URL:** <https://talk.jekyllrb.com/t/seo-of-jekyll-website/600>\
**Category:** Help\
**Created:** [June 2, 2017, 7:32am UTC](https://talk.jekyllrb.com/t/seo-of-jekyll-website/600 "2017-06-02T07:32:02Z")\
**Posts on this page:** 16\
**Page:** 1

<div class="post-metadata">

**Author:** ![yashumittal](https://yyz2.discourse-cdn.com/flex030/user_avatar/talk.jekyllrb.com/yashumittal/32/1260_2.png) [@yashumittal](https://talk.jekyllrb.com/u/yashumittal)\
**Post date:** [June 2, 2017, 7:32am UTC](https://talk.jekyllrb.com/t/seo-of-jekyll-website/600/1 "2017-06-02T07:32:02Z")

</div>

How can we improve the SEO of a website?

---

<div class="post-metadata">

**Author:** ![Rien](https://yyz2.discourse-cdn.com/flex030/user_avatar/talk.jekyllrb.com/rien/32/34_2.png) [@Rien](https://talk.jekyllrb.com/u/Rien)\
**Post date:** [June 3, 2017, 1:02pm UTC](https://talk.jekyllrb.com/t/seo-of-jekyll-website/600/2 "2017-06-03T13:02:56Z")

</div>

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.

---

<div class="post-metadata">

**Author:** ![yashumittal](https://yyz2.discourse-cdn.com/flex030/user_avatar/talk.jekyllrb.com/yashumittal/32/1260_2.png) [@yashumittal](https://talk.jekyllrb.com/u/yashumittal)\
**Post date:** [June 3, 2017, 5:25pm UTC](https://talk.jekyllrb.com/t/seo-of-jekyll-website/600/3 "2017-06-03T17:25:21Z")

</div>

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?

---

<div class="post-metadata">

**Author:** ![Rien](https://yyz2.discourse-cdn.com/flex030/user_avatar/talk.jekyllrb.com/rien/32/34_2.png) [@Rien](https://talk.jekyllrb.com/u/Rien)\
**Post date:** [June 3, 2017, 6:17pm UTC](https://talk.jekyllrb.com/t/seo-of-jekyll-website/600/4 "2017-06-03T18:17:11Z")

</div>

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.

---

<div class="post-metadata">

**Author:** ![rdyar](https://yyz2.discourse-cdn.com/flex030/user_avatar/talk.jekyllrb.com/rdyar/32/710_2.png) [@rdyar](https://talk.jekyllrb.com/u/rdyar)\
**Post date:** [June 3, 2017, 9:01pm UTC](https://talk.jekyllrb.com/t/seo-of-jekyll-website/600/5 "2017-06-03T21:01:57Z")

</div>

> [@yashumittal](#):
>
> {{ post.description }}

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

---

<div class="post-metadata">

**Author:** ![Frank](https://yyz2.discourse-cdn.com/flex030/user_avatar/talk.jekyllrb.com/frank/32/26_2.png) [@Frank](https://talk.jekyllrb.com/u/Frank)\
**Post date:** [June 4, 2017, 11:22pm UTC](https://talk.jekyllrb.com/t/seo-of-jekyll-website/600/6 "2017-06-04T23:22:10Z")

</div>

Good SEO practices are bundled in [https://github.com/jekyll/jekyll-seo-tag](https://github.com/jekyll/jekyll-seo-tag)

You also should add [https://github.com/jekyll/jekyll-sitemap](https://github.com/jekyll/jekyll-sitemap)

---

<div class="post-metadata">

**Author:** ![yashumittal](https://yyz2.discourse-cdn.com/flex030/user_avatar/talk.jekyllrb.com/yashumittal/32/1260_2.png) [@yashumittal](https://talk.jekyllrb.com/u/yashumittal)\
**Post date:** [June 5, 2017, 5:35pm UTC](https://talk.jekyllrb.com/t/seo-of-jekyll-website/600/7 "2017-06-05T17:35:37Z")

</div>

How to use these plugins?

---

<div class="post-metadata">

**Author:** ![grobmeier](https://yyz2.discourse-cdn.com/flex030/user_avatar/talk.jekyllrb.com/grobmeier/32/209_2.png) [@grobmeier](https://talk.jekyllrb.com/u/grobmeier)\
**Post date:** [June 5, 2017, 6:51pm UTC](https://talk.jekyllrb.com/t/seo-of-jekyll-website/600/8 "2017-06-05T18:51:16Z")

</div>

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: [https://developers.google.com/speed/pagespeed/](https://developers.google.com/speed/pagespeed/)
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.

---

<div class="post-metadata">

**Author:** ![yashumittal](https://yyz2.discourse-cdn.com/flex030/user_avatar/talk.jekyllrb.com/yashumittal/32/1260_2.png) [@yashumittal](https://talk.jekyllrb.com/u/yashumittal)\
**Post date:** [June 15, 2017, 1:52pm UTC](https://talk.jekyllrb.com/t/seo-of-jekyll-website/600/9 "2017-06-15T13:52:47Z")

</div>

> [@rdyar](#):
>
> assuming you have a front matter variable for description, it should be {{page.description}}

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

---

<div class="post-metadata">

**Author:** ![rdyar](https://yyz2.discourse-cdn.com/flex030/user_avatar/talk.jekyllrb.com/rdyar/32/710_2.png) [@rdyar](https://talk.jekyllrb.com/u/rdyar)\
**Post date:** [June 16, 2017, 6:43pm UTC](https://talk.jekyllrb.com/t/seo-of-jekyll-website/600/10 "2017-06-16T18:43:25Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![yashumittal](https://yyz2.discourse-cdn.com/flex030/user_avatar/talk.jekyllrb.com/yashumittal/32/1260_2.png) [@yashumittal](https://talk.jekyllrb.com/u/yashumittal)\
**Post date:** [June 17, 2017, 11:14am UTC](https://talk.jekyllrb.com/t/seo-of-jekyll-website/600/11 "2017-06-17T11:14:32Z")

</div>

```
<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="{{ card.author }}" />
<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 }}" />
```

---

<div class="post-metadata">

**Author:** ![mmistakes](https://yyz2.discourse-cdn.com/flex030/user_avatar/talk.jekyllrb.com/mmistakes/32/2169_2.png) [@mmistakes](https://talk.jekyllrb.com/u/mmistakes)\
**Post date:** [June 17, 2017, 2:08pm UTC](https://talk.jekyllrb.com/t/seo-of-jekyll-website/600/12 "2017-06-17T14:08:09Z")

</div>

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.

---

<div class="post-metadata">

**Author:** ![yashumittal](https://yyz2.discourse-cdn.com/flex030/user_avatar/talk.jekyllrb.com/yashumittal/32/1260_2.png) [@yashumittal](https://talk.jekyllrb.com/u/yashumittal)\
**Post date:** [June 17, 2017, 3:05pm UTC](https://talk.jekyllrb.com/t/seo-of-jekyll-website/600/13 "2017-06-17T15:05:00Z")

</div>

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

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

---

<div class="post-metadata">

**Author:** ![mmistakes](https://yyz2.discourse-cdn.com/flex030/user_avatar/talk.jekyllrb.com/mmistakes/32/2169_2.png) [@mmistakes](https://talk.jekyllrb.com/u/mmistakes)\
**Post date:** [June 18, 2017, 4:14am UTC](https://talk.jekyllrb.com/t/seo-of-jekyll-website/600/14 "2017-06-18T04:14:03Z")

</div>

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.

> **[Plugins](https://jekyllrb.com/docs/plugins/)**
>
> Jekyll has a plugin system with hooks that allow you to create custom generated content specific to your site. You can run custom code for your site without having to modify the Jekyll source itself.

---

<div class="post-metadata">

**Author:** ![yashumittal](https://yyz2.discourse-cdn.com/flex030/user_avatar/talk.jekyllrb.com/yashumittal/32/1260_2.png) [@yashumittal](https://talk.jekyllrb.com/u/yashumittal)\
**Post date:** [June 18, 2017, 2:41pm UTC](https://talk.jekyllrb.com/t/seo-of-jekyll-website/600/15 "2017-06-18T14:41:55Z")

</div>

I have used this method, someone has create a [issue on GitHub](https://github.com/jekyll/jekyll-seo-tag/issues/216).

In the [README.me](http://README.me) file. That 1st step is missing.

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

---

<div class="post-metadata">

**Author:** ![mmistakes](https://yyz2.discourse-cdn.com/flex030/user_avatar/talk.jekyllrb.com/mmistakes/32/2169_2.png) [@mmistakes](https://talk.jekyllrb.com/u/mmistakes)\
**Post date:** [June 18, 2017, 6:33pm UTC](https://talk.jekyllrb.com/t/seo-of-jekyll-website/600/16 "2017-06-18T18:33:45Z")

</div>

It supports Twitter cards and Facebook’s OpenGraph.
