Works with the AI Agents you already use

    Claude CodeClaude CodeCursorCursorCodex CLICodex CLIMuseMuseDotsDots+21 more

    WordPress Update & Rollback Runbook

    1

    Update WordPress plugins, themes and core safely: risk-scored batches, a rollback manifest, a smoke test and four rollback paths.

    $8.99

    Secure checkout via Stripe

    Money-back guarantee

    Converts to your local currency at checkout

    Security scanned
    WordPress Update & Rollback Runbook

    WordPress Update & Rollback Runbook

    Example session with this skill installed

    Help!! I updated Elementor yesterday and now the front page is a white screen. wp-admin still loads. I'm on shared hosting with cPanel, no SSH. I don't think I made a backup before updating. What now?

    • Read your context and instructions
    • Compiled the wordpress update

    This is fixable, and the fact that wp-admin still loads helps a lot: you can do most of the repair from the dashboard and cPanel, with no SSH. Below is the rollback for your situation first, then the full plan so the next update doesn't do this again.

    Your situation: shared hosting with cPanel, no SSH or WP-CLI, Elementor updated yesterday, front page now a white screen, wp-admin works, and as far as you know no backup was taken before the update. Every step below uses wp-admin, cPanel File Manager, phpMyAdmin or your host's backup tool. None of it needs a command line.


    Do this first: the rollback (Section 6, no-shell path)

    Step 0: Back up the broken site as it is now (5 minutes)

    Do this even though the site is broken. If a fix makes things worse, this copy is your way back to "only the front page is broken", and it also keeps any orders, form entries or comments from the last 24 hours.

    cPanel → phpMyAdmin → select your WordPress database in the left column →

    Export → Quick → SQL →

    Go. Save the .sql file to your computer. If you're not sure which database is the right one, open wp-config.php in File Manager and read the DB_NAME line.
    2.

    cPanel → File Manager → open your site folder (often public_html) → right-click wp-content →

    Compress → ZIP → then download the ZIP.
    3.

    cPanel → Backup → download a

    MySQL Database backup and a

    Home Directory backup if you can. These partial backups are the ones you can restore yourself. A Full Account Backup usually can't be restored by the account user on shared hosting.

    Step 1: Check whether you already have a backup from before yesterday

    You may have one without knowing it. Many shared hosts take automatic daily backups.

    • In cPanel, look for

    JetBackup,

    Backups,

    Softaculous → Backups, or

    WP Toolkit. If you find a restore point dated

    before yesterday's update, you have a full way back (Path D below).

    • If you can't find anything, contact host support and ask: "Do you have a server-side restore point for my account from before [date/time of the update]?"
    • Don't restore anything yet. Finish Steps 2 to 4 first. A restore is the biggest hammer, and the smaller fixes below often work.

    Step 2: Find out what is actually failing (diagnose before changing anything)

    Check the site admin's email inbox (the address under Settings → General) for a message from WordPress titled

    "Your Site is Experiencing a Technical Issue". If it's there, it names the plugin and the file that failed, and it includes a recovery-mode login link.
    2.

    Look for an error log. In File Manager, check for a file called error_log in your site's root folder (next to wp-config.php) and in wp-admin/. Open it and look at the newest lines near the bottom for PHP Fatal error. The file path in that line tells you which plugin broke, for example wp-content/plugins/elementor-pro/....
    3.

    If no log exists, turn logging on. In File Manager, edit wp-config.php. Above the line /* That's all, stop editing! */, add:

    define( 'WP_DEBUG', true );
    define( 'WP_DEBUG_LOG', true );
    define( 'WP_DEBUG_DISPLAY', false );
    

    First search the file for WP_DEBUG. If it's already defined, change the existing line instead of adding a second one, because defining the same constant twice causes its own error. Save, load the front page once, then open wp-content/debug.log.

    Step 3: Check the most likely cause, an Elementor / Elementor Pro version mismatch

    In general, the most common cause of a white screen right after an Elementor update is that Elementor (free) and Elementor Pro (or an Elementor add-on) no longer match. One of them was updated and the other wasn't.

    Go to Plugins → Installed Plugins and write down:

    • the Elementor version
    • the Elementor Pro version, if you have Pro (assumed)
    • any Elementor add-on plugins (e.g. "Essential Addons", "Happy Addons", "Ultimate Addons") and their versions
    • whether any of them shows "There is a new version available"

    If Elementor Pro or an add-on has a pending update: update it now from the Plugins screen (⚠ changes state; Step 0 is your safety net), then test the front page (see "Check after every fix" below). Bringing the pair back in sync is often the whole fix.

    If you can't update Pro (expired licence, or no update offered), roll Elementor (free) back to the version that matched instead (Step 4).

    Step 4: Path A, roll back the plugin that broke

    Use whichever option fits. All of them ⚠ change state, and Step 0 is your safety net.

    Elementor's built-in rollback (easiest): Elementor → Tools → Version Control → choose the version you had before yesterday →

    Reinstall. Elementor Pro has its own rollback on the same screen if Pro is the plugin that broke.

    Upload the old version: download the previous version's ZIP (wordpress.org plugin page →

    Advanced View →

    Previous versions for free Elementor, or your elementor.com account for Pro) →

    Plugins → Add New → Upload Plugin → choose the ZIP →

    Replace current with uploaded.

    • A rollback plugin such as WP Rollback does the same job for wordpress.org plugins.

    Never delete the plugin first to "start clean". Deleting from wp-admin runs the plugin's uninstall routine, which can remove its settings and data. Always replace it instead.

    Note: if yesterday's update skipped several major versions or ran an Elementor data update ("database update" notice), the old code may not cope with data the new version already changed. If the site is still broken or new fatal errors appear after the downgrade, stop and go to Path D. Don't keep chasing the error.

    Step 5: Clear every cache

    A white page can keep showing after the fix if it's cached.

    1. Elementor → Tools → General → Regenerate CSS & Data (button label may vary slightly by version).
    2. Purge your caching plugin (WP Rocket, LiteSpeed Cache, W3 Total Cache, etc.) (assumed: you may have one).
    3. Purge Cloudflare or your host's CDN if you use one.
    4. Test in a private/incognito browser window.

    Path B, if things get worse and wp-admin also goes down

    In

    File Manager, go to wp-content/plugins/ and rename the plugin folder that the error log names, e.g. elementor-pro → elementor-pro.off (⚠ changes state). WordPress can no longer load that plugin, and wp-admin comes back.

    Be aware: if your front page is built with Elementor, switching Elementor off makes that page show raw or empty content until Elementor is back. Use this only to get access back. Then upload the old version (Path A, it goes into a fresh elementor-pro folder), check under

    Plugins that it is active and activate it if not, and delete the elementor-pro.off folder once the site works. Do not rename .off back: that folder holds the broken version.

    Path D, full restore from a backup (only if A doesn't work)

    ⚠ changes state, and anything created after the backup is lost.

    1. Make sure you've done Step 0. That export is how you recover orders, form entries or comments made since the backup.
    2. If you run a shop, list the orders newer than the backup time (WooCommerce → Orders) and export or write them down

    (assumed: only if you have WooCommerce).
    3. Restore files and database from the restore point you found in Step 1 (JetBackup, cPanel Backup, Softaculous or WP Toolkit), or ask host support to restore it for you.
    4. After the restore:

    Plugins → Installed Plugins → turn off auto-updates for Elementor and Elementor Pro so it doesn't update itself again straight away.

    Check after every fix (smoke test, about 2 minutes)

    In a private browser window, open:

    • your front page: does it show and look as before (layout, menus, fonts)?
    • one or two other Elementor pages
    • your contact form page, and submit a test message
    • /wp-login.php, and log in
    • the shop / cart / checkout if you have one (assumed)

    Then reopen error_log / wp-content/debug.log and check that no new PHP Fatal error lines appeared. Notices and "deprecated" warnings are common on healthy sites and aren't a reason to roll back on their own.

    When it works again

    • Leave auto-updates off for Elementor and Elementor Pro for now.
    • Write down the version that broke, so you know where to start next time.
    • Remove the three WP_DEBUG lines you added to wp-config.php (or set WP_DEBUG back to false). Delete wp-content/debug.log too, since it can expose file paths.

    The full plan, so the next update goes safely

    Blockers to check

    PHP version (assumed: unknown). Look in

    Tools → Site Health → Info → Server for your PHP version, and compare it with "Requires PHP" on the Elementor / Elementor Pro version you want to move to. If your PHP is older, that update is blocked until you raise PHP in

    cPanel → Select PHP Version (or MultiPHP Manager). That's a separate job: test it carefully, because it affects every plugin.

    Section 1: Inventory

    Fill this in from

    Dashboard → Updates and

    Plugins → Installed Plugins. Values are placeholders until you paste yours.

    ComponentCurrent versionTarget versionJump typeActive?
    WordPress core<current><target><patch/minor/major>yes
    Elementor<version after rollback><target><…>yes
    Elementor Pro (assumed)<current><matching target><…>yes
    Elementor add-ons (assumed)<current><target><…>yes
    Theme (e.g. Hello Elementor) (assumed)<current><target><…>yes
    Other plugins<…><…><…><…>

    Inactive plugins with pending updates still get updated (attackers can exploit them even while inactive). Delete them if you don't use them.

    Section 2: Risk scoring

    UpdateJumpRoleChangelogCouplingScoreRiskHow
    Elementor0–22 (page builder)0–22 (Pro, add-ons, theme)4–8High in practiceAlone, full smoke test
    Elementor Pro0–220–224–8HighRight after Elementor, same sitting
    Caching / security plugin0–220–20–12–7Medium–HighOne at a time
    SEO / forms plugins0–210–20–11–6Low–MediumOne at a time or in a batch
    Small utilities0–100–100–2LowBatch together

    0–2 = Low (batch), 3–4 = Medium (one at a time), 5–8 = High (one at a time, staging first if you have it).

    Rule for next time: update Elementor and Elementor Pro (and add-ons) in the same sitting, free version first, then Pro straight after.

    Section 3: Rollback manifest (no shell)

    Before every future update
    1.

    Backup: use your host's backup tool (JetBackup / cPanel Backup → MySQL + Home Directory) or a backup plugin (e.g. UpdraftPlus), and

    download the copy to your computer. If your host has no on-demand backup: phpMyAdmin → Export, plus a File Manager ZIP of wp-content, as in Step 0 above.
    2.

    Check the backup is real: the .sql file is more than a few kilobytes, and the ZIP opens and contains a plugins folder.
    3.

    Versions list: copy the version of every plugin and theme into a text file named with the date. This list is what makes a targeted rollback possible.
    4.

    Turn off auto-updates for the plugins you're about to update (Plugins screen → "Disable auto-updates" per plugin) so nothing changes in the middle. Note which ones were on so you can switch them back.
    5.

    On a shop: note the newest order number before you start, and pause checkout during the WooCommerce update. The WooCommerce update changes the database on first load, so from that point a file-only rollback isn't enough.

    Section 4: Update sequence (no shell)

    1. Tell whoever needs to know (client, team) that a short maintenance window is starting.
    2. Low batch: Dashboard → Updates → tick the low-risk plugins → Update. Run the smoke test.

    Medium/High, one at a time: update one plugin, run the smoke test, and if it fails, roll that one back immediately (Path A) before going on.
    4. Elementor → Elementor Pro → add-ons, back to back, then the smoke test.
    5.

    Database update notices (Elementor, WooCommerce, core): click them deliberately and note the time. After that point, rolling back needs the database backup.
    6. Theme last among the add-ons. Child themes don't update from the directory; just check they still render.
    7. WordPress core: after the plugins. For a major release, run the smoke test right after.
    8. Re-check Dashboard → Updates: some plugins only offer their update once core is newer. Do those one at a time.
    9. Turn auto-updates back on where they were on before (except for anything you've pinned).
    10. Purge caches: Elementor regenerate CSS, the cache plugin, the CDN.

    Section 5: Smoke test

    The same 2-minute check as above, every time:

    • / (front page): loads and looks the same
    • /wp-login.php: login works
    • /contact/ (assumed URL): test message arrives
    • /shop/, /cart/, checkout

    (assumed, only if you have a shop): reach the payment step. A real purchase on a live shop must be refunded, and gateway fees usually aren't returned, so use the gateway's test mode where possible.

    • No new PHP Fatal error lines in error_log / debug.log

    Section 6: Rollback paths

    These are covered in detail at the top

    Path A (Elementor Version Control / upload old ZIP → Replace),

    Path B (rename the plugin folder in File Manager),

    Path D (host backup restore, after exporting the current database). Path C (rolling back WordPress core) isn't needed here, because core wasn't part of yesterday's update.

    Section 7: Update report (pre-filled, paste into your log or send to a client)

    ComponentFromToRiskResultNotes
    Elementor<old><new>HighFailed: front page white screenRolled back to <old> via Version Control / or updated Pro to match (fill in)
    Elementor Pro (assumed)<old><new or unchanged>High<fill in>Likely version mismatch with Elementor
    • Window: update <date/time yesterday>; fix <date/time today>
    • Smoke test after fix: <pass/fail>: front page, login, contact form, <shop>
    • Rollback: <Path A / Path D>, because <error log line / mismatch found>

    Backups: no backup before the update; broken-state backup taken <today> (phpMyAdmin SQL + wp-content ZIP), stored <where>; host restore point used: <yes, dated … / no>

    Held back: Elementor <new version> pinned until Elementor Pro <matching version> is available / staging test done. Auto-updates off for Elementor and Pro.


    To give you an exact plan for your site

    Answer whatever you can, or say "skip":

    1. You've told me there's no SSH. Is there a

    staging copy (many cPanel hosts offer one in Softaculous or WP Toolkit)?
    2. Paste what you see under

    Plugins → Installed Plugins for anything with "Elementor" in the name (name and version), plus anything on

    Dashboard → Updates. If you found a PHP Fatal error line in error_log, paste that line too. It usually points straight at the cause.
    3. Which pages make you money or bring leads (shop checkout, booking, contact form, member login)?
    4. When is a quiet time for maintenance, and does anyone (a client, a boss) need to be told before and after?

    Connects securely to your tools. The creator never sees your data.

    About this skill

    Updating a live WordPress site is a high-stakes operation where a single version mismatch can trigger a white screen of death. This skill provides a rigorous runbook where no update runs until the way back is written down, and database updates are flagged as one-way unless restored from backup. It gives you exact WP-CLI commands and manual click-paths for every phase of maintenance.

    What it does

    • Inventory & Risk Scoring reads your pending updates and sorts them by risk and batch.
    • Rollback Manifest Generation records the core, plugin and theme versions, exports the database and archives wp-content with checksums, then checks that the backup is real before any changes occur.
    • Batched Execution sequences updates in a logical order, handling core, themes, and plugins to minimize dependency conflicts.
    • Smoke testing checks critical business flows like checkouts and lead forms after every batch.
    • Recovery Paths provides four distinct rollback strategies ranging from single-plugin downgrades to full database restores.

    How it works

    1. Analyze Context by providing a plugin list or reporting a site failure to initialize the specific runbook.
    2. Execute Safeguards using generated commands to disable auto-updates and create a timestamped rollback manifest.
    3. Follow the Sequence to update low-risk batches first, followed by high-risk components and database migrations.
    4. Verify & Report by running the smoke test and generating a client-ready maintenance log.

    Frameworks & tools

    WordPress Core, WP-CLI, WooCommerce, PHP, and standard Linux shell utilities like tar, sha256sum, and curl.

    Why this beats prompting it yourself

    Generic AI advice often suggests "updating everything" without considering database migration order or PHP version mismatches between the CLI and FPM. This skill enforces a "rollback-first" architecture, ensuring the backup is verified and the rollback path for your situation is written down before you ever hit the update button.

    Use cases

    • Planning a major WordPress core upgrade on a production site.
    • Performing monthly maintenance for client sites with high-traffic WooCommerce stores.
    • Recovering a site that broke after an automated or manual plugin update.
    • Documenting professional maintenance logs for agency client reporting.

    Known limitations

    This skill does not write new plugin code or perform deep security audits. It works with SSH and WP-CLI, or with wp-admin and the hosting panel when there is no shell.

    Requires WP-CLI for automated commands; otherwise defaults to manual paths. Does not perform code-level security audits or custom plugin development.

    How to use

    1. 1

      Connect your agent to the Agensi MCP

      Copy the prompt and paste it into Claude, ChatGPT, Cursor or any agent that supports MCP. It sets up the connection for you. Manual setup

    2. 2

      Sign in to Agensi

      Your agent shows a sign-in link. Sign in and click Allow.

    3. 3

      Ask for what you need

      Your agent loads this skill and uses it on your task. It always asks before any payment.

    Reviews

    No reviews yet

    Be one of the first to try it. Every listed skill goes through the trust checks below.

    Security scanned

    Checked by our 8-point scan before listing

    Fresh listing

    Recently published to Agensi

    Money-back guarantee

    Doesn't do what its page promises? You get your money back.

    Trust & safety

    Security scan

    Security scan passed 12 days ago

    Permissions

    No special permissions declared or detected

    Listed12 days ago
    Updated10 days ago

    What's inside

    Frequently Asked Questions

    This skill provides a structured, production-grade workflow that enforces a 'rollback-first' policy, ensuring the backup is verified, the rollback path is written down, and updates are risk-scored and batched before any code changes are made.

    It follows the open SKILL.md standard, so it works with any compatible agent, including Claude Code, Claude.ai skills, Codex CLI, Cursor and Gemini CLI. You can paste your pending updates, or let an agent with terminal access read them with WP-CLI.

    A complete update plan for your site: inventory with PHP and core compatibility checks, a risk score and batch order for every update, the rollback manifest commands, the update sequence, a two-minute smoke test, four rollback paths (one plugin, fatal error, core, full restore) and a client-ready update report. Every step also has a wp-admin and hosting-panel path for sites without SSH.

    Yes. For stores it adds order protection: record the newest order, take a second database dump right before the WooCommerce update, pause checkout until the checkout test passes, and list orders made during the window before any restore.

    It does not replace your backup plugin or host backups. Before each window it has you create a rollback manifest (database export, wp-content archive and a list of every version) and check that it is real. Keep a copy off the server as well.

    No. With SSH it uses WP-CLI, which most hosts already have. Without SSH it uses wp-admin, the File Manager, phpMyAdmin and your host's backup tool. The skill writes the plan and commands; you decide what runs on your site.