Benchmarks
Plugin footprint 47% from 16 tests
Installer Passed 1 test
🔺 Critical test (weight: 50) | Verifying that this plugin installs correctly without errors
Installer ran successfully
Server metrics [RAM: ▲5.67MB] [CPU: ▲44.18ms] 75% from 4 tests
Analyzing server-side resources used by Internal Link Juicer: SEO Auto Linker for WordPress
It is recommended to improve the following
- Extra RAM: The extra memory usage must be under 5MB (currently 5.67MB on /wp-admin/admin.php?page=freemius)
Page | Memory (MB) | CPU Time (ms) |
---|---|---|
Home / | 8.90 ▲5.44 | 83.95 ▲45.36 |
Dashboard /wp-admin | 9.05 ▲5.74 | 95.89 ▲47.41 |
Posts /wp-admin/edit.php | 9.12 ▲5.76 | 104.39 ▲54.70 |
Add New Post /wp-admin/post-new.php | 11.70 ▲5.82 | 127.76 ▲29.24 |
Media Library /wp-admin/upload.php | 8.97 ▲5.75 | 94.25 ▲57.48 |
Scheduled Actions /wp-admin/tools.php?page=action-scheduler | 9.14 | 85.45 |
Freemius Debug [v.2.5.10] /wp-admin/admin.php?page=freemius | 9.15 | 77.71 |
Server storage [IO: ▲5.79MB] [DB: ▲0.01MB] Passed 3 tests
Input-output and database impact of this plugin
This plugin installed successfully
Filesystem: 437 new files
Database: 5 new tables, 25 new options
New tables |
---|
wp_actionscheduler_actions |
wp_ilj_linkindex |
wp_actionscheduler_logs |
wp_actionscheduler_claims |
wp_actionscheduler_groups |
New WordPress options |
---|
db_upgraded |
widget_recent-posts |
ilj_settings_field_links_per_page |
widget_theysaidso_widget |
schema-ActionScheduler_LoggerSchema |
action_scheduler_hybrid_store_demarkation |
fs_accounts |
action_scheduler_lock_async-request-runner |
theysaidso_admin_options |
ilj_settings_field_keep_settings |
... |
Browser metrics Passed 4 tests
Internal Link Juicer: SEO Auto Linker for WordPress: an overview of browser usage
This plugin has a minimal impact on browser resources
Page | Nodes | Memory (MB) | Script (ms) | Layout (ms) |
---|---|---|---|---|
Home / | 3,072 ▲301 | 13.57 ▼0.72 | 8.34 ▲6.39 | 30.96 ▼7.53 |
Dashboard /wp-admin | 2,319 ▲131 | 4.89 ▼1.05 | 113.80 ▲5.69 | 46.52 ▲4.82 |
Posts /wp-admin/edit.php | 2,290 ▲198 | 2.06 ▲0.05 | 40.59 ▲0.61 | 46.54 ▲11.05 |
Add New Post /wp-admin/post-new.php | 1,980 ▲461 | 17.88 ▼5.20 | 653.87 ▼56.35 | 61.20 ▼5.92 |
Media Library /wp-admin/upload.php | 1,498 ▲107 | 4.24 ▲0.05 | 100.80 ▲0.19 | 43.94 ▲0.31 |
Scheduled Actions /wp-admin/tools.php?page=action-scheduler | 1,348 | 1.77 | 27.83 | 34.03 |
Freemius Debug [v.2.5.10] /wp-admin/admin.php?page=freemius | 1,174 | 1.76 | 26.70 | 28.42 |
Uninstaller [IO: ▲0.00MB] [DB: ▲0.01MB] 25% from 4 tests
🔸 Tests weight: 35 | Checking the uninstaller removed all traces of the plugin
Please fix the following items
- This plugin did not uninstall without warnings or errors
- > Notice in wp-content/plugins/internal-links/freemius/includes/class-freemius.php+8486
Undefined property: stdClass::$plugins
- The uninstall procedure failed, leaving 4 tables in the database
- wp_actionscheduler_logs
- wp_actionscheduler_groups
- wp_actionscheduler_claims
- wp_actionscheduler_actions
- This plugin does not fully uninstall, leaving 25 options in the database
- widget_theysaidso_widget
- ilj_settings_field_keep_settings
- schema-ActionScheduler_LoggerSchema
- action_scheduler_hybrid_store_demarkation
- can_compress_scripts
- db_upgraded
- theysaidso_admin_options
- ilj_settings_field_no_link_tags
- schema-ActionScheduler_StoreSchema
- ilj_settings_field_link_output_internal
- ...
Smoke tests 75% from 4 tests
Server-side errors Passed 1 test
🔹 Test weight: 20 | This is a shallow check for server-side errors
Good news, no errors were detected
SRP 50% from 2 tests
🔹 Tests weight: 20 | The single-responsibility principle: PHP files have to remain inert when accessed directly, throwing no errors and performing no actions
Please fix the following items
- 82× PHP files trigger server-side errors or warnings when accessed directly (only 10 are shown):
- > PHP Fatal error
Uncaught Error: Interface 'ILJ\\Core\\Options\\OptionInterface' not found in wp-content/plugins/internal-links/core/options/abstractoption.php:13
- > PHP Fatal error
Uncaught Error: Class 'ActionScheduler_Abstract_Schedule' not found in wp-content/plugins/internal-links/vendor/woocommerce/action-scheduler/classes/abstracts/ActionScheduler_Abstract_RecurringSchedule.php:6
- > PHP Fatal error
Uncaught Error: Class 'ActionScheduler_Store' not found in wp-content/plugins/internal-links/vendor/woocommerce/action-scheduler/classes/data-stores/ActionScheduler_DBStore.php:10
- > PHP Fatal error
Uncaught Error: Class 'ActionScheduler_Store_Deprecated' not found in wp-content/plugins/internal-links/vendor/woocommerce/action-scheduler/classes/abstracts/ActionScheduler_Store.php:7
- > PHP Fatal error
Uncaught Error: Class 'ActionScheduler_Abstract_Schema' not found in wp-content/plugins/internal-links/vendor/woocommerce/action-scheduler/classes/schema/ActionScheduler_StoreSchema.php:10
- > PHP Fatal error
Uncaught Error: Class 'ILJ\\Core\\Options\\AbstractOption' not found in wp-content/plugins/internal-links/core/options/keepsettings.php:13
- > PHP Fatal error
Uncaught Error: Class 'ILJ\\Backend\\MenuPage\\AbstractMenuPage' not found in wp-content/plugins/internal-links/backend/menupage/tour.php:15
- > PHP Fatal error
Uncaught Error: Class 'ILJ\\Core\\IndexStrategy\\DefaultStrategy' not found in wp-content/plugins/internal-links/core/indexstrategy/wpmlstrategy.php:25
- > PHP Fatal error
Uncaught Error: Class 'ActionScheduler_SimpleSchedule' not found in wp-content/plugins/internal-links/vendor/woocommerce/action-scheduler/classes/schedules/ActionScheduler_CanceledSchedule.php:6
- > PHP Fatal error
Uncaught Error: Class 'ILJ\\Backend\\MenuPage\\Tour\\Step' not found in wp-content/plugins/internal-links/backend/menupage/tour/settings.php:14
- > PHP Fatal error
User-side errors Passed 1 test
🔹 Test weight: 20 | This is just a short smoke test looking for browser issues
No browser issues were found
Optimizations
Plugin configuration 96% 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
9 plugin tags: ux, auto linker, onpage, linkbuilding, link...
internal-links/wp-internal-linkjuicer.php 92% from 13 tests
The main PHP script in "Internal Link Juicer: SEO Auto Linker for WordPress" version 2.23.4 is automatically included on every request by WordPress
You should first fix the following items:
- Main file name: Please rename the main PHP file in this plugin to the plugin slug ("internal-links.php" instead of "wp-internal-linkjuicer.php")
Code Analysis 97% from 3 tests
File types Passed 1 test
🔸 Test weight: 35 | This is a short overview of programming languages used in this plugin, detecting executable files
Success! There were no dangerous files found in this plugin63,484 lines of code in 361 files:
Language | Files | Blank lines | Comment lines | Lines of code |
---|---|---|---|---|
PHP | 301 | 10,894 | 26,729 | 48,186 |
PO File | 13 | 4,117 | 4,281 | 8,755 |
JavaScript | 15 | 1,366 | 59 | 6,340 |
Markdown | 2 | 37 | 0 | 90 |
JSON | 1 | 0 | 0 | 49 |
CSS | 26 | 3 | 1 | 47 |
SVG | 3 | 0 | 0 | 17 |
PHP code 50% from 2 tests
Analyzing logical lines of code, cyclomatic complexity, and other code metrics
The following items need your attention
- Class cyclomatic complexity should be reduced to less than 1000 (currently 3,073)
Cyclomatic complexity | |
---|---|
Average complexity per logical line of code | 0.52 |
Average class complexity | 29.07 |
▷ Minimum class complexity | 1.00 |
▷ Maximum class complexity | 3,073.00 |
Average method complexity | 3.59 |
▷ Minimum method complexity | 1.00 |
▷ Maximum method complexity | 94.00 |
Code structure | ||
---|---|---|
Namespaces | 17 | |
Interfaces | 5 | |
Traits | 3 | |
Classes | 212 | |
▷ Abstract classes | 20 | 9.43% |
▷ Concrete classes | 192 | 90.57% |
▷ Final classes | 4 | 2.08% |
Methods | 2,435 | |
▷ Static methods | 518 | 21.27% |
▷ Public methods | 1,797 | 73.80% |
▷ Protected methods | 219 | 8.99% |
▷ Private methods | 419 | 17.21% |
Functions | 176 | |
▷ Named functions | 120 | 68.18% |
▷ Anonymous functions | 56 | 31.82% |
Constants | 284 | |
▷ Global constants | 104 | 36.62% |
▷ Class constants | 180 | 63.38% |
▷ Public constants | 180 | 100.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
12 compressed PNG files occupy 0.15MB
Potential savings
Compression of 5 random PNG files using pngquant | |||
---|---|---|---|
File | Size - original | Size - compressed | Savings |
freemius/assets/img/internal-links.png | 4.04KB | 4.38KB | 0.00% |
admin/img/datatables/sort_asc_disabled.png | 0.14KB | 0.25KB | 0.00% |
admin/img/ilj-icon-inverted.png | 2.33KB | 2.10KB | ▼ 9.87% |
admin/img/datatables/sort_desc_disabled.png | 0.14KB | 0.25KB | 0.00% |
admin/img/datatables/sort_desc.png | 0.15KB | 0.25KB | 0.00% |