How to Migrate from Medium to WordPress
By João Piedade · Updated
To migrate from Medium to WordPress, download your Medium archive, import the stories into WordPress, and bring the images across into your Media Library. Then point readers and search engines to the new site: move your custom domain if you have one, or set a canonical link on each Medium story if you don't. Medium has no WordPress export and can't redirect medium.com addresses, so those two facts shape every step. Keep your Medium account until the end.
Below are the routes compared, then every step in order, with a reason for each. We checked every claim about Medium, WordPress and the other tools on their own websites, and on live Medium feeds, on 13 November 2026.
Which route fits you?
- A handful of stories: copy and paste them. It's free.
- Your site is on WordPress.com: use its built-in Medium importer.
- A self-hosted site, and you're happy to fix things by hand: use a free converter, or import into WordPress.com first and move the file across. Check every image afterwards.
- A self-hosted site, and you want images in your Media Library and original slugs: use Blog Porter. It costs $0.20 per story.
- You'll keep writing on Medium and want new stories copied over: an automation can do that, but it won't move your old stories.
Every way to move Medium to WordPress, compared
Medium gives you your stories as HTML files in a .zip archive. It doesn't give you a WordPress import file, so every route below works around that.
| Route | Cost | What it moves | Main limits |
| Copy and paste | Free | Whatever you paste | Slow. Images still load from Medium. You set each date and slug. |
| RSS feed and an RSS importer | Free | Your 10 most recent stories | No older stories. Member-only stories cut short. Images stay on Medium. |
| WordPress.com Medium importer | Included with WordPress.com | Stories, dates, tags. Drafts stay unpublished | Only imports into a WordPress.com site. Moving on to self-hosted WordPress takes an extra export. |
| mediumtowp.com (WPBeginner's converter) | Free | Stories, as a WordPress import file | Some images can fail to import. You run the WordPress Importer yourself. |
| IFTTT or Zapier automation | IFTTT has a free plan | New stories, from now on | Nothing you've already published. Member-only stories cut short. |
| Blog Porter plugin | $0.20 per story, 5 minimum | Published stories, slugs, dates, authors, tags, images | No featured images, categories, drafts, redirects or followers. |
Copy and paste
Open each story, paste it into a new WordPress post, then fix the formatting and set the date and slug. Pasted images still load from Medium unless you upload each one to your Media Library. Our estimate is 10 to 15 minutes per story, so 50 stories take roughly 8 to 12 hours. It makes sense for a few stories, or a few favorites.
The RSS feed
Every Medium profile and publication has an RSS feed, such as medium.com/feed/@yourname. Some guides suggest importing it with an RSS plugin. On 13 November 2026 we opened four public Medium feeds, two profiles and two publications. Each held exactly 10 stories, the most recent ones, and asking for a second page returned the same 10. Medium also says stories behind the paywall are not available as full stories in any feed. WordPress's free RSS Importer plugin was last updated in 2024, and WordPress.org warns it hasn't been tested with the latest three major releases. The feed is fine for a test, not for an archive.
WordPress.com's Medium importer
If your site is on WordPress.com, go to Tools → Import and choose Medium. WordPress.com says your stories arrive with their original dates and tags, drafts stay unpublished, and you can run it again for newer stories without duplicating the old ones.
Some writers use it as a stepping stone to a self-hosted site: import into a WordPress.com site, then go to Tools → Export and download the XML file. WordPress.com says that file holds your posts, tags and links to your media files, but not the files themselves. You then load it on your own site with the WordPress Importer plugin. Check the images afterwards.
mediumtowp.com
mediumtowp.com is a free converter built by WPBeginner. You give it your Medium address, if you have a custom domain, or the export file Medium emailed you. WPBeginner's guide says it creates a WordPress import file, which you load under Tools → Import with the WordPress Importer. The same guide warns that some images can fail to import, and suggests checking your Media Library and re-uploading what's missing.
IFTTT and Zapier
These copy new stories, not old ones. IFTTT's Medium service has a Post published by you trigger that you can link to a WordPress Create a post action. On its free plan, IFTTT checks for new events once an hour. Zapier can do the same with its New Item in Feed RSS trigger and a WordPress Create Post action. Both read what Medium publishes, so member-only stories arrive cut short. Use them alongside a full migration, not instead of one.
Blog Porter
Blog Porter is a WordPress plugin. You upload the ZIP that Medium emailed you, and it imports your stories straight into WordPress, with no import file in between. It costs $0.20 per story, paid once, with a minimum of 5 stories. The analysis is free and shows the count and exact price before you pay.
It imports story titles, content as editable blocks, slugs, publish dates, authors and tags, and uses each story's subtitle as its excerpt. It downloads the available images into your Media Library and lets you retry any that fail. It runs in batches you can pause and resume.
What it doesn't do:
- It doesn't import drafts or your short responses, and it imports every published story in the archive. You can't pick stories one by one for Medium.
- It doesn't set featured images or categories. Medium's archive has no categories.
- It doesn't create redirects, set canonical links on Medium, or move followers, subscribers, claps or responses.
Before you start
- List what you're moving. Count your published stories, and decide whether you want your drafts too. Medium has four kinds of posts: drafts, published stories, responses and unlisted stories. An unlisted story is still a published story, so expect it in the archive. Some things stay on Medium whatever you use, including your followers, claps and readers' responses. Why: you can plan for those now, instead of finding the gaps after launch.
- Find out which kind of Medium address you have. Medium supports three kinds of profile address:
medium.com/@yourname,yourname.medium.comand your own domain. A publication lives atmedium.com/publication-name, or on its own domain. Why: it decides whether your old links can keep working. With your own domain you can keep every address. On amedium.comaddress you can't redirect, so you rely on canonical links instead. - Set up WordPress and hosting. You need a domain, a host and a WordPress install. WordPress recommends PHP 8.3 or greater, MySQL 8.0 or MariaDB 10.11 or greater, and HTTPS support. Many hosts install WordPress for you. If yours doesn't, follow WordPress's installation guide. Install a theme, and make sure you're an administrator who can install plugins. Blog Porter needs WordPress 6.4 or later and PHP 7.4 or later. Why: the stories need somewhere to land, and you can build and check the new site before anyone sees it.
- Keep the new site out of search for now. In WordPress, go to Settings → Reading and tick Discourage search engines from indexing this site while you work. Untick it at launch. Why: you don't want a half-finished copy of your stories in Google.
- Download your Medium archive. On the web, click your profile picture, then Settings → Security and apps → Download your information, and click Export. Medium emails you a link when the ZIP file is ready. Keep an untouched copy of it. For a publication, WordPress.com says you need to ask Medium support for the backup file. Why: the archive is the only full copy of your stories that Medium gives you. How to export your Medium stories explains what's inside.
- Save a list of your story addresses. Open a few story files from the archive in your browser. Each published story ends with a Canonical link to its Medium address. Copy these into a spreadsheet, or note the addresses from your profile page. Why: after launch, you'll need the old address of every story to add canonical links or test old links.
Move the stories
- Import the stories. Pick a route from the table above. With Blog Porter, install the plugin, choose Medium and upload the ZIP. Check the count in the free analysis against the published stories on your Medium Stories page. If it's higher, unlisted stories or longer responses you wrote are probably included. Why: a count that matches now saves you hunting for missing stories later.
- Bring the images into your Media Library. Medium hosts your images on its own servers. Story files in the archive and the RSS feed link to
cdn-images-1.medium.com, and live story pages usemiro.medium.com. Search your WordPress posts for both. Every result still has at least one image loading from Medium. WordPress says an image that isn't in your Media Library may stop displaying if the original is moved or deleted. To fix one by hand, select the image and click Upload to Media Library in the block toolbar. Blog Porter downloads the available images for you and lets you retry any that fail. Why: images left on Medium depend on an account you're leaving. - Set your permalinks. Go to Settings → Permalinks and choose Post name, which uses the
%postname%tag, the post's slug. Medium story addresses end with the title and a short ID, such as/my-story-a1b2c3d4e5f6. Blog Porter takes each slug from the story's Medium link in the archive, ID included. Other routes may make a new slug from the title. Compare a few slugs with your saved addresses, and edit any that differ. Why: if you're bringing your own domain from Medium, matching addresses means old links keep working without redirects. - Fill in what didn't move. Medium has no categories, so create a few and assign them. Add featured images too: select an image in a post, open More options in the block toolbar and choose Set as featured image. Why: themes, archive pages and social previews use these, and WordPress leaves them empty.
- Update links between your stories. Links from one story to another still point to your Medium addresses. Search your posts for your Medium address and change them to the new WordPress addresses. Why: otherwise your new site keeps sending readers back to Medium.
- Spot-check a sample of posts. Compare a few old and new stories side by side: title, date, headings, quotes, code blocks, embeds, images and links. Why: problems are easier to fix before readers and Google arrive.
Member-only stories
If you're in Medium's Partner Program, some of your stories may be behind the paywall. Move them from the archive, not the RSS feed or an automation: Medium doesn't put paywalled stories in feeds in full.
Decide, story by story, whether it stays behind the paywall on Medium. If it does, the Medium copy stays members-only while your WordPress copy is open to everyone, unless you add a paywall of your own. To make a story free on Medium, Partner Program writers can remove it from the paywall under Manage paywall setting. Medium says unlisting a story also takes it out of the paywall and its earnings eligibility.
Publications
Your personal archive covers your own account. For a whole publication, ask Medium support for a backup, as WordPress.com explains. Support offers HTML or XML, and WordPress.com says to use the HTML version.
A story in a publication belongs to its author, so only the author can set its canonical link. If several people write for you, ask each of them to do their own stories. Medium says that if the account that owns a publication is deleted, the publication is taken offline.
Keep your search traffic
What you can keep depends on the address from step 2. Keep your Medium SEO and readers covers both cases in detail.
- If you have your own domain, move it. Medium connects a custom domain with two A records at your domain provider. Replace them with the records your WordPress host gives you, then open a sample of your saved addresses. Each should show the right story. If an address changed, add a 301 redirect to the new one, for example with the free Redirection plugin. When the addresses stay the same, Google treats it as a hosting change without URL changes. Why: until the domain points at WordPress, visitors still see your Medium site.
- If your stories are on medium.com, set canonical links. You can't redirect a
medium.comstory. Medium says there's no way to add any kind of code to your pages. Instead, open each story, choose Edit story, then More settings. Under Advanced Settings, select This story was originally published elsewhere, enter the WordPress address and click Save canonical link, then Publish. It's only on the web, one story at a time. Start with your most-read stories. Why: it tells search engines which copy is the original. Google treats a canonical link as a strong signal, not a command.
Bring your readers
- Tell your readers. Publish a short "we've moved" story on Medium, with a link to your site and its email sign-up. Then click the three-dot button on the story and choose Email to subscribers. Medium lets you send each story to your subscribers once, as a preview that links back to Medium. Add your new address to your Medium bio too. Why: this is your one clear chance to bring readers to the new site.
- Export the subscribers you can. Your followers can't be exported. For email subscribers, go to Stats → Audience on the web. Medium lets you export the emails you imported, plus readers who subscribed before April 2025. If all your subscribers joined after April 2025, the export is empty. Only email people who agreed to hear from you. Why: an email list you hold yourself is the audience you can take anywhere.
After launch
- Open the site to search engines. Untick Discourage search engines from indexing this site under Settings → Reading. While it's ticked, WordPress turns off its sitemap. Why: while it's ticked, you're asking search engines to stay away.
- Tell Google. In Search Console, submit your sitemap. WordPress has one at
/wp-sitemap.xml, unless an SEO plugin replaces it. Watch the reports for a few weeks for pages Google can't find. Why: the sitemap helps Google find your new addresses quickly. - Keep your Medium account. Don't delete stories or your account once you're done. Medium says deleting a story is permanent, and that if you delete your account, your stories will also be deleted. Deactivating also makes your profile and data disappear from Medium. Why: a deleted story is a dead link. A live one, with a canonical link and a note about your new site, keeps sending readers to WordPress.
Frequently asked questions
Can Medium export straight to WordPress?
No. Medium exports HTML files in a .zip archive, and WordPress can't read them as they are. You need something to convert them: WordPress.com's importer, a converter such as mediumtowp.com, or a plugin such as Blog Porter. Medium support can make a publication backup in HTML or XML, but WordPress.com says to use the HTML version.
Is moving from Medium to WordPress free?
Copy and paste, the RSS feed and mediumtowp.com cost nothing, and WordPress.com's importer comes with a WordPress.com site. WordPress itself is free, but a self-hosted site needs hosting and usually a domain, which you pay for. Blog Porter costs $0.20 per story.
How long does it take?
The export usually arrives by email. Importing takes minutes with a tool. The cleanup takes longest: images, featured images, categories, links between stories and canonical links. By hand, we estimate 10 to 15 minutes per story.
Will I lose my Medium followers?
Your followers stay on Medium. There's no export for them. You can export some email subscribers, as step 16 explains, and you can email a "we've moved" story to all of them once.
Can I redirect my Medium stories to WordPress?
Only if they're on your own domain. Then you point the domain at WordPress and keep the same addresses. On medium.com/@yourname, yourname.medium.com or medium.com/publication-name, you can't redirect. Set a canonical link on each story instead.
Will moving hurt my SEO?
It can, if old links break. On your own domain, keep the same addresses and the move is invisible to readers. On medium.com, keep the stories live with canonical links to WordPress. Google treats canonical links as a strong signal, so your WordPress copy is likely, but not certain, to be the one that ranks.
Do images come across automatically?
Not with most routes. Medium's files link to images on Medium's servers, so an imported story can show images that still load from Medium. Search your posts for cdn-images-1.medium.com and miro.medium.com, and upload anything you find to your Media Library. Blog Porter downloads the available images into your Media Library for you.
Can I keep my stories on Medium too?
Yes. Medium's No Duplicate Content rule covers copies on Medium only, and says you can still have your content on your personal blog. Set a canonical link on each Medium story so search engines know which copy is the original.
Can I keep publishing on Medium after I move?
Yes. Publish on WordPress first, then use Medium's Import a story tool. Medium says imported stories get a canonical link to the original automatically, and keep their original date.
What happens to claps and responses?
They stay on Medium. A response is a post on its author's account, not part of your story, so no tool moves them. WordPress comments start empty.
Can I move only some of my stories?
To move only a few, copy and paste them. Blog Porter can't pick individual Medium stories: it imports, and charges for, every published story in the archive. Delete any you don't want in WordPress afterwards.
Should I delete my Medium account?
No. Deleting it deletes your stories, breaks every link to them, and takes any publication you own offline. Keep it, with canonical links and a note pointing to your new site.
Every Medium guide, in order
- How to migrate from Medium to WordPress: every route and every step (this page).
- How to export your Medium stories: what's in Medium's archive and RSS feed, and what each one misses.
- Keep your Medium SEO and readers: custom domains, canonical links, followers and subscribers.
Read more about moving from Medium to WordPress with Blog Porter.
Ready to migrate your blog?
Don't stay stuck on your current platform. These are a few Blog Porter customers that already saved time moving their content.
“Amazing service and works like an absolute charm, just imported 109 posts in minutes! saved me days of work.”
“Thank u so much, it saved me a lot of time 🙏”
“Wow, fast response! And thank you. I discovered you on Reddit. So glad I did because I'm busy and moving a site is a lot of work.”