404 Solution 3.3.3

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

Summary

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

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

Page speed impact: insignificant.
The plugin didn't make the site noticeably slower.

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=03caf75b54
Aspect after-activation
HTTP status 200
Load time 2.905 s
Memory usage 4.07 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.500 s
Memory usage 4.06 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.214 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.646 s
Memory usage 6.71 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.658 s
Memory usage 6.69 MiB
JS errors None
Resource errors None

Benchmark

URL Load time Memory usage
Inactive Active Change Inactive Active Change
/wp-admin/index.php0.372 s0.365 s-0.007 s3.78 MiB4.1 MiB+ 329.29 KiB
/wp-admin/edit.php0.363 s0.334 s-0.029 s3.78 MiB4.15 MiB+ 379.31 KiB
/wp-admin/post-new.php0.846 s1.095 s+0.249 s6.31 MiB6.71 MiB+ 408.6 KiB
/wp-admin/upload.php0.634 s0.432 s-0.202 s3.74 MiB4.04 MiB+ 311.15 KiB
/wp-admin/options-writing.php0.311 s0.297 s-0.014 s3.71 MiB4.02 MiB+ 315.14 KiB
/wp-admin/media-new.php0.495 s0.304 s-0.191 s3.7 MiB4.02 MiB+ 323.34 KiB
/wp-admin/edit-tags.php?taxonomy=category0.469 s0.298 s-0.171 s3.72 MiB4.04 MiB+ 334.01 KiB
/wp-admin/post-new.php?post_type=page0.668 s0.710 s+0.042 s6.3 MiB6.69 MiB+ 402.09 KiB
/wp-admin/options-discussion.php0.328 s0.393 s+0.065 s3.71 MiB4.02 MiB+ 311.64 KiB
/wp-admin/edit-comments.php0.322 s0.325 s+0.003 s3.73 MiB4.04 MiB+ 311.13 KiB
/0.271 s0.187 s-0.084 s4.11 MiB4.13 MiB+ 20.81 KiB
Average 0.462 s0.431 s-0.031 s4.24 MiB4.54 MiB+ 313.32 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
PHP41.5%22,2787,47154
PO File39.6%21,3052,38513
CSS6.9%3,7103704
JavaScript5.3%2,84460618
Markdown3.0%1,63702
HTML2.5%1,3423840
SQL1.1%57612838
JSON0.1%4501
Total 53,737 10,998 170

PHP Code Analysis | More results »

Lines of code 22,328
Total complexity 5,981
Median class complexity 41.0
Median method complexity 4.0
Most complex class ABJ_404_Solution_DataAccess
Most complex function ABJ_404_Solution_ShortCode::shortcodePageSuggestions()
Classes 49
Methods 847
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 35 lines

[19-Mar-2026 13:37:25 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
[19-Mar-2026 13:37:25 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
[19-Mar-2026 13:37:25 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
[19-Mar-2026 13:37:25 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
[19-Mar-2026 13:37:25 UTC] WordPress database error You can't delete all columns with ALTER TABLE; use DROP TABLE instead for query alter table wp_abj404_view_cache drop updated_at 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->runInitialCreateTables, ABJ_404_Solution_DatabaseUpgradesEtc->verifyColumns, ABJ_404_Solution_DatabaseUpgradesEtc->updateATableBasedOnDifferences, ABJ_404_Solution_DataAccess->queryAndGetResults
[19-Mar-2026 13:37:25 UTC] WordPress database error Key column 'refreshed_at' doesn't exist in table for query alter table wp_abj404_view_cache add index `refreshed_at` (refreshed_at) 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->createIndexes, ABJ_404_Solution_DatabaseUpgradesEtc->verifyIndexes, ABJ_404_Solution_DataAccess->queryAndGetResults
[19-Mar-2026 13:37:26 UTC] WordPress database error Key column 'refreshed_at' doesn't exist in table for query alter table wp_abj404_view_cache add index `refreshed_at` (refreshed_at) made by activate_plugin, do_action('activate_404-solution/404-solution.php'), WP_Hook->do_action, WP_Hook->apply_filters, ABJ_404_Solution_PluginLogic::runOnPluginActivation, ABJ_404_Solution_PluginLogic::activateSingleSite, ABJ_404_Solution_DatabaseUpgradesEtc->createDatabaseTables, ABJ_404_Solution_DatabaseUpgradesEtc->reallyCreateDatabaseTables, ABJ_404_Solution_DatabaseUpgradesEtc->createIndexes, ABJ_404_Solution_DatabaseUpgradesEtc->verifyIndexes, ABJ_404_Solution_DataAccess->queryAndGetResults
See also: All tests for this plugin, How to Hide 404 Solution Admin Menus and Meta Boxes