404 Solution 3.2.1

Does 404 Solution work with WordPress 6.9.4 and PHP 8.1.12? A smoke test was performed on .

Summary

Errors
4Database errors
No JavaScript exceptions
All test pages loaded successfully
No resource errors
Performance

Memory usage: 265.84 KiB
The average PHP memory usage increased by this amount after activating by the plugin.

Page speed impact: 0.027 seconds
The average page load time increased by this amount after activating the plugin.

Environment
WordPress version6.9.4
PHP version8.1.12
MySQL version10.6.10
PHP memory limit512M
Plugin Info
Last updated
Active installs 10,000+
WordPress.org page https://wordpress.org/plugins/404-solution/
Badges

WordPress compatibility badge PHP compatibility badge

Get badge code

Pages 5

Plugins ‹ Test site — WordPress

Page screenshot: Plugins ‹ Test site — WordPress
URL /wp-admin/plugins.php?plugin_status=all&paged=1&s
Requested URL /wp-admin/plugins.php?action=activate&plugin=404-solution%2F404-solution.php&plugin_status=all&paged=1&s&_wpnonce=e012b1b0d0
Aspect after-activation
HTTP status 200
Load time 2.876 s
Memory usage 4.02 MiB
JS errors None
Resource errors None

Settings → 404 Solution

Page screenshot: Settings → 404 Solution
URL /wp-admin/options-general.php?page=abj404_solution
Aspect menu-item
HTTP status 200
Load time 0.526 s
Memory usage 4.01 MiB
JS errors None
Resource errors None

Test site – Just another WordPress site

Page screenshot: Test site – Just another WordPress site
URL /
Aspect front-page
HTTP status 200
Load time 0.185 s
Memory usage 4.13 MiB
JS errors None
Resource errors None

Add Post ‹ Test site — WordPress

Page screenshot: Add Post ‹ Test site — WordPress
URL /wp-admin/post-new.php
Aspect new-meta-boxes
HTTP status 200
Load time 0.938 s
Memory usage 6.65 MiB
JS errors None
Resource errors None

Add Page ‹ Test site — WordPress

Page screenshot: Add Page ‹ Test site — WordPress
URL /wp-admin/post-new.php?post_type=page
Aspect new-meta-boxes
HTTP status 200
Load time 0.719 s
Memory usage 6.63 MiB
JS errors None
Resource errors None

Benchmark

URL Load time Memory usage
Inactive Active Change Inactive Active Change
/wp-admin/index.php0.443 s0.375 s-0.068 s3.78 MiB4.05 MiB+ 278.09 KiB
/wp-admin/edit.php0.374 s0.317 s-0.057 s3.78 MiB4.1 MiB+ 328.12 KiB
/wp-admin/post-new.php0.884 s0.876 s-0.008 s6.31 MiB6.65 MiB+ 352.27 KiB
/wp-admin/upload.php0.465 s0.484 s+0.019 s3.74 MiB3.99 MiB+ 259.95 KiB
/wp-admin/options-writing.php0.347 s0.344 s-0.003 s3.71 MiB3.97 MiB+ 263.95 KiB
/wp-admin/media-new.php0.513 s0.331 s-0.182 s3.7 MiB3.97 MiB+ 272.14 KiB
/wp-admin/edit-tags.php?taxonomy=category0.325 s0.775 s+0.450 s3.72 MiB3.99 MiB+ 282.81 KiB
/wp-admin/post-new.php?post_type=page0.710 s0.885 s+0.175 s6.3 MiB6.63 MiB+ 345.75 KiB
/wp-admin/options-discussion.php0.343 s0.359 s+0.016 s3.71 MiB3.97 MiB+ 260.45 KiB
/wp-admin/edit-comments.php0.334 s0.343 s+0.009 s3.73 MiB3.99 MiB+ 259.95 KiB
/0.272 s0.221 s-0.051 s4.11 MiB4.13 MiB+ 20.81 KiB
Average 0.455 s0.483 s+0.027 s4.24 MiB4.5 MiB+ 265.84 KiB

Code Statistics

Note: Third-party libraries and minified JS/CSS files are excluded from these statistics where possible, so the numbers you see here may be lower than those reported by other tools.

PHP
PO File
Language % Lines of code Comment lines Files
PHP40.3%20,4535,70344
PO File40.1%20,3451,95613
CSS7.3%3,6923694
JavaScript5.4%2,75860018
Markdown3.1%1,58602
HTML2.6%1,3183840
SQL1.1%54412535
JSON0.1%4501
Total 50,741 8,791 157

PHP Code Analysis | More results »

Lines of code 20,521
Total complexity 4,810
Median class complexity 37.5
Median method complexity 3.0
Most complex class ABJ_404_Solution_DataAccess
Most complex function ABJ_404_Solution_SpellChecker::getLikelyMatchIDs()
Classes 40
Methods 774
Functions 32

Additions

Things that the plugin adds to the site. This section is not intended to be comprehensive. The test tool only looks for a few specific types of added content.

Database Tables 7

Options wp_options 3

Meta Boxes

{
    "post": {
        "abj404_redirect_meta_box": {
            "title": "404 Solution",
            "context": "side"
        }
    },
    "page": {
        "abj404_redirect_meta_box": {
            "title": "404 Solution",
            "context": "side"
        }
    },
    "attachment": {
        "abj404_redirect_meta_box": {
            "title": "404 Solution",
            "context": "side"
        }
    }
}

PHP Error Log 32 lines

[12-Mar-2026 13:08:13 UTC] WordPress database error Table 'wordpress.wp_abj404_lookup' doesn't exist for query 
/* ------------------ /wp-content/plugins/404-solution/includes/sql/correctLookupTableIssue.sql BEGIN ----- */ 

