WP Statistics – Simple, privacy-friendly Google Analytics alternative

Get website traffic insights with GDPR/CCPA compliant, privacy-friendly analytics. Includes visitor data, stunning graphs, and no data sharing.

v14.16.8VeronaLabsUpdated Added 600k+ installs82% rating93% support resolved
25
Score
610
Errors
2,465
Warnings
+0
Change

Category Scores

Security0
Repo100
Performance98
Maintainability0

Issues to Review

Prioritized issue groups from the latest Plugin Check scan

3,075 findings

Maintainability

2,085

11 issue groups

Security

887

12 issue groups

I18n

43

2 issue groups

WARNINGMaintainabilityNon Prefixed Variable FoundGlobal variables defined by a theme/plugin should start with the theme/plugin prefix. Found: "$CountryCoordinates".1,234
Category
Maintainability
Occurrences
1,234
Severity
warning

Sample message

Global variables defined by a theme/plugin should start with the theme/plugin prefix. Found: "$CountryCoordinates".

WARNINGMaintainabilityNon Prefixed Namespace FoundNamespaces declared by a theme/plugin should start with the theme/plugin prefix. Found: "WP_STATISTICS".445
Category
Maintainability
Occurrences
445
Severity
warning

Sample message

Namespaces declared by a theme/plugin should start with the theme/plugin prefix. Found: "WP_STATISTICS".

ERRORSecurityOutput Not EscapedAll output should be run through an escaping function (see the Security sections in the WordPress Developer Handbooks), found '$addon['icon']'.189
Category
Security
Occurrences
189
Severity
error

Sample message

All output should be run through an escaping function (see the Security sections in the WordPress Developer Handbooks), found '$addon['icon']'.

ERRORSecurityNot PreparedUse placeholders and $wpdb->prepare(); found !=169
Category
Security
Occurrences
169
Severity
error

Sample message

Use placeholders and $wpdb->prepare(); found !=

WARNINGMaintainabilityNon Prefixed Hookname FoundHook names invoked by a theme/plugin should start with the theme/plugin prefix. Found: "https_local_ssl_verify".147
Category
Maintainability
Occurrences
147
Severity
warning

Sample message

Hook names invoked by a theme/plugin should start with the theme/plugin prefix. Found: "https_local_ssl_verify".

ERRORSecurityException Not EscapedAll output should be run through an escaping function (see the Security sections in the WordPress Developer Handbooks), found '"($statusCode) for $service"'.134
Category
Security
Occurrences
134
Severity
error

Sample message

All output should be run through an escaping function (see the Security sections in the WordPress Developer Handbooks), found '"($statusCode) for $service"'.

WARNINGMaintainabilityDirect QueryUse of a direct database call is discouraged.101
Category
Maintainability
Occurrences
101
Severity
warning

Sample message

Use of a direct database call is discouraged.

WARNINGMaintainabilityNo CachingDirect database call without caching detected. Consider using wp_cache_get() / wp_cache_set() or wp_cache_delete().94
Category
Maintainability
Occurrences
94
Severity
warning

Sample message

Direct database call without caching detected. Consider using wp_cache_get() / wp_cache_set() or wp_cache_delete().

WARNINGSecurityUnescaped DBParameterUnescaped parameter $args['sql'] used in $wpdb->get_results()\n$args['sql'] assigned unsafely at line 310.77
Category
Security
Occurrences
77
Severity
warning

Sample message

Unescaped parameter $args['sql'] used in $wpdb->get_results()\n$args['sql'] assigned unsafely at line 310.

WARNINGSecurityInterpolated Not PreparedUse placeholders and $wpdb->prepare(); found interpolated variable $conditionQuery at "SELECT COUNT(*) FROM {$this->fullName} WHERE $conditionQuery"65
Category
Security
Occurrences
65
Severity
warning

Sample message

Use placeholders and $wpdb->prepare(); found interpolated variable $conditionQuery at "SELECT COUNT(*) FROM {$this->fullName} WHERE $conditionQuery"

Show 15 more
WARNINGSecurityRecommended65
Category
Security
Occurrences
65
Severity
warning

Sample message

Processing form data without nonce verification.

WARNINGSecurityMissing Unslash56
Category
Security
Occurrences
56
Severity
warning

Sample message

$_GET[$dynamicAssetKey] not unslashed before sanitization. Use wp_unslash() or similar

ERRORSecurityUnescaped DBParameter45
Category
Security
Occurrences
45
Severity
error

Sample message

Unescaped parameter $columns used in $wpdb->get_row()\n$columns assigned unsafely at line 93.

WARNINGSecurityMissing40
Category
Security
Occurrences
40
Severity
warning

Sample message

Processing form data without nonce verification.

WARNINGSecurityInput Not Sanitized32
Category
Security
Occurrences
32
Severity
warning

Sample message

Detected usage of a non-sanitized input variable: $_GET['current_page']

ERRORI18nNon Singular String Literal Text25
Category
I18n
Occurrences
25
Severity
error

Sample message

The $text parameter must be a single text string literal. Found: $name

WARNINGMaintainabilityNon Prefixed Function Found23
Category
Maintainability
Occurrences
23
Severity
warning

Sample message

Functions declared in the global namespace by a theme/plugin should start with the theme/plugin prefix. Found: "WP_Statistics".

WARNINGMaintainabilityDynamic Hookname Found19
Category
Maintainability
Occurrences
19
Severity
warning

Sample message

Hook names invoked by a theme/plugin should start with the theme/plugin prefix. Found: "$hookName".

WARNINGI18nNo Html Wrapped Strings18
Category
I18n
Occurrences
18
Severity
warning

Sample message

Translatable string should not be wrapped in HTML. Found: '<b>Hints on Capabilities:</b>'

WARNINGSecurityInput Not Validated9
Category
Security
Occurrences
9
Severity
warning

Sample message

Detected usage of a possibly undefined superglobal array index: $_GET['name']. Check that the array index exists before using it.

WARNINGMaintainabilityNon Prefixed Class Found8
Category
Maintainability
Occurrences
8
Severity
warning

Sample message

Classes declared by a theme/plugin should start with the theme/plugin prefix. Found: "ExportData".

WARNINGMaintainabilityNon Prefixed Constant Found6
Category
Maintainability
Occurrences
6
Severity
warning

Sample message

Global constants defined by a theme/plugin should start with the theme/plugin prefix. Found: "WP_STATISTICS_DIR".

WARNINGSecuritywp redirect wp redirect6
Category
Security
Occurrences
6
Severity
warning

Sample message

wp_redirect() found. Using wp_safe_redirect(), along with the "allowed_redirect_hosts" filter if needed, can help avoid any chances of malicious redirects within code. It is also important to remember to call exit() after a redirect so that no other unwanted code is executed.

WARNINGMaintainabilityDiscouraged4
Category
Maintainability
Occurrences
4
Severity
warning

Sample message

The use of function ini_set() is discouraged

ERRORMaintainabilityfile system operations fclose4
Category
Maintainability
Occurrences
4
Severity
error

Sample message

File operations should use WP_Filesystem methods instead of direct PHP filesystem calls. Found: fclose().

Score History

First score snapshot

v14.16.8

25

Latest

Findings
3,075
Errors
610
Warnings
2,465
Check
2.0.0

Related Plugins

Machete

7k+ active installs

99
Search Analytics for WP

3k+ active installs

99
Web Worker Offloading

10k+ active installs

99
98
Google Tag Manager

10k+ active installs

98