WordPress to Shopify, for sites where content matters as much as the store
A WordPress move is a content migration first. Shopify has fixed URL prefixes (/blogs/, /pages/), no categories for posts, no page nesting and no custom post types. Those become tags, flat pages and metaobjects. The permalink structure decides the redirect map. If your site publishes more than it sells, we'll tell you whether keeping WordPress for the blog is the better call. Running WooCommerce too? See the WooCommerce migration page.
Shopify is a good shop and a plain blog
Shopify's blog engine is deliberately simple. Each blog lives at /blogs/{blog}/{article}, articles have tags but no categories, and pages are flat at /pages/{handle}. If your WordPress site leans on deep category archives, scheduled editorial workflows or dozens of authors, that's a real loss.
For most product brands it's fine. They usually have fewer than a few hundred posts, a handful of categories and one or two writers. For a publisher that also sells, we may recommend keeping WordPress on a subdomain for content and moving only the shop. We'd rather say that on the intro call than sell a migration that costs you traffic.
WordPress content types on Shopify
| On WordPress | How it moves | Notes |
|---|---|---|
| Posts | Moves by tool | Become blog articles with author, date, featured image and excerpt. |
| Post categories | Mapped by hand | Shopify has no categories: they become tags, or separate blogs for big sections. |
| Post tags | Moves by tool | Kept as article tags. |
| Pages and child pages | Moves by tool | Become flat pages; parent/child paths collapse to one handle. |
| Custom post types | Moves by tool, after modelling | Become metaobjects with their own page template. |
| ACF and custom fields | Moves by tool, after mapping | Become metafields or metaobject fields. |
| Media library | Moves by tool | Images used in content are re-hosted in Shopify Files; unused media is left behind. |
| Gutenberg blocks and shortcodes | Cleaned up | Shortcodes are rendered or removed; layouts are rebuilt in sections. |
| Comments | Archived | Shopify blog comments are basic; most sites archive old comments rather than import them. |
| Users and authors | Mapped by hand | Authors become article author names; WordPress users don't become staff accounts. |
| SEO titles and meta | Moves by tool | From Yoast or Rank Math into Shopify's SEO fields. |
| Menus and widgets | Rebuilt | Recreated as Shopify menus and Horizon sections. |
Custom post types become metaobjects
Recipes, lookbooks, stockists, team bios, FAQs and case studies usually live in custom post types with Advanced Custom Fields. Shopify's equivalent is a metaobject: a content type you define, with its own fields. Metaobject entries can be published as web pages with their own template. We recreate the field structure, import the entries with Matrixify and build the template in Horizon, so a recipe still has its ingredients list and a stockist still has its address and map link.
Permalink settings decide the redirect map
WordPress lets each site choose its permalink structure1, so the first step is reading yours. The patterns below are the common ones; the map itself is built from the full URL list and imported into Shopify's URL redirects2.
| WordPress URL | Shopify URL | Covers |
|---|---|---|
/{post-slug}/ | /blogs/news/{handle} | "Post name" permalinks, the most common setting. |
/{yyyy}/{mm}/{dd}/{post-slug}/ | /blogs/news/{handle} | "Day and name" permalinks. |
/category/{category}/ | /blogs/news/tagged/{tag} | Category archives become tag pages. |
/tag/{tag}/ | /blogs/news/tagged/{tag} | Tag archives. |
/{parent}/{child}/ | /pages/{child} | Nested pages flatten. |
/{cpt-slug}/{entry}/ | /pages/{type}/{entry} | Custom post type entries published as metaobject pages. |
/author/{name}/ | /blogs/news | Author archives have no Shopify equivalent. |
/wp-content/uploads/{yyyy}/{mm}/{file}.pdf | Shopify Files URL | Only for files with backlinks or traffic. |
Plugins, and what replaces them
- Yoast / Rank Math titles and meta descriptions import into Shopify's SEO fields; their schema output is replaced by Horizon's built-in structured data.
- Gravity Forms / Contact Form 7 become Shopify Forms or a form app, and old form submissions stay in your WordPress export.
- ACF fields become metafields or metaobject fields.
- Redirection plugin rules are exported and folded into the new map, collapsed so no URL redirects twice.
- Membership plugins usually need a gated-content app, which we scope on the call.
WordPress-specific risks
Post slugs that collide with page slugs
WordPress allows a post and a page to share a slug at the root. On Shopify they land under different prefixes, which removes the clash, but both old URLs need a rule.
Internal links inside posts
Hundreds of posts link to /old-page/ style URLs. Redirects catch them, but we also rewrite links inside the imported content so readers don't hop through a redirect.
Feeds and AMP URLs
/feed/ and /amp/ variants still get crawled after launch. They're redirected to the matching Shopify article or blog.
Embedded media
YouTube and other embeds come across, but shortcode-based galleries and sliders need rebuilding.
Picking the right Move
WordPress sites with a clear theme, a small blog and a few product pages fit Off the Rack. Sites with custom post types, many templates or 25+ pages worth keeping fit Tailored, which includes up to 25 pages re-laid out in the new design and up to 4 extra templates. Use the migration cost calculator to see where yours lands.
Get a fixed price and a launch date in 15 minutes.
Tell us what you're running today. You'll have a written scope, a price that won't change and the date we'll be held to within one business day.
Tailored Move
Established brands that want the new store to look and sell better than the old one. · 15 business days.
Pay the 50% deposit · $4,450Sources
- WordPress documentation: Customize permalinks, checked October 22, 2026.
- Shopify Help Center: URL redirects, checked October 22, 2026.