delete from wp_abj404_lookup
where lkup_value in (
    select lkup_value from (
	    SELECT DISTINCT lkup_value
	    FROM wp_abj404_lookup
	    group by lkup_value
	    having count(lkup_value) > 1
    ) a
)

/* ------------------ /wp-content/plugins/404-solution/includes/sql/correctLookupTableIssue.sql END ----- */ 
 made by activate_plugin, plugin_sandbox_scrape, include_once('/plugins/404-solution/404-solution.php'), require_once('/plugins/404-solution/includes/Loader.php'), ABJ_404_Solution_SpellChecker::init, ABJ_404_Solution_SpellChecker::getInstance, ABJ_404_Solution_ServiceContainer->get, {closure}, ABJ_404_Solution_SpellChecker->__construct, ABJ_404_Solution_PluginLogic->getOptions, ABJ_404_Solution_PluginLogic->updateToNewVersion, ABJ_404_Solution_PluginLogic->updateToNewVersionAction, ABJ_404_Solution_DatabaseUpgradesEtc->createDatabaseTables, ABJ_404_Solution_DatabaseUpgradesEtc->reallyCreateDatabaseTables, ABJ_404_Solution_DatabaseUpgradesEtc->correctIssuesBefore, ABJ_404_Solution_DataAccess->correctDuplicateLookupValues, ABJ_404_Solution_DataAccess->queryAndGetResults
[12-Mar-2026 13:08:14 UTC] WordPress database error Table 'wordpress.wp_abj404_lookup' doesn't exist for query 
/* ------------------ /wp-content/plugins/404-solution/includes/sql/correctLookupTableIssue.sql BEGIN ----- */ 

delete from wp_abj404_lookup
where lkup_value in (
    select lkup_value from (
	    SELECT DISTINCT lkup_value
	    FROM wp_abj404_lookup
	    group by lkup_value
	    having count(lkup_value) > 1
    ) a
)

/* ------------------ /wp-content/plugins/404-solution/includes/sql/correctLookupTableIssue.sql END ----- */ 
 made by activate_plugin, plugin_sandbox_scrape, include_once('/plugins/404-solution/404-solution.php'), require_once('/plugins/404-solution/includes/Loader.php'), ABJ_404_Solution_SpellChecker::init, ABJ_404_Solution_SpellChecker::getInstance, ABJ_404_Solution_ServiceContainer->get, {closure}, ABJ_404_Solution_SpellChecker->__construct, ABJ_404_Solution_PluginLogic->getOptions, ABJ_404_Solution_PluginLogic->updateToNewVersion, ABJ_404_Solution_PluginLogic->updateToNewVersionAction, ABJ_404_Solution_DatabaseUpgradesEtc->createDatabaseTables, ABJ_404_Solution_DatabaseUpgradesEtc->reallyCreateDatabaseTables, ABJ_404_Solution_DatabaseUpgradesEtc->correctIssuesBefore, ABJ_404_Solution_DataAccess->correctDuplicateLookupValues, ABJ_404_Solution_DataAccess->queryAndGetResults, ABJ_404_Solution_DataAccess->attemptMissingTableRepairAndRetry
[12-Mar-2026 13:08:14 UTC] WordPress database error Table 'wordpress.wp_abj404_spelling_cache' doesn't exist for query delete from wp_abj404_spelling_cache where matchdata is null or matchdata = '' made by activate_plugin, plugin_sandbox_scrape, include_once('/plugins/404-solution/404-solution.php'), require_once('/plugins/404-solution/includes/Loader.php'), ABJ_404_Solution_SpellChecker::init, ABJ_404_Solution_SpellChecker::getInstance, ABJ_404_Solution_ServiceContainer->get, {closure}, ABJ_404_Solution_SpellChecker->__construct, ABJ_404_Solution_PluginLogic->getOptions, ABJ_404_Solution_PluginLogic->updateToNewVersion, ABJ_404_Solution_PluginLogic->updateToNewVersionAction, ABJ_404_Solution_DatabaseUpgradesEtc->createDatabaseTables, ABJ_404_Solution_DatabaseUpgradesEtc->reallyCreateDatabaseTables, ABJ_404_Solution_DatabaseUpgradesEtc->correctIssuesBefore, ABJ_404_Solution_DatabaseUpgradesEtc->correctMatchData, ABJ_404_Solution_DataAccess->queryAndGetResults
[12-Mar-2026 13:08:14 UTC] WordPress database error Table 'wordpress.wp_abj404_spelling_cache' doesn't exist for query delete from wp_abj404_spelling_cache where matchdata is null or matchdata = '' made by activate_plugin, plugin_sandbox_scrape, include_once('/plugins/404-solution/404-solution.php'), require_once('/plugins/404-solution/includes/Loader.php'), ABJ_404_Solution_SpellChecker::init, ABJ_404_Solution_SpellChecker::getInstance, ABJ_404_Solution_ServiceContainer->get, {closure}, ABJ_404_Solution_SpellChecker->__construct, ABJ_404_Solution_PluginLogic->getOptions, ABJ_404_Solution_PluginLogic->updateToNewVersion, ABJ_404_Solution_PluginLogic->updateToNewVersionAction, ABJ_404_Solution_DatabaseUpgradesEtc->createDatabaseTables, ABJ_404_Solution_DatabaseUpgradesEtc->reallyCreateDatabaseTables, ABJ_404_Solution_DatabaseUpgradesEtc->correctIssuesBefore, ABJ_404_Solution_DatabaseUpgradesEtc->correctMatchData, ABJ_404_Solution_DataAccess->queryAndGetResults, ABJ_404_Solution_DataAccess->attemptMissingTableRepairAndRetry
See also: All tests for this plugin, How to Hide 404 Solution Admin Menus and Meta Boxes