Wordpress vs Jekyll - SEO and Google Ranking?

Hi,

Just a really quick questions. I am looking at setting up a website providing specialist consultancy service to the general public.

I am familiar with self-hosted Wordpress and Wordpress SEO, including Yoast etc. I have recently been using a Jekyll theme and find Jekyll a lot simpler than Wordpress.

In deciding to use WP vs Jekyll I am concerned with a couple of things:

  • how Jekyll sites are treated / assessed / considered by Google for resuts ranking i.e. does a WP website stand a better chance of a 1st page ranking on Google as compared to a Jekyll site - with the same content and external links?

  • How can I include keywords in any type of page / post description on Jekyll?

  • will hosting the website on GitHub (using my own domain - not a github domain) cause any issues or problems with ranking / sitemap / crawling / etc?

  • Are there any other issues to be aware of / concerned with in using Jekyll as opposed to WP?

Any comments, feedback, suggestions are very welcome.

Robbert

  • I would argue a jekyll site with the same exact info would be faster and thus rank higher.
  • you can have front matter on each page populate any of the meta tags as needed, easy to do. There is also a popular plugin to handle most of it I think.
  • no idea, doubt it matters. Easy enough to host anywhere though and personally I would not use GH Pages to host a commercial site.
  • one thing would be if you have an existing site that you move then you need to worry about redirecting the old links to the new locations if they are different.

Overall (I am no expert) I don’t think the tech used to build the site is going to change your rank directly.

2 Likes

Agreed. Jekyll makes HTML for users and browsers to consume. WordPress does too. It just happens that WordPress generates the pages from a database instead of Jekyll generating HTML from markdown so HTML can be statically served.

From a user or crawler perspective, they can’t see if you used Jekyll or Wordpress. The page can styled to look identical for both. Jekyll will probably give you better speed and security as static assets are super light and easy to load - versus database and PHP behind WordPress.

The quality of your content, repeat use of keywords in title and body of the page, and speed of your page (including image and other asset optimization) will have way more impact than choosing Wordpress or Jekyll.

Rankings

I don’t know if you can know that mysite.wordpress.com will rank better or worse than myname.github.io and I don’t think you should have to care.

Either way you can put a custom domain like mysite.com on top. Which will initially have no ranking but with good content and experience and links and clicks to your site, it will gain ranking.

Custom domain

GitHub Pages even lets you add a custom domain on your site for free, provided you already own that domain. Jekyll is also ad free.

While if your use the hosted WordPress you pay for ad-free and you pay for custom domain. It gets expensive. And self hosted Wordpress has security and maintenance issues and cost associated.

Jekyll sites on GH Pages is a managed service. You don’t have to care about upgrading security of the platform or even the gems used. That is taken care of. And hosting is free.
You can extend to customs gems and add Node and Python and Bash to your flow too with GitHub Actions workflow and then serve with GH Pages still.

1 Like

Consider this an mental exercise. If you have two pages which look the same and load at the same speed - view you save each page as a.html and b.html and upload them to the same location, they will perform the same on ranking, regardless of whether Jekyll or WordPress.

The downside with Jekyll is that the static content is based on commits, and doesn’t come with a admin view.

This can be overcome by using a CMS like Forestry.io so you have a admin interface that feels a bit like wordpress so you can update your content as commits (rather than pages in a database) and get your site built in the background. Jekyll Admin is also a neat plugin, for local use only though.

If your side needs thousands of users to upload content or to show that content in real time, then that would be bad fit for Jekyll as it is a static site. A site like Facebook is built on PHP and React I think so it let’s them make the pages dynamic and allow interactivity.
You can of course add React to your Jekyll or Wordpress page, to make a form more interactive or use plain JS pull in say stock price dynamically in real time without a page load.

With Jekyll, building the site might take a few seconds or a minute for a larger site. But the benefit is doing the work up front and then removing Jekyll from the serving of the content so a site with 1000 pages and 10,000 visitors will be super fast while a Wordpress site like that might take strain having to render each page from scratch on every page load on requested URL. You can of course adding caching to keep the pages faster to load and only use Wordpress on the initial load.

And a way to solve performance on Jekyll builds if that matters to you (especially local builds that take 1 or 2 minutes for 100s of pages like it can happen to me) then Jekyll 4 and its built in build cache. That feature allows you to say change one page and then rebuild the whole site, but it will only take like 1 second, because the other 99 pages are cached.

