Benchmarks
Plugin footprint 65% from 16 tests
Installer Passed 1 test
🔺 Critical test (weight: 50) | Verifying that this plugin installs correctly without errors
The plugin installed gracefully, with no errors
Server metrics [RAM: ▲0.28MB] [CPU: ▲6.76ms] Passed 4 tests
This is a short check of server-side resources used by WP Job Portal - A Complete Job Board
No issues were detected with server-side resource usage
Page | Memory (MB) | CPU Time (ms) |
---|---|---|
Home / | 3.68 ▲0.22 | 53.89 ▲15.68 |
Dashboard /wp-admin | 3.60 ▲0.30 | 53.91 ▲2.64 |
Posts /wp-admin/edit.php | 3.71 ▲0.36 | 54.68 ▲8.42 |
Add New Post /wp-admin/post-new.php | 6.19 ▲0.31 | 88.58 ▲1.56 |
Media Library /wp-admin/upload.php | 3.52 ▲0.29 | 44.19 ▲14.40 |
Email Templates Options /wp-admin/admin.php?page=wpjobportal_emailtemplatestatus | 4.40 | 49.11 |
WP Job Portal Slug /wp-admin/admin.php?page=wpjobportal_slug | 3.97 | 46.64 |
Experience /wp-admin/admin.php?page=wpjobportal_experience | 3.49 | 34.88 |
Salary Range /wp-admin/admin.php?page=wpjobportal_salaryrange | 3.49 | 37.02 |
Messages /wp-admin/admin.php?page=wpjobportal&wpjobportallt=profeatures | 3.56 | 39.01 |
Cover Letters /wp-admin/admin.php?page=wpjobportal_coverletter | 3.46 | 36.85 |
Premium Addon /wp-admin/admin.php?page=message | 3.46 | 36.31 |
States /wp-admin/admin.php?page=wpjobportal_state | 3.57 | 46.04 |
Premium Addon /wp-admin/admin.php?page=addressdata | 3.46 | 36.65 |
Salary Range Types /wp-admin/admin.php?page=wpjobportal_salaryrangetype | 3.58 | 45.23 |
Server storage [IO: ▲17.44MB] [DB: ▲0.20MB] Passed 3 tests
Analyzing filesystem and database footprints of this plugin
No storage issues were detected
Filesystem: 1,129 new files
Database: 33 new tables, 9 new options
New tables |
---|
wp_wj_portal_currencies |
wp_wj_portal_jobstatus |
wp_wj_portal_jswjsessiondata |
wp_wj_portal_jobseeker_view_company |
wp_wj_portal_jobtypes |
wp_wj_portal_emailtemplates |
wp_wj_portal_resumeinstitutes |
wp_wj_portal_salaryrangetypes |
wp_wj_portal_cities |
wp_wj_portal_fieldsordering |
... |
New WordPress options |
---|
widget_recent-posts |
can_compress_scripts |
theysaidso_admin_options |
widget_wpjobportaljobssearchjobs_widget |
db_upgraded |
_wpjsjp_session_ |
widget_recent-comments |
widget_theysaidso_widget |
wpjobportal_do_activation_redirect |
Browser metrics Passed 4 tests
A check of browser resources used by WP Job Portal - A Complete Job Board
This plugin renders optimally with no browser resource issues detected
Page | Nodes | Memory (MB) | Script (ms) | Layout (ms) |
---|---|---|---|---|
Home / | 3,077 ▲326 | 13.94 ▼0.77 | 10.89 ▲9.28 | 25.34 ▼18.88 |
Dashboard /wp-admin | 2,364 ▲186 | 5.85 ▲0.22 | 85.55 ▼31.56 | 96.22 ▲45.08 |
Posts /wp-admin/edit.php | 2,167 ▲67 | 2.01 ▼0.05 | 38.91 ▲3.13 | 37.21 ▲3.74 |
Add New Post /wp-admin/post-new.php | 17,900 ▲16,374 | 24.10 ▲0.88 | 1,206.43 ▲520.38 | 42.97 ▼17.37 |
Media Library /wp-admin/upload.php | 1,451 ▲48 | 4.16 ▲0.00 | 98.37 ▲1.39 | 68.40 ▲23.92 |
Email Templates Options /wp-admin/admin.php?page=wpjobportal_emailtemplatestatus | 2,335 | 2.39 | 41.07 | 67.92 |
WP Job Portal Slug /wp-admin/admin.php?page=wpjobportal_slug | 2,218 | 2.39 | 43.01 | 79.40 |
Experience /wp-admin/admin.php?page=wpjobportal_experience | 855 | 2.29 | 26.67 | 22.31 |
Salary Range /wp-admin/admin.php?page=wpjobportal_salaryrange | 855 | 2.23 | 24.48 | 25.08 |
Messages /wp-admin/admin.php?page=wpjobportal&wpjobportallt=profeatures | 2,482 | 2.37 | 39.89 | 117.33 |
Cover Letters /wp-admin/admin.php?page=wpjobportal_coverletter | 855 | 2.23 | 23.94 | 25.31 |
Premium Addon /wp-admin/admin.php?page=message | 830 | 2.00 | 22.99 | 25.12 |
States /wp-admin/admin.php?page=wpjobportal_state | 1,975 | 2.37 | 43.01 | 70.02 |
Premium Addon /wp-admin/admin.php?page=addressdata | 836 | 2.00 | 22.72 | 22.28 |
Salary Range Types /wp-admin/admin.php?page=wpjobportal_salaryrangetype | 2,219 | 2.79 | 48.21 | 86.15 |
Uninstaller [IO: ▲0.00MB] [DB: ▲0.01MB] 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 plugin did not uninstall successfully, leaving 1 table in the database
- wp_wj_portal_departments
- This plugin does not fully uninstall, leaving 9 options in the database
- widget_recent-posts
- can_compress_scripts
- wpjobportal_do_activation_redirect
- _wpjsjp_session_
- widget_theysaidso_widget
- theysaidso_admin_options
- widget_wpjobportaljobssearchjobs_widget
- db_upgraded
- widget_recent-comments
Smoke tests 0% from 4 tests
Server-side errors 0% from 1 test
🔹 Test weight: 20 | A shallow check that no server-side errors were triggered
Smoke test failed, please fix the following
- > GET request to /wp-admin/admin.php?page=wpjobportal_coverletter
- > Notice in wp-content/plugins/wp-job-portal/includes/includer.php+348
Undefined variable: file_path
- 2 occurences, only the last one shown
- > GET request to /wp-admin/admin.php?page=addressdata
- > Warning in wp-includes/class-wp-hook.php+310
call_user_func_array() expects parameter 1 to be a valid callback, class 'wpjobportaladmin' does not have a method 'showMissingAddonPage'
- 2 occurences, only the last one shown
- > GET request to /wp-admin/admin.php?page=wpjobportal_state
- > Notice in wp-content/plugins/wp-job-portal/modules/state/tmpl/views/filter.php+9
Undefined index: filter
- 2 occurences, only the last one shown
- > GET request to /wp-admin/admin.php?page=wpjobportal_state
- > Notice in wp-content/plugins/wp-job-portal/modules/state/tmpl/views/filter.php+9
Trying to access array offset on value of type null
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
Please fix the following items
- 445× GET requests to PHP files return non-empty strings (only 10 are shown):
- > /wp-content/plugins/wp-job-portal/modules/job/tmpl/views/admin/filter.php
- > /wp-content/plugins/wp-job-portal/modules/state/tmpl/admin_formstate.php
- > /wp-content/plugins/wp-job-portal/modules/user/tmpl/backups/admin_userstate_resumes.php
- > /wp-content/plugins/wp-job-portal/includes/tables/systemerror.php
- > /wp-content/plugins/wp-job-portal/modules/emailtemplate/controller.php
- > /wp-content/plugins/wp-job-portal/modules/fieldordering/tmpl/admin_searchfields.php
- > /wp-content/plugins/wp-job-portal/modules/customfield/model.php
- > /wp-content/plugins/wp-job-portal/modules/jobseeker/tmpl/mystats.php
- > /wp-content/plugins/wp-job-portal/modules/resume/tmpl/resumebycategory.php
- > /wp-content/plugins/wp-job-portal/includes/tables/emailtemplateconfig.php
- 5× PHP files trigger errors when accessed directly with GET requests:
- > PHP Warning
Use of undefined constant WPJOBPORTAL_SALARY_NEGOTIABLE - assumed 'WPJOBPORTAL_SALARY_NEGOTIABLE' (this will throw an Error in a future version of PHP) in wp-content/plugins/wp-job-portal/modules/jobsearch/tmpl/salary-field.php on line 7
- > PHP Fatal error
Uncaught Error: Call to undefined function wp_enqueue_script() in wp-content/plugins/wp-job-portal/modules/postinstallation/tmpl/admin_stepfour.php:3
- > PHP Fatal error
Uncaught Error: Call to undefined function get_option() in wp-content/plugins/wp-job-portal/modules/city/tmpl/views/form-field.php:5
- > PHP Warning
Use of undefined constant WPJOBPORTAL_PLUGIN_URL - assumed 'WPJOBPORTAL_PLUGIN_URL' (this will throw an Error in a future version of PHP) in wp-content/plugins/wp-job-portal/modules/postinstallation/tmpl/admin_stepfour.php on line 1
- > PHP Fatal error
Uncaught Error: Call to undefined function esc_html() in wp-content/plugins/wp-job-portal/modules/jobsearch/tmpl/salary-field.php:7
- > PHP Warning
User-side errors 0% from 1 test
🔹 Test weight: 20 | Just a short smoke test targeting errors on the browser (console and network errors and warnings)
Please take a look at the following user-side issues
- > GET request to /wp-admin/admin.php?page=wpjobportal&wpjobportallt=profeatures
- > Network (severe)
wp-content/plugins/wp-job-portal/includes/images/back-icon.png - Failed to load resource: the server responded with a status of 404 (Not Found)
- > GET request to /wp-admin/admin.php?page=wpjobportal&wpjobportallt=profeatures
- > Network (severe)
wp-content/plugins/wp-job-portal/includes/images/pro/buy-now.png - Failed to load resource: the server responded with a status of 404 (Not Found)
- > GET request to /wp-admin/admin.php?page=wpjobportal&wpjobportallt=profeatures
- > Network (severe)
wp-content/plugins/wp-job-portal/includes/images/pro/image-1.png - Failed to load resource: the server responded with a status of 404 (Not Found)
- > GET request to /wp-admin/admin.php?page=wpjobportal&wpjobportallt=profeatures
- > Network (severe)
wp-content/plugins/wp-job-portal/includes/images/pro/add-job.png - Failed to load resource: the server responded with a status of 404 (Not Found)
- > GET request to /wp-admin/admin.php?page=wpjobportal&wpjobportallt=profeatures
- > Network (severe)
wp-content/plugins/wp-job-portal/includes/images/pro/gold-feature.png - Failed to load resource: the server responded with a status of 404 (Not Found)
- > GET request to /wp-admin/admin.php?page=wpjobportal&wpjobportallt=profeatures
- > Network (severe)
wp-content/plugins/wp-job-portal/includes/images/pro/tell-friend.png - Failed to load resource: the server responded with a status of 404 (Not Found)
- > GET request to /wp-admin/admin.php?page=wpjobportal&wpjobportallt=profeatures
- > Network (severe)
wp-content/plugins/wp-job-portal/includes/images/pro/message.png - Failed to load resource: the server responded with a status of 404 (Not Found)
- > GET request to /wp-admin/admin.php?page=wpjobportal&wpjobportallt=profeatures
- > Network (severe)
wp-content/plugins/wp-job-portal/includes/images/pro/themes.png - Failed to load resource: the server responded with a status of 404 (Not Found)
- > GET request to /wp-admin/admin.php?page=wpjobportal&wpjobportallt=profeatures
- > Network (severe)
wp-content/plugins/wp-job-portal/includes/images/pro/credits-log.png - Failed to load resource: the server responded with a status of 404 (Not Found)
- > GET request to /wp-admin/admin.php?page=wpjobportal&wpjobportallt=profeatures
- > Network (severe)
wp-content/plugins/wp-job-portal/includes/images/pro/multi-credits.png - Failed to load resource: the server responded with a status of 404 (Not Found)
- > GET request to /wp-admin/admin.php?page=wpjobportal&wpjobportallt=profeatures
- > Network (severe)
wp-content/plugins/wp-job-portal/includes/images/pro/view-resume-detials.png - Failed to load resource: the server responded with a status of 404 (Not Found)
- > GET request to /wp-admin/admin.php?page=wpjobportal&wpjobportallt=profeatures
- > Network (severe)
wp-content/plugins/wp-job-portal/includes/images/pro/add-resume.png - Failed to load resource: the server responded with a status of 404 (Not Found)
- > GET request to /wp-admin/admin.php?page=wpjobportal&wpjobportallt=profeatures
- > Network (severe)
wp-content/plugins/wp-job-portal/includes/images/pro/credits.png - Failed to load resource: the server responded with a status of 404 (Not Found)
- > GET request to /wp-admin/admin.php?page=wpjobportal&wpjobportallt=profeatures
- > Network (severe)
wp-content/plugins/wp-job-portal/includes/images/pro/in.png - Failed to load resource: the server responded with a status of 404 (Not Found)
- > GET request to /wp-admin/admin.php?page=wpjobportal&wpjobportallt=profeatures
- > Network (severe)
wp-content/plugins/wp-job-portal/includes/images/pro/suggets-jobs.png - Failed to load resource: the server responded with a status of 404 (Not Found)
- > GET request to /wp-admin/admin.php?page=wpjobportal&wpjobportallt=profeatures
- > Network (severe)
wp-content/plugins/wp-job-portal/includes/images/pro/apply-social.png - Failed to load resource: the server responded with a status of 404 (Not Found)
- > GET request to /wp-admin/admin.php?page=wpjobportal&wpjobportallt=profeatures
- > Network (severe)
wp-content/plugins/wp-job-portal/includes/images/pro/facebook.png - Failed to load resource: the server responded with a status of 404 (Not Found)
- > GET request to /wp-admin/admin.php?page=wpjobportal&wpjobportallt=profeatures
- > Network (severe)
wp-content/plugins/wp-job-portal/includes/images/pro/xing.png - Failed to load resource: the server responded with a status of 404 (Not Found)
- > GET request to /wp-admin/admin.php?page=wpjobportal&wpjobportallt=profeatures
- > Network (severe)
wp-content/plugins/wp-job-portal/includes/images/pro/login-social.png - Failed to load resource: the server responded with a status of 404 (Not Found)
- > GET request to /wp-admin/admin.php?page=wpjobportal&wpjobportallt=profeatures
- > Network (severe)
wp-content/plugins/wp-job-portal/includes/images/pro/tags.png - Failed to load resource: the server responded with a status of 404 (Not Found)
- > GET request to /wp-admin/admin.php?page=wpjobportal&wpjobportallt=profeatures
- > Network (severe)
wp-content/plugins/wp-job-portal/includes/images/pro/applied-jobs.png - Failed to load resource: the server responded with a status of 404 (Not Found)
- > GET request to /wp-admin/admin.php?page=wpjobportal&wpjobportallt=profeatures
- > Network (severe)
wp-content/plugins/wp-job-portal/includes/images/pro/job-alert.png - Failed to load resource: the server responded with a status of 404 (Not Found)
- > GET request to /wp-admin/admin.php?page=wpjobportal&wpjobportallt=profeatures
- > Network (severe)
wp-content/plugins/wp-job-portal/includes/images/pro/custom-fields.png - Failed to load resource: the server responded with a status of 404 (Not Found)
- > GET request to /wp-admin/admin.php?page=wpjobportal&wpjobportallt=profeatures
- > Network (severe)
wp-content/plugins/wp-job-portal/includes/images/pro/career-bulider.png - Failed to load resource: the server responded with a status of 404 (Not Found)
- > GET request to /wp-admin/admin.php?page=wpjobportal&wpjobportallt=profeatures
- > Network (severe)
wp-content/plugins/wp-job-portal/includes/images/pro/indeed.png - Failed to load resource: the server responded with a status of 404 (Not Found)
- > GET request to /wp-admin/admin.php?page=wpjobportal&wpjobportallt=profeatures
- > Network (severe)
wp-content/plugins/wp-job-portal/includes/images/pro/notifications.png - Failed to load resource: the server responded with a status of 404 (Not Found)
- > GET request to /wp-admin/admin.php?page=wpjobportal&wpjobportallt=profeatures
- > Network (severe)
wp-content/plugins/wp-job-portal/includes/images/pro/paypal.png - Failed to load resource: the server responded with a status of 404 (Not Found)
- > GET request to /wp-admin/admin.php?page=wpjobportal&wpjobportallt=profeatures
- > Network (severe)
wp-content/plugins/wp-job-portal/includes/images/pro/woo.png - Failed to load resource: the server responded with a status of 404 (Not Found)
Optimizations
Plugin configuration 90% from 29 tests
readme.txt 88% from 16 tests
You should put a lot of thought into formatting readme.txt as it is used by WordPress.org to prepare the public listing of your plugin
Attributes that need to be fixed:
- Screenshots: Add a description for screenshot #21 in wp-job-portal/assets to your readme.txt
- Tags: Please delete some tags, you are using 28 tag instead of maximum 10
wp-job-portal/wp-job-portal.php 92% from 13 tests
"WP Job Portal - A Complete Job Board" version 2.0.7's main PHP file describes plugin functionality and also serves as the entry point to any WordPress functionality
Please take the time to fix the following:
- Description: Please don't use more than 140 characters for the plugin description (currently 142 characters long)
Code Analysis 97% from 3 tests
File types Passed 1 test
🔸 Test weight: 35 | A short review of files and their extensions; it is not recommended to include executable files
Good job! No executable or dangerous file extensions detected198,252 lines of code in 528 files:
Language | Files | Blank lines | Comment lines | Lines of code |
---|---|---|---|---|
PO File | 17 | 50,840 | 0 | 103,081 |
PHP | 436 | 5,850 | 9,747 | 80,923 |
CSS | 24 | 508 | 851 | 5,887 |
JavaScript | 19 | 438 | 572 | 4,822 |
SVG | 2 | 0 | 0 | 2,959 |
JSON | 1 | 69 | 0 | 496 |
SQL | 27 | 61 | 0 | 82 |
HTML | 2 | 0 | 0 | 2 |
PHP code 50% from 2 tests
A brief analysis of cyclomatic complexity and code structure for this plugin
These items need your attention
- Cyclomatic complexity of methods should be reduced to less than 100 (currently 190)
Cyclomatic complexity | |
---|---|
Average complexity per logical line of code | 0.36 |
Average class complexity | 63.63 |
▷ Minimum class complexity | 1.00 |
▷ Maximum class complexity | 816.00 |
Average method complexity | 6.79 |
▷ Minimum method complexity | 1.00 |
▷ Maximum method complexity | 190.00 |
Code structure | ||
---|---|---|
Namespaces | 0 | |
Interfaces | 0 | |
Traits | 0 | |
Classes | 142 | |
▷ Abstract classes | 0 | 0.00% |
▷ Concrete classes | 142 | 100.00% |
▷ Final classes | 0 | 0.00% |
Methods | 1,536 | |
▷ Static methods | 127 | 8.27% |
▷ Public methods | 1,496 | 97.40% |
▷ Protected methods | 3 | 0.20% |
▷ Private methods | 37 | 2.41% |
Functions | 80 | |
▷ Named functions | 78 | 97.50% |
▷ Anonymous functions | 2 | 2.50% |
Constants | 93 | |
▷ Global constants | 90 | 96.77% |
▷ Class constants | 3 | 3.23% |
▷ Public constants | 3 | 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
475 compressed PNG files occupy 1.16MB
Potential savings
Compression of 5 random PNG files using pngquant | |||
---|---|---|---|
File | Size - original | Size - compressed | Savings |
includes/images/add-on-list/featured-job.png | 3.27KB | 3.27KB | 0.00% |
includes/images/control_panel/dashboard/edit.png | 0.34KB | 0.32KB | ▼ 6.10% |
includes/images/colorpicker_overlay.png | 8.25KB | 8.23KB | 0.23% |
includes/images/colorpicker_hex.png | 0.34KB | 0.32KB | ▼ 4.65% |
includes/images/control_panel/admin-widgets/companies-2.png | 0.80KB | 0.76KB | ▼ 5.60% |