Loading tutorials…
Loading tutorials…
Substack-to-Beehiiv migration is one of the most-attempted moves in the newsletter world — and one of the easiest to botch. Done right, you keep every subscriber, every paid sub, and every indexed post. Done wrong, you re-bill paid subscribers and lose 20-40% to confusion.
Who this is forSubstack writers considering or executing a move to Beehiiv. The most common motivators: paid sub Stripe fees, Substack's 10% take rate, the desire to monetize via Ad Network, or wanting referral/automation features Substack lacks.
What you'll need
Step 1
List every asset to migrate: free subs, paid subs (Stripe), posts, comments, custom domain, podcast feed. Allocate 1-2 weeks total.
Inventory: count free subscribers, count paid subscribers (annual + monthly separately), count published posts, count comments (Substack only exports limited comment data).
Pick a migration window: 7-14 days total. Day 1-2: setup. Day 3-4: import + validate. Day 5-7: notify subscribers + redirect domain. Day 8-14: monitor + cleanup.
Do NOT migrate over a weekend — Substack support and Stripe support take longer to respond.
Notify your audience in advance with a "moving to Beehiiv" post on Substack 7-10 days before the cutover. Transparency reduces churn.
Step 2
Configure Beehiiv account, publication settings, branding, and ideally the custom domain BEFORE importing subscribers.
Complete the Beehiiv account setup tutorial (sender verification, DNS).
Complete the publication setup tutorial (landing page, welcome email, post template).
If you have a custom domain on Substack: do NOT switch the domain over to Beehiiv yet. Wait until step 6 after subscribers and posts are imported.
Configure paid subscription tiers in Beehiiv matching your Substack tier prices exactly. Currency must match.
Connect Stripe to Beehiiv (the same Stripe account Substack uses, if possible).
Step 3
Substack → Settings → Exports → request full export. Beehiiv → Settings → Import → upload the Substack export ZIP.
Open Substack → Settings → Exports → Request Full Export. Substack emails you a ZIP file within 24 hours.
The ZIP contains: posts as HTML files, subscriber list as CSV, payment data as CSV.
In Beehiiv → Settings → Import → Substack. Upload the ZIP. Beehiiv parses posts and creates draft entries.
Beehiiv preserves: post title, body content, images, publication date.
Beehiiv does NOT preserve: comments, embedded interactive elements, podcast audio (must be re-uploaded if you ran one).
Review imported posts in Beehiiv → Posts → Drafts. Spot-check 5-10 for formatting issues. Publish in bulk once verified.
Step 4
Beehiiv → Audience → Add Subscribers → Upload CSV. Use the subscriber CSV from the Substack export. Beehiiv supports up to 1M rows.
Open Beehiiv → Audience → Add Subscribers → Upload CSV.
Map columns: Email → Email, First Name → First Name (optional), Subscribed At → Subscription Date.
Set the import tags: "imported_from_substack" + the date. This is useful later for segment analysis.
Upload. Beehiiv processes typically in 5-30 minutes depending on volume.
Verify count: Beehiiv → Audience → Total Subscribers should now match your Substack free + paid count (paid subs are imported here too, just not yet billed in Beehiiv).
Step 5
Use Beehiiv's Substack Paid Migration tool. Beehiiv works with Substack support to transfer Stripe subscriptions WITHOUT re-billing.
In Beehiiv → Monetize → Subscriptions → Substack Migration → Start.
Beehiiv generates a migration link. Send it to Substack support (support@substack.com).
Substack support coordinates the Stripe handoff. The current Stripe subscriptions move from Substack's Stripe account to your direct Stripe account connected to Beehiiv.
Subscribers are NOT re-billed. Their existing subscription period continues; renewal goes through Beehiiv at the next renewal date.
The handoff typically takes 3-7 business days. During this window, do NOT cancel your Substack publication — paid subs still need to access content there until handoff completes.
Once handoff completes, Beehiiv shows paid subs as active in your audience. Spot-check 3-5 paid subscribers and confirm their renewal date matches.
Step 6
Once subscribers + posts + paid subs are all on Beehiiv, switch the custom domain DNS from Substack to Beehiiv.
In your DNS provider, update the CNAME for your custom domain (e.g., yourdomain.com or newsletter.yourdomain.com) from Substack's CNAME to Beehiiv's.
In Beehiiv → Settings → Custom Domain → add the domain. Verify the CNAME and wait for SSL provisioning.
In Substack → Settings → Custom Domain → remove the domain. This prevents traffic going back to Substack.
Beehiiv handles the 301 redirect from beehiiv.com/p/<slug> to your custom domain — covered in the custom domain tutorial.
Beehiiv does NOT redirect from Substack URLs to Beehiiv URLs. To preserve Substack-indexed posts in Google: keep the Substack publication live (post archive only, no sending) for 90+ days while you set up Substack-to-Beehiiv 301s manually if you control the domain.
Step 7
Send a final "moving complete" email from Beehiiv. Confirm Substack is fully decommissioned only after all paid subs have one successful renewal cycle.
Send a "we have moved" email from Beehiiv to all subscribers. Include: (a) confirmation they did not need to do anything, (b) what new Beehiiv features they now have access to, (c) where to reach you if anything looks off.
Monitor the first 30 days closely: unsubscribe rate spike, paid sub churn, complaints.
After 30-60 days with paid sub renewals confirmed: archive Substack publication. Substack → Settings → Archive Publication.
Do NOT delete Substack — archive keeps old indexed URLs alive for Google. Deletion removes them entirely.
Common mistakes
Cancelling Substack mid-migration
What goes wrong: Paid subs lose access during the Stripe handoff window (3-7 days). Some cancel and refund-demand. 20-40% paid sub churn in one weekend — typically $500-3,000 of MRR lost.
How to avoid: Keep Substack active and paid sub access live until Beehiiv confirms 100% Stripe handoff. Then archive (do not delete).
Migrating without notifying subscribers
What goes wrong: Subscribers receive a Beehiiv email from a new sender. 10-25% unsubscribe out of confusion. Loses $200-2,000 of LTV that a single pre-announcement email would have saved.
How to avoid: Post on Substack 7-10 days before cutover explaining the move + what subscribers should expect. Reiterate in the first Beehiiv send.
Importing subscribers but not migrating posts
What goes wrong: Beehiiv has subs but no historical content. New subs cannot read old posts. Substack URLs still index in Google but go to a different sender's content. Brand confusion across platforms.
How to avoid: Always migrate both. Posts give context for new subscribers landing from old shares; subscribers give continuity.
Re-billing paid subscribers
What goes wrong: If migration is done as a fresh signup (not Stripe handoff), every paid sub gets a charge attempt for a new subscription. They refund-dispute, churn 30-50%, and complain. Customer-trust event that takes 6-12 months to recover.
How to avoid: Always use Beehiiv's Substack Paid Migration tool, NOT a manual re-subscribe flow. It coordinates with Substack support to transfer without re-billing.
Switching custom domain too early
What goes wrong: Switching DNS before subscribers and posts are fully migrated breaks reading access during the gap. Some subscribers see broken links, some see Beehiiv's default branding before yours is configured. Trust damage.
How to avoid: Switch custom domain LAST, after subscribers + posts + paid subs are all confirmed on Beehiiv.
Deleting Substack instead of archiving
What goes wrong: Substack-indexed posts disappear from Google. Old shares 404. SEO equity that took years to build is lost overnight. Organic traffic drops 30-60% within 60 days.
How to avoid: Archive Substack (keeps old URLs alive). Delete only if you control the custom domain and have set up proper 301 redirects from Substack to Beehiiv URLs.
Recap
Done — what's next
How to set up a Beehiiv account the right way
Read the next tutorial
Hand it off
Substack-to-Beehiiv migration has more failure modes than any other newsletter task — the paid sub Stripe handoff alone has 5-10 ways to go wrong. A newsletter specialist who has done this 10+ times can execute the full migration in 4-6 hours and prevent the typical 20-40% churn that DIY migrations trigger. Typically $400-800 one-time at $14-16/hr.
See specialist rates
Done correctly with notification + Stripe handoff: 2-5% unsubscribe rate (normal background churn). Done incorrectly with re-billing or no notification: 20-40% unsubscribe + paid sub churn. The work is in the execution.
7-14 days end-to-end. Hands-on work is 3-4 hours. Wait times: 24h for Substack export, 3-7 business days for Stripe handoff, 24-48h for DNS propagation. Plan for 2 weeks to be safe.
Yes — point the DNS from Substack to Beehiiv as the final step (after subscribers and posts are imported). Custom domain URLs continue to work; only the underlying platform changes.
Substack does not export audio files in the standard export. You need to manually download audio from each Substack post and re-upload to Beehiiv (or a podcast host) before publishing. Keep the original Substack URL alive during transition so old podcast app subscribers do not lose the feed.
Technically yes, but it requires cancelling paid subs on Substack (issuing refunds) and asking them to re-subscribe on Beehiiv. Churn is severe — most operators lose 50-70% of paid subs this way. Always use the Stripe handoff path.
Beehiiv
Beehiiv signup takes 5 minutes. Setting it up so deliverability, branding, and analytics actually work takes 90. Here is the order that prevents the four-week rebuild every DIY creator does.
Beehiiv
Beehiiv has four real revenue streams: paid subscriptions, the ad network, boosts, and premium tier upsells. Most creators activate one and miss 60% of the revenue. Here is the order to turn them on and the configuration that compounds.
ConvertKit
The migration most creators get wrong: dump the CSV, send a 'Hey, we moved' email, watch open rate drop 40%, lose months of segmentation work. Here's how to actually do it — including the warmup period most guides skip.
Mailchimp
Mailchimp's onboarding hides the decisions that matter most — audience structure, single vs double opt-in, and sending-domain authentication. Skip them and you'll be untangling them in 6 months. Here's the setup that doesn't rot.