The Medium migrator allows you to quickly import content and members from your Medium to your Ghost publication. You can access the migrator tool from the Settings → Advanced →Import/Export area of Ghost Admin.It’s helpful to log in to your Medium account before running the migration in Ghost Admin.
Once your export has been downloaded, return to the migrator window in Ghost Admin, and select Click or drag file here to upload, and navigate to the zip file you downloaded from Medium, once uploaded click Continue.If you’re unsure of where the file was saved, check your Downloads folder.
Next, it’s time to import your Medium subscribers. Click Open Medium Audience stats, and click Export this list.Once downloaded, select Click or drag file here to upload and navigate to the text download, and click Continue.
Ghost will confirm the number of posts and members that will be imported to your publication. If satisfied, click Import content and subscribers to begin the import of your data.After a few moments, you’ll see a confirmation message, confirming that your data was successfully migrated to your Ghost site.
⚠️ The Medium content export includes all of your posts and all of the comments you’ve written across Medium. There is no sure-fire way to differentiate between these content types, so you should check the import to verify your posts are live.
The importer will make a post in Ghost for all posts and comments in your Medium export. The importer will try to sort posts and comments, based on the following rules:
If a piece has only one paragraph, treat it as a comment
If a piece of any length has an image, treat it as a post
Otherwise, treat the piece as a post
All pieces that are treated as comments will be saved as drafts
All posts that were drafts in Medium, will be drafts in Ghost
All **posts **that were published in Medium will be published in Ghost
You should check that comments and posts were sorted correctly. Possible comments that have been saved as drafts will be tagged #Medium Possible Comment.
If you’re using a custom domain on Medium, you’ll need to implement redirects in Ghost to prevent broken links.Medium appends a small random ID to each post, which is removed in the migration step above. The regular expression below removes that random ID, but does not affect preview links.
This means that if a visitor or crawler goes to https://mysite.com/awesome-post-a1b2c3d4e5f6, they will automatically be redirected to https://mysite.com/awesome-post.Learn more about Medium redirects here.
If your migration needs go beyond what our in-built migration tools can support you can still move to Ghost.If you’re a Ghost(Pro) customer, our Migrations team can support you in migrating your content and subscribers. Learn more and get in touch with the team here.Alternatively, if you are a developer, comfortable with using the command line, or running a self-hosted Ghost instance, we have a suite of open-source migration tools to help with large, complex and custom migrations.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Ghost Developer Docs","colors":{"primary":"#15171A","light":"#FFFFFF","dark":"#15171A"},"logo":{"light":"https://mintcdn.com/ghost/aGR3I5_lq1oxakuc/logo/light.png?fit=max\u0026auto=format\u0026n=aGR3I5_lq1oxakuc\u0026q=85\u0026s=21b0a8eb2cb31ff62e99362023cc2de7","dark":"https://mintcdn.com/ghost/aGR3I5_lq1oxakuc/logo/dark.png?fit=max\u0026auto=format\u0026n=aGR3I5_lq1oxakuc\u0026q=85\u0026s=bf70847c5fb515f7414edad80653b09d","href":"https://ghost.org/"},"favicon":"https://mintcdn.com/ghost/5_xpDDjqLTzEezAK/favicon.png?fit=max\u0026auto=format\u0026n=5_xpDDjqLTzEezAK\u0026q=85\u0026s=2b382b5a4fc8a5fd8aca319841d9842a","appearance":{"default":"light","strict":false},"navbar":{"links":[{"href":"https://account.ghost.org/signin/","label":"Sign in"}],"primary":{"type":"button","label":"Get Started","href":"https://account.ghost.org/signup/"}},"footer":{"socials":{"github":"https://github.com/tryghost/ghost","twitter":"https://twitter.com/ghost","bluesky":"https://bsky.app/profile/ghost.org","reddit":"https://www.reddit.com/r/ghost"}},"styling":{"eyebrows":"breadcrumbs","codeblocks":"dark","latex":false},"navigation":{"global":{"anchors":[{"anchor":"Tutorials","icon":"joystick","href":"https://ghost.org/tutorials/"},{"anchor":"Developer Forum","icon":"server","href":"https://forum.ghost.org/"}]},"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"ghost","hasAudioNarration":false,"actualSubdomain":"ghost","customDomains":["docs.ghost.org"],"gitSource":{"type":"github","owner":"tryghost","repo":"docs","deployBranch":"main","contentDirectory":"","isPrivate":false,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6ae40bd734e53f17f0e15f94","collectionId":"a722035e-cf0a-44c0-9551-feb6d84097e6","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ae40bd734e53f17f0e15f94"},"feedback":{"edits":true,"issues":true},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6ae40bd734e53f17f0e15f94","clientVersion":"0.0.4021","searchFilterCounts":[{"language":"default","tag":"Documentation","count":157},{"language":"default","tag":"Themes","count":75},{"language":"default","tag":"Advanced Tools","count":64},{"language":"default","tag":"Helpers","count":56},{"language":"default","tag":"Admin API","count":40},{"language":"default","tag":"Data","count":26},{"language":"default","tag":"Utility","count":21},{"language":"default","tag":"Migration Guides","count":16},{"language":"default","tag":"Migrating to Ghost","count":16},{"language":"default","tag":"Content API","count":13}]},"assistantConfig":{},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[{"filePath":"style.css","content":".prose :not(pre)>code{background-color:rgb(var(--primary)/.1)}.prose :not(pre)>code:is(.dark *){background-color:rgb(var(--primary-light)/.1)}table strong{font-weight:700!important}"}],"page":{"pagePath":"migration/medium","slug":"/migration/medium","pageMetadata":{"title":"Migrating from Medium","description":"Migrate from Medium and import your content to Ghost with this guide","href":"/migration/medium"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Migrate from Medium and import your content to Ghost with this guide\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,hr:`hr`,li:`li`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,ul:`ul`,..._provideComponents(),...props.components},{CodeBlock,Heading,OptimizedImage,Warning}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!OptimizedImage)_missingMdxReference(`OptimizedImage`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsx(_components.p,{children:`You can easily migrate your posts and subscribers from Medium to Ghost in just a few clicks, using the Medium migrator in Ghost Admin.`}),`\n`,_jsx(Heading,{level:`2`,id:`run-the-migration`,children:_jsx(_components.strong,{children:`Run the migration`})}),`\n`,_jsxs(_components.p,{children:[`The Medium migrator allows you to quickly import content and members from your Medium to your Ghost publication. You can access the migrator tool from the `,_jsx(_components.strong,{children:`Settings → Advanced →`}),` `,_jsx(_components.strong,{children:`Import/Export`}),` area of Ghost Admin.`]}),`\n`,_jsx(OptimizedImage,{src:`https://mintcdn.com/ghost/E65lFpKvD_cvyLYE/images/migrate-tools-apr-2026.png?fit=max\u0026auto=format\u0026n=E65lFpKvD_cvyLYE\u0026q=85\u0026s=21982dce19004ca7982b5feea88c1c26`,alt:`migrate-tools-apr-2026.png`,\"data-og-width\":`1308`,width:`1308`,\"data-og-height\":`686`,height:`686`,\"data-path\":`images/migrate-tools-apr-2026.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/ghost/E65lFpKvD_cvyLYE/images/migrate-tools-apr-2026.png?w=280\u0026fit=max\u0026auto=format\u0026n=E65lFpKvD_cvyLYE\u0026q=85\u0026s=32fa9a9801d0098cf41d3e0471853300 280w, https://mintcdn.com/ghost/E65lFpKvD_cvyLYE/images/migrate-tools-apr-2026.png?w=560\u0026fit=max\u0026auto=format\u0026n=E65lFpKvD_cvyLYE\u0026q=85\u0026s=cbce39a8ce429e0a2b8495efbecf39fc 560w, https://mintcdn.com/ghost/E65lFpKvD_cvyLYE/images/migrate-tools-apr-2026.png?w=840\u0026fit=max\u0026auto=format\u0026n=E65lFpKvD_cvyLYE\u0026q=85\u0026s=3bd4b80a39bf0aeee225cc2cb79bb8f1 840w, https://mintcdn.com/ghost/E65lFpKvD_cvyLYE/images/migrate-tools-apr-2026.png?w=1100\u0026fit=max\u0026auto=format\u0026n=E65lFpKvD_cvyLYE\u0026q=85\u0026s=83e71da6922cc06faabcdc9884e7452b 1100w, https://mintcdn.com/ghost/E65lFpKvD_cvyLYE/images/migrate-tools-apr-2026.png?w=1650\u0026fit=max\u0026auto=format\u0026n=E65lFpKvD_cvyLYE\u0026q=85\u0026s=82a59e20aa4f762748c4fcf53afa5f43 1650w, https://mintcdn.com/ghost/E65lFpKvD_cvyLYE/images/migrate-tools-apr-2026.png?w=2500\u0026fit=max\u0026auto=format\u0026n=E65lFpKvD_cvyLYE\u0026q=85\u0026s=c08c2fe9af57bd176a94030c9a59d82e 2500w`}),`\n`,_jsx(_components.p,{children:`It’s helpful to log in to your Medium account before running the migration in Ghost Admin.`}),`\n`,_jsx(Heading,{level:`3`,id:`1-enter-your-medium-url`,children:_jsx(_components.strong,{children:`1. Enter your Medium URL`})}),`\n`,_jsxs(_components.p,{children:[`To start the migration process, enter the public URL to your Medium, and click `,_jsx(_components.strong,{children:`Continue`}),`.`]}),`\n`,_jsx(OptimizedImage,{src:`https://mintcdn.com/ghost/aGR3I5_lq1oxakuc/images/url.png?fit=max\u0026auto=format\u0026n=aGR3I5_lq1oxakuc\u0026q=85\u0026s=4196f5c27e93dea8bdb6c2bcee4fd9de`,alt:`url.png`,\"data-og-width\":`1582`,width:`1582`,\"data-og-height\":`1154`,height:`1154`,\"data-path\":`images/url.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/ghost/aGR3I5_lq1oxakuc/images/url.png?w=280\u0026fit=max\u0026auto=format\u0026n=aGR3I5_lq1oxakuc\u0026q=85\u0026s=821350cd205b9f116e061c5f16f80fa9 280w, https://mintcdn.com/ghost/aGR3I5_lq1oxakuc/images/url.png?w=560\u0026fit=max\u0026auto=format\u0026n=aGR3I5_lq1oxakuc\u0026q=85\u0026s=3f6fa7d33a60ee8e5a9092ed2db1fae2 560w, https://mintcdn.com/ghost/aGR3I5_lq1oxakuc/images/url.png?w=840\u0026fit=max\u0026auto=format\u0026n=aGR3I5_lq1oxakuc\u0026q=85\u0026s=a3ad8cbec9d5d979c716cf2a83bb37e8 840w, https://mintcdn.com/ghost/aGR3I5_lq1oxakuc/images/url.png?w=1100\u0026fit=max\u0026auto=format\u0026n=aGR3I5_lq1oxakuc\u0026q=85\u0026s=9cf07837f7c20ce562659c3f9cd2add5 1100w, https://mintcdn.com/ghost/aGR3I5_lq1oxakuc/images/url.png?w=1650\u0026fit=max\u0026auto=format\u0026n=aGR3I5_lq1oxakuc\u0026q=85\u0026s=08f7c0805c8080ffe7699e6959ea0c91 1650w, https://mintcdn.com/ghost/aGR3I5_lq1oxakuc/images/url.png?w=2500\u0026fit=max\u0026auto=format\u0026n=aGR3I5_lq1oxakuc\u0026q=85\u0026s=aed2f188b32a8825e181ee660c8dc35a 2500w`}),`\n`,_jsx(Heading,{level:`3`,id:`2-export-content`,children:_jsx(_components.strong,{children:`2. Export content`})}),`\n`,_jsxs(_components.p,{children:[`Next, click `,_jsx(_components.strong,{children:`Open Medium Settings`}),`, and click `,_jsx(_components.strong,{children:`Download your information`}),`. A link to download the export will be sent to your email.`]}),`\n`,_jsx(OptimizedImage,{src:`https://mintcdn.com/ghost/KePyCzI5-bxtjueF/images/content.png?fit=max\u0026auto=format\u0026n=KePyCzI5-bxtjueF\u0026q=85\u0026s=370afaaa97b89e36db8fd6ef4745913f`,alt:`content.png`,\"data-og-width\":`1582`,width:`1582`,\"data-og-height\":`2408`,height:`2408`,\"data-path\":`images/content.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/ghost/KePyCzI5-bxtjueF/images/content.png?w=280\u0026fit=max\u0026auto=format\u0026n=KePyCzI5-bxtjueF\u0026q=85\u0026s=ce69f26b078cff3a84d43a071042ad44 280w, https://mintcdn.com/ghost/KePyCzI5-bxtjueF/images/content.png?w=560\u0026fit=max\u0026auto=format\u0026n=KePyCzI5-bxtjueF\u0026q=85\u0026s=fe039840b75961c3c6b1f91dd45e67ac 560w, https://mintcdn.com/ghost/KePyCzI5-bxtjueF/images/content.png?w=840\u0026fit=max\u0026auto=format\u0026n=KePyCzI5-bxtjueF\u0026q=85\u0026s=39446cbe7e561b3748c9d50b3a66a52f 840w, https://mintcdn.com/ghost/KePyCzI5-bxtjueF/images/content.png?w=1100\u0026fit=max\u0026auto=format\u0026n=KePyCzI5-bxtjueF\u0026q=85\u0026s=064da533c181e1271f9d5663b4db516e 1100w, https://mintcdn.com/ghost/KePyCzI5-bxtjueF/images/content.png?w=1650\u0026fit=max\u0026auto=format\u0026n=KePyCzI5-bxtjueF\u0026q=85\u0026s=1da9d70c7834d78820a428c3043fc99f 1650w, https://mintcdn.com/ghost/KePyCzI5-bxtjueF/images/content.png?w=2500\u0026fit=max\u0026auto=format\u0026n=KePyCzI5-bxtjueF\u0026q=85\u0026s=2b71f111495936b00c977441c2d896e7 2500w`}),`\n`,_jsx(Heading,{level:`3`,id:`3-upload-content`,children:_jsx(_components.strong,{children:`3. Upload content`})}),`\n`,_jsxs(_components.p,{children:[`Once your export has been downloaded, return to the migrator window in Ghost Admin, and select `,_jsx(_components.strong,{children:`Click or drag file here to upload`}),`, and navigate to the zip file you downloaded from Medium, once uploaded click `,_jsx(_components.strong,{children:`Continue`}),`.`]}),`\n`,_jsx(_components.p,{children:`If you’re unsure of where the file was saved, check your Downloads folder.`}),`\n`,_jsx(Heading,{level:`3`,id:`4-export-subscribers`,children:_jsx(_components.strong,{children:`4. Export subscribers`})}),`\n`,_jsxs(_components.p,{children:[`Next, it’s time to import your Medium subscribers. Click `,_jsx(_components.strong,{children:`Open Medium Audience stats`}),`, and click `,_jsx(_components.strong,{children:`Export this list`}),`.`]}),`\n`,_jsxs(_components.p,{children:[`Once downloaded, select `,_jsx(_components.strong,{children:`Click or drag file here to upload`}),` and navigate to the text download, and click `,_jsx(_components.strong,{children:`Continue`}),`.`]}),`\n`,_jsx(OptimizedImage,{src:`https://mintcdn.com/ghost/aGR3I5_lq1oxakuc/images/subscribers.png?fit=max\u0026auto=format\u0026n=aGR3I5_lq1oxakuc\u0026q=85\u0026s=4df916dc508445c18a9d7f23e7003762`,alt:`subscribers.png`,\"data-og-width\":`1582`,width:`1582`,\"data-og-height\":`2318`,height:`2318`,\"data-path\":`images/subscribers.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/ghost/aGR3I5_lq1oxakuc/images/subscribers.png?w=280\u0026fit=max\u0026auto=format\u0026n=aGR3I5_lq1oxakuc\u0026q=85\u0026s=c520c1fbed3e6d39386e3e435778511b 280w, https://mintcdn.com/ghost/aGR3I5_lq1oxakuc/images/subscribers.png?w=560\u0026fit=max\u0026auto=format\u0026n=aGR3I5_lq1oxakuc\u0026q=85\u0026s=f1fe6fc09b8567c3d566ee096764b159 560w, https://mintcdn.com/ghost/aGR3I5_lq1oxakuc/images/subscribers.png?w=840\u0026fit=max\u0026auto=format\u0026n=aGR3I5_lq1oxakuc\u0026q=85\u0026s=fee9021869e58f8ef527a7178d6503c5 840w, https://mintcdn.com/ghost/aGR3I5_lq1oxakuc/images/subscribers.png?w=1100\u0026fit=max\u0026auto=format\u0026n=aGR3I5_lq1oxakuc\u0026q=85\u0026s=4c9df248cfe3f208ac6b8aaf45b26ae0 1100w, https://mintcdn.com/ghost/aGR3I5_lq1oxakuc/images/subscribers.png?w=1650\u0026fit=max\u0026auto=format\u0026n=aGR3I5_lq1oxakuc\u0026q=85\u0026s=9daf503acca1f83d860029e3a1da5f14 1650w, https://mintcdn.com/ghost/aGR3I5_lq1oxakuc/images/subscribers.png?w=2500\u0026fit=max\u0026auto=format\u0026n=aGR3I5_lq1oxakuc\u0026q=85\u0026s=aaf028735a702a6c40f12360eade4ecb 2500w`}),`\n`,_jsx(Heading,{level:`3`,id:`5-review`,children:_jsx(_components.strong,{children:`5. Review`})}),`\n`,_jsxs(_components.p,{children:[`Ghost will confirm the number of posts and members that will be imported to your publication. If satisfied, click `,_jsx(_components.strong,{children:`Import content and subscribers`}),` to begin the import of your data.`]}),`\n`,_jsx(OptimizedImage,{src:`https://mintcdn.com/ghost/aGR3I5_lq1oxakuc/images/overview.png?fit=max\u0026auto=format\u0026n=aGR3I5_lq1oxakuc\u0026q=85\u0026s=456e95e54c705a7812ef89da292daf50`,alt:`overview.png`,\"data-og-width\":`1582`,width:`1582`,\"data-og-height\":`1364`,height:`1364`,\"data-path\":`images/overview.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/ghost/aGR3I5_lq1oxakuc/images/overview.png?w=280\u0026fit=max\u0026auto=format\u0026n=aGR3I5_lq1oxakuc\u0026q=85\u0026s=423b9ddbacd09949b841fdd888b48ad3 280w, https://mintcdn.com/ghost/aGR3I5_lq1oxakuc/images/overview.png?w=560\u0026fit=max\u0026auto=format\u0026n=aGR3I5_lq1oxakuc\u0026q=85\u0026s=bb6f42804716f1ec16866e287d1c445c 560w, https://mintcdn.com/ghost/aGR3I5_lq1oxakuc/images/overview.png?w=840\u0026fit=max\u0026auto=format\u0026n=aGR3I5_lq1oxakuc\u0026q=85\u0026s=8d13d743c3369c598db355d125fd672e 840w, https://mintcdn.com/ghost/aGR3I5_lq1oxakuc/images/overview.png?w=1100\u0026fit=max\u0026auto=format\u0026n=aGR3I5_lq1oxakuc\u0026q=85\u0026s=3f244697bd9fc5651e3c979236526e50 1100w, https://mintcdn.com/ghost/aGR3I5_lq1oxakuc/images/overview.png?w=1650\u0026fit=max\u0026auto=format\u0026n=aGR3I5_lq1oxakuc\u0026q=85\u0026s=c47b9fa44e0f038d26c64f671c3a22b5 1650w, https://mintcdn.com/ghost/aGR3I5_lq1oxakuc/images/overview.png?w=2500\u0026fit=max\u0026auto=format\u0026n=aGR3I5_lq1oxakuc\u0026q=85\u0026s=3d58816039eb054e5f3c7cb968b57a59 2500w`}),`\n`,_jsx(_components.p,{children:`After a few moments, you’ll see a confirmation message, confirming that your data was successfully migrated to your Ghost site.`}),`\n`,_jsx(Heading,{level:`3`,id:`6-verification-and-manual-checks`,children:_jsx(_components.strong,{children:`6. Verification and manual checks`})}),`\n`,_jsx(Warning,{children:_jsxs(_components.p,{children:[`⚠️ The Medium content export includes all of your posts and `,_jsx(_components.strong,{children:`all of the comments you’ve written across Medium`}),`. There is no sure-fire way to differentiate between these content types, so you should check the import to verify your posts are live.`]})}),`\n`,_jsx(_components.p,{children:`The importer will make a post in Ghost for all posts and comments in your Medium export. The importer will try to sort posts and comments, based on the following rules:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`If a piece has only one paragraph, treat it as a `,_jsx(_components.strong,{children:`comment`})]}),`\n`,_jsxs(_components.li,{children:[`If a piece of any length has an image, treat it as a `,_jsx(_components.strong,{children:`post`})]}),`\n`,_jsxs(_components.li,{children:[`Otherwise, treat the piece as a `,_jsx(_components.strong,{children:`post`})]}),`\n`,_jsxs(_components.li,{children:[`All pieces that are treated as `,_jsx(_components.strong,{children:`comments`}),` will be saved as `,_jsx(_components.strong,{children:`drafts`})]}),`\n`,_jsxs(_components.li,{children:[`All `,_jsx(_components.strong,{children:`posts`}),` that were `,_jsx(_components.strong,{children:`drafts`}),` in Medium, will be `,_jsx(_components.strong,{children:`drafts`}),` in Ghost`]}),`\n`,_jsxs(_components.li,{children:[`All **posts **that were `,_jsx(_components.strong,{children:`published`}),` in Medium will be `,_jsx(_components.strong,{children:`published`}),` in Ghost`]}),`\n`]}),`\n`,_jsxs(_components.p,{children:[`You should check that comments and posts were sorted correctly. Possible comments that have been saved as drafts will be tagged `,_jsx(_components.code,{children:`#Medium Possible Comment`}),`.`]}),`\n`,_jsx(Heading,{level:`3`,id:`using-custom-domains`,children:`Using custom domains`}),`\n`,_jsx(_components.p,{children:`If you’re using a custom domain on Medium, you’ll need to implement redirects in Ghost to prevent broken links.`}),`\n`,_jsx(_components.p,{children:`Medium appends a small random ID to each post, which is removed in the migration step above. The regular expression below removes that random ID, but does not affect preview links.`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`5`,language:`yaml`,children:_jsx(_components.pre,{className:`shiki shiki-themes dark-plus dark-plus`,style:{backgroundColor:`#0B0C0E`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},language:`yaml`,children:_jsxs(_components.code,{language:`yaml`,numberOfLines:`5`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# redirects.yaml`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`301`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:` ^\\\\/(?!p\\\\/?)(.*)(-[0-9a-f]{10,12})`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`/$1`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`302`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[`This means that if a visitor or crawler goes to `,_jsx(_components.code,{children:`https://mysite.com/awesome-post-a1b2c3d4e5f6`}),`, they will automatically be redirected to `,_jsx(_components.code,{children:`https://mysite.com/awesome-post`}),`.`]}),`\n`,_jsxs(_components.p,{children:[`Learn more about Medium redirects `,_jsx(_components.a,{href:`https://ghost.org/tutorials/implementing-redirects/#medium`,children:`here`}),`.`]}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`large-and-complex-migrations`,children:_jsx(_components.strong,{children:`Large and Complex migrations`})}),`\n`,_jsx(_components.p,{children:`If your migration needs go beyond what our in-built migration tools can support you can still move to Ghost.`}),`\n`,_jsxs(_components.p,{children:[`If you’re a `,_jsx(_components.strong,{children:`Ghost(Pro) customer`}),`, our Migrations team can support you in migrating your content and subscribers. Learn more and get in touch with the team `,_jsx(_components.a,{href:`https://ghost.org/concierge/`,children:`here`}),`.`]}),`\n`,_jsxs(_components.p,{children:[`Alternatively, if you are a developer, comfortable with using the command line, or running a self-hosted Ghost instance, we have a suite of`,_jsx(_components.a,{href:`https://github.com/TryGhost/migrate`,children:` open-source migration tools `}),`to help with large, complex and custom migrations.`]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"codeStyling":"dark","config":{},"pageMetadata":{"title":"Migrating from Medium","description":"Migrate from Medium and import your content to Ghost with this guide","href":"/migration/medium"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Run the migration","slug":"run-the-migration","depth":2,"children":[{"title":"1. Enter your Medium URL","slug":"1-enter-your-medium-url","depth":3,"children":[]},{"title":"2. Export content","slug":"2-export-content","depth":3,"children":[]},{"title":"3. Upload content","slug":"3-upload-content","depth":3,"children":[]},{"title":"4. Export subscribers","slug":"4-export-subscribers","depth":3,"children":[]},{"title":"5. Review","slug":"5-review","depth":3,"children":[]},{"title":"6. Verification and manual checks","slug":"6-verification-and-manual-checks","depth":3,"children":[]},{"title":"Using custom domains","slug":"using-custom-domains","depth":3,"children":[]}]},{"title":"Large and Complex migrations","slug":"large-and-complex-migrations","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"ghost","siteName":"Ghost Developer Docs","title":"Migrating from Medium - Ghost Developer Docs","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-04-27T09:37:42.236Z","originalFileLocation":"migration/medium.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"light\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Migrate from Medium and import your content to Ghost with this guide\">\u003cmeta data-mint-head name=\"application-name\" content=\"Ghost Developer Docs\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/ghost/6htagQqB_6O-rO9Z/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/ghost/6htagQqB_6O-rO9Z/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/ghost/6htagQqB_6O-rO9Z/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/ghost/6htagQqB_6O-rO9Z/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/ghost/6htagQqB_6O-rO9Z/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/ghost/6htagQqB_6O-rO9Z/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/ghost/6htagQqB_6O-rO9Z/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/ghost/6htagQqB_6O-rO9Z/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/ghost/6htagQqB_6O-rO9Z/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Migrating from Medium - Ghost Developer Docs\">\u003cmeta data-mint-head property=\"og:description\" content=\"Migrate from Medium and import your content to Ghost with this guide\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Ghost Developer Docs\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.ghost.org/migration/medium\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://ghost.mintlify.app/_mintlify/api/og/v2?division=Migrating+to+Ghost\u0026amp;title=Migrating+from+Medium\u0026amp;description=Migrate+from+Medium+and+import+your+content+to+Ghost+with+this+guide\u0026amp;theme=0912343b8423bd7f582adf80\u0026amp;signature=35f97443958806d7f5b7a8e2ada0c408abf01d40607ac76ccac72efd96131604\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Migrating from Medium - Ghost Developer Docs\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Migrate from Medium and import your content to Ghost with this guide\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://ghost.mintlify.app/_mintlify/api/og/v2?division=Migrating+to+Ghost\u0026amp;title=Migrating+from+Medium\u0026amp;description=Migrate+from+Medium+and+import+your+content+to+Ghost+with+this+guide\u0026amp;theme=0912343b8423bd7f582adf80\u0026amp;signature=35f97443958806d7f5b7a8e2ada0c408abf01d40607ac76ccac72efd96131604\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/ghost/6htagQqB_6O-rO9Z/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Ghost Developer Docs\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#15171A\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.ghost.org/migration/medium\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/migration/medium.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.ghost.org/#organization\",\"name\":\"Ghost Developer Docs\",\"url\":\"https://docs.ghost.org\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/ghost/aGR3I5_lq1oxakuc/logo/light.png?fit=max\u0026auto=format\u0026n=aGR3I5_lq1oxakuc\u0026q=85\u0026s=21b0a8eb2cb31ff62e99362023cc2de7\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.ghost.org#website\",\"name\":\"Ghost Developer Docs\",\"url\":\"https://docs.ghost.org\",\"publisher\":{\"@id\":\"https://docs.ghost.org/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.ghost.org/migration/medium#webpage\",\"url\":\"https://docs.ghost.org/migration/medium\",\"name\":\"Migrating from Medium\",\"description\":\"Migrate from Medium and import your content to Ghost with this guide\",\"dateModified\":\"2026-04-27T09:37:42.236Z\",\"isPartOf\":{\"@id\":\"https://docs.ghost.org#website\"},\"breadcrumb\":{\"@id\":\"https://docs.ghost.org/migration/medium#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.ghost.org/migration/medium#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Migrating to Ghost\",\"item\":\"https://docs.ghost.org/migration\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Migrating from Medium\",\"item\":\"https://docs.ghost.org/migration/medium\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.ghost.org/migration/medium#article\",\"headline\":\"Migrating from Medium\",\"name\":\"Migrating from Medium\",\"description\":\"Migrate from Medium and import your content to Ghost with this guide\",\"url\":\"https://docs.ghost.org/migration/medium\",\"mainEntityOfPage\":{\"@id\":\"https://docs.ghost.org/migration/medium#webpage\"},\"dateModified\":\"2026-04-27T09:37:42.236Z\",\"publisher\":{\"@id\":\"https://docs.ghost.org/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.ghost.org#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Ghost Developer Docs\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Ghost Developer Docs","nav":{"global":{"anchors":[{"anchor":"Tutorials","icon":"joystick","href":"https://ghost.org/tutorials/"},{"anchor":"Developer Forum","icon":"server","href":"https://forum.ghost.org/"}]},"tabs":[{"tab":"Home","pages":[{"title":"Home","href":""}]},{"tab":"Documentation","pages":[{"title":"Documentation","href":"/introduction"}]},{"tab":"Migration Guides","groups":[{"group":"Migrating to Ghost","pages":[{"title":"Migrating To Ghost","sidebarTitle":"Overview","href":"/migration"},{"title":"Migrating from Substack","href":"/migration/substack"},{"title":"Migrating from BeeHiiv","href":"/migration/beehiiv"},{"title":"Migrating from WordPress","href":"/migration/wordpress"},{"title":"Migrating from Newspack","description":"Migrate from Newspack and import your content to Ghost with this guide. You can manage a migration from Newspack yourself or, if you prefer, our team can take care of the migration for you.","href":"/migration/newspack"},{"title":"Migrating from Medium","href":"/migration/medium"},{"title":"Migrating from Squarespace","description":"Official guide: How to migrate from Squarespace to Ghost","href":"/migration/squarespace"},{"title":"Migrating from Kit","href":"/migration/kit"},{"title":"Migrating from Mailchimp","href":"/migration/mailchimp"},{"title":"Migrating from Patreon","href":"/migration/patreon"},{"title":"Migrating from Buttondown","href":"/migration/buttondown"},{"title":"Migrating from Memberful","href":"/migration/memberful"},{"title":"Migrating from Gumroad","href":"/migration/gumroad"},{"title":"Migrating from Jekyll","href":"/migration/jekyll"},{"title":"Migrating from Ghost To Ghost","href":"/migration/ghost"},{"title":"Developer Migration Docs","href":"/migration/custom"}]}]}]},"title":"Migrating from Medium - Ghost Developer Docs","buildId":"dpl_EnxDqhjaNc9a8MVa833TGULPd9uJ","deploymentId":"dpl_EnxDqhjaNc9a8MVa833TGULPd9uJ","dynamics":["a74be98ba7"],"chunks":["zoom-image-lightbox-CVZVK4hN.js","lightbox-handle-r17bVUz3.js"]}