10% 404-error-monitor

Code Review | 404 Error Monitor

WordPress plugin 404 Error Monitor scored 10% from 54 tests.

About plugin

  • Plugin page: 404-error-monitor
  • Plugin version: 1.1
  • PHP version: 7.4.16
  • WordPress compatibility: 3.2.1-4.4.1
  • WordPress version: 5.9.2
  • First release: Sep 16, 2012
  • Latest release: Jan 21, 2016
  • Number of updates: 34
  • Update frequency: every 35.9 days
  • Top authors: Bilbud (100%)

Code review

54 tests

User reviews

13 reviews

Install metrics

900+ active / 18,981 total downloads

Benchmarks

Plugin footprint 58% from 16 tests

Installer 0% from 1 test

🔺 Critical test (weight: 50) | Checking the installer triggered no errors
You still need to fix the following installer errors
  • The plugin cannot be installed
    • > Deprecated in wp-content/plugins/404-error-monitor/index.php+51
    Methods with the same name as their class will not be constructors in a future version of PHP; errorMonitor has a deprecated constructor

Server metrics [RAM: ▲0.00MB] [CPU: ▼300.43ms] Passed 4 tests

An overview of server-side resources used by 404 Error Monitor
Server-side resource usage in normal parameters
PageMemory (MB)CPU Time (ms)
Home /3.53 ▲0.0253.01 ▼0.06
Dashboard /wp-admin3.44 ▲0.0331.69 ▼2.06
Posts /wp-admin/edit.php3.66 ▲0.0335.49 ▼1.39
Add New Post /wp-admin/post-new.php6.91 ▼0.0593.60 ▼1,192.22
Media Library /wp-admin/upload.php3.32 ▲0.0223.65 ▼6.06
Settings /wp-admin/admin.php?page=errorMonitorSettings3.3322.57
404 Error Monitor /wp-admin/admin.php?page=errorMonitor3.3527.07

Server storage [IO: ▲0.06MB] [DB: ▲0.00MB] Passed 3 tests

Input-output and database impact of this plugin
There were no storage issued detected upon installing this plugin
Filesystem: 10 new files
Database: 1 new table, 6 new options
New tables
wp_errors_404_logs
New WordPress options
404-error-monitor-ext_filter
404-error-monitor-last_clean
404-error-monitor-allow_editors
404-error-monitor-path_filter
404-error-monitor-min_hit_count
404-error-monitor-clean_after

Browser metrics Passed 4 tests

Checking browser requirements for 404 Error Monitor
Normal browser usage
PageNodesMemory (MB)Script (ms)Layout (ms)
Home /3,803 ▲6115.98 ▲0.365.78 ▲0.062.16 ▼0.02
Dashboard /wp-admin2,931 ▲776.05 ▼0.02124.21 ▼5.83164.99 ▲3.54
Posts /wp-admin/edit.php2,730 ▲363.25 ▲0.1963.31 ▼2.03142.53 ▲0.28
Add New Post /wp-admin/post-new.php1,687 ▼6517.45 ▼4.27419.20 ▼35.96157.62 ▲9.73
Media Library /wp-admin/upload.php1,737 ▲395.53 ▼0.02139.96 ▼5.21184.91 ▼4.59
Settings /wp-admin/admin.php?page=errorMonitorSettings1,2252.4354.99113.90
404 Error Monitor /wp-admin/admin.php?page=errorMonitor1,1762.4258.06118.73

Uninstaller [IO: ▲0.00MB] [DB: ▲0.00MB] 75% from 4 tests

🔸 Tests weight: 35 | All plugins must uninstall correctly, removing their source code and extra database tables they might have created
It is recommended to fix the following
  • Zombie tables were found after uninstall: 1 table
    • wp_errors_404_logs

Smoke tests 50% from 4 tests

Server-side errors Passed 1 test

🔹 Test weight: 20 | A smoke test targeting server-side errors
Even though everything seems fine, this is not an exhaustive test

SRP 0% from 2 tests

🔹 Tests weight: 20 | It is important to ensure that your PHP files perform no action when accessed directly, respecting the single-responsibility principle
Please take a closer look at the following
  • 3× PHP files output non-empty strings when accessed directly via GET requests:
    • > /wp-content/plugins/404-error-monitor/includes/postbox.php
    • > /wp-content/plugins/404-error-monitor/includes/errorList.php
    • > /wp-content/plugins/404-error-monitor/includes/settings.php
  • 3× PHP files trigger server-side errors or warnings when accessed directly:
    • > PHP Fatal error
      require_once(): Failed opening required 'ABSPATH/wp-admin/includes/plugin.php' (include_path='.:/usr/share/php') in wp-content/plugins/404-error-monitor/includes/DataTools.php on line 22
    • > PHP Warning
      Use of undefined constant ABSPATH - assumed 'ABSPATH' (this will throw an Error in a future version of PHP) in wp-content/plugins/404-error-monitor/includes/DataTools.php on line 22
    • > PHP Warning
      require_once(ABSPATH/wp-admin/includes/plugin.php): failed to open stream: No such file or directory in wp-content/plugins/404-error-monitor/includes/DataTools.php on line 22

User-side errors Passed 1 test

🔹 Test weight: 20 | A shallow check that no browser errors were triggered
Everything seems fine on the user side

Optimizations

Plugin configuration 90% from 29 tests

readme.txt 94% from 16 tests

Often overlooked, readme.txt is one of the most important files in your plugin
These attributes need your attention:
  • Donate link: Please fix this invalid url: ""
You can look at the official readme.txt

404-error-monitor/index.php 85% from 13 tests

The entry point to "404 Error Monitor" version 1.1 is a PHP file that has certain tags in its header comment area
Please take the time to fix the following:
  • Main file name: Name the main plugin file the same as the plugin slug ("404-error-monitor.php" instead of "index.php")
  • Description: Please don't use more than 140 characters for the plugin description (currently 206 characters long)

Code Analysis Passed 3 tests

File types Passed 1 test

🔸 Test weight: 35 | An overview of files in this plugin; executable files are not allowed
Success! There were no dangerous files found in this plugin993 lines of code in 8 files:
LanguageFilesBlank linesComment linesLines of code
PHP6138195835
JavaScript11816101
CSS1151657

PHP code Passed 2 tests

This is a very shot review of cyclomatic complexity and code structure
All good! No complexity issues found
Cyclomatic complexity
Average complexity per logical line of code0.54
Average class complexity40.33
▷ Minimum class complexity28.00
▷ Maximum class complexity56.00
Average method complexity4.28
▷ Minimum method complexity1.00
▷ Maximum method complexity18.00
Code structure
Namespaces0
Interfaces0
Traits0
Classes3
▷ Abstract classes00.00%
▷ Concrete classes3100.00%
▷ Final classes00.00%
Methods36
▷ Static methods1027.78%
▷ Public methods36100.00%
▷ Protected methods00.00%
▷ Private methods00.00%
Functions0
▷ Named functions00.00%
▷ Anonymous functions00.00%
Constants6
▷ Global constants583.33%
▷ Class constants116.67%
▷ Public constants1100.00%

Plugin size Passed 2 tests

Image compression Passed 2 tests

Using a strong compression for your PNG files is a great way to speed-up your plugin
There are no PNG files in this plugin