Skip to content
Home SteadyScore documentation Installation

Installation

SteadyScore installs like any other WordPress plugin. The free version is distributed through the WordPress.org plugin directory; the Pro add-on is distributed as a ZIP from the SteadyPress site after purchase.

System requirements

Requirement Minimum Notes
WordPress 6.5 Tested up to 6.9.
PHP 8.0 The plugin shows an admin notice and refuses to bootstrap on PHP 7.x.
MySQL / MariaDB Whatever WordPress 6.5 supports SteadyScore creates six custom tables via dbDelta().
WP cron or system cron Either works SteadyScore uses Action Scheduler for background work. WP cron is fine for most sites; high-traffic sites should run real cron.
Outbound HTTPS To api.wordpress.org Required for free scoring. Wordfence and SteadyPress endpoints are only contacted under the conditions described in the privacy section.
Disk space < 5 MB The free ZIP is around 620 KB; the Pro ZIP is around 660 KB.
Memory The WordPress default (typically 256 MB) is comfortable Action Scheduler chunks scoring runs so single requests stay light.

SteadyScore is multisite-aware. Settings are stored per-site, not network-wide. The plugin can be network-activated, but each subsite gets its own scoring state.

Installing the free plugin

  1. In your WordPress admin, go to Plugins → Add New.
  2. Search for SteadyScore by SteadyPress.
  3. Click Install Now, then Activate.
  4. Open the SteadyScore menu item that now appears in the admin sidebar.

By uploading the ZIP

  1. Download steadyscore.zip from steadypress.ai or from your WordPress.org listing.
  2. In your WordPress admin, go to Plugins → Add New → Upload Plugin.
  3. Choose the ZIP file and click Install Now.
  4. Click Activate Plugin once the upload completes.

By WP-CLI

wp plugin install steadyscore --activate

Installing the Pro add-on

SteadyScore Pro is delivered as a ZIP after purchase from steadypress.ai.

  1. Buy a Pro plan at https://steadypress.ai/products/steadyscore/.
  2. Log in to your SteadyPress account and download steadyscore-pro.zip. Copy your license key from the same screen.
  3. Deactivate the free plugin if it is currently active.
  4. Upload steadyscore-pro.zip via Plugins → Add New → Upload Plugin and activate it.
  5. Open SteadyScore → Settings, paste your license key into the License key field under the License section, and click Activate.
  6. Once activation succeeds, Pro-gated settings (Source Code Analysis, Monitoring & Alerts, and the Pro data paths) become visible. Pro features start working immediately on the next scoring refresh.

The Pro add-on includes everything the free version does, plus the Pro-only paths. You do not need to keep the free plugin installed alongside Pro — Pro is a superset.

First-run setup

After activation, SteadyScore queues an initial scoring run automatically. On a small site this finishes in under a minute; on a site with 50 or more plugins it may take a few minutes to walk through the wordpress.org API at the built-in rate-limit-friendly pace.

While the initial run is in progress, the dashboard shows a status indicator and partial results. You can keep using WordPress normally — the work happens in the background via Action Scheduler.

Three short tasks worth doing on day one:

  1. Pick a menu location. Under Settings → Display Preferences, choose whether SteadyScore lives as a top-level admin menu item (default) or as a submenu under Plugins.
  2. Decide whether you want vulnerability data. Add a Wordfence Intelligence API key under Settings → Vulnerability Data to fold CVE history into the security factor of your scores. The free plugin makes no calls to Wordfence until a key is saved.
  3. Sort the dashboard the way you want to see it. Set a default sort under Settings → Display Preferences (alphabetical, score ascending, score descending, or by risk tier).

Common install-time issues

"SteadyScore requires PHP 8.0 or higher"

You are on PHP 7.x. Ask your host to upgrade you to PHP 8.0 or newer (8.1, 8.2, and 8.3 are all fine). Most managed hosts now offer PHP 8.x by default; the upgrade typically takes one click in your host's control panel.

Plugin activates but the SteadyScore menu does not appear

The current user does not have the manage_options capability. SteadyScore restricts every screen to administrators. Confirm you are signed in as an Administrator, not as an Editor, Author, or a custom role that lacks manage_options.

Dashboard shows "Scoring in progress" for a long time

Initial scoring waits on Action Scheduler. If your site has no inbound traffic, WP cron events may not fire promptly. Either visit any page on the site to trigger cron, or set up real cron via wp action-scheduler run or a server cron job. See Troubleshooting → Score not refreshing.

Activation fails with a database error

SteadyScore creates six tables on activation. If your database user lacks CREATE TABLE, activation fails. Grant the WordPress database user CREATE, ALTER, and INDEX privileges, then reactivate.

Conflicts with another plugin that loads Action Scheduler

SteadyScore loads Action Scheduler from its own vendored copy via the standard "highest version wins" pattern. If WooCommerce or another Action Scheduler consumer is present, both share the same Action Scheduler instance — there is no conflict. If you see Action Scheduler errors after activating SteadyScore, see Troubleshooting → Action Scheduler issues.

This is a WordPress upload-size limit, not a SteadyScore issue. The free ZIP is around 620 KB and well below default limits, so this typically only appears on very restrictive hosts. Increase upload_max_filesize and post_max_size in php.ini (or ask your host to do it), then retry.

Uninstalling

Deleting SteadyScore through Plugins → Installed Plugins → Delete runs uninstall.php, which:

  • Drops all six SteadyScore tables (wp_steadyscore_plugins, _refreshes, _scores, _vulnerabilities, _data_cache, and _ai_results on Pro).
  • Removes every steadyscore_* option from wp_options.
  • Cancels any pending SteadyScore actions in Action Scheduler.

If you only want to stop scoring temporarily, deactivate rather than delete — deactivation leaves your data in place so it is still there when you reactivate.


Need more help? Contact support.