Skip to content
All 158 help articles

Bring your old blog over

Import posts from WordPress, Substack, Ghost, any blog's address or a single post, then publish them with their original dates.

4 min readUpdated
  • blog
  • import
  • wordpress
  • substack
  • ghost
  • migrate

Import brings your posts, with their pictures, categories and authors, into your blog. Only the owner and admins can import. Importing does not turn your blog on, so nothing is public until you do.

  1. Open Import

    In Blog, press Import at the top of the page. On a blog that has never been on, the same door is Bring your posts over on the Start your blog screen.

  2. Pick where it is coming from

    • WordPress: an export file. In WordPress, open Tools, then Export, choose Posts and download the .xml file. Squarespace exports this way too.

    • Substack: an export file. In Substack, open Settings, find Exports, create one and download it. Drop the .zip in as it is, with no need to unzip it. If your download shows up as a folder instead, your browser unzipped it: compress the folder back into a .zip, then drop that in. Substack's own subscribe, share and comment buttons and its signup box are left out of each post, and the preview notes the signup box. A button of your own, like Book a call, stays a link.

    • Ghost: an export file plus your site's address. In Ghost, open Settings, then Migration tools, and choose Export content. Type your site's address, then drop in the .json file.

    • Any blog: paste your blog's address. It brings the newest posts the blog's feed carries, up to 500. For a whole archive, use an export if your platform is listed.

    • One post: paste a single post's address.

  3. Check the preview

    It says how many posts are live and how many are drafts, how many pictures will come over, the categories and guest authors it will add, and anything that will not come across exactly. Open a post in the list to see why.

  4. Choose how they arrive

    When some posts were live where they came from, you choose As drafts or As they were. Drafts wait until you publish them, and publishing them never emails your subscribers. A Ghost or Substack post that was for paying readers is always a draft, whichever you choose. As they were puts the live ones live here too, with their original dates.

  5. Start the import

    Press Bring N posts over. You can close the window and it keeps going. Pictures are copied into your storage and count toward it.

  6. Read the report and publish

    When it finishes, the report says what came across and what did not. If posts arrived as drafts, Publish N with original dates puts them live, each dated when it first went out where it came from, so your blog keeps its history in order. Nobody is emailed. For a big import, press it again until none are left. The report stays on the Posts page for a few days.

Undo import on the report removes the posts the import made that nobody has changed since. A post you changed is kept, and Drry tells you how many it removed and how many it kept.

What an import does not bring

  • Your subscribers. Bring your list in from Emails, on the Audiences tab, with Import, as a CSV. Substack's export has it as email_list.csv. The import dialog says how many contacts your plan takes. See Import your contacts from another platform.

  • Comments.

  • Old links, unless your old address points here. A reader who follows a post's old address lands on the post here only once that address, on your own domain, points at Drry, which needs a custom domain (available on the Creator plan). An address like yourname.substack.com stays Substack's, so links to it cannot forward. Addresses ending in .html, .htm or .php forward the same way, but other file endings, like .asp, do not. See Connect your own domain.

Limits

  • Up to 2,000 posts in one import, and an uploaded file up to 100 MB.

  • Up to 60 pictures are copied for any one post. The report says when a post had more.

  • Reading a blog or a page by its address is limited to 6 a minute for each person. An uploaded file is not counted.

  • A Ghost or Substack post that was not public at the source arrives for members only, so paid writing is never made public by the import. One for signed-up readers keeps its status, so it goes live as members only if it was live there. One for paying readers always arrives as a draft, so you can choose who reads it before it goes live. Drry does not match Ghost's or Substack's paid tiers to your membership tiers, so open the post's settings if you want to limit it to one of yours. If Drry cannot tell who a post was for, it treats it as for paying readers. Where the source marked the end of the free preview, that spot becomes the members-only line, so the free part stays free. A post that was public stays public unless you limit it to members in its settings. See Posts only members can read.

  • An imported post is a draft, or live, exactly as you chose, except that a post for paying readers is always a draft. It never emails your subscribers.

Related