Speedtest Pro Security & Risk Analysis

wordpress.org/plugins/speedtest-pro

Speedtest Pro analyzes your site's performance with comprehensive server benchmarks and speed testing tools.

30 active installs v1.1.1 PHP + WP 6.2+ Updated Jun 18, 2025
benchmarkpagespeedperformanceserver-performancespeed-test
100
A · Safe
CVEs total0
Unpatched0
Last CVENever
Safety Verdict

Is Speedtest Pro Safe to Use in 2026?

Generally Safe

Score 100/100

Speedtest Pro has no known CVEs and is actively maintained. It's a solid choice for most WordPress installations.

No known CVEs Updated 9mo ago
Risk Assessment

The Speedtest Pro plugin v1.1.1 exhibits a generally strong security posture with commendable adherence to secure coding practices. A very high percentage of its SQL queries utilize prepared statements and output is overwhelmingly properly escaped, indicating a proactive approach to preventing common vulnerabilities like SQL injection and cross-site scripting. The plugin also demonstrates robust use of nonces and capability checks for most of its entry points.

However, there are notable areas of concern. The plugin exposes a significant attack surface with 61 AJAX handlers, and a concerning 11 of these lack any authentication checks. This is further exacerbated by a critical taint analysis finding of one flow with unsanitized paths. While no known CVEs are recorded, this combination of a large unprotected attack surface and a critical taint flow presents a significant risk. The absence of historical vulnerabilities might suggest a lack of previous scrutiny or that potential issues have been mitigated effectively in the past, but the current static analysis findings warrant immediate attention.

In conclusion, Speedtest Pro v1.1.1 shows strengths in core security practices like prepared statements and output escaping. Nevertheless, the presence of unprotected AJAX endpoints and a critical unsanitized path flow represents a serious risk that could be exploited without proper authentication. Addressing these specific points of exposure is paramount for improving the plugin's overall security.

Key Concerns

  • Unprotected AJAX handlers
  • Critical taint flow with unsanitized paths
Vulnerabilities
None known

Speedtest Pro Security Vulnerabilities

No known vulnerabilities — this is a good sign.
Code Analysis
Analyzed Mar 16, 2026

Speedtest Pro Code Analysis

Dangerous Functions
0
Raw SQL Queries
6
73 prepared
Unescaped Output
3
236 escaped
Nonce Checks
51
Capability Checks
26
File Operations
1
External Requests
19
Bundled Libraries
0

SQL Query Safety

92% prepared79 total queries

Output Escaping

99% escaped239 total outputs
Data Flows
1 unsanitized

Data Flow Analysis

8 flows1 with unsanitized paths
ajax_run_scheduled_test (admin\class-wpspeedtestpro-page-speed-testing.php:369)
Source (user input) Sink (dangerous op) Sanitizer Transform Unsanitized Sanitized
Attack Surface
11 unprotected

Speedtest Pro Attack Surface

Entry Points61
Unprotected11

AJAX Handlers 61

