THE SHORT ANSWER
Most problems after moving a Divi site come from three things: old static CSS files, the old domain still saved inside Divi content, and a find and replace that broke serialized data. Clear Divi static CSS and every cache, then change the domain with a serialization safe tool such as WP-CLI search-replace. That fixes most broken layouts, links and reset settings in under an hour.
Divi sites move like any WordPress site, with a few extra traps. The builder saves full URLs inside its content, writes page CSS to cache files and keeps its settings in serialized options. Miss one of those and the new site loads with broken layouts, square icons or a builder that never opens. Here are the 10 errors we fix most often after a Divi move, with the cause and the exact steps for each.
Applies to: Divi 4 and Divi 5 on WordPress 6.x and 7.x, cPanel, LiteSpeed, Apache and Nginx hosts. Last verified: November 2026.
01Quick reference
| Error | Most likely cause | Try first |
|---|---|---|
| Unstyled or half broken pages | Old Divi static CSS or a cache | Clear Divi static CSS, then every cache |
| Old domain still in links and images | Full URLs saved inside Divi content | Run a serialization safe search and replace |
| Theme Options reset to defaults | Plain text find and replace broke serialized options | Restore the database, redo the replace safely |
| Icons show as squares | Icon font blocked by CORS or a URL mismatch | Match the site URLs, then allow the font |
| Visual Builder will not load | URL mismatch, firewall rules or low PHP limits | Check the browser console, then PHP limits |
| Mixed content after HTTPS | http URLs saved in content and CSS | Replace http with https in the database |
| Inner pages return 404 | Missing .htaccess rewrite rules | Resave Permalinks |
| Theme Builder templates missing | Content moved with Divi export, not a full migration | Export and import the Theme Builder separately |
| No Divi updates on the new site | Username and API key not set on the new domain | Re-enter the Elegant Themes API key |
| Contact form emails missing | New host blocks or limits PHP mail | Send mail through SMTP |
02Before you move a Divi site: five checks
- Take a full backup of files and database, and keep a copy off the server.
- Note the PHP version, memory limit and caching setup on the old host so you can match them.
- Write down the Elegant Themes username and API key for the Updates tab.
- Lower the DNS TTL a day before a domain or host change so the switch is quick.
- Pick a migration method that moves the full database and
wp-content, including the cache folder, such as All-in-One WP Migration, Duplicator or your host's migration tool.
Moving to a new host and upgrading to Divi 5 at the same time? Move first, check the site, then upgrade on staging. One change at a time makes every error easy to trace. Our Divi 4 to Divi 5 migration service handles the upgrade part.
Still broken after these steps?
Send us the URL and the exact error. Fixes start from $59, with a fixed quote within 24 hours and an NDA if you need it.
03The 10 errors we see after moving Divi sites
Pages look unstyled or half broken after the move
Quick fix: Clear Divi's static CSS files, purge the server and CDN cache, then load each key page once while logged out.
Why it happens: Divi writes page CSS to files in wp-content/et-cache. After a move those files can be missing, copied from the old server with old paths, or cached by the new host before Divi rebuilt them. The HTML loads, the styling does not.
- In WordPress go to Divi > Theme Options > Builder > Advanced and click Clear next to Static CSS File Generation.
- If you cannot reach the dashboard, open the file manager and empty the
wp-content/et-cachefolder. Divi rebuilds it on the next visit. - Purge the page cache in your caching plugin or host panel (LiteSpeed, WP Rocket, SiteGround, Cloudflare and so on).
- Open the home page and two inner pages in a private window. Check the source for a stylesheet from
et-cache. - If one page is still broken, open it in the Visual Builder and save it once to force a fresh CSS file.
Images, buttons and links still point to the old domain
Quick fix: Run a search and replace for the old domain across the whole database with a tool that understands serialized data, such as WP-CLI or Better Search Replace.
Why it happens: Divi stores full image URLs, button links and background images inside page content and post meta. Changing the WordPress Address in Settings does not touch those, so the new site keeps loading files from the old one until it goes offline.
- Take a fresh database backup first.
- Run the replace as a dry run and read the report.
- Run it for real, skipping the
guidcolumn. - Repeat for the
http://version and thewwwversion if the old site used them. - Clear Divi static CSS and every cache again, because old URLs can live in cached CSS too.
wp search-replace 'https://old-domain.com' 'https://new-domain.com' --skip-columns=guid --dry-run
wp search-replace 'https://old-domain.com' 'https://new-domain.com' --skip-columns=guidNo SSH? Use the Better Search Replace plugin with the same values, run it once with dry run ticked, then remove the plugin when you are done.
Divi Theme Options, colors or the logo reset to defaults
Quick fix: Restore the database from before the replace, then change the domain again with a tool that handles serialized data.
Why it happens: Divi keeps its Theme Options in one serialized option row. Serialized data stores the length of every string. A plain find and replace in a SQL file or phpMyAdmin changes the text but not the length, so WordPress cannot read the row and Divi falls back to defaults.
- Do not start fixing settings by hand. That hides the real problem.
- Restore the database export you took before the replace, or re-import the original SQL file.
- Change the domain with WP-CLI
search-replaceor Better Search Replace, never with a text editor. - Check Theme Options, the Customizer and one Theme Builder template.
- If you have no clean backup, export Theme Options from the old site with the Divi portability button and import them on the new one.
Divi icons show as empty squares
Quick fix: Make sure the WordPress Address and Site Address both use the new domain with https, then allow the icon font to load across origins.
Why it happens: Divi icons are a web font. Browsers refuse to load a font from a different origin unless the server sends an Access-Control-Allow-Origin header. After a move this happens when the site URLs still use the old domain, mix http and https, or the font is served from a CDN hostname.
- In Settings > General, set both addresses to the new
https://domain. - Run the search and replace from the fix above so no old font URL remains.
- On Apache or LiteSpeed, add the snippet below to
.htaccessabove the WordPress block. - Purge the CDN cache so it picks up the new header.
- If icons still fail only in custom CSS spots, turn off Dynamic Icons in Divi > Theme Options > Performance.
<FilesMatch "\.(ttf|otf|eot|woff|woff2)$">
<IfModule mod_headers.c>
Header set Access-Control-Allow-Origin "*"
</IfModule>
</FilesMatch>The Visual Builder will not load on the new host
Quick fix: Open the browser console while the builder loads. Fix any blocked or mixed content request first, then raise PHP memory and execution time.
Why it happens: The builder needs admin-ajax and the REST API to answer quickly from the same domain and protocol. New hosts often ship stricter firewall rules, lower PHP limits or aggressive script optimization, and any one of those can stop the builder.
- Open the builder, press F12 and read the Console and Network tabs for red 403, 500 or mixed content errors.
- A 403 on
admin-ajax.phporwp-jsonusually means a ModSecurity or firewall rule. Send the request time to your host and ask them to whitelist it. - Set PHP
memory_limitto at least 256M andmax_execution_timeto 120 in the host panel. - Exclude the builder from JavaScript minify, combine and delay settings in your caching plugin.
- Test with all plugins except Divi tools turned off, then switch them back on one by one.
Not secure warning or mixed content after switching to HTTPS
Quick fix: Replace http://your-domain.com with https://your-domain.com across the database, then clear Divi static CSS.
Why it happens: The new host issued an SSL certificate, but Divi content, background images and custom CSS still contain http:// links. The browser blocks or flags them and removes the padlock.
- Confirm the certificate is active on both the root domain and
www. - Run the database search and replace for the http version of the domain.
- Check Divi > Theme Options > Custom CSS and the child theme stylesheet for hard coded http links.
- Add a site wide 301 redirect from http to https in the host panel or
.htaccess. - Clear Divi static CSS and every cache, then recheck with the browser console.
Home page works, every other page shows 404
Quick fix: Go to Settings > Permalinks and click Save Changes without changing anything.
Why it happens: Pretty URLs depend on rewrite rules in .htaccess on Apache and LiteSpeed. Many migration tools skip hidden files, and some hosts create a blank one, so only the home page resolves.
- Resave Permalinks once. WordPress rewrites the rules if it can write to the file.
- If the 404s remain, open
.htaccessin the site root and check it contains the WordPress block below. - Make sure the file is readable (permissions 644) and owned by the site user.
- On Nginx hosts there is no
.htaccess, so ask the host to apply the WordPress rewrite rule in the server config.
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPressHeader, footer or templates missing after a layout import
Quick fix: Export the Theme Builder from the old site with its portability button and import it on the new site, then do the same for Theme Options.
Why it happens: When a site is rebuilt by exporting Divi layouts instead of moving the whole database, each part has to travel on its own. A Divi Library export does not include Theme Builder templates, global presets or Theme Options.
- On the old site open Divi > Theme Builder and use the portability icon to export all templates.
- Import the file on the new site and choose to keep or replace the default template when asked.
- Export and import Theme Options the same way from Divi > Theme Options.
- Check each template's assignment, since pages created on the new site have new IDs.
- Where you can, move the full site with a migration plugin instead. It brings everything at once.
Divi updates stop or the license looks missing
Quick fix: Add your Elegant Themes username and API key under Divi > Theme Options > Updates, then check for updates.
Why it happens: The update credentials are tied to how the site reports itself to Elegant Themes. After a domain change, or when the options row did not survive the move, WordPress can no longer fetch Divi updates.
- Log in to your Elegant Themes account and copy your username and an API key from the Members Area.
- Paste both into Divi > Theme Options > Updates and save.
- Go to Dashboard > Updates and click Check again.
- If you build for clients, use the client's own membership where possible, so updates keep working after handover.
Divi contact forms stop sending email
Quick fix: Install an SMTP plugin and send mail through a real mailbox or a sending service, then update SPF and DKIM for the new host.
Why it happens: Divi's contact form uses the standard WordPress mail function. Many hosts limit PHP mail, and mail sent from a new server IP that is not in your SPF record often lands in spam or never arrives.
- Send a test from the form and check spam first.
- Install an SMTP plugin and connect it to your mailbox or a service such as Brevo, Postmark or Amazon SES.
- Update the domain's SPF record and add DKIM for the sending service.
- Send a test again and confirm the email headers show pass for SPF and DKIM.
04After the move: a 10 minute test
- Load the home page, a service page, a blog post and the 404 page while logged out.
- Open the Visual Builder on one page and save it.
- Check one Theme Builder header and footer on a phone.
- Send a test from every form.
- Search the page source for the old domain.
- Check that the padlock shows on every page you tested.
- Submit the sitemap again in Google Search Console if the domain changed, and add a 301 redirect from the old domain.
Moving a whole site that is not on WordPress yet? See our website migration to WordPress service.
Need the full list? See our WordPress errors fix guide and the hosting, PHP and cPanel errors guide.
More fixes

