Some working knowledge of WordPress, site creation and hosting is assumed.
This won’t work with PHP or JS files that are kept outside of the theme folder. And if there are any special settings in the WP-config.php file or core or plugin files have been tweaked, those changes will be lost.
You need to have administrator access to the WordPress site to retrieve all the files.
To switch to new hosting you will also need control of the DNS for the domain of course.
My original thought for this problem was to install a Backup Plugin to get all the files and DB, but without FTP of course that’s not possible! If there is already a Backup Plugin installed you can just use that and skip to the end. I always now include a Backup Plugin in any new installation that I create.
I’ve moved three fairly straightforward sites using this method after the hosting company locked the client out. It’s time-consuming, but I can’t think of another way if there isn’t a possibility of accessing the hosting control panel, DB or FTP.
EXPORT – on the existing site
- Tools > Export as XML file
- Use a site-downloader like SiteSucker to grab all as much of the site as possible – mainly for the theme images as these won’t show up in the Appearance Editor. The software should maintain the structure of the site and not localise the files. I had trouble using this on a Mac – it would freeze every time Mac Mail polled the mail server – so quitting Mail solved that problem!
- Use the Appearance Editor to select each of the Theme files and copy/paste the content of each file to a new plain text file on your computer. Pay attention to the path of each file as it’s not immediately obvious if files are inside folders. You should be able to recreate the Theme folder this way. Add in any JS or image folders downloaded by SiteSucker.
- Check the CSS file to make sure any referenced background images haven’t been missed. Download missing files and add to your site structure on your computer.
- Make a note of the WordPress version in Dashboard.
- Make a note of all the active Plugins – their names, version numbers and creators. I selected and copied the list of Plugins into a plain text document.
IMPORT – on the new site
- Go to the WordPress Release Archive ( https://wordpress.org/download/release-archive/ ) and download the version of WordPress you need.
- Unzip and upload the files to your new hosting.
- Create the WP-config.php file in the top level as usual using your new DB details and a new hash.
- For each Plugin, find its page on the WordPress Plugin site and use the developer tab to download the correct version number. Upload the files to WP-content > plugins folder. Some plugins change their name over time or may disappear completely. Do an internet search for the files you need – and old blog or GitHub may still have them. If you still can’t find them, use the Plugin Editor to cut/paste and recreate the plugin’s folder and files. Images will not be visible with this method though – so you’ll need to search through its files for image references and download those.
- Install WordPress as usual – your-domain/WP-install.php
- Once logged in go to Plugins and activate all of them except the default plugins Hello Dolly and Askimet, unless you use those.
- Add a Backup Plugin if one isn’t already installed.
- Tools > Import the XML file you downloaded earlier. You will need to install the WordPress importer – follow the instructions. This should give you the Pages, Posts, Comments, etc. for the site. I’ve tried a few times to import the site INCLUDING images – but with mixed results. It always fails to import all the Upload images into the Media Library – though it will give you a list of failed ones, so you can go and get them from your SiteSucker files. I uploaded all the files in Uploads that SiteSucker got for me. That way, even if they’re not in the Media Library, they’ll still be visible on the new site.
MATCH THE SITES
- Open up two browser windows so you can see the WordPress backend for each site side-by-side. Go through EVERY menu and sub-menu one at a time and compare the old with the new. Pay special attention to Menus, Settings, Widgets, Permalinks. Well, all of them really.
SWITCHING THE SITE
- Double-check the site is working on your domain alias or test server before uploading / switching the DNS.
- Double-check the site is working live – especially any contact forms!!!
Good luck! And comment to let me know if you have any other suggestions for this process.