How Do You Build a Plugin-Friendly Workflow After Cloning a Jekyll Theme?

Ready to Unlock the Full Power of Jekyll Plugins?

Once you clone a Jekyll theme and break free from GitHub Pages restrictions, you gain access to the entire ecosystem of Ruby gems and custom plugins. But many users don’t take full advantage of this newfound freedom.

This article walks you through building a flexible, plugin-friendly workflow after you've converted from a fork to an independent Jekyll project.

Why You Couldn't Use All Plugins Before

GitHub Pages imposes strict limitations on what plugins you can use for security and performance reasons. Only a few "whitelisted" plugins are allowed, and anything outside that list will be ignored unless you build the site locally or externally.

Now that you're using a cloned repo — and ideally deploying with a custom build step — you can enable plugins freely.

Step 1: Create a Clean Gemfile

If your project doesn't already have a Gemfile, create one to manage plugins using Bundler.

source "https://rubygems.org"

gem "jekyll", "~> 4.3"

# Core Plugins
gem "jekyll-seo-tag"
gem "jekyll-sitemap"
gem "jekyll-feed"

# Optional Plugins
gem "jekyll-redirect-from"
gem "jekyll-archives"
gem "jekyll-paginate-v2"
gem "jekyll-include-cache"

# Your Custom Plugin (if any)
# gem "your-plugin-name"

Then run:

bundle install

Step 2: Enable Plugins in Your _config.yml

Add the plugins you want to activate in your main config file:

plugins:
  - jekyll-seo-tag
  - jekyll-sitemap
  - jekyll-feed
  - jekyll-redirect-from
  - jekyll-paginate-v2

Some themes may use the deprecated gems: key — replace it with plugins:.

Step 3: Use Bundle to Build and Serve

Replace old Jekyll commands with Bundler equivalents to ensure plugin compatibility:

bundle exec jekyll serve
bundle exec jekyll build

This guarantees that your project uses the exact versions specified in the Gemfile.lock.

Step 4: Move Your Build Process Off GitHub Pages

If you're still letting GitHub Pages build your site, you're stuck in restricted mode. To unlock plugins, you need to build the site yourself and push the generated _site folder to the deployment platform.

Recommended Hosting Options

  • Netlify: Runs bundle exec jekyll build automatically and supports custom plugins
  • Cloudflare Pages: Works with custom build commands
  • GitHub Actions: Automate builds before pushing to gh-pages branch

Step 5: Explore Advanced Plugins for Real Use Cases

1. SEO and Performance

  • jekyll-seo-tag — adds meta tags, Open Graph, and JSON-LD
  • jekyll-sitemap — auto-generates your sitemap.xml
  • jekyll-minifier — compresses HTML output (third-party)

2. Content Management

  • jekyll-paginate-v2 — flexible pagination for blogs, categories, tags
  • jekyll-archives — auto-creates yearly/monthly archive pages
  • jekyll-include-cache — improves performance with cached includes

3. Navigation and UX

  • jekyll-redirect-from — setup redirects from old URLs
  • jekyll-toc — automatic table of contents per page
  • jekyll-multiple-languages-plugin — multilingual content

Step 6: Split Config Files for Different Environments

For large projects, separate your dev and production configs:

_config.yml
_config.dev.yml
_config.prod.yml

Build with:

bundle exec jekyll build --config _config.yml,_config.prod.yml

Step 7: Version Control Your Dependencies

Keep both Gemfile and Gemfile.lock in your repo. This locks exact plugin versions and avoids build inconsistencies.

Common Mistakes to Avoid

  • Missing Bundler: Always use bundle exec when running Jekyll
  • Relying on GitHub Pages for plugin builds: It won’t work — use external builds
  • Forgetting to declare plugins in _config.yml
  • Installing plugins globally: Prefer project-local installation via Gemfile

Conclusion: Cloning Sets You Free — Now Take Control with Plugins

Forking is fast, but limiting. Once you clone a Jekyll project, you're finally in full control. Use that opportunity to build a real development workflow that scales — with SEO tools, custom layouts, redirects, multilingual support, and optimized performance.

You’ve broken the fork. Now unlock Jekyll’s full ecosystem and build something your way.