Content belongs to WordPress, not to the theme. A theme is a display layer. Everything WordPress considers its own survives any theme change, and everything the old theme declared leaves with it.
That one sentence explains every case below, so it is worth holding on to.
#What moves with nothing to do
- posts and pages
- attachments and the whole media library
- categories and tags
- comments
- users and authors
- menus, meaning the menu items themselves
- reading settings and permalink structure
None of this needs exporting, converting or reconnecting. It is simply still there.
#What stops working
Not lost data. Lost ability to display it.
- Custom post types from the old theme
The entries stay in the database. If the old theme was what declared the type, it is no longer registered after the switch: it disappears from the admin menu and its pages return 404. A new theme declares its own set of types and does not adopt somebody else's.
- Custom taxonomies from the old theme
Same situation, same reason.
- Shortcodes from the old theme
The shortcode text is left sitting in the content as a plain string. This is the most visible breakage, because it shows on every page that used one.
- A page builder built into the old theme
Layouts made with a theme's builder do not render afterwards. Elementor is a separate case: it is a plugin rather than a theme, so its pages remain, though the look still changes because the styling comes from the theme.
- Widgets and menu locations
Menu items stay, and the assignment to locations does not, because the new theme has different ones. Widgets from old sidebars move to Inactive Widgets rather than disappearing.
- The old theme's settings
Colors, fonts and layouts do not transfer, and cannot: they are different settings systems with different fields.
Worth saying plainly and without apology: expecting a previous theme's custom functionality to keep working in a new one is not realistic. That is true of any theme change, not only this one.
#The order to do it in
Take a backup
Database and files, before anything else. Your host's backup, a backup plugin, or a manual database export all work.
Export your content
ToolsExport produces an XML file with your native content. It is both insurance and the way to carry content to a different site.
Try it on a copy first
Deploying to staging and looking there is the calmest route by a wide margin. A staging copy is a separate domain, and every licence carries a free slot for one.
Review afterwards
Walk the checklist below.
#The review checklist
Menus are assigned to the new theme's locations
Widgets are placed where you want them
Pages that used shortcodes have been opened and checked
Custom post types you rely on still exist
Permalinks resolve, and a re-save in SettingsPermalinks if they do not
#Demo import on a site that already has content
A demo import adds its content on top of yours rather than replacing it.
Nothing of yours is erased, and the result is a site that looks like a mixture of two sites, which is rarely what anybody wanted. Demo import is a tool for a clean site: on one with real content, either skip it or select only the data types you actually need.
#Cloning a site
A copy taken to another domain, or a staging site promoted to live, carries the license activation record with the database. That record names the old domain, so the new site reports the license as lost. It is not a fault, and the fix is to release the activation and run it again on the new domain.
#Common questions
Can I move the old theme settings across?
No, because two themes have different settings with different names and different meanings, so there is nothing to map between them.
My old shortcodes are showing as text
The only way to render them again is keeping the plugin or theme that provided them, which usually is not an option after a switch, and a search and replace across the database can strip them instead, with a backup beforehand that is not optional.
Will my SEO rankings drop?
Not because of the theme as long as the URLs stay the same, so do not change the permalink structure during a theme switch and the addresses search engines already know keep working.
Something looks lost
Check the database before assuming it is gone, because content usually survives even when nothing is displaying it, and a plugin that registers the missing post type can bring an old archive straight back into view.
#Still stuck
Open a support ticket with what is missing and which theme the site came from.
Last updated