Migrating from WordPress

jekcms ships with a first-class WordPress importer. Given a standard WXR export file, it reconstructs posts, pages, authors, categories, tags, featured images, and post meta — and auto-generates 301 redirects so your existing search traffic keeps landing on the right pages.

This guide walks the full migration path.

Step 1 — Export from WordPress

In your WordPress admin:

  1. Tools → Export
  2. Choose All content (or narrow by post type if you only want some)
  3. Click Download Export File

You'll get a file like yoursite.wordpress.2026-04-21.xml. This is a WXR file — a flavor of RSS that WordPress uses for migration. Keep it; you'll upload it next.

Large sites (>50 MB export) should split the export by date range. WordPress's exporter has a "Date range" filter; run it once per year and upload the files sequentially.

Step 2 — Upload to jekcms

In the jekcms admin:

  1. Tools → Import → WordPress
  2. Drag-and-drop your WXR file (or browse)
  3. Click Analyze

The analyzer parses the file and shows a preview: X posts, Y pages, Z authors, N images referenced. No data is written yet — this is your chance to review.

Step 3 — Map authors

WordPress author IDs don't match jekcms user IDs. The importer shows a mapping table:

| WP Author | jekcms User | |-----------|-------------| | admin (Jane Doe) | Select existing user or Create new | | editor2 (John) | Select existing user or Create new |

Pick an existing jekcms account or let the importer create new users with the original email and a random password (they'll receive a reset email).

Step 4 — Run the import

Click Start Import. The importer processes in batches of 50 posts:

  • Posts and pages are inserted with original publish dates preserved
  • Categories and tags are merged by slug (existing ones reused, new ones created)
  • Post meta (custom fields) copied verbatim into jekcms's post_meta table
  • Draft vs published state preserved; scheduled posts remain scheduled
  • Featured images downloaded from the WP origin into uploads/imported/YYYY/MM/ and rewired to the new post
  • Inline images in post content are also downloaded and the <img src> attributes rewritten to local URLs

Progress bar updates live. A 2,000-post site with 8,000 images typically takes 20–40 minutes depending on the origin server's speed.

URL preservation and redirects

jekcms auto-generates a redirect table so old WP URLs keep working:

/2023/11/15/my-old-post/   →  /my-old-post
/?p=42                     →  /my-old-post
/category/news/            →  /category/news

These land in Tools → Redirects with type 301. Apache/Nginx enforce them via the jekcms rewrite layer — no manual .htaccess edits required.

If your WP permalink structure was non-standard, edit the URL preservation setting before importing and paste your permalink_structure value (e.g., /%category%/%postname%/).

What's imported vs. not

Imported:

  • Posts (post type)
  • Pages (page type)
  • Categories and tags
  • Authors (with creation)
  • Featured images and inline images
  • Post meta / custom fields
  • Publish state and dates

Not imported:

  • Themes — jekcms themes are a different architecture. Pick one under Appearance → Themes.
  • Plugins — no 1:1 port. jekcms has built-in SEO, forms, caching, and AI, so most common WP plugins are already covered.
  • Widgets and sidebars — rebuild these in your jekcms theme's customizer.
  • Custom post types — only post and page by default. To include others (e.g., portfolio, product), tick the custom post type boxes in the analyzer preview.
  • Comments — off by default. To include, check Import comments in step 2. Comments come over with their approval state.

Post-import cleanup

Run through this checklist after the import completes:

  1. Slug auditPosts → All Posts → Sort by slug. Look for duplicates or weird characters. WP sometimes stores transliterated slugs that don't match your current theme's canonical URL rules.
  2. Featured image verificationMedia Library → Filter: Imported → Missing thumbnails. Any image that failed to download shows a broken-link indicator; re-upload manually or click Retry fetch.
  3. Comment review — if you imported comments, spot-check for spam that WordPress had missed. jekcms's built-in Akismet-equivalent runs on the whole batch automatically.
  4. Redirect spot-check — open 5 old URLs in an incognito tab. All should 301 to the new location.
  5. Re-submit sitemap — Google Search Console → submit /sitemap.xml so the new URLs index fast.

Be the first to know

New features, release notes & CMS guides — a couple of emails a month, no spam.