Medium is a pleasant place to write and a poor place to keep things. The editor is good, the reading experience is clean and there is a built-in audience you will not get on your own site overnight. But the address is theirs, the paywall is theirs, the distribution rules are theirs, and they have changed all three more than once.
Leaving is not hard. It is fiddly, and the fiddly parts are worth doing properly because you only do them once. This guide covers the whole move: getting your archive, getting your posts into a new home, and dealing honestly with the links you can’t take with you.
Step 1: Download your Medium archive
Medium lets you export everything it holds about you as a zip file. At the time of writing the path on the web is:
- Click your profile picture, then Settings.
- Open the Security and apps tab.
- Click Download your information and confirm with Export.
In the iOS and Android apps it is under Settings → Account → Security and apps. Either way, Medium emails you a download link when the archive is ready, usually within minutes.
Do this first, even if you are not ready to move. An export you have is worth more than one you meant to get.
Step 2: Understand what’s in the archive
Unzip the file and you will find a README and a set of folders – posts, bookmarks, claps, highlights, lists, profile and so on. The one that matters is posts.
A few things to know before you start:
- Each post is a standalone HTML file. Not Markdown, not JSON. It opens in any browser, and the text copies out cleanly.
- Drafts and responses are mixed in with published stories. Every comment you ever left on someone else’s story was a “response”, and Medium treats responses as posts, so they all land in the same folder. Expect to sift before you start moving anything.
- Images are not in the zip. The HTML files reference images on Medium’s CDN. They will load for now, but if you want to own them you need to download each one and host it yourself. Several open-source scripts exist to do this in bulk if you have a lot of posts.
- Your followers are not in it. The archive lists the accounts you follow, not the email addresses of people who follow you. Treat your Medium followers as an audience you will invite to the new place rather than one you can move.
Step 3: Choose where the posts are going
This is the decision that makes everything else easier. Pick a home at your own domain. It can be WordPress, Ghost, a static site generator such as Hugo, or a native app that builds a static site for you. We compare the options in the best way to self-host a personal blog, and weigh the two biggest camps in WordPress vs a static site.
Whatever you pick, buy the domain first and put it on a registrar you trust. The domain is the part of this move that keeps future moves painless.
Step 4: Move the posts
Some platforms have Medium importers; WordPress.com, for instance, accepts the Medium export file and keeps original dates and tags. If yours does not, you will be copying by hand, and for most personal blogs that is less work than it sounds.
A workable routine, one post at a time:
- Open the exported HTML file in a browser.
- Copy the body text into your new editor. Formatting such as headings, bold, italics, links and quotes usually survives a paste; check it.
- Save each image from the page and attach it to the new post.
- Set the publication date to the original date, so your archive stays in order.
- Note the old Medium URL next to the new one in a spreadsheet. You will need that list later.
Be ruthless while you do it. Old posts that you would not write today can stay behind. A smaller archive you are proud of beats a complete one you are not.
Step 5: Accept what you can’t redirect
This is the part people get wrong, so to be plain about it: you cannot redirect medium.com URLs. You do not control that domain or its server. Every link to medium.com/@you/some-post-a1b2c3d4e5f6 that already exists on the web will keep pointing at Medium for as long as the post exists there. If you delete the post, those links break.
There is one exception. If you connected your own custom domain to Medium, you control that domain, and you can point it at your new host.
Custom domains have a history on Medium. They were once a paid add-on, were withdrawn for new users for a while, and have since returned; at the time of writing Medium offers them free to paying members. If you used one, the move is much kinder:
- Point the domain’s DNS at your new host.
- Set up redirects from each old Medium-style path (a slug ending in a string of hex characters) to the matching new URL, using the spreadsheet from Step 4. Most hosts support a redirects file; on your own server, an Nginx
return 301per line works. - Disconnect the domain in your Medium settings too, so Medium is no longer configured to use it.
If you never used a custom domain, there is nothing to redirect. The fix is the next step.
Step 6: Keep a Medium mirror that points home
You don’t have to delete your Medium posts, and there is a good argument for not doing so. Old links keep working, and Medium still sends readers. What you want is for search engines to treat your own site as the original.
That is what a canonical link does. Medium lets you set one on an existing story:
- Open the story and choose Edit story from the three-dot menu.
- In edit mode, open the three-dot menu again and choose More settings.
- Under Advanced Settings, select This story was originally published elsewhere, paste the URL of the post on your new site and save.
- Republish the story.
Medium’s page now carries <link rel="canonical"> pointing at your site. Readers on Medium can still read it; search engines are told where the original lives.
For new writing, reverse the flow. Publish on your own site first, then use Medium’s Import a story feature, which copies the post into Medium and sets the canonical link to your original automatically. Your site stays the source; Medium becomes a distribution channel, which is what it is best at.
It is also worth adding a line at the end of each Medium story – “This post lives at yourname.com” – so human readers find their way home too.
Step 7: Tell people
Update your Medium bio to point at your site. Update your social profiles. If you had an email list, send one message explaining where to find you. Then write something new on the new site, because an archive with no fresh posts gives nobody a reason to visit.
Doing the move with Selfish
Selfish has no Medium importer. Posts move the way Step 4 describes: open the exported HTML, paste the text into the composer, attach the images and set the date. Once they are in, Selfish generates your site with canonical links, an RSS feed and a sitemap, and publishes it to your own server or host. It is on the App Store as a one-time purchase, at a £3.99 introductory price, rising to £9.99 in December; the user guide covers writing and publishing, and Selfish vs Medium is the side-by-side.