Also worthy mentioning is that there are a ton of static site generators that are built on React or Vue (JS) or Python or Go. Notably, Hugo is in Go and supposed to be the fastest.
But I find Jekyll brilliant for most of my needs so I build my static sites with Jekyll.

1 Like

Hi All,

Many thanks for the replies, and the detail of the replies, very insightful.

What I am taking from the comments is;

  • Different ‘backends’ delivering same type of content / output
  • Jekyll faster, because of the ‘backend’
  • Content and Quality will be what determines good SEO and ranking

Just one additional question:

On my pages I use the following:

layout: page
title: Services
tagline: Find our more about services
description: This website provides information and details in relation to making etc etc…
permalink: /services/

Yet when I try the same in my post the title, tagline and description do not show up in the ‘view source’ of the post.

Every post on my site has shows the in the source

I am using

Does anybody know what needs to be done to change that for each post, so that it shows the actual title, tagline and description?

Thanks.

Yes that’s an accurate summary.

BTW I recommend adding triple back ticks to make your code appear correctly. I think your triple dashes got lost.

E.g.

```
---
title: Test
---
```

Jekyll handles frontmatter (YAML data) and a content (markdown or html) separately.

The frontmatter is metadata. It will not display unless you use it.

A field like title will be used in a layout, so then it appears as visible to a user. So you don’t usually need to use title in the body. Here is an example using tagline and description.

---
layout: page
title: Services
tagline: Find our more about services
description: This website provides information and details in relation to making etc etc…
permalink: /services/
---

Tagline: {{ page.tagline }}

Description: {{ page.description }}

Here is some more **text**.

If a bunch of pages all have say tagline and description, then you can use layout.

For example you can update _layouts/page.html or make a new layout.

With content like this.

---
layout: default
---

<h2>{{ page.title }}</h2>

<p><i>{{ page.tagline }}</i></p>

<div>
  {{ content }}
</div>

If you have a site-wide field like the tagline for the whole website, then set it in _config.yml.

description: The most awesome site

Then in page.html or default.html layout then you use that as
{{ site.description }}.

1 Like

I remember using Yoast back in the WordPress days and it was very helpful. That said, it is more of a checklist of things to do that will make your podcast more SEO-friendly. You will need a lot of posts before it matters too much.

For example, here is the Yoast page that explains how it works:

As you can see, a lot of it has to do with creating external links for attribution, using keywords from the title, and adding metadata. That metadata piece is not automatically built into Jekyll, which is a good thing, because it is so unique to your site and how you want to do SEO.

And here are a number of rules it uses:

That is a useful list, but it is really just a checker. Below is an article I recommend you read and it shows you how to do a lot of what Yoast does:

You can add metadata and other elements to your Jekyll blog using the Liquid language as @MichaelCurrin shows you one of these responses.

The way I look at YAML front matter, pages, posts, etc, is like it is data that you can add to your HTML wherever you need to. If you want to learn how to display data and incorporate it into your site with Liquid, I created a little 3-part playlist of videos, so if you play this one, it will continue to the rest:

1 Like

Hi, Thanks for that… very useful I really appreciate all of the feedback.

I am still having an issue with the ‘view source’ on posts.

I can change the code on the individual pages and it shows up… as below, so each page has its own meta name and meta property:

But for some reason every Post I make has the same meta name / meta property code as below:

This happens even when I put the name and property into the top of the post, as below:


layout: post
title: This is a new post on topic
tagline: My New test text goes here.
description: more new test text goes here now

I now its probably something obivious that I am missing, rather than a problem with the Jekyll theme from themeforest - Desk - Responsive Knowledge Base & FAQ Jekyll Theme.

I find it a very simple, clean and easy to use theme… the issue is not with the theme, but rather my lack of knowledge / experience with Jekyll. Something I am trying to improve on.

Thanks

You need to look at the theme as a repo on GitHub and see what the post.html layout contains.

Without overriding it, at the least check that title on a post shows up.

Then create a post.html layout in your project copied and pasted from theme and check it is all the same.

Then update the layout to use page.title, page.tagline etc.

1 Like

Start with getting visible text on the page for a post.

After that then I recommend you can use the Jeklyl seo plugin to setup the metadata for you like title, description and social media tags. Only visible if you view source but it improves SEO ans sharing of links to your site.

Your theme might even use the SEO plugin already. Jekyll theme uses it in default.html layout or head.html to add to the head HTML tag.

1 Like

Hi,

Thanks for that, much appreciated.

I will have a look… and try not to break things!!!

R