You have taken over a WordPress site built years ago with a ThemeForest theme. Today the pages are full of text like [vc_row][vc_column][vc_column_text] or [fusion_builder_container]. Or the page builder opens to a blank screen, a spinning loader or a wall of errors. Or the site runs fine but the dashboard nags that you need to register or activate a license to get updates, and nobody knows who bought it. On Bricks sites, code blocks may have stopped running after an update.
WPBakery Page Builder and Avada are among the most common builders on inherited sites because they shipped with many popular themes. Bricks is newer and common on sites built by freelancers. This guide shows how to identify which one you have, get pages displaying again, get the editor working, and deal honestly with licenses and updates. It complements the guides for Breakdance, Elementor and Divi, and the wider inherited site takeover checklist.
What is happening
These builders save your layouts in formats only they understand. If the builder is missing, deactivated or too old to run on your current PHP or WordPress version, the layout cannot be drawn.
| Builder |
How it stores layouts |
What you see when it is not running |
WPBakery Page Builder (plugin folder js_composer) |
Shortcodes inside the normal page content, such as [vc_row] and [vc_column] |
Raw shortcodes printed on the page, all styling gone |
Avada (theme Avada, plugins Avada Core and Avada Builder, folders fusion-core and fusion-builder) |
Shortcodes such as [fusion_builder_container] in the page content, plus theme options |
Raw fusion_ shortcodes, missing headers and footers, broken layouts |
Bricks (a theme, folder bricks, usually with a bricks-child child theme) |
Structured data in post meta fields, not in the page content |
Empty pages if another theme is activated, because the content field is empty |
The good news: your content is almost never gone. Shortcodes on the page mean the content is still there, waiting for the plugin that understands it. Do not delete the shortcodes, and do not paste the content into a new editor yet.
Before you start
- Back up first: files and database, stored off the server. See the backup plan checklist.
- Get the access list: WordPress admin, hosting, SFTP, and any Envato (ThemeForest), my.avada.com, WPBakery or Bricks account the previous developer used. The site takeover access inventory lists what to ask for, and when a former designer holds the logins covers getting it.
- Where commands run: commands starting with
wp are WP-CLI, run over SSH in the site folder (the one containing wp-config.php). Some hosts name it wp-cli. Every check has an admin screen equivalent.
- Work on staging if you can. Updating a theme that is several years behind is a big jump; do it on a copy first.
Step 1: Identify the builder and how far behind it is
In wp-admin, check Appearance, Themes for the active theme and its version, and Plugins for the builder plugins. Over SSH:
wp theme list --fields=name,status,version
wp plugin list --fields=name,status,version | grep -i -E 'js_composer|fusion|avada|bricks'
wp eval 'echo PHP_VERSION, " ", get_bloginfo("version"), PHP_EOL;'
The first command lists themes with their status (active, parent, inactive) and version. The second lists plugins and keeps only lines matching common builder folder names; -i ignores case and -E allows the | “or” pattern. The third prints the PHP version and WordPress version. Write all of these down. Compare the theme and plugin versions with the vendor’s current version on their changelog page. A theme two or more years behind on a current PHP version is the most common cause of a builder that will not load.
No SSH? View the page source in the browser and search for js_composer, fusion or bricks in the stylesheet and script addresses. They often include version numbers.
Step 2: Raw shortcodes on the page
If visitors see [vc_row] or [fusion_builder_container] text, the plugin that renders it is not running.
- Go to Plugins and look for WPBakery Page Builder, or Avada Core and Avada Builder. If one is deactivated, activate it. If someone deactivated it while “cleaning up unused plugins”, that is your answer.
- If it will not activate, or activating causes a critical error, read the error. A fatal error naming the builder after a PHP upgrade means the builder version is too old for that PHP version. See Step 4.
- If the plugin is missing entirely, it may have been deleted. Bundled builders usually install from the theme’s own plugin installer: in Avada, the theme dashboard has a Plugins or Add-ons page; other themes add an “Install Plugins” screen under Appearance. That installer may need the theme to be registered (Step 5).
- Clear every cache afterward: caching plugin, server cache, CDN. A cached page can show raw shortcodes after the plugin is back. See changes not showing.
To see how many pages depend on a builder before making decisions, count them over SSH:
wp post list --post_type=page,post --post_status=publish --s='[vc_row' --format=count
wp post list --post_type=page,post --post_status=publish --s='[fusion_builder_container' --format=count
--s runs WordPress’s normal search for that text, and --format=count prints only the number of matches. A large number means the builder is load-bearing and replacing it is a redesign, not a quick fix.
Step 3: The editor will not load or is blank
Pages display fine but the WPBakery backend or frontend editor, or the Avada Live builder, opens blank or never finishes loading.
- Look at the console. Open DevTools (F12), the Console tab, then reload the editor. Red errors naming a plugin file point to the conflict. The DevTools cheat sheet explains what to look for.
- Check the PHP error log at the time you opened the editor. The control panel cheat sheet shows where it is.
- Old builder, new WordPress. Builders bundled years ago were not written for current WordPress, jQuery or PHP. The real fix is updating the theme and its bundled builder (Steps 5 and 6).
- Conflicts. On staging, deactivate other plugins one at a time, especially optimization plugins that combine or delay JavaScript, which break builder editors. See delay JS broke menus and forms.
- Server limits and firewalls. Builders save big chunks of data in one request. A 403 when saving usually means a firewall rule (403 on admin actions); a stuck save can be memory or
max_input_vars (memory and execution time).
- WPBakery role settings. WPBakery has a Role Manager in its settings that can hide the editor for some roles or post types. If one user sees the editor and another does not, check it.
Step 4: It broke right after a PHP upgrade
A host upgrading PHP is the classic trigger on inherited sites. Old theme and builder code calls functions that newer PHP versions removed or changed, and the result is a critical error or a white screen.
- Read the error in the PHP log or the recovery mode email. If the file path contains
themes/Avada, plugins/js_composer, plugins/fusion- or another theme folder, the old code is the cause.
- As a short-term measure, switch the site back to the previous PHP version in your control panel if your host still offers it. That buys you time; old PHP versions stop receiving security fixes, so it is not a long-term answer.
- Update the theme and builder to a version that supports your PHP version, on staging first. That usually needs a license (Step 5).
The full routine, including how to test, is in upgrading PHP safely.
Step 5: Licenses and updates on an inherited ThemeForest site
This is where inherited sites get stuck. You need to know who owns the license before you can get updates.
How ThemeForest licenses work
A theme bought on ThemeForest comes with a purchase code tied to the buyer’s Envato account. The standard license is generally for a single end product, which for a theme means one website. The buyer, often the previous designer, has the purchase code in their Envato Downloads page. Ask them for it, or ask whether the license was bought in the client’s name. If they bought it in their own account for your site, they may be able to pass you the code; if they used one license across many client sites, you need your own license. Check the current Envato license terms for your case.
WPBakery bundled with a theme
When WPBakery comes bundled with a theme, WPBakery’s own documentation says updates come through the theme author, not directly from WPBakery, and support is also through the theme author. You can use the bundled copy with that theme. Trying to activate it with the theme’s purchase code produces messages such as “To receive automatic updates license activation is required”. You have two options:
- update the theme, which brings a newer bundled WPBakery that the theme’s plugin installer then offers you; or
- buy a separate WPBakery license, which gives direct updates and support from WPBakery.
If the theme itself is abandoned and no longer updated, its bundled builder will never be updated either. That is a strong sign to plan a rebuild.
Avada
Avada requires registration with a purchase code to receive theme and plugin updates and to install its companion plugins and prebuilt content. Avada’s documentation explains registering from the theme’s dashboard. A purchase code is used for one site; if you see “already being used on another domain”, the code is still linked to an old domain, and the owner can unlink it in their my.avada.com account or by unregistering on the old site. Avada also offers a Patcher in its dashboard for small fixes between releases.
Keep the theme, Avada Core and Avada Builder at matching versions. A new theme with old companion plugins, or the reverse, is a common cause of broken layouts after a partial update. After updating, use Reset Avada Caches, which Avada’s documentation places under Avada, Options, Global Options, Performance; it regenerates the dynamic CSS and JavaScript files.
Bricks
Bricks is a theme with its own license key, entered in the Bricks settings in wp-admin, which enables updates. Ask the previous developer whether the license is theirs or the client’s. Bricks versions up to and including 1.9.6 had a critical, actively exploited remote code execution flaw (CVE-2024-25600) that was fixed in 1.9.6.1. If an inherited Bricks site is older than that, treat updating as urgent and check for signs of compromise using the hacked site guide.
Nulled copies
If the theme or builder shows no license screen at all, has a license check removed, or came from a “free premium” download site, assume it is nulled. Nulled themes and plugins are a well-known source of backdoors. Replace them with clean, licensed copies from the vendor, then scan the site; see hack keeps coming back.
Step 6: Update an old theme and builder safely
- Restore the site to staging, or create a staging copy from your host.
- Check that customizations live in a child theme. Changes edited straight into the parent theme’s files are overwritten by an update. Compare the theme folder with a clean copy of the same version if you are unsure. See child theme problems.
- Read the theme’s changelog for steps between your version and the current one. Big jumps sometimes need intermediate versions or a migration step the theme runs on first load.
- Update the theme first, then the bundled or companion plugins from the theme’s plugin installer, so versions match.
- Run any update or conversion the theme prompts for, then clear the theme’s caches and your page cache.
- Test key pages, forms, menus and, on a shop, checkout. Then repeat the same steps on live after a fresh backup.
The general routine is in updating WordPress safely.
Step 7: Bricks code that stopped running
Bricks requires code in its Code elements and some custom code settings to carry a valid signature, so that code nobody approved cannot run. Bricks’ documentation says sites updating from a version before 1.9.7 need to regenerate signatures, and that changing the security salts in wp-config.php also invalidates all existing signatures, which is common after a hack clean-up or host move.
- Go to Bricks, Settings, Custom code. Code execution must be enabled for your user role to see the signature tools.
- Run the code review first and read every piece of code listed. On an inherited site you do not know where all that code came from.
- Click Regenerate code signatures only once you are satisfied the code is legitimate.
If the site shows only empty pages after someone switched themes, switch back to the Bricks child theme or Bricks: the layouts are stored in Bricks’ own data and only render with Bricks active.
Advanced: plan an exit from an abandoned builder
If the theme is abandoned, the license is lost and cannot be replaced, or the bundled builder will never support current PHP, plan a rebuild rather than patching forever.
- Export content first: Tools, Export gives you every page with its shortcodes, which preserves text and images even if layouts need rebuilding.
- Count builder-dependent pages with the Step 2 commands and list the page templates you need.
- Choose a maintained builder or a block theme, rebuild templates, and move content page by page on staging.
- Keep the same URLs, or map redirects with 301 redirects after a redesign.
Shortcode-based builders leave shortcodes behind if they are removed, so do not delete the old builder from live until every page has been rebuilt.
When to contact the vendor or your host
Theme vendors only support licensed customers, so have the purchase code ready. Send them:
- the theme and builder versions, PHP version and WordPress version from Step 1;
- the exact error from the console or PHP log;
- what changed just before the problem (PHP upgrade, update, plugin installed).
Ask your host about the PHP version timeline for your account, whether an older PHP version can be kept temporarily while you update, and whether a firewall rule blocks builder saves. Record every license, who owns it and its renewal date in the renewals register so the next person does not face the same hunt.