Give your WordPress site its first task.
Connect the site you already have, add your agent to Slack or Telegram, and tell it what you need.
Connect your siteStart with 500 free credits. No credit card needed.
A plugin that stopped working almost never stopped on its own. Something changed first: an update, a PHP version, a cache rule, a snippet pasted into a theme file. The fastest route back is to find what changed, test one variable at a time, and resist the urge to fix three things at once.
A plugin that stopped working rarely stopped on its own. Something changed first: the plugin updated, WordPress core updated, the host moved you to a newer PHP version, someone added a caching rule, someone pasted a snippet into a theme file. The plugin is where the failure shows up. It is often not where the failure started.
That is why the first move is not deactivation. It is a two-minute pass to record what changed and what exactly is broken. If the break started right after an edit to functions.php, for example, the edit is your prime suspect, and there are safer ways to make theme changes that survive the next update. If it started right after a Tuesday morning update run, you already have a short list.
Four things, in a note, before you start clicking:
Then read the logs rather than guessing. WordPress’s debugging handbook documents WP_DEBUG, WP_DEBUG_LOG and WP_DEBUG_DISPLAY in wp-config.php. On a live site, turn logging on and display off, then read wp-content/debug.log and the server error log. A PHP failure leaves a file path pointing at the plugin or theme that caused it. A cache problem leaves no error at all, which is itself a clue.
This is the most common one, and the trigger is usually an update that ran in the last day or two. Two plugins touch the same hook, one ships a new script that collides with another, or a plugin and the theme both try to control the same template. WooCommerce’s own self-service guide names the same three suspects for store problems: outdated software on the site, a conflict with the theme, and a conflict with another plugin.
Repeat offenders in practitioner reports are the big ones, because they are the ones doing the most work: WooCommerce on major versions that run database migrations, and Elementor plus its add-on packs, where an add-on lags a version behind the builder.
The most under-diagnosed layer by a distance. You fix the problem, the page still looks broken, so you assume the fix failed and change something else. Clear the caching plugin, the host cache and the CDN, in that order, then retest in a private window. While you are debugging, switch off minification, deferred JavaScript, critical CSS and Cloudflare Rocket Loader. Combining and deferring scripts is exactly the sort of thing that hides a plugin’s JavaScript from logged-out visitors while it works fine for you.
The signature to recognise: it works when you are logged in and fails when you are not. That is almost always stale cached output, not a plugin bug.
A plugin can be installed, active, licensed and running correctly while showing nothing on the page, because the theme template does not include the area or hook it renders into. This comes up constantly in WooCommerce and page-builder setups, where a custom product template replaced the standard one and dropped the hook the plugin attaches to.
Before you start a conflict test, ask the cheap question: does this plugin’s output have anywhere to appear? Switching to a default theme for thirty seconds answers it.
Three different problems that produce similar-looking breakage. Plugin code that does not run on the site’s PHP version. Memory exhaustion on a small hosting plan carrying WooCommerce plus a page builder plus a security scanner. Or a snippet copied off a blog into functions.php with a missing semicolon.
The errors are distinctive enough to sort quickly:
Parse error: syntax error, unexpected ... points at a code edit, usually the most recent one.Fatal error: Allowed memory size of X bytes exhausted is a resource limit, not a bug.Fatal error: Uncaught Error: Call to undefined function ... or Class '...' not found usually means a version mismatch or a half-installed plugin.An auto-update that timed out leaves a plugin with a mix of old and new files. Symptoms include a site stuck on “Briefly unavailable for scheduled maintenance”, or database errors such as Table 'wp_xxx' doesn't exist and Unknown column ... in 'field list' after a plugin that migrates its own tables was interrupted mid-migration.
For the maintenance message, WordPress.org’s troubleshooting FAQ covers the fix: delete the .maintenance file in the site root. For a half-finished migration, restore the pre-update database backup. Re-running the update on a half-migrated database tends to make it worse.
Everyone knows the method. Most people run it in a way that cannot produce a reliable answer. The rule is one change, one test, on the exact surface that failed.
TypeError: ... is not a function or ReferenceError: ... is not defined. A JavaScript error names the file that failed to load.On a live site you do not want to take the public offline while you do this. The Health Check & Troubleshooting plugin, published by WordPress.org, adds a troubleshooting mode that disables plugins for your session only, so visitors keep seeing the normal site. One honest caveat: its directory listing currently carries a notice that it has not been tested with the last three major WordPress releases, so read that before installing it on a store.

