When a WordPress site displays the message "There has been a critical error on this website. Learn more about troubleshooting WordPress," it indicates a PHP fatal error occurred on your server. This is typically caused by a plugin bug, a software version mismatch, or an outdated PHP environment.
This guide shows you how to locate the exact cause using Plesk tools and how to resolve common real-world scenarios.
Step 1: Enable Debugging in Plesk
By default, WordPress hides specific technical details from public visitors. You can easily reveal the underlying error message directly from your hosting dashboard:
- Log into your Internic.ca Control Panel.
- Select WordPress from the left-hand navigation menu.
- Under the Tools section, locate Debugging and toggle the switch to On.
- Refresh your website in a web browser to view the generated error on your screen.
Step 2: Check Your Server Error Logs
To view full error details and stack traces inside Plesk:
- Inside your Internic Control Panel, click on Logs (or Dashboard > Logs).
- Filter or scroll through the real-time log entries to locate recent PHP Fatal error entries.
Step 3: Identify the Error Type & Apply the Fix
Below are three real-world log examples generated by WordPress fatal errors, along with instructions on how to diagnose and resolve them:
Scenario A: Single Broken Plugin (e.g., Caching or Utility Plugins)
Real Log Output:
2026-08-28 13:53:10 Error 72.138.80.242 AH01071: Got error 'PHP message: PHP Fatal error: Uncaught TypeError: substr(): Argument #1 ($string) must be of type string, int given in /data/vhosts/example.com/httpdocs/wp-content/plugins/wp-rocket/inc/ThirdParty/Plugins/CDN/Cloudflare.php:562
Stack trace:
#0 /data/vhosts/example.com/httpdocs/wp-content/plugins/wp-rocket/inc/ThirdParty/Plugins/CDN/Cloudflare.php(562): substr()
#1 /data/vhosts/example.com/httpdocs/wp-content/plugins/wp-rocket/inc/ThirdParty/Plugins/CDN/Cloudflare.php(535): WP_Rocket\ThirdParty\Plugins\CDN\Cloudflare->unregister_callback()
#2 /data/vhosts/example.com/httpdocs/wp-includes/class-wp-hook.php(353): WP_Rocket\ThirdParty\Plugins\CDN\Cloudflare->unregister_cloudflare_clean_on_post()
...
thrown in /data/vhosts/example.com/httpdocs/wp-content/plugins/wp-rocket/inc/ThirdParty/Plugins/CDN/Cloudflare.php on line 562', referer: https://canada2.internic.ca:8443/
- Cause: A specific plugin encountered a bug following a system or core update. Looking at the file path inside the stack trace (
/wp-content/plugins/wp-rocket/...), we can confirm the caching plugin triggered the error.
-
Fix:
- Open Plesk File Manager and go to
/wp-content/plugins/. - Locate the broken plugin folder (e.g.,
wp-rocket) and rename it by adding_OFF(e.g.,wp-rocket_OFF). - Refresh your website to confirm access is restored.
- Log into
/wp-admin, update the plugin to the latest version, and remove_OFFfrom the folder name to reactivate it.
Scenario B: Version Mismatch (e.g., Core Elementor vs. Elementor Pro)
Real Log Output:
2026-08-28 13:55:58 Error 134.195.196.134 AH01071: Got error 'PHP message: PHP Fatal error: Access level to ElementorPro\Modules\ThemeBuilder\Documents\Theme_Document::get_create_url() must be public (as in class Elementor\Core\Base\Document) in /data/vhosts/example.com/httpdocs/wp-content/plugins/elementor-pro/modules/theme-builder/documents/theme-document.php on line 123', referer: https://canada2.internic.ca:8443/-
Cause: A free base plugin (like core Elementor) was updated, but its premium add-on (Elementor Pro) remains on an older version, creating a code incompatibility where class access rules no longer match (
publicvs.protected). -
Fix:
- Access your WordPress Admin (
/wp-admin) or File Manager. - If the dashboard is accessible, navigate to Plugins > Installed Plugins and update the premium add-on (Elementor Pro) to match the core plugin version.
- If automatic updates are unavailable, download the latest
.zippackage directly from your vendor account (e.g., Elementor.com) and upload/overwrite the plugin folder in File Manager.
Scenario C: PHP Version Conflict & Syntax Errors
Real Log Output:
2026-08-28 13:53:10 Error 72.138.80.242 AH01071: Got error 'PHP message: PHP Parse error: syntax error, unexpected 'string' (T_STRING), expecting function (T_FUNCTION) or const (T_CONST) in /data/vhosts/example.com/httpdocs/wp-content/plugins/header-footer-elementor/inc/class-hfe-update.php on line 32', referer: https://canada2.internic.ca:8443/
2026-08-28 13:59:01 Warning 72.138.80.242 AH01071: Got error 'PHP message: PHP Deprecated: Creation of dynamic property PowerpackElementsLite\Classes\PP_Elements_WPML::$type is deprecated in /data/vhosts/example.com/httpdocs/wp-content/plugins/powerpack-lite-for-elementor/classes/class-pp-wpml.php on line 8', referer: https://canada2.internic.ca:8443/-
Cause: The domain is running a newer PHP version (e.g., PHP 8.2 or 8.3) than your active theme or plugins support, leading to
PHP Parse errororPHP Deprecatednotices. -
Fix:
- In Plesk > PHP Settings for your domain, temporarily lower the PHP handler (e.g., from PHP 8.2/8.3 down to PHP 8.1).
- Refresh your site to restore functionality.
- Update all installed themes and add-on plugins before upgrading PHP again.
Step 4: Clean Up & Disable Debugging
- Once the site is functioning properly and all software is updated, go back to Plesk > WordPress > Tools.
- Toggle Debugging back to Off so technical error messages are hidden from public view.
Comments
0 comments
Please sign in to leave a comment.