how to manage multi-author blogs in jekyll after migrating from wordpress
Why multi-author support is a challenge in Jekyll
WordPress simplifies the process of managing a multi-author blog. It provides user accounts, role-based permissions, and author archives out of the box. But once you migrate to Jekyll, all that vanishes. Since Jekyll is a static site generator, it has no backend database, no user accounts, and no built-in author system.
To make your Jekyll blog feel like a professional multi-author platform, you need to recreate some of those features manually. The good news is: it’s possible — and you get full control.
What do multi-author features look like on WordPress?
In WordPress, a multi-author blog includes:
- Author profiles with bios and avatars
- Dedicated archive pages for each author
- Post metadata showing who wrote what
- Ability to filter posts by author
We’ll replicate those features in Jekyll using simple and scalable methods.
Step-by-step: Setting up author data in Jekyll
1. Create an _data/authors.yml file
This YAML file will store metadata for each contributor:
john_doe:
name: John Doe
bio: "Technical writer and developer advocate."
avatar: "/assets/images/authors/john.jpg"
twitter: "johndoe"
jane_smith:
name: Jane Smith
bio: "Designer turned developer."
avatar: "/assets/images/authors/jane.jpg"
twitter: "janesmith"
2. Reference the author inside each post's front matter
Add a key like this to the top of each post:
author: john_doe
3. Display author metadata in your post layout
In _layouts/post.html (or whatever layout you use), insert:
{% assign author = site.data.authors[page.author] %}
<div class="post-author">
<img src="{{ author.avatar }}" alt="{{ author.name }}" class="author-avatar">
<p><strong>{{ author.name }}</strong></p>
<p>{{ author.bio }}</p>
<a href="https://twitter.com/{{ author.twitter }}">@{{ author.twitter }}</a>
</div>
4. Create author archive pages (optional but useful)
You can use a Jekyll plugin like jekyll-archives, or create static pages manually. Here’s how to do it manually:
- Create a folder:
/authors/john_doe.html - Use Liquid to filter posts by author:
---
layout: default
title: "Posts by John Doe"
---
{% assign author_posts = site.posts | where: "author", "john_doe" %}
<h2>Articles by John Doe</h2>
{% for post in author_posts %}
<h3><a href="{{ post.url }}">{{ post.title }}</a></h3>
<p>{{ post.excerpt | strip_html }}</p>
{% endfor %}
You can automate this further using data-driven templates or collections if needed.
Optional: Add author collections
For more complex needs—like dedicated bio pages or author-specific content—you can use Jekyll collections:
collections:
authors:
output: true
permalink: /authors/:name/
Then inside _authors/ directory, create markdown files like:
---
name: John Doe
twitter: johndoe
bio: "Tech writer."
layout: author
---
Benefits of the Jekyll author model
While you lose WordPress’s admin UI, Jekyll offers flexibility and performance. With this setup:
- You can handle an unlimited number of authors
- No dynamic queries — everything is pre-rendered
- Profiles are editable via version control
- Changes can be made offline or through GitHub
SEO considerations for author pages
Author pages can help you rank for personal branding keywords or topic clusters. Add meta tags and structured data to author pages for better results. Google supports Person schema.
Example JSON-LD:
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Person",
"name": "John Doe",
"url": "https://example.com/authors/john_doe",
"sameAs": [
"https://twitter.com/johndoe"
]
}
</script>
Conclusion
Managing a multi-author blog in Jekyll requires some planning, but it’s completely doable. By leveraging data files, custom layouts, and a consistent front matter structure, you can replicate nearly everything WordPress offers — while keeping full control of the design and deployment process. Plus, authors no longer need admin accounts. Contributions happen via pull requests or Git-based workflows.
Whether you're a team of two or twenty, your Jekyll-powered blog can scale with your contributors — and stay fast, clean, and secure.