Migration·10 min read·

Migrating from WordPress.com to VeloCMS (full playbook)

WordPress.com's XML export has everything you need to migrate to VeloCMS: posts, images, comments, and a redirect plan, no database access.

Migrating from WordPress.com to VeloCMS takes about two hours for a blog with 100 posts. The process uses WordPress's built-in WXR XML export, VeloCMS's web-based import wizard, and a 301 redirect setup in Cloudflare to preserve your SEO. Nothing requires database access or a command line — the entire migration happens through WordPress.com's export tool and the Admin → Tools → Import page in your VeloCMS dashboard.

Step 1 — Export your WordPress.com content

In your WordPress.com dashboard, go to Tools Export. Select 'All content' and click Download Export File. WordPress generates a .xml file (the WXR format) containing every post, page, comment, tag, category, and image URL. Save this file — it's the source of truth for your entire migration.

WordPress.com exports image URLs pointing to i0.wp.com or yoursite.wordpress.com. VeloCMS's importer downloads and re-uploads each image to your Cloudflare R2 bucket automatically — as long as the WordPress.com site is still live during import.

Step 2 — Upload the WXR file to VeloCMS

Log in to your VeloCMS admin, go to Admin → Tools → Import, and upload the .xml file directly — no conversion step needed, VeloCMS parses the WXR format natively. The importer streams through the file, strips WordPress shortcodes it can't map, and converts the embedded HTML into VeloCMS's block editor format automatically.

Step 3 — Review the import

The import wizard shows a progress bar and a log of any posts that hit errors as it processes your file. Successfully imported posts keep the status they had on WordPress.com — published posts stay published and drafts stay drafts — so review the imported content right after the import finishes. Check a handful of posts with embedded shortcodes or unusual formatting first, since those are the most likely spots for manual cleanup.

Step 4 — Set up 301 redirects

If your old WordPress.com blog was at yourname.wordpress.com and your new VeloCMS blog is at yourname.velocms.org (or a custom domain), you need 301 redirects for every old URL. WordPress.com doesn't let you set server-level redirects, but you can use Cloudflare's Page Rules or Redirect Rules to catch requests to the old URLs and redirect them. On the VeloCMS side, the import wizard writes a redirect rule for each permalink that changed (URL Redirects in Admin → Migrate Content), and you can review the rules under Admin → Tools → Broken Link Checker → Redirect Rules.

Step 5 — Verify and clean up

After import, spot-check post counts against your WordPress.com dashboard, click through 5–10 posts to check for broken image links, and confirm your redirects are returning 301 by visiting a few old URLs directly. Fix any mismatches before announcing the migration publicly. Once verified, update your email newsletter, social profiles, and any external links you control to point to the new URLs.