Two more cheap checks that solve a surprising share of cases. Resave Settings → Permalinks, which flushes rewrite rules and fixes plugin endpoints returning 404 or 500 after an update. And for any premium or connected plugin, confirm the licence is valid and the site can reach the vendor’s servers, because a plugin that cannot phone home fails silently and looks like a conflict.
If a fatal error has taken the dashboard with it, stop trying to log in. Recovery happens at the file level, through SFTP, SSH or the host’s file manager.
Rename the folder of the plugin you suspect, from plugin-name to plugin-name.off. WordPress cannot load it, so it deactivates, and the settings in the database stay intact. If you do not know which one, rename the whole wp-content/plugins directory to plugins.deactivate to force everything off. WordPress.org’s troubleshooting FAQ documents this as the way to deactivate all plugins without admin access. Once you are back in, rename the folder back and reactivate one at a time.

Being able to log in again is a milestone, not a finished job. The site is now running without the plugins it needs, and the thing that caused the crash is still there. Do the isolation pass before you call it fixed, and retest the exact admin screen or checkout step that broke rather than the homepage.
Once you know which plugin is at fault, the next step is a judgment call, not more testing.
| What you are looking at | The usual answer |
|---|---|
| Maintained plugin, a newer version fixes the reported bug | Update, on staging first if you have one |
| Broke the moment it updated, previous version was stable | Roll back and wait for the vendor patch |
| Files look corrupt or an update was interrupted | Reinstall the same version so the files match |
| Not updated in years, not tested with recent WordPress, fails on PHP 8 | Replace it with something maintained |
| Known vulnerability, no patch, feature is business-critical | Remove it and solve the need another way |
Rollback is a normal first response, not a last resort. WP Rollback, by Devin Walker, restores any plugin or theme from the WordPress.org directory to a previous version through the familiar updater flow, so you do not have to hunt for an old zip. It only works if you did not delete the plugin, which is the argument for diagnosing before deleting.
On the “replace it” line, check the plugin’s directory page for the last-updated date and the “tested up to” version before you reinstall hope. Patchstack publishes an annual State of WordPress Security whitepaper analysing the previous year’s vulnerability data, and the pattern it tracks is a plugin ecosystem problem more than a core one. An abandoned plugin is a maintenance decision, not a bug report.
WP_DEBUG_DISPLAY on in production. It prints file paths and stack traces to visitors.Three signals that the cheap path has run out: the conflict reappears after a clean isolation pass, the failure involves custom code or a bespoke integration, or the breakage is in the database rather than the files. At that point you are choosing between a long evening and someone with server access.
That is the shape of work SiteSelf handles: you describe the symptom through chat, the agent reads the logs on the connected site, runs the isolation, applies the fix, then fetches the page and reports what it changed and what it checked. Content and settings work needs the SiteSelf Connector plugin; reading logs, renaming folders and rolling back files needs hosting access over SSH. More on handing WordPress troubleshooting to an agent, including what it refuses, such as pages owned by a visual page builder.
Almost always cached output. Logged-in users usually bypass page cache, so you see the current version while visitors get the stored one. Clear the caching plugin, the host cache and the CDN, then test in a private window with minification and deferred JavaScript switched off.
Plugins first, because conflicts between plugins are the more frequent cause and the test is faster. But always run the default theme test before you conclude a plugin is guilty. A theme that overrides a template or throws an error in functions.php produces symptoms that look identical to a plugin bug.
Reinstalling the same version helps when the files are corrupt or an update was interrupted, and it keeps your settings because those live in the database. Deleting is different: it can remove configuration and it takes away the clean rollback. Diagnose first, delete last.
Look at what differs between the two environments rather than at the plugin. The usual differences are cache and CDN layers that only exist on live, a different PHP version, plugin or theme versions that drifted apart, a premium licence tied to the live domain, and firewall or IP rules that block outbound calls from one environment.
Sometimes. A one-off increase is reasonable when a heavy task such as an import or a security scan exhausts memory. Repeated exhaustion during ordinary page loads means the plugin stack is too heavy for the plan, and raising the number again just moves the failure. Reduce the stack or move to hosting sized for it.
WordPress version, PHP version, the plugin version, the active theme, the full list of active plugins, the exact steps that reproduce the failure, and the relevant lines from debug.log. Check the changelog and support forum first, because version-specific breakages are often already reported with a workaround.
How-to Tutorials
There is no single way to edit a WordPress theme. There are three layers, and picking the wrong one is why edits vanish after an update or take the site down. This is how to tell which layer a change belongs in, and how to make it there.
Read article ›How-to Tutorials
WordPress has no landing page object. A landing page is an ordinary Page, and what makes it behave like a landing page is the template that renders it, its slug, its indexing settings and what loads on it. Get those four right and the page is fast and findable; get one wrong and the page goes blank, 404s, or quietly stops collecting leads.
Read article ›Connect the site you already have, add your agent to Slack or Telegram, and tell it what you need.
Connect your siteStart with 500 free credits. No credit card needed.