A simple, yet powerful WordPress analytics plugin that gives you privacy-friendly stats to grow your website. A Google Analytics alternative.
Category Scores
Top Issues by Category
maintainability2,050
security1,268
Issues Details
3,441 issues found in latest scan
Global variables defined by a theme/plugin should start with the theme/plugin prefix. Found: "$account_addon_ids".
All output should be run through an escaping function (see the Security sections in the WordPress Developer Handbooks), found '" <a href='{$skip_url}' class='button button-small button-secondary'>{$use_plugin_anonymously_text}</a>"'.
Use placeholders and $wpdb->prepare(); found interpolated variable {$campaign_urls_table} at "CREATE TABLE {$campaign_urls_table} (\n campaign_url_id bigint(20) UNSIGNED AUTO_INCREMENT,\n path varchar(2048), \n utm_source varchar(2048) NOT NULL, \n utm_medium varchar(2048) NOT NULL,\n utm_campaign varchar(2048) NOT NULL,\n utm_term varchar(2048),\n utm_content varchar(2048),\n created_at datetime NOT NULL,\n PRIMARY KEY (campaign_url_id)\n ) {$charset_collate}"
PHP file should prevent direct access. Add a check like: if ( ! defined( 'ABSPATH' ) ) exit;
Direct database call without caching detected. Consider using wp_cache_get() / wp_cache_set() or wp_cache_delete().
Functions declared in the global namespace by a theme/plugin should start with the theme/plugin prefix. Found: "_fs_text".
Unescaped parameter $campaign_urls_table used in $wpdb->get_results()\n$campaign_urls_table assigned unsafely at line 87.
Attempting a database schema change is discouraged.
No PHP code was found in this file and short open tags are not allowed by this install of PHP. This file may be using short open tags but PHP does not allow them.
Classes declared by a theme/plugin should start with the theme/plugin prefix. Found: "Cache".
$_GET[$field] not unslashed before sanitization. Use wp_unslash() or similar
error_log() found. Debug code should not normally be used in production.
A function call to __() with texts containing placeholders was found, but was not accompanied by a "translators:" comment on the line above to clarify the meaning of the placeholders.
Processing form data without nonce verification.
Processing form data without nonce verification.
Global constants defined by a theme/plugin should start with the theme/plugin prefix. Found: "FS_API__ADDRESS".
Detected usage of a non-sanitized input variable: $_GET[$field]
Unescaped parameter $cities_tables used in $wpdb->query()\n$cities_tables assigned unsafely at line 75.
All output should be run through an escaping function (see the Security sections in the WordPress Developer Handbooks), found '$message'.
unlink() is discouraged. Use wp_delete_file() to delete a file.
In footer ($in_footer) is not set explicitly wp_enqueue_script; It is recommended to load scripts in the footer. Please set this value to `true` to load it in the footer, or explicitly `false` if it should be loaded in the header.
Hook names invoked by a theme/plugin should start with the theme/plugin prefix. Found: "fs_plugins_api".
| Code | Type | Message | Count |
|---|---|---|---|
| WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedVariableFound | WARNING | Global variables defined by a theme/plugin should start with the theme/plugin prefix. Found: "$account_addon_ids". | 1,251 |
| WordPress.Security.EscapeOutput.OutputNotEscaped | ERROR | All output should be run through an escaping function (see the Security sections in the WordPress Developer Handbooks), found '" <a href='{$skip_url}' class='button button-small button-secondary'>{$use_plugin_anonymously_text}</a>"'. | 849 |
| WordPress.DB.PreparedSQL.InterpolatedNotPrepared | WARNING | Use placeholders and $wpdb->prepare(); found interpolated variable {$campaign_urls_table} at "CREATE TABLE {$campaign_urls_table} (\n campaign_url_id bigint(20) UNSIGNED AUTO_INCREMENT,\n path varchar(2048), \n utm_source varchar(2048) NOT NULL, \n utm_medium varchar(2048) NOT NULL,\n utm_campaign varchar(2048) NOT NULL,\n utm_term varchar(2048),\n utm_content varchar(2048),\n created_at datetime NOT NULL,\n PRIMARY KEY (campaign_url_id)\n ) {$charset_collate}" | 171 |
| missing_direct_file_access_protection | ERROR | PHP file should prevent direct access. Add a check like: if ( ! defined( 'ABSPATH' ) ) exit; | 160 |
| WordPress.DB.DirectDatabaseQuery.DirectQuery | WARNING | Use of a direct database call is discouraged. | 132 |
| WordPress.DB.DirectDatabaseQuery.NoCaching | WARNING | Direct database call without caching detected. Consider using wp_cache_get() / wp_cache_set() or wp_cache_delete(). | 127 |
| WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedFunctionFound | WARNING | Functions declared in the global namespace by a theme/plugin should start with the theme/plugin prefix. Found: "_fs_text". | 104 |
| PluginCheck.Security.DirectDB.UnescapedDBParameter | WARNING | Unescaped parameter $campaign_urls_table used in $wpdb->get_results()\n$campaign_urls_table assigned unsafely at line 87. | 92 |
| WordPress.DB.DirectDatabaseQuery.SchemaChange | WARNING | Attempting a database schema change is discouraged. | 78 |
| Internal.NoCodeFound | WARNING | No PHP code was found in this file and short open tags are not allowed by this install of PHP. This file may be using short open tags but PHP does not allow them. | 62 |
| WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedClassFound | WARNING | Classes declared by a theme/plugin should start with the theme/plugin prefix. Found: "Cache". | 56 |
| WordPress.Security.ValidatedSanitizedInput.MissingUnslash | WARNING | $_GET[$field] not unslashed before sanitization. Use wp_unslash() or similar | 35 |
| WordPress.PHP.DevelopmentFunctions.error_log_error_log | WARNING | error_log() found. Debug code should not normally be used in production. | 32 |
| WordPress.WP.I18n.MissingTranslatorsComment | ERROR | A function call to __() with texts containing placeholders was found, but was not accompanied by a "translators:" comment on the line above to clarify the meaning of the placeholders. | 30 |
| WordPress.Security.NonceVerification.Missing | WARNING | Processing form data without nonce verification. | 29 |
| WordPress.Security.NonceVerification.Recommended | WARNING | Processing form data without nonce verification. | 28 |
| WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedConstantFound | WARNING | Global constants defined by a theme/plugin should start with the theme/plugin prefix. Found: "FS_API__ADDRESS". | 26 |
| WordPress.Security.ValidatedSanitizedInput.InputNotSanitized | WARNING | Detected usage of a non-sanitized input variable: $_GET[$field] | 25 |
| PluginCheck.Security.DirectDB.UnescapedDBParameter | ERROR | Unescaped parameter $cities_tables used in $wpdb->query()\n$cities_tables assigned unsafely at line 75. | 24 |
| WordPress.WP.I18n.MissingArgDomain | ERROR | Missing $domain parameter in function call to __(). | 18 |
| WordPress.Security.EscapeOutput.ExceptionNotEscaped | ERROR | All output should be run through an escaping function (see the Security sections in the WordPress Developer Handbooks), found '$message'. | 8 |
| WordPress.WP.AlternativeFunctions.unlink_unlink | ERROR | unlink() is discouraged. Use wp_delete_file() to delete a file. | 8 |
| WordPress.WP.EnqueuedResourceParameters.NotInFooter | WARNING | In footer ($in_footer) is not set explicitly wp_enqueue_script; It is recommended to load scripts in the footer. Please set this value to `true` to load it in the footer, or explicitly `false` if it should be loaded in the header. | 8 |
| WordPress.DB.PreparedSQL.NotPrepared | ERROR | Use placeholders and $wpdb->prepare(); found $query | 7 |
| WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedHooknameFound | WARNING | Hook names invoked by a theme/plugin should start with the theme/plugin prefix. Found: "fs_plugins_api". | 6 |
Latest Snapshot
Findings
3,441
Errors
1,148
Warnings
2,293
Score History
First score snapshot
First scan completed Jun 20, 2026
v2.14.10 · Plugin Check 2.0.0 · Model 2026.06-mvp-static-v2
Jun 20, 2026
v2.14.10
25
Latest
- Findings
- 3,441
- Errors
- 1,148
- Warnings
- 2,293
- Plugin Check
- 2.0.0
- Model
- 2026.06-mvp-static-v2
| Scan | Score | Findings | Errors | Warnings | Plugin | Plugin Check | Model |
|---|---|---|---|---|---|---|---|
| Jun 20, 2026Latest | 25 | 3,441 | 1,148 | 2,293 | v2.14.10 | 2.0.0 | 2026.06-mvp-static-v2 |