How do I migrate WordPress with advanced features?
Go beyond basic WXR import: migrate ACF custom fields, custom post types, multisite installations, and multilingual (WPML/Polylang) content to VeloCMS.
Basic WordPress-to-VeloCMS migration (WXR export → import) is covered in the main WordPress migration guide. This article is for the harder cases: sites that have grown over years and accumulated ACF custom fields, custom post types, multisite networks, or multilingual plugins like WPML and Polylang. None of these are impossible — they just need a more methodical approach.
ACF custom fields
Advanced Custom Fields (ACF) adds arbitrary key-value data to WordPress posts and pages. VeloCMS doesn't have an ACF equivalent out of the box — the post model has a structured set of fields (title, body, excerpt, featured image, tags, author, published_at) plus a free-text custom meta JSON field. The migration path: export your ACF fields via WXR (they export as post meta), then write a small import script that reads the WXR XML and populates the VeloCMS custom meta JSON for each post.
# Export WXR with post meta (includes ACF data)
# In WordPress admin: Tools → Export → All content → Download Export File
# The .xml WXR file will contain <wp:postmeta> blocks for each ACF field
# Example structure in WXR:
# <wp:postmeta>
# <wp:meta_key>acf_hero_subtitle</wp:meta_key>
# <wp:meta_value>My Hero Subtitle</wp:meta_value>
# </wp:postmeta>Custom post types
WordPress plugins like Custom Post Type UI create post types like 'recipes', 'case-studies', 'events', etc. VeloCMS currently has a single post type with tags for categorisation. For content migration, the pragmatic approach is to import custom post type entries as VeloCMS posts with a tag matching the original type name (e.g. tag: recipe). For more complex structured data (fields beyond the standard post model), use VeloCMS's custom meta JSON field to preserve the extra data, and plan to build a custom renderer in VeloCMS if needed.
VeloCMS's custom post types are on the Q3 2026 roadmap. If custom post type support is critical to your migration, join the roadmap discussion at feedback.velocms.org or migrate a copy of your site now and plan to enhance it when the feature ships.
WordPress Multisite
WordPress Multisite runs multiple sites in a single WP installation, each with its own database prefix. VeloCMS handles multi-blog via true multi-tenancy — each blog is a separate VeloCMS tenant. The migration process: export each subsite individually as a separate WXR file, create a separate VeloCMS blog for each one, and import them independently. If the subsites share users, recreate user accounts on each relevant VeloCMS tenant.
- In WordPress Multisite, go to Network Admin → Sites → [Site Name] → Export.
- Export each subsite separately. WXR files are per-site.
- Create one VeloCMS account per blog owner or use the team members feature if one person manages multiple blogs.
- Custom domains per subsite carry over to VeloCMS custom domains (Pro plan and above).
WPML and Polylang multilingual sites
WPML and Polylang store translations as separate posts linked by a relationship meta field. When you export WXR, translations export as separate posts with the original-language post ID stored in a meta field. VeloCMS supports multilingual content at the post level via language tags. The import path: export your primary language as a standard WXR, import it, then export each translated language and import it as a second batch with a language tag (e.g. 'lang:tr' for Turkish). Linking posts to their translations is a manual step post-import — automatic translation relationship linking from WPML is not yet supported.
Membership and WooCommerce users
WooCommerce customer data is stored in WordPress's wp_users table and wp_usermeta. Export customer emails and order data via WooCommerce → Reports → Export. For blog members (email subscribers), export them from your email plugin (Mailchimp, ConvertKit integration, or custom subscription table) as a CSV and import to VeloCMS Members. WooCommerce orders and products need to be recreated in VeloCMS's product catalog — there's no WooCommerce product import yet.
The big picture: what to do first
- Audit your WordPress plugins list and categorise them: content (can migrate), functionality (needs VeloCMS equivalent or custom build), SEO (VeloCMS has built-in SEO — mostly replaceable).
- Export and import your standard posts first. Get the basics working.
- Deal with custom post types and ACF fields after base content is live.
- Handle users and members last, just before DNS cutover.
- Keep WordPress live on its original URL for at least 30 days after cutover in case you need to reference something.
Frequently asked questions
- Can VeloCMS import ACF fields automatically? Not yet — the importer maps standard post fields. ACF fields end up in post meta and need a script to place them into VeloCMS's custom meta JSON.
- What happens to my WordPress plugins after migration? The article 'What happens to my WordPress plugins after migration?' covers this in detail — check the help center.
- How long does an advanced WordPress migration take? For a multisite with ACF, budget 1–3 days of technical work depending on customisation depth.
- Can I hire someone to do this for me? VeloCMS migration partners are listed at velocms.org/partners — verified agencies with migration experience.
- What about WooCommerce? WooCommerce product import is on the VeloCMS roadmap for Q3 2026.