authwp_ajax_wpspeedtestpro_get_dashboard_dataadmin\class-wpspeedtestpro-admin.php:240
authwp_ajax_wpspeedtestpro_get_performance_dataadmin\class-wpspeedtestpro-admin.php:241
authwp_ajax_wpspeedtestpro_get_latency_dataadmin\class-wpspeedtestpro-admin.php:242
authwp_ajax_wpspeedtestpro_get_ssl_dataadmin\class-wpspeedtestpro-admin.php:243
authwp_ajax_wpspeedtestpro_get_uptime_dataadmin\class-wpspeedtestpro-admin.php:244
authwp_ajax_wpspeedtestpro_get_pagespeed_dataadmin\class-wpspeedtestpro-admin.php:245
authwp_ajax_wpspeedtestpro_sync_diagnosticsadmin\class-wpspeedtestpro-admin.php:347
authwp_ajax_wpspeedtestpro_get_dashboard_dataadmin\class-wpspeedtestpro-dashboard.php:66
authwp_ajax_wpspeedtestpro_get_performance_dataadmin\class-wpspeedtestpro-dashboard.php:67
authwp_ajax_wpspeedtestpro_get_latency_dataadmin\class-wpspeedtestpro-dashboard.php:68
authwp_ajax_wpspeedtestpro_get_ssl_dataadmin\class-wpspeedtestpro-dashboard.php:69
authwp_ajax_wpspeedtestpro_get_uptime_dataadmin\class-wpspeedtestpro-dashboard.php:70
authwp_ajax_wpspeedtestpro_get_pagespeed_dataadmin\class-wpspeedtestpro-dashboard.php:71
authwp_ajax_wpspeedtestpro_get_advertisersadmin\class-wpspeedtestpro-dashboard.php:72
authwp_ajax_wpspeedtestpro_submit_bug_reportadmin\class-wpspeedtestpro-dashboard.php:435
authwp_ajax_wpspeedtestpro_run_once_testadmin\class-wpspeedtestpro-latency-testing.php:72
authwp_ajax_wpspeedtestpro_start_continuous_testadmin\class-wpspeedtestpro-latency-testing.php:73
authwp_ajax_wpspeedtestpro_stop_continuous_testadmin\class-wpspeedtestpro-latency-testing.php:74
authwp_ajax_wpspeedtestpro_get_continuous_statusadmin\class-wpspeedtestpro-latency-testing.php:75
authwp_ajax_wpspeedtestpro_start_latency_testadmin\class-wpspeedtestpro-latency-testing.php:77
authwp_ajax_wpspeedtestpro_reset_latency_testadmin\class-wpspeedtestpro-latency-testing.php:78
authwp_ajax_wpspeedtestpro_stop_latency_testadmin\class-wpspeedtestpro-latency-testing.php:79
authwp_ajax_wpspeedtestpro_get_latest_resultsadmin\class-wpspeedtestpro-latency-testing.php:80
authwp_ajax_wpspeedtestpro_get_results_for_time_rangeadmin\class-wpspeedtestpro-latency-testing.php:81
authwp_ajax_wpspeedtestpro_delete_all_resultsadmin\class-wpspeedtestpro-latency-testing.php:82
authwp_ajax_wpspeedtestpro_get_next_test_timeadmin\class-wpspeedtestpro-latency-testing.php:83
authwp_ajax_wpspeedtestpro_dismiss_latency_infoadmin\class-wpspeedtestpro-latency-testing.php:84
authwp_ajax_wpspeedtestpro_pagespeed_run_testadmin\class-wpspeedtestpro-page-speed-testing.php:27
authwp_ajax_wpspeedtestpro_pagespeed_get_test_statusadmin\class-wpspeedtestpro-page-speed-testing.php:28
authwp_ajax_wpspeedtestpro_pagespeed_cancel_scheduled_testadmin\class-wpspeedtestpro-page-speed-testing.php:29
authwp_ajax_wpspeedtestpro_pagespeed_delete_old_resultsadmin\class-wpspeedtestpro-page-speed-testing.php:30
authwp_ajax_wpspeedtestpro_pagespeed_get_latest_resultadmin\class-wpspeedtestpro-page-speed-testing.php:31
authwp_ajax_wpspeedtestpro_pagespeed_get_scheduled_testsadmin\class-wpspeedtestpro-page-speed-testing.php:32
authwp_ajax_wpspeedtestpro_pagespeed_get_test_resultsadmin\class-wpspeedtestpro-page-speed-testing.php:33
authwp_ajax_wpspeedtestpro_pagespeed_check_test_statusadmin\class-wpspeedtestpro-page-speed-testing.php:34
authwp_ajax_wpspeedtestpro_pagespeed_run_scheduled_testadmin\class-wpspeedtestpro-page-speed-testing.php:35
authwp_ajax_wpspeedtestpro_pagespeed_check_scheduled_test_statusadmin\class-wpspeedtestpro-page-speed-testing.php:36
authwp_ajax_wpspeedtestpro_pagespeed_get_test_detailsadmin\class-wpspeedtestpro-page-speed-testing.php:37
authwp_ajax_wpspeedtestpro_dismiss_serverinfo_infoadmin\class-wpspeedtestpro-server-information.php:22
authwp_ajax_wpspeedtestpro_performance_toggle_testadmin\class-wpspeedtestpro-server-performance.php:41
authwp_ajax_wpspeedtestpro_performance_run_testadmin\class-wpspeedtestpro-server-performance.php:42
authwp_ajax_wpspeedtestpro_performance_get_resultsadmin\class-wpspeedtestpro-server-performance.php:43
authwp_ajax_wpspeedtestpro_performance_start_continuous_testadmin\class-wpspeedtestpro-server-performance.php:44
authwp_ajax_wpspeedtestpro_performance_stop_continuous_testadmin\class-wpspeedtestpro-server-performance.php:45
authwp_ajax_wpspeedtestpro_performance_get_next_test_timeadmin\class-wpspeedtestpro-server-performance.php:46
authwp_ajax_wpspeedtestpro_dismiss_performance_infoadmin\class-wpspeedtestpro-server-performance.php:47
authwp_ajax_wpspeedtestpro_get_provider_packagesadmin\class-wpspeedtestpro-settings.php:74
authwp_ajax_wpspeedtestpro_get_hosting_providersadmin\class-wpspeedtestpro-settings.php:75
authwp_ajax_wpspeedtestpro_get_gcp_endpointsadmin\class-wpspeedtestpro-settings.php:76
authwp_ajax_wpspeedtestpro_start_ssl_testadmin\class-wpspeedtestpro-ssl-testing.php:62
authwp_ajax_wpspeedtestpro_check_ssl_test_statusadmin\class-wpspeedtestpro-ssl-testing.php:63
authwp_ajax_wpspeedtestpro_dismiss_ssl_infoadmin\class-wpspeedtestpro-ssl-testing.php:64
authwp_ajax_wpspeedtestpro_uptimerobot_get_monitor_dataadmin\class-wpspeedtestpro-uptime-monitoring.php:42
authwp_ajax_wpspeedtestpro_uptimerobot_setup_monitorsadmin\class-wpspeedtestpro-uptime-monitoring.php:43
authwp_ajax_wpspeedtestpro_uptimerobot_delete_monitorsadmin\class-wpspeedtestpro-uptime-monitoring.php:44
authwp_ajax_wpspeedtestpro_uptimerobot_recreate_monitorsadmin\class-wpspeedtestpro-uptime-monitoring.php:45
authwp_ajax_wpspeedtestpro_dismiss_uptime_infoadmin\class-wpspeedtestpro-uptime-monitoring.php:46
authwp_ajax_wpspeedtestpro_save_wizard_settingsadmin\class-wpspeedtestpro-wizard.php:31
authwp_ajax_wpspeedtestpro_get_wizard_dataadmin\class-wpspeedtestpro-wizard.php:32
authwp_ajax_wpspeedtestpro_dismiss_wizardadmin\class-wpspeedtestpro-wizard.php:33
authwp_ajax_wpspeedtestpro_pre_deactivationincludes\class-wpspeedtestpro-deactivator.php:26
WordPress Hooks 48
actionadmin_menuadmin\class-wpspeedtestpro-admin.php:178
actionadmin_enqueue_scriptsadmin\class-wpspeedtestpro-admin.php:179
actionadmin_enqueue_scriptsadmin\class-wpspeedtestpro-admin.php:180
actionadmin_enqueue_scriptsadmin\class-wpspeedtestpro-admin.php:181
actionwpspeedtestpro_sync_dataadmin\class-wpspeedtestpro-admin.php:346
actionadmin_enqueue_scriptsadmin\class-wpspeedtestpro-dashboard.php:74
actionadmin_enqueue_scriptsadmin\class-wpspeedtestpro-dashboard.php:75
actionwpspeedtestpro_hourly_testadmin\class-wpspeedtestpro-latency-testing.php:76
actionadmin_enqueue_scriptsadmin\class-wpspeedtestpro-latency-testing.php:86
actionadmin_enqueue_scriptsadmin\class-wpspeedtestpro-latency-testing.php:87
actiontransition_post_statusadmin\class-wpspeedtestpro-page-speed-testing.php:39
filterheartbeat_receivedadmin\class-wpspeedtestpro-page-speed-testing.php:40
actionadmin_enqueue_scriptsadmin\class-wpspeedtestpro-page-speed-testing.php:43
actionadmin_enqueue_scriptsadmin\class-wpspeedtestpro-page-speed-testing.php:44
actionadd_meta_boxesadmin\class-wpspeedtestpro-page-speed-testing.php:47
actionadmin_enqueue_scriptsadmin\class-wpspeedtestpro-page-speed-testing.php:48
actionwpspeedtestpro_check_scheduled_pagespeed_testsadmin\class-wpspeedtestpro-page-speed-testing.php:51
filtermanage_posts_columnsadmin\class-wpspeedtestpro-page-speed-testing.php:1413
filtermanage_pages_columnsadmin\class-wpspeedtestpro-page-speed-testing.php:1414
actionmanage_posts_custom_columnadmin\class-wpspeedtestpro-page-speed-testing.php:1417
actionmanage_pages_custom_columnadmin\class-wpspeedtestpro-page-speed-testing.php:1418
actionadmin_headadmin\class-wpspeedtestpro-page-speed-testing.php:1421
actionadmin_enqueue_scriptsadmin\class-wpspeedtestpro-page-speed-testing.php:1422
actionadmin_enqueue_scriptsadmin\class-wpspeedtestpro-server-information.php:23
actionadmin_enqueue_scriptsadmin\class-wpspeedtestpro-server-information.php:24
actionwpspeedtestpro_continuous_testadmin\class-wpspeedtestpro-server-performance.php:49
actionadmin_enqueue_scriptsadmin\class-wpspeedtestpro-server-performance.php:50
actionadmin_enqueue_scriptsadmin\class-wpspeedtestpro-server-performance.php:51
actionadmin_initadmin\class-wpspeedtestpro-settings.php:66
actionadmin_enqueue_scriptsadmin\class-wpspeedtestpro-settings.php:67
actionadmin_enqueue_scriptsadmin\class-wpspeedtestpro-settings.php:68
actionadmin_initadmin\class-wpspeedtestpro-settings.php:69
actionadmin_enqueue_scriptsadmin\class-wpspeedtestpro-ssl-testing.php:66
actionadmin_enqueue_scriptsadmin\class-wpspeedtestpro-ssl-testing.php:67
actionadmin_enqueue_scriptsadmin\class-wpspeedtestpro-uptime-monitoring.php:47
actionadmin_enqueue_scriptsadmin\class-wpspeedtestpro-uptime-monitoring.php:48
actionadmin_enqueue_scriptsadmin\class-wpspeedtestpro-wizard.php:26
actionadmin_enqueue_scriptsadmin\class-wpspeedtestpro-wizard.php:27
actionadmin_footeradmin\class-wpspeedtestpro-wizard.php:28
filtercron_schedulesincludes\class-wpspeedtestpro-cron.php:6
actionadmin_enqueue_scriptsincludes\class-wpspeedtestpro-deactivator.php:25
actionplugins_loadedincludes\class-wpspeedtestpro.php:161
actionadmin_menuincludes\class-wpspeedtestpro.php:175
actionadmin_enqueue_scriptsincludes\class-wpspeedtestpro.php:176
actionadmin_enqueue_scriptsincludes\class-wpspeedtestpro.php:177
actionwp_enqueue_scriptsincludes\class-wpspeedtestpro.php:192
actionwp_enqueue_scriptsincludes\class-wpspeedtestpro.php:193
actioninitspeedtest-pro.php:68

