Benchmarks
Plugin footprint 64% 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: ▲1.44MB] [CPU: ▲16.57ms] 50% from 4 tests
A check of server-side resources used by GeoDirectory - WordPress Business Directory Plugin, or Classified Directory
Please fix the following
- CPU: Total CPU usage must kept under 500.00ms (currently 1,579.58ms on /wp-admin/admin.php?page=gd-status)
- RAM: The total memory usage must be kept under 10MB (currently 10.35MB on /wp-admin/post-new.php?post_type=gd_place)
Page | Memory (MB) | CPU Time (ms) |
---|---|---|
Home / | 5.76 ▲2.30 | 63.44 ▲23.63 |
Dashboard /wp-admin | 4.45 ▲1.15 | 54.94 ▲6.33 |
Posts /wp-admin/edit.php | 4.54 ▲1.18 | 58.33 ▲13.97 |
Add New Post /wp-admin/post-new.php | 19.39 ▲13.50 | 172.15 ▲78.26 |
Media Library /wp-admin/upload.php | 4.38 ▲1.15 | 53.05 ▲22.36 |
Extensions /wp-admin/admin.php?page=gd-addons | 9.99 | 1,624.57 |
Settings /wp-admin/edit.php?post_type=gd_place&page=gd_place-settings | 5.39 | 72.41 |
Place Tags /wp-admin/edit-tags.php?taxonomy=gd_place_tags&post_type=gd_place | 4.45 | 59.87 |
Place Categories /wp-admin/edit-tags.php?taxonomy=gd_placecategory&post_type=gd_place | 4.66 | 55.11 |
Status /wp-admin/admin.php?page=gd-status | 9.43 | 1,579.58 |
Places /wp-admin/edit.php?post_type=gd_place | 4.83 | 51.95 |
Settings /wp-admin/admin.php?page=gd-settings | 9.16 | 101.47 |
Add New /wp-admin/post-new.php?post_type=gd_place | 10.35 | 134.56 |
Dashboard /wp-admin/admin.php?page=geodirectory | 9.17 | 97.30 |
AyeCode UI /wp-admin/options-general.php?page=ayecode-ui-settings | 9.17 | 87.11 |
Server storage [IO: ▲21.70MB] [DB: ▲0.24MB] 67% from 3 tests
A short overview of filesystem and database impact
Please fix the following
- Illegal file modification found: 1 file (1.04KB) outside of "wp-content/plugins/geodirectory/" and "wp-content/uploads/"
- (new file) wp-content/mu-plugins/geodir-fast-ajax.php
Filesystem: 1,167 new files
Database: 9 new tables, 51 new options
New tables |
---|
wp_geodir_api_keys |
wp_geodir_custom_sort_fields |
wp_geodir_post_reports |
wp_geodir_gd_place_detail |
wp_countries |
wp_geodir_post_review |
wp_geodir_custom_fields |
wp_geodir_tabs_layout |
wp_geodir_attachments |
New WordPress options |
---|
widget_gd_single_taxonomies |
widget_gd_simple_archive |
widget_gd_listings |
can_compress_scripts |
widget_gd_dynamic_content |
widget_gd_single_reviews |
widget_gd_search |
geodirectory_version |
widget_gd_post_distance |
widget_gd_post_meta |
... |
Browser metrics Passed 4 tests
GeoDirectory - WordPress Business Directory Plugin, or Classified Directory: an overview of browser usage
This plugin has a minimal impact on browser resources
Page | Nodes | Memory (MB) | Script (ms) | Layout (ms) |
---|---|---|---|---|
Home / | 3,112 ▲361 | 15.11 ▲0.87 | 45.79 ▲44.10 | 45.35 ▲1.93 |
Dashboard /wp-admin | 2,330 ▲159 | 5.67 ▲0.09 | 90.46 ▼11.70 | 41.94 ▼3.54 |
Posts /wp-admin/edit.php | 2,197 ▲97 | 1.99 ▲0.04 | 39.37 ▼0.03 | 38.23 ▲2.57 |
Add New Post /wp-admin/post-new.php | 6,468 ▲4,931 | 27.26 ▲2.14 | 867.16 ▲240.34 | 40.24 ▼24.75 |
Media Library /wp-admin/upload.php | 1,536 ▲142 | 4.31 ▲0.06 | 102.28 ▲7.63 | 42.39 ▲1.28 |
Extensions /wp-admin/admin.php?page=gd-addons | 2,435 | 3.28 | 81.82 | 62.36 |
Settings /wp-admin/edit.php?post_type=gd_place&page=gd_place-settings | 2,691 | 4.05 | 84.85 | 58.20 |
Place Tags /wp-admin/edit-tags.php?taxonomy=gd_place_tags&post_type=gd_place | 1,530 | 3.22 | 45.59 | 33.73 |
Place Categories /wp-admin/edit-tags.php?taxonomy=gd_placecategory&post_type=gd_place | 7,887 | 8.63 | 522.08 | 156.29 |
Status /wp-admin/admin.php?page=gd-status | 3,506 | 4.09 | 85.38 | 43.63 |
Places /wp-admin/edit.php?post_type=gd_place | 1,441 | 3.48 | 54.85 | 29.53 |
Settings /wp-admin/admin.php?page=gd-settings | 2,485 | 5.62 | 145.72 | 87.65 |
Add New /wp-admin/post-new.php?post_type=gd_place | 4,672 | 10.87 | 283.42 | 120.79 |
Dashboard /wp-admin/admin.php?page=geodirectory | 1,773 | 5.98 | 182.12 | 82.33 |
AyeCode UI /wp-admin/options-general.php?page=ayecode-ui-settings | 1,153 | 2.30 | 31.73 | 35.17 |
Uninstaller [IO: ▲0.00MB] [DB: ▲0.24MB] 50% from 4 tests
🔸 Tests weight: 35 | It is important to correctly uninstall your plugin, without leaving any traces
Please fix the following items
- Zombie tables were found after uninstall: 9 tables
- wp_geodir_post_review
- wp_geodir_post_reports
- wp_geodir_tabs_layout
- wp_geodir_custom_sort_fields
- wp_geodir_gd_place_detail
- wp_countries
- wp_geodir_api_keys
- wp_geodir_attachments
- wp_geodir_custom_fields
- This plugin did not uninstall successfully, leaving 51 options in the database
- widget_gd_post_content
- widget_gd_post_images
- widget_gd_search
- widget_gd_post_meta
- widget_gd_dynamic_content
- gd_placecategory_installed
- widget_gd_loop
- widget_gd_report_post
- widget_gd_loop_paging
- widget_gd_category_description
- ...
Smoke tests 50% from 4 tests
Server-side errors Passed 1 test
🔹 Test weight: 20 | A smoke test targeting server-side errors
Everything seems fine, however this is by no means an exhaustive test
SRP 0% 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
Almost there! Just fix the following items
- 24× PHP files output text when accessed directly (only 10 are shown):
- > /wp-content/plugins/geodirectory/templates/emails/plain/geodir-email-user_pending_post.php
- > /wp-content/plugins/geodirectory/templates/emails/plain/geodir-email-owner_comment_approved.php
- > /wp-content/plugins/geodirectory/templates/emails/geodir-email-footer.php
- > /wp-content/plugins/geodirectory/templates/emails/geodir-email-owner_comment_approved.php
- > /wp-content/plugins/geodirectory/templates/emails/plain/geodir-email-admin_post_edit.php
- > /wp-content/plugins/geodirectory/templates/emails/plain/geodir-email-admin_report_post.php
- > /wp-content/plugins/geodirectory/templates/emails/geodir-email-admin_post_edit.php
- > /wp-content/plugins/geodirectory/templates/emails/geodir-email-admin_report_post.php
- > /wp-content/plugins/geodirectory/templates/emails/geodir-email-user_pending_post.php
- > /wp-content/plugins/geodirectory/templates/emails/geodir-email-header.php
- 190× PHP files trigger errors when accessed directly with GET requests (only 10 are shown):
- > PHP Fatal error
Uncaught Error: Class 'Composer\\Installers\\BaseInstaller' not found in wp-content/plugins/geodirectory/vendor/composer/installers/src/Composer/Installers/TaoInstaller.php:7
- > PHP Fatal error
Uncaught Error: Class 'Composer\\Installers\\BaseInstaller' not found in wp-content/plugins/geodirectory/vendor/composer/installers/src/Composer/Installers/DecibelInstaller.php:4
- > PHP Fatal error
Uncaught Error: Class 'Composer\\Installers\\BaseInstaller' not found in wp-content/plugins/geodirectory/vendor/composer/installers/src/Composer/Installers/WHMCSInstaller.php:5
- > PHP Fatal error
Uncaught Error: Call to undefined function do_action() in wp-content/plugins/geodirectory/templates/content-archive-listing.php:23
- > PHP Fatal error
Uncaught Error: Class 'WP_Super_Duper' not found in wp-content/plugins/geodirectory/includes/widgets/class-geodir-widget-author-actions.php:15
- > PHP Fatal error
Uncaught Error: Class 'Composer\\Installers\\BaseInstaller' not found in wp-content/plugins/geodirectory/vendor/composer/installers/src/Composer/Installers/PiwikInstaller.php:9
- > PHP Fatal error
Uncaught Error: Class 'Composer\\Installers\\BaseInstaller' not found in wp-content/plugins/geodirectory/vendor/composer/installers/src/Composer/Installers/TastyIgniterInstaller.php:5
- > PHP Fatal error
Uncaught Error: Class 'WP_Super_Duper' not found in wp-content/plugins/geodirectory/includes/widgets/class-geodir-widget-post-badge.php:8
- > PHP Fatal error
Uncaught Error: Class 'Composer\\Installers\\BaseInstaller' not found in wp-content/plugins/geodirectory/vendor/composer/installers/src/Composer/Installers/SMFInstaller.php:4
- > PHP Fatal error
Uncaught Error: Class 'Composer\\Installers\\BaseInstaller' not found in wp-content/plugins/geodirectory/vendor/composer/installers/src/Composer/Installers/TYPO3FlowInstaller.php:7
- > PHP Fatal error
User-side errors Passed 1 test
🔹 Test weight: 20 | Just a short smoke test targeting errors on the browser (console and network errors and warnings)
There were no browser issues found
Optimizations
Plugin configuration 97% from 29 tests
readme.txt 94% from 16 tests
The readme.txt file is undoubtedly the most important file in your plugin, preparing it for public listing on WordPress.org
These attributes need your attention:
- Tags: Please delete some tags, you are using 15 tag instead of maximum 10
geodirectory/geodirectory.php Passed 13 tests
The principal PHP file in "GeoDirectory - WordPress Business Directory Plugin, or Classified Directory" v. 2.3.32 is loaded by WordPress automatically on each request
55 characters long description:
GeoDirectory - Business Directory Plugin for WordPress.
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 plugin245,497 lines of code in 949 files:
Language | Files | Blank lines | Comment lines | Lines of code |
---|---|---|---|---|
PHP | 443 | 23,547 | 37,245 | 120,423 |
JavaScript | 95 | 12,822 | 9,697 | 68,554 |
Sass | 363 | 6,654 | 6,776 | 40,399 |
PO File | 1 | 4,428 | 7,571 | 10,272 |
SVG | 5 | 0 | 14 | 5,078 |
JSON | 1 | 0 | 0 | 460 |
CSS | 30 | 13 | 173 | 206 |
XML | 1 | 14 | 2 | 40 |
HTML | 9 | 48 | 96 | 39 |
Markdown | 1 | 11 | 0 | 26 |
PHP code 50% from 2 tests
A brief analysis of cyclomatic complexity and code structure for this plugin
Please tend to the following items
- Cyclomatic complexity of methods should be reduced to less than 100 (currently 352)
Cyclomatic complexity | |
---|---|
Average complexity per logical line of code | 0.57 |
Average class complexity | 50.02 |
▷ Minimum class complexity | 1.00 |
▷ Maximum class complexity | 902.00 |
Average method complexity | 6.57 |
▷ Minimum method complexity | 1.00 |
▷ Maximum method complexity | 352.00 |
Code structure | ||
---|---|---|
Namespaces | 4 | |
Interfaces | 0 | |
Traits | 0 | |
Classes | 286 | |
▷ Abstract classes | 7 | 2.45% |
▷ Concrete classes | 279 | 97.55% |
▷ Final classes | 1 | 0.36% |
Methods | 2,523 | |
▷ Static methods | 1,187 | 47.05% |
▷ Public methods | 2,223 | 88.11% |
▷ Protected methods | 157 | 6.22% |
▷ Private methods | 143 | 5.67% |
Functions | 827 | |
▷ Named functions | 798 | 96.49% |
▷ Anonymous functions | 29 | 3.51% |
Constants | 255 | |
▷ Global constants | 238 | 93.33% |
▷ Class constants | 17 | 6.67% |
▷ Public constants | 17 | 100.00% |
Plugin size 50% from 2 tests
Image compression 50% from 2 tests
Often times overlooked, PNG files can occupy unnecessary space in your plugin
88 PNG files occupy 1.07MB with 0.27MB in potential savings
Potential savings
Compression of 5 random PNG files using pngquant | |||
---|---|---|---|
File | Size - original | Size - compressed | Savings |
assets/images/arrow-img.png | 0.42KB | 0.42KB | 0.23% |
assets/images/arrows_down.png | 1.76KB | 0.58KB | ▼ 67.28% |
assets/images/downarrow-img.png | 0.22KB | 0.26KB | 0.00% |
assets/images/t-image2.png | 11.71KB | 12.01KB | 0.00% |
assets/css/images/ui-bg_glass_65_ffffff_1x400.png | 0.20KB | 0.09KB | ▼ 57.49% |