Hosting, PHP and cPanel errors: the WordPress fix guide (32 errors)
32 server-level errors behind broken WordPress sites: cPanel blocks and limits, PHP settings and extensions, permissions, phpMyAdmin, DNS, AutoSSL and hosting moves,…

WordPress errors: the complete fix guide (47 errors, step by step)
The 47 WordPress errors we fix most, with the exact error text, why each one happens and the steps we use to…
05FAQ
What is the safest way to migrate a Divi site to a new host?
Use a full site migration tool such as All-in-One WP Migration, Duplicator or your host's migrator, so the database, uploads, theme and cache folder move together. Then clear Divi static CSS and test key pages before you point DNS.
Do I need to change URLs in the database when I move a Divi site to a new domain?
Yes. Divi saves full URLs in page content and settings. Use WP-CLI search-replace or Better Search Replace so serialized data stays valid. Never edit the SQL file by hand.
Can I use my Divi license on the new domain?
Yes. An Elegant Themes membership covers unlimited sites. Add your username and API key under Divi > Theme Options > Updates on the new site.
Should I upgrade to Divi 5 during the migration?
Not at the same time. Move the site, confirm it works, then upgrade on a staging copy. If both happen at once, you cannot tell which change caused a problem.
How long does a Divi site migration take?
A small site usually moves in one to two hours including checks. Large stores or sites with heavy custom code can take a day, mostly for testing.