Scheduled Events 7

wpspeedtestpro_sync_data
wpspeedtestpro_hourly_test
wpspeedtestpro_cron_hook
wpspeedtestpro_continuous_test
wpspeedtestpro_check_scheduled_pagespeed_tests
wpspeedtestpro_sync_data
wpspeedtestpro_check_scheduled_pagespeed_tests
Maintenance & Trust

Speedtest Pro Maintenance & Trust

Maintenance Signals

WordPress version tested6.8.5
Last updatedJun 18, 2025
PHP min version
Downloads597

Community Trust

Rating100/100
Number of ratings2
Active installs30
Developer Profile

Speedtest Pro Developer Profile

Digital Movement

1 plugin · 30 total installs

94
trust score
Avg Security Score
100/100
Avg Patch Time
30 days
View full developer profile
Detection Fingerprints

How We Detect Speedtest Pro

Patterns used to identify this plugin on WordPress sites during automated security audits and web crawling.

Asset Fingerprints

Asset Paths
/wp-content/plugins/speedtest-pro/admin/css/wpspeedtestpro-admin.css/wp-content/plugins/speedtest-pro/public/css/speedtest-pro.css/wp-content/plugins/speedtest-pro/public/js/speedtest-pro.js/wp-content/plugins/speedtest-pro/admin/js/wpspeedtestpro-admin.js
Script Paths
/wp-content/plugins/speedtest-pro/admin/js/wpspeedtestpro-admin.js/wp-content/plugins/speedtest-pro/public/js/speedtest-pro.js
Version Parameters
speedtest-pro/css/wpspeedtestpro-admin.css?ver=speedtest-pro/css/speedtest-pro.css?ver=speedtest-pro/js/speedtest-pro.js?ver=speedtest-pro/js/wpspeedtestpro-admin.js?ver=

HTML / DOM Fingerprints

CSS Classes
wpspeedtestpro-dashboardspeedtest-pro-admin-wrap
HTML Comments
WP Speedtest Pro Admin Settings StartWP Speedtest Pro Admin Settings End
Data Attributes
data-wpspt-admin-settings
JS Globals
wpspeedtestpro
REST Endpoints
/wp-json/wpspeedtestpro/v1/admin-settings
Shortcode Output
[wpspt_dashboard][wpspt_speedtest]
FAQ

Frequently Asked Questions about Speedtest Pro