Guides · 2 min read
How to Migrate from WordPress to Jekyll (Without Losing SEO)
A practical migration plan, covering exporting posts, keeping URLs and rankings, images, comments, and forms, for moving a WordPress site to a fast static Jekyll site.
· by Shail
WordPress is flexible, but many sites don’t need a database, a stack of plugins, and weekly security updates. If your site is mostly pages and posts, moving to Jekyll gives you faster pages, cheaper hosting, and almost nothing to patch. Here’s how to do it without losing your content or your search rankings.
Is Jekyll right for your site?
Jekyll is a great fit for company sites, portfolios, blogs, and documentation. It’s not the right tool if your site depends on logged-in members, a large online store, or dozens of editors who can’t work with Markdown, although Git-based editors like Decap CMS can help with the last one.
1. Inventory your site
Before exporting anything, list what you have: pages, posts, categories and tags, images, forms, comments, and any plugin-driven features such as galleries or search. Export a list of all URLs from your SEO plugin’s sitemap. You’ll need it for redirects.
2. Export your content
You have two good options:
- Jekyll Exporter plugin: install the free “Jekyll Exporter” plugin in WordPress and download a ZIP with your posts and pages already converted to Markdown with front matter.
- jekyll-import: export your content in WordPress under Tools → Export (an XML file), then convert it with the
jekyll-importgem’s WordPress importer.
Either way, you’ll end up with Markdown files you can drop into a Jekyll site’s _posts folder.
3. Pick a theme and move content in
Choose a theme whose layouts match your site, such as a business theme for a company site or a portfolio theme for creative work. Move your posts into _posts, recreate key pages, and copy your wp-content/uploads images into an assets/images folder, updating image paths with a search and replace.
4. Keep your URLs (this protects your rankings)
The single most important SEO step is keeping URLs the same, or redirecting every old one. If your WordPress permalinks looked like /2024/05/my-post/, match them in _config.yml:
permalink: /:year/:month/:title/
For pages whose URLs change, add permanent (301) redirects with your host, for example a _redirects file on Cloudflare Pages or Netlify:
/category/news/* /blog/ 301
/about-us/ /about/ 301
Then check every URL from your old sitemap against the new site before switching DNS.
5. Replace dynamic features
- Comments: use giscus (GitHub Discussions) or another embedded comment service.
- Contact forms: use a form service such as Web3Forms or Formspree. Your form posts to it, and messages arrive by email.
- Search: add a static search index like Pagefind or Lunr.
- SEO tags: add
jekyll-seo-tagandjekyll-sitemapto generate titles, descriptions, social cards, and your sitemap.
6. Launch and monitor
Deploy to a static host (see our guide to deploying Jekyll on Cloudflare Pages), switch your domain, and submit the new sitemap in Google Search Console. Watch the Pages report for 404s over the next few weeks and add redirects for anything you missed. A short dip in traffic during re-indexing is normal; it recovers once Google processes the redirects.
The payoff
A migrated site typically loads much faster, costs little or nothing to host, and no longer needs plugin and core updates. If you’d rather not do it yourself, get in touch. We help businesses move to fast static sites every year.
