← Back to Blog

Migrating from WordPress to Substack: A Step-by-Step Guide

Comparisons

Migrating from WordPress to Substack is a common move for writers who want to simplify their publishing workflow. WordPress is powerful but complex — hosting, plugins, security updates, and performance optimization consume time that could be spent writing. Substack eliminates all of that.

But migration requires careful planning. You’re moving content, subscribers, and (ideally) preserving your search rankings. Here’s how to do it right.

Why Writers Migrate

Simplification

WordPress requires ongoing maintenance: hosting bills, plugin updates, security patches, performance optimization, and backup management. Substack handles all infrastructure, letting you focus entirely on writing.

Direct Audience Relationship

WordPress sites rely on SEO and social traffic for readers. Substack adds a direct email channel — subscribers receive your content without depending on Google or social media algorithms.

Built-In Monetization

Setting up paid subscriptions on WordPress requires plugins (MemberPress, Restrict Content Pro) and payment processors. Substack includes subscriptions natively — turn it on and set a price.

Community and Discovery

Substack’s recommendation network, Notes, and cross-promotion features provide audience growth tools that WordPress doesn’t offer.

What You Lose

Be honest about the trade-offs:

  • Full design control: WordPress themes offer unlimited customization; Substack is constrained
  • Plugin ecosystem: analytics, SEO, forms, e-commerce — WordPress has a plugin for everything
  • SEO control: WordPress + Yoast gives you granular SEO management; Substack offers basics
  • Content types: WordPress handles pages, portfolios, directories, and custom post types; Substack handles posts and pages
  • Self-hosting: you own the server with WordPress; Substack is platform-dependent

If your WordPress site is more than a blog (e-commerce, portfolio, directory), you may want to keep WordPress for those functions and add Substack alongside it.

Pre-Migration Checklist

Before starting the migration:

  • Export your WordPress content (Posts → Export → All Content)
  • Export your email subscriber list (from your email plugin or service)
  • Document your most-trafficked posts (Google Analytics or Search Console)
  • Note any custom functionality you rely on (contact forms, embeds, etc.)
  • Screenshot your current design for reference
  • Back up your entire WordPress site

Step 1: Set Up Your Substack

Create your Substack publication with:

  • Publication name and description matching your WordPress blog’s branding
  • Logo and profile image transferred from WordPress
  • Custom domain connected (ideally the same domain or a subdomain)

If you use the same custom domain, you can preserve SEO authority. Configure the domain in Substack’s settings before redirecting DNS.

Step 2: Import Your Content

Using Substack’s WordPress Importer

Substack has a built-in WordPress import tool:

  1. Go to your Substack dashboard → Settings → Import
  2. Upload your WordPress XML export file
  3. Substack will import your posts with basic formatting

What Transfers

  • Post titles and content
  • Publication dates
  • Basic formatting (bold, italic, headings, links, images)
  • Categories and tags (as Substack post sections)

What Doesn’t Transfer Cleanly

  • Tables: WordPress table plugins use custom HTML that Substack strips. You’ll need to recreate tables as images.
  • Custom shortcodes: any [shortcode] content won’t render
  • Galleries: WordPress gallery layouts won’t transfer; images may import individually
  • Embeds: some embedded content may need to be re-added using Substack’s embed feature
  • Custom CSS: any styling applied through your theme or custom CSS is lost
  • Comments: WordPress comments don’t migrate to Substack

Formatting Cleanup

After import, review each post. The most common issues:

  • Broken table formatting (the most frequent problem)
  • Missing images (if they were served from your WordPress server)
  • Lost custom styling
  • Shortcode remnants appearing as plain text

For content that needs reformatting, especially posts with tables and complex markdown, DownStack can help. If you have your original content in markdown format, DownStack converts it to Substack-ready rich text with tables automatically rendered as hosted images.

Step 3: Migrate Your Subscriber List

Export from WordPress

Export your email subscriber list from whatever service you used:

  • Mailchimp: Audience → All Contacts → Export
  • ConvertKit: Subscribers → Export
  • MailerLite: Subscribers → Export
  • WordPress plugin: depends on the plugin

Export as CSV with at least the email address column. Name fields are helpful but not required.

Import to Substack

  1. Go to Substack dashboard → Subscribers → Import
  2. Upload your CSV file
  3. Substack will add subscribers and send them a confirmation/welcome email

Important Considerations

  • Re-opt-in: Substack may require imported subscribers to confirm their subscription, depending on your import method and Substack’s current policies
  • Engagement drop: some imported subscribers won’t re-confirm, so expect your list to shrink
  • Compliance: ensure your original list was collected with proper consent (GDPR, CAN-SPAM)

Step 4: Handle SEO and Redirects

This is the most technically important step. Poor redirect handling can destroy your search rankings.

Same Domain Migration

If you’re moving your custom domain to Substack:

  1. Update DNS to point to Substack (CNAME record)
  2. Substack will serve your publication at your domain
  3. URL structure will change: WordPress uses /blog/post-slug while Substack uses /p/post-slug

Setting Up Redirects

You need 301 redirects from your old WordPress URLs to the new Substack URLs. Options:

  • Cloudflare Page Rules or Redirect Rules: if your domain is on Cloudflare, set up redirect rules
  • Server-side redirects: if you maintain the old server temporarily, add .htaccess redirects
  • DNS-level redirects: some registrars offer URL forwarding

Map your most important URLs (check Google Search Console for top pages) to their Substack equivalents.

Preserving Search Rankings

  • Submit your new sitemap to Google Search Console
  • Keep your old site live with redirects for at least 6-12 months
  • Monitor Search Console for crawl errors and fix them promptly
  • Update internal links within your imported content to point to Substack URLs

Step 5: Update External References

After migration, update your Substack URL everywhere:

  • Social media profiles (Twitter/X, LinkedIn, Instagram bios)
  • Email signature
  • Guest post author bios
  • Directory listings and profiles
  • Any links from other websites you control

Post-Migration Monitoring

First 30 Days

  • Monitor email open rates (should stabilize within 2-3 issues)
  • Check Google Search Console for indexing of new URLs
  • Review imported posts for formatting issues
  • Track subscriber engagement on the new platform

Ongoing

  • Compare traffic levels to your WordPress baseline
  • Monitor search rankings for your most important keywords
  • Engage with the Substack community features you didn’t have on WordPress
  • Consider archiving your WordPress site after 6-12 months of successful Substack operation

Key Takeaways

  • Migration from WordPress to Substack simplifies publishing but sacrifices design control and plugin flexibility
  • Export WordPress content via XML and use Substack’s built-in importer
  • Tables, shortcodes, galleries, and custom styling won’t transfer — plan for manual cleanup
  • Subscriber migration requires CSV export/import; expect some list shrinkage
  • 301 redirects from old URLs to new URLs are critical for preserving search rankings
  • Use the same custom domain on Substack to retain SEO authority
  • Monitor search rankings and email engagement closely for the first 30 days
  • Keep your WordPress site live with redirects for at least 6-12 months