Benchmarks
Plugin footprint 65% from 16 tests
Installer Passed 1 test
🔺 Critical test (weight: 50) | It is important to correctly install your plugin, without throwing errors or notices
Installer ran successfully
Server metrics [RAM: ▲2.61MB] [CPU: ▲17.09ms] Passed 4 tests
Server-side resources used by Broken Link Checker by AIOSEO – Easily Fix/Monitor Internal and External links
Server-side resource usage in normal parameters
Page | Memory (MB) | CPU Time (ms) |
---|---|---|
Home / | 6.06 ▲2.60 | 62.10 ▲23.11 |
Dashboard /wp-admin | 5.93 ▲2.59 | 65.92 ▲2.94 |
Posts /wp-admin/edit.php | 5.98 ▲2.63 | 76.53 ▲32.45 |
Add New Post /wp-admin/post-new.php | 8.76 ▲2.87 | 106.83 ▲12.70 |
Media Library /wp-admin/upload.php | 5.85 ▲2.62 | 62.92 ▲29.61 |
Setup Wizard /wp-admin/index.php?page=broken-link-checker-setup-wizard | 5.87 | 51.91 |
SEO Settings /wp-admin/admin.php?page=broken-link-checker-seo-settings | 6.11 | 54.94 |
About Us /wp-admin/admin.php?page=broken-link-checker-about | 6.11 | 54.86 |
Broken Links /wp-admin/admin.php?page=broken-link-checker | 6.08 | 61.14 |
Server storage [IO: ▲6.57MB] [DB: ▲0.01MB] Passed 3 tests
Analyzing filesystem and database footprints of this plugin
This plugin was installed successfully
Filesystem: 321 new files
Database: 9 new tables, 11 new options
New tables |
---|
wp_actionscheduler_groups |
wp_aioseo_blc_link_status |
wp_aioseo_blc_notifications |
wp_actionscheduler_actions |
wp_aioseo_blc_cache |
wp_aioseo_blc_posts |
wp_actionscheduler_logs |
wp_actionscheduler_claims |
wp_aioseo_blc_links |
New WordPress options |
---|
widget_recent-posts |
schema-ActionScheduler_StoreSchema |
schema-ActionScheduler_LoggerSchema |
aioseo_blc_options_internal |
can_compress_scripts |
widget_theysaidso_widget |
db_upgraded |
action_scheduler_hybrid_store_demarkation |
action_scheduler_lock_async-request-runner |
theysaidso_admin_options |
... |
Browser metrics Passed 4 tests
An overview of browser requirements for Broken Link Checker by AIOSEO – Easily Fix/Monitor Internal and External links
This plugin renders optimally with no browser resource issues detected
Page | Nodes | Memory (MB) | Script (ms) | Layout (ms) |
---|---|---|---|---|
Home / | 2,879 ▲133 | 13.24 ▼1.14 | 1.92 ▲0.24 | 42.49 ▲0.32 |
Dashboard /wp-admin | 2,263 ▲71 | 4.91 ▼0.95 | 99.03 ▼9.20 | 38.91 ▼3.01 |
Posts /wp-admin/edit.php | 2,143 ▲54 | 2.03 ▲0.04 | 40.86 ▲0.28 | 33.99 ▼2.65 |
Add New Post /wp-admin/post-new.php | 1,558 ▲39 | 23.03 ▼0.23 | 691.00 ▲6.17 | 66.61 ▲9.98 |
Media Library /wp-admin/upload.php | 1,439 ▲51 | 4.22 ▲0.03 | 100.17 ▼9.23 | 42.64 ▼4.35 |
Setup Wizard /wp-admin/index.php?page=broken-link-checker-setup-wizard | 189 | 2.75 | 32.12 | 22.11 |
SEO Settings /wp-admin/admin.php?page=broken-link-checker-seo-settings | 1,213 | 4.04 | 51.27 | 28.69 |
About Us /wp-admin/admin.php?page=broken-link-checker-about | 1,745 | 4.76 | 44.40 | 46.31 |
Broken Links /wp-admin/admin.php?page=broken-link-checker | 1,532 | 5.15 | 38.73 | 36.13 |
Uninstaller [IO: ▲0.00MB] [DB: ▲0.02MB] 50% from 4 tests
🔸 Tests weight: 35 | The uninstall procedure must remove all plugin files and extra database tables
It is recommended to fix the following
- The uninstall procedure failed, leaving 9 tables in the database
- wp_actionscheduler_logs
- wp_actionscheduler_actions
- wp_aioseo_blc_links
- wp_aioseo_blc_cache
- wp_aioseo_blc_notifications
- wp_actionscheduler_groups
- wp_aioseo_blc_posts
- wp_actionscheduler_claims
- wp_aioseo_blc_link_status
- This plugin did not uninstall successfully, leaving 11 options in the database
- db_upgraded
- action_scheduler_hybrid_store_demarkation
- schema-ActionScheduler_LoggerSchema
- schema-ActionScheduler_StoreSchema
- theysaidso_admin_options
- can_compress_scripts
- action_scheduler_lock_async-request-runner
- widget_theysaidso_widget
- widget_recent-comments
- widget_recent-posts
- ...
Smoke tests 75% from 4 tests
Server-side errors Passed 1 test
🔹 Test weight: 20 | Just a short smoke test targeting errors on the server (in the Apache logs)
Even though everything seems fine, this is not an exhaustive test
SRP 50% from 2 tests
🔹 Tests weight: 20 | The single-responsibility principle applies for WordPress plugins as well - please make sure your PHP files perform no actions when accessed directly
Please fix the following items
- 71× GET requests to PHP files trigger server-side errors or Error 500 responses (only 10 are shown):
- > PHP Fatal error
Uncaught Error: Class 'CronExpression_AbstractField' not found in wp-content/plugins/broken-link-checker-seo/vendor/woocommerce/action-scheduler/lib/cron-expression/CronExpression_DayOfMonthField.php:21
- > PHP Fatal error
Uncaught Error: Class 'ActionScheduler_Abstract_RecurringSchedule' not found in wp-content/plugins/broken-link-checker-seo/vendor/woocommerce/action-scheduler/classes/schedules/ActionScheduler_CronSchedule.php:6
- > PHP Fatal error
Uncaught Error: Interface 'Dotenv\\Exception\\ExceptionInterface' not found in wp-content/plugins/broken-link-checker-seo/vendor/vlucas/phpdotenv/src/Exception/InvalidPathException.php:9
- > PHP Fatal error
Uncaught Error: Interface 'Dotenv\\Store\\StoreInterface' not found in wp-content/plugins/broken-link-checker-seo/vendor/vlucas/phpdotenv/src/Store/StringStore.php:7
- > PHP Fatal error
Uncaught Error: Class 'CronExpression_AbstractField' not found in wp-content/plugins/broken-link-checker-seo/vendor/woocommerce/action-scheduler/lib/cron-expression/CronExpression_MonthField.php:8
- > PHP Fatal error
Uncaught Error: Interface 'Dotenv\\Repository\\Adapter\\ReaderInterface' not found in wp-content/plugins/broken-link-checker-seo/vendor/vlucas/phpdotenv/src/Repository/Adapter/AdapterInterface.php:7
- > PHP Fatal error
Uncaught Error: Call to undefined function _n() in wp-content/plugins/broken-link-checker-seo/languages/aioseo-broken-link-checker.php:7
- > PHP Fatal error
Uncaught Error: Class 'ActionScheduler_Logger' not found in wp-content/plugins/broken-link-checker-seo/vendor/woocommerce/action-scheduler/classes/data-stores/ActionScheduler_wpCommentLogger.php:6
- > PHP Fatal error
Uncaught Error: Class 'Action_Scheduler\\Migration\\LogMigrator' not found in wp-content/plugins/broken-link-checker-seo/vendor/woocommerce/action-scheduler/classes/migration/DryRun_LogMigrator.php:13
- > PHP Fatal error
Uncaught Error: Class 'ActionScheduler_FinishedAction' not found in wp-content/plugins/broken-link-checker-seo/vendor/woocommerce/action-scheduler/classes/actions/ActionScheduler_CanceledAction.php:9
- > PHP Fatal error
User-side errors Passed 1 test
🔹 Test weight: 20 | This is a shallow check for browser errors
Everything seems fine on the user side
Optimizations
Plugin configuration 86% from 29 tests
readme.txt Passed 16 tests
Perhaps the most important file in your plugin readme.txt gets parsed in order to generate the public listing of your plugin
8 plugin tags: links, external link, check links, bad links, internal link...
broken-link-checker-seo/aioseo-broken-link-checker.php 69% from 13 tests
Analyzing the main PHP file in "Broken Link Checker by AIOSEO – Easily Fix/Monitor Internal and External links" version 1.0.5
It is important to fix the following:
- Text Domain: The text domain must be the same as the plugin slug, although optional since WordPress version 4.6
- Domain Path: Prefix the domain path with a forward slash character ("/languages")
- Main file name: Name the main plugin file the same as the plugin slug ("broken-link-checker-seo.php" instead of "aioseo-broken-link-checker.php")
- Domain Path: The domain path follows the same naming rules as the domain name, using only dashes and lowercase characters ("languages")
Code Analysis Passed 3 tests
File types Passed 1 test
🔸 Test weight: 35 | A short glimpse at programming languages used with this plugin and a check that no dangerous files are present
There were no executable files found in this plugin21,435 lines of code in 293 files:
Language | Files | Blank lines | Comment lines | Lines of code |
---|---|---|---|---|
PHP | 218 | 4,307 | 12,457 | 20,282 |
JSON | 8 | 0 | 0 | 879 |
Markdown | 6 | 57 | 0 | 139 |
JavaScript | 36 | 7 | 35 | 74 |
SVG | 7 | 0 | 0 | 43 |
CSS | 18 | 0 | 0 | 18 |
PHP code Passed 2 tests
A short review of cyclomatic complexity and code structure
This plugin has no cyclomatic complexity issues
Cyclomatic complexity | |
---|---|
Average complexity per logical line of code | 0.44 |
Average class complexity | 12.78 |
▷ Minimum class complexity | 1.00 |
▷ Maximum class complexity | 166.00 |
Average method complexity | 2.78 |
▷ Minimum method complexity | 1.00 |
▷ Maximum method complexity | 45.00 |
Code structure | ||
---|---|---|
Namespaces | 33 | |
Interfaces | 12 | |
Traits | 12 | |
Classes | 171 | |
▷ Abstract classes | 17 | 9.94% |
▷ Concrete classes | 154 | 90.06% |
▷ Final classes | 41 | 26.62% |
Methods | 1,354 | |
▷ Static methods | 250 | 18.46% |
▷ Public methods | 1,073 | 79.25% |
▷ Protected methods | 144 | 10.64% |
▷ Private methods | 137 | 10.12% |
Functions | 195 | |
▷ Named functions | 130 | 66.67% |
▷ Anonymous functions | 65 | 33.33% |
Constants | 69 | |
▷ Global constants | 11 | 15.94% |
▷ Class constants | 58 | 84.06% |
▷ Public constants | 46 | 79.31% |
Plugin size 50% from 2 tests
Image compression 50% from 2 tests
All PNG images should be compressed to minimize bandwidth usage for end users
14 PNG files occupy 2.65MB with 1.18MB in potential savings
Potential savings
Compression of 5 random PNG files using pngquant | |||
---|---|---|---|
File | Size - original | Size - compressed | Savings |
dist/assets/images/instagram.e7ef455b.png | 1.65KB | 0.79KB | ▼ 51.95% |
dist/assets/images/monsterinsights.51233def.png | 4.62KB | 2.49KB | ▼ 46.10% |
dist/assets/images/youtube.738aaae9.png | 0.64KB | 0.47KB | ▼ 27.62% |
dist/assets/images/optinmonster.091a3fa5.png | 5.70KB | 2.78KB | ▼ 51.31% |
dist/assets/images/facebook.630db56b.png | 1.28KB | 0.69KB | ▼ 45.60% |