Clients are starting to ask about EmDash, and the first question is always “can you move us over?” Usually yes, but the content is the easy part. This is the process we use at Seahawk, including the pieces the importer does not do for you. If you would rather hand the whole thing off, we run EmDash migrations white-label for agencies.
First, decide whether to migrate at all
EmDash is a good destination for sites that are mostly posts, pages and media. It is a poor one, for now, for WooCommerce stores, membership sites, LMS builds and anything leaning on a long list of plugins. Audit the plugin list before you quote. Every plugin that provides front-end functionality is either a rebuild, a third-party service, or a reason to stay on WordPress. Our EmDash vs WordPress guide has the full decision matrix.
What comes across, and how
EmDash gives you two import routes.
1. WXR file. Export from WordPress under Tools → Export and upload the file in the EmDash admin. This brings over:
- Posts and pages, with Gutenberg and classic HTML converted to Portable Text (structured JSON)
- Custom post types, which become EmDash collections
- Categories and tags
- Reusable blocks, which become sections
- Authors, mapped to users or guest bylines
- Media, downloaded from the live site and de-duplicated
2. The EmDash Exporter plugin. Install it on the WordPress site, authorize it with a migration key or an Application Password, and the importer pulls everything above plus:
- Menus, comments, the site title, tagline, logo and favicon
- Yoast or Rank Math SEO titles and descriptions
- Custom fields and ACF values, where a matching EmDash field exists
- Custom taxonomies
Use the exporter whenever you can. SEO fields alone make it worth it. Keep the WordPress site online until the import finishes, because media is fetched from it.
What does not come across
Plan and price these up front. They are where migrations go over budget.
- The theme. EmDash themes are Astro projects. Single, archive and page templates become Astro routes and components, so the design is a rebuild, not a port.
- Plugin functionality. Forms, sliders, search, related posts and the rest need an EmDash plugin, an Astro component or a third-party service. EmDash ships first-party plugins for forms, embeds, webhooks and a few others.
- Shortcodes and page-builder markup. Elementor, Divi and similar layouts do not convert. Content from them needs restructuring, often into EmDash sections or block fields.
- Complex ACF fields. Repeaters and flexible content need review and a matching field design.
- Redirects. Anything whose URL changes needs a redirect you write yourself. EmDash has a redirects manager and a 404 log to help.
- Scheduled and private posts. These import as drafts. Re-schedule and re-restrict them after the move.
The migration, step by step
- Inventory every URL. Crawl the live site and pull the sitemap. This list is your definition of done.
- Design the content model. Create collections and fields in the EmDash admin to match the WordPress post types and custom fields before importing, so the exporter has somewhere to put ACF values.
- Scaffold the site. Run
npm create emdash@latest, pick Node.js or Cloudflare, and start from the blog or blank template. - Import. Run the exporter-based import into a staging instance, then read the import report for anything flagged.
- Rebuild the templates. Recreate the design as Astro layouts and components, querying content with EmDash’s collection helpers.
- Replace plugin features. Map each WordPress plugin to an EmDash plugin, an Astro component or a service. Grant each sandboxed plugin only the permissions it needs.
- Clean the content. Fix leftover shortcodes, broken embeds and page-builder remnants. On a big site, script this.
- Map URLs and redirects. Keep permalinks identical where you can. Redirect the rest, and check every URL from step 1 returns a 200 or a 301 to the right place.
- Check SEO parity. Compare titles, descriptions, canonicals, noindex flags and structured data page by page against the old site.
- Cut over and watch. Switch DNS, resubmit the sitemap in Search Console, and watch the 404 log for the first few weeks.
How long it takes
A blog with a few hundred posts, a simple theme and a handful of plugins is a short project. Most of the time goes into the design rebuild, not the import. A content-heavy site with page builders, custom post types and years of shortcodes is a real project, and the clean-up in step 7 can take longer than everything else together. Quote from the plugin audit and a sample of the messiest content, never from the post count.
Next step
If you want to offer EmDash to clients without building the expertise first, Seahawk migrates WordPress sites to EmDash under your brand, including the theme rebuild, plugin replacements and URL-by-URL SEO checks. For the WordPress sites that stay put, WP Tasks handles the day-to-day work.