Independent Analytics – WordPress Analytics Plugin

A simple, yet powerful WordPress analytics plugin that gives you privacy-friendly stats to grow your website. A Google Analytics alternative.

v2.14.10Ben SibleyUpdated 2026-05-19Added May 31, 2022100k+ installs96% rating100% support resolved
25
Score
1,148
Errors
2,293
Warnings
+0
Change

Category Scores

Security0
Repo100
Performance98
Maintainability0

Top Issues by Category

maintainability2,050
security1,268
i18n48

Issues Details

3,441 issues found in latest scan

WARNING1,251
WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedVariableFound

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

ERROR849
WordPress.Security.EscapeOutput.OutputNotEscaped

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>"'.

WARNING171
WordPress.DB.PreparedSQL.InterpolatedNotPrepared

Use placeholders and $wpdb-&gt;prepare(); found interpolated variable {$campaign_urls_table} at &quot;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}&quot;

ERROR160
missing_direct_file_access_protection

PHP file should prevent direct access. Add a check like: if ( ! defined( 'ABSPATH' ) ) exit;

WARNING132
WordPress.DB.DirectDatabaseQuery.DirectQuery

Use of a direct database call is discouraged.

WARNING127
WordPress.DB.DirectDatabaseQuery.NoCaching

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

WARNING104
WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedFunctionFound

Functions declared in the global namespace by a theme/plugin should start with the theme/plugin prefix. Found: &quot;_fs_text&quot;.

WARNING92
PluginCheck.Security.DirectDB.UnescapedDBParameter

Unescaped parameter $campaign_urls_table used in $wpdb-&gt;get_results()\n$campaign_urls_table assigned unsafely at line 87.

WARNING78
WordPress.DB.DirectDatabaseQuery.SchemaChange

Attempting a database schema change is discouraged.

WARNING62
Internal.NoCodeFound

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.

WARNING56
WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedClassFound

Classes declared by a theme/plugin should start with the theme/plugin prefix. Found: &quot;Cache&quot;.

WARNING35
WordPress.Security.ValidatedSanitizedInput.MissingUnslash

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

WARNING32
WordPress.PHP.DevelopmentFunctions.error_log_error_log

error_log() found. Debug code should not normally be used in production.

ERROR30
WordPress.WP.I18n.MissingTranslatorsComment

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.

WARNING29
WordPress.Security.NonceVerification.Missing

Processing form data without nonce verification.

WARNING28
WordPress.Security.NonceVerification.Recommended

Processing form data without nonce verification.

WARNING26
WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedConstantFound

Global constants defined by a theme/plugin should start with the theme/plugin prefix. Found: &quot;FS_API__ADDRESS&quot;.

WARNING25
WordPress.Security.ValidatedSanitizedInput.InputNotSanitized

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

ERROR24
PluginCheck.Security.DirectDB.UnescapedDBParameter

Unescaped parameter $cities_tables used in $wpdb->query()\n$cities_tables assigned unsafely at line 75.

ERROR18
WordPress.WP.I18n.MissingArgDomain

Missing $domain parameter in function call to __().

ERROR8
WordPress.Security.EscapeOutput.ExceptionNotEscaped

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

ERROR8
WordPress.WP.AlternativeFunctions.unlink_unlink

unlink() is discouraged. Use wp_delete_file() to delete a file.

WARNING8
WordPress.WP.EnqueuedResourceParameters.NotInFooter

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.

ERROR7
WordPress.DB.PreparedSQL.NotPrepared

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

WARNING6
WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedHooknameFound

Hook names invoked by a theme/plugin should start with the theme/plugin prefix. Found: &quot;fs_plugins_api&quot;.

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

Related Plugins