If you already publish somewhere else, bring it across once and publish from Bloggable afterwards. Bloggable is the host as well as the writing tool — it doesn't push posts out to WordPress or Ghost, it replaces them.
Two ways in
From your live site. Paste your blog's URL and Bloggable reads its sitemap to find posts, then fetches each one. This is the easier path and the one to use whenever the old site is still online — it works on WordPress, Ghost, Medium and Substack with no export file at all.
Upload an export. Use this when the old site is already down, is behind a login, or you'd rather work from files you already have. Drop in:
- Markdown —
.mdfiles, with or without frontmatter, one per post - A zip — a folder of markdown or HTML with its images alongside
- WordPress — the
.xmlfile from Tools → Export - Ghost — the
.jsonfile from Settings → Migration → Export
You don't have to say which is which; the format is detected from the file. A single WordPress or Ghost export holds your whole site, so one file can become hundreds of drafts.
Uploaded files are read in your browser, so a large site export never has to be uploaded whole.
How it works
- Open the blog you want to import into, and start the import.
- Discovery scans the source — up to 100 posts in a pass — or reads your uploaded files.
- Choose what to bring. You don't have to take everything, and usually shouldn't.
- Run the import. Posts come across as markdown, and images are re-hosted on Bloggable rather than left hot-linking to a site you may switch off.
Import is included on paid plans. Scanning a live site finds up to 100 posts in a pass; an uploaded export can bring in up to 500 at a time. Either way it's capped at 25 re-hosted images per post — anything beyond that keeps its original image URL.
If an export holds more than the limit, import what's listed and then upload the same file again: the posts you already have are recognised and skipped, so the second run picks up where the first stopped.
What gets brought across
Title, body, publish date, tags, excerpt and the featured image. Posts always arrive as drafts, whatever status they had on the old site — including posts that were published there.
Where the source records the original URL, it's kept as the post's canonical. That's also how re-running an import knows to skip what you already have, so it's safe to import twice.
What doesn't come across
Comments, subscribers and email lists. Bloggable doesn't have a built-in newsletter — you can link out to your existing provider from the blog, but subscriber data stays where it is.
From a WordPress export, pages and anything in the trash are skipped — only posts are imported. From a Ghost export, pages are skipped for the same reason.
Images
Images hosted on the old site are downloaded and re-hosted on Bloggable automatically. Images that were inside an uploaded zip are uploaded too, and count towards your storage the same as anything you upload by hand.
If a post points at an image that isn't in the upload, the import tells you before you commit — the post still imports, that one image just stays as it was.
Duplicates
A post is treated as already imported when its original URL matches one you've brought in before, or — for files with no original URL recorded — when its slug matches an existing post. Those rows are ticked off and skipped by default. If you want a second copy, there's an option on the select screen to import them again as new drafts.
After importing
- Check the slugs. Your URLs may differ from the source site's. If you're pointing the old domain at Bloggable, matching the paths matters.
- Set your brand voice using imported posts as the samples — you have a body of your own writing right there. See Brand voice.
- Run internal link suggestions. Imported posts don't know about each other yet.
- Look at Intelligence. With a back catalogue in place, it can immediately tell you which posts are worth refreshing. See Content intelligence.
Moving the domain
Import the content first and check it looks right, then repoint DNS. Doing it the other way round means a window where your domain serves an empty blog. See Publishing posts and custom domains.