Many bloggers and content creators who started with WordPress eventually find themselves overwhelmed by:
- Plugin maintenance - Constant updates, compatibility issues, and security patches
- Hosting costs - Monthly fees for hosting, SSL certificates, and premium themes
- Technical overhead - Database management, backups, server configuration
- Security concerns - WordPress is a common target for hackers and malware
- Complexity creep - What started as a simple blog becomes a complex system
You want to focus on writing, not managing infrastructure.
If you're considering migrating your blog, you might think of Medium first. However, Medium has significant limitations:
| Feature | Medium | Substack |
|---|---|---|
| Bulk Import | ❌ 2 posts per 24 hours limit | ✅ Unlimited via RSS |
| Import Method | Manual URL submission | Direct RSS feed import |
| Older Posts | Often fail to import | Works with all posts |
| Custom Domain | Limited | ✅ Supported |
| Email Newsletter | ❌ No | ✅ Built-in |
| Monetization | Paywall (reader-unfriendly) | Optional paid subscriptions |
| Content Ownership | Medium owns the platform | You own your content |
Bottom line: Medium's 2-post-per-day limit means migrating 176 posts would take 88 days. With Substack, it takes 5 minutes.
- A self-hosted WordPress blog (WordPress.org) or WordPress.com site
- Admin access to your WordPress dashboard
- A Substack account (free to create)
By default, WordPress only includes the 10 most recent posts in your RSS feed. We need to change this to include ALL your posts.
- Log into your WordPress Admin Dashboard
- Navigate to Settings → Reading
- Find "Syndication feeds show the most recent"
- Change the value from
10to a number higher than your total posts (e.g.,200or500) - Ensure "For each post in a feed, include" is set to "Full text"
- Click Save Changes

Before importing to Substack, verify your RSS feed is working correctly:
-
Open your browser and visit your RSS feed URL:
https://yourdomain.com/feed/ -
You should see XML content with your blog posts
-
Scroll through to verify multiple posts are listed (not just 10)
Alternative RSS URLs to try if the default doesn't work:
https://yourdomain.com/feed/rss/https://yourdomain.com/feed/rss2/https://yourdomain.com/?feed=rss2
- Go to substack.com
- Click "Start writing" or "Get started"
- Create your account and set up your publication name
- Complete the basic setup (you can customize later)
- In your Substack dashboard, go to Settings
- Click on Import/Export in the left sidebar
- You'll see the import page at:
https://yourpublication.substack.com/publish/import - Paste your WordPress RSS feed URL:
https://yourdomain.com/feed/ - Click Import
- Substack will scan your RSS feed and show available posts
- Select the posts you want to import (or select all)
- Click Import to begin the migration
After import:
- Go to your Posts page in Substack
- Imported posts will appear as drafts or published (depending on settings)
- Review each post for formatting issues
- Check that images imported correctly
- Adjust publication dates if needed (Settings → Backdate)
Solution: Your WordPress RSS feed limit is still set to the default. Go back to Step 1 and ensure you've:
- Changed "Syndication feeds show the most recent" to a higher number
- Clicked "Save Changes"
- Waited a few minutes for the feed to update
Solutions:
- Try the direct RSS URL:
https://yourdomain.com/feed/ - Check if your site is publicly accessible (not password protected)
- Verify your RSS feed works by opening it directly in a browser
- Try alternative feed URLs listed in Step 2
Solutions:
- Substack imports images from your WordPress media library
- Ensure your WordPress site remains online during and after migration
- For broken images, manually re-upload them in the Substack editor
Solutions:
- Substack uses a clean editor that may not support all WordPress formatting
- Complex layouts, shortcodes, and custom HTML may need manual adjustment
- Review and edit posts individually for best results
Solution: Use Substack's backdate feature:
- Open the post in the editor
- Click on Settings (gear icon)
- Change the publication date to match the original WordPress date
- All posts imported successfully
- Images display correctly
- Links work properly
- Publication dates are accurate
- Author information is correct
- Categories/tags are set up (Substack uses "Sections")
- Custom domain configured (optional)
- Email newsletter settings configured
- About page updated
- Social links added
If you want to keep your existing domain:
- In Substack, go to Settings → Publication details
- Scroll to Custom domain
- Follow Substack's instructions to update your DNS records
- Wait for DNS propagation (up to 48 hours)
To maintain SEO and avoid broken links:
- Keep your WordPress site running temporarily
- Install a redirect plugin like "Redirection"
- Set up 301 redirects from old URLs to new Substack URLs
- Or use your hosting provider's redirect rules
After migrating to Substack, you'll enjoy:
✅ Zero maintenance - No plugins, updates, or security patches
✅ Built-in newsletter - Every post can be emailed to subscribers
✅ Simple editor - Focus on writing, not formatting
✅ Free hosting - No monthly hosting fees
✅ Built-in audience - Substack's recommendation system helps discovery
✅ Mobile app - Readers can follow you in the Substack app
✅ Analytics - See who's reading and engaging with your content
✅ Optional monetization - Add paid subscriptions when ready
Migrating from WordPress to Substack is surprisingly simple once you know the RSS feed trick. The key insight is:
Increase your WordPress RSS feed limit BEFORE importing to Substack
This single change allows Substack to see and import ALL your posts at once, rather than just the most recent 10.
While Medium might seem like the obvious choice for blog migration, its restrictive 2-posts-per-day limit makes it impractical for anyone with a substantial archive. Substack's RSS import is faster, more reliable, and preserves your content better.
This guide was created after personally migrating 176 blog posts from WordPress to Substack. The process took about 5 minutes once the RSS feed was configured correctly.
Author: [Shahzad Ali] Original Blog: netjoints.com New Substack: netjoints.substack.com
Found this guide helpful? Star this repo and share it with others who might benefit!
This guide is released under the MIT License. Feel free to share, modify, and redistribute.