Directory / plugin

Attic — Safe Database Cleanup (Undo-Friendly)

v2.1.1 · by Bishal Shrestha

Fix Site Health's "autoloaded options" warning and clear out junk left by deleted plugins. Quarantined first, undoable for 30 days.

About this plugin

Site Health says “Autoloaded options could affect performance”? Attic shows you exactly what’s causing it, and lets you remove it without risking your site.

Every plugin you’ve ever installed left something behind: oversized options, dead cron jobs, orphaned database tables, stale transients. Deleting the plugin doesn’t delete its data. WordPress loads a lot of that leftover data on every single page request, so years of “uninstalled” plugins quietly slow your site down.

Attic finds it, shows you the evidence, and removes it the undo-friendly way:

  • Nothing is deleted up front. Tables are renamed, options are backed up. Restore anything in one click for 30 days (configurable).
  • Nothing is guessed. Before Attic calls something orphaned, it checks that the owning plugin’s files are really gone and searches your code for any reference to it. Uncertain items stay marked “review”.
  • Nothing changes until you say so. The scan is read-only.

What Attic finds

  • Autoloaded option bloat: oversized options that load on every page, ranked by size against Site Health’s 800 KB limit.
  • Leftovers from deleted plugins: options, tables and cron jobs whose plugin is no longer on disk.
  • Orphaned tables: tables no installed plugin claims, with the megabytes you’d get back.
  • Ghost cron events: scheduled jobs with no code behind them, firing forever and doing nothing.
  • Stranded transients: expired cache rows that never got cleaned up.
  • Orphaned meta: post, comment, user and term meta whose parent row is gone.

Every finding shows its evidence

Which rule fired, which plugin the data belongs to, whether that plugin is still on disk, how many code references were found, and how big it is. A finding you can’t check is a finding you shouldn’t act on.

Who it’s for

  • Site owners who’ve installed and removed a lot of plugins over the years
  • Agencies doing housekeeping on client sites (WP-CLI and scheduled scans included)
  • Anyone whose Site Health page flags autoloaded options and doesn’t know what to do about it

Also included

  • Scheduled scans (daily, weekly or monthly) with an email digest of new and resolved findings
  • Autoload trend chart over your last 10 scans, exportable as PNG or CSV
  • WP-CLI: wp attic scan, wp attic findings, wp attic quarantine
  • Multisite network dashboard with per-site scan status
  • No outbound requests. No CDN, no tracking, no account. Everything runs on your server.

How is this different from WP-Optimize or Advanced Database Cleaner?

Those are established cleanup tools with direct delete/optimize actions. Attic takes a different default: nothing is permanently deleted up front — flagged tables are renamed (wp_attic_quarantined_*) and options are backed up first, with one-click restore inside the purge window (default 30 days, configurable). Permanent removal only happens once a quarantined batch passes the purge window un-restored, or if you purge it yourself on purpose. Attic also checks plugin files on disk and searches your code for references before promoting findings to high confidence, so uncertain items stay at “review.”

WP-CLI commands

Run scans from the command line, across client sites or in CI/CD pipelines:

  • wp attic scan — run a full database audit
  • wp attic findings — list and filter findings
  • wp attic quarantine — manage quarantine batches
  • wp attic status — check plugin status
  • wp attic map status — inspect the bundled attribution map

Attribution Map

A curated map of plugin prefixes to their owning plugin, used to attribute
orphaned data. The map ships with the plugin and is updated with plugin
releases — Attic makes no outbound network requests.

  • wp attic map status — show the bundled map version and entry count
  • Add your own attributions with the attic_prefix_map_entries filter

Third-party libraries

Attic bundles Chart.js 4.4.4 (MIT) at assets/vendor/chart.umd.min.js, used
only to draw the autoload trend chart in the admin. It is served from your own
site. Attic makes no outbound network requests of any kind.

Developer filters

Protecting things from ever being flagged:

  • attic_protected_options — additional never-flag option names
  • attic_protected_cron_hooks — additional never-flag cron hooks
  • attic_protected_tables — additional never-flag tables
  • attic_protected_transients — additional never-flag transient names

Attribution and scanning:

  • attic_prefix_map_entries — add or override attribution map entries
  • attic_prefix_map_path — load the attribution map from a different file
  • attic_reference_scan_roots — where the code search looks; for unusual layouts and custom content directories
  • attic_scan_rules — add or remove detection rules

Behaviour:

  • attic_manage_capability — which capability may scan and quarantine (default manage_options)
  • attic_purge_after_days — override the quarantine purge window
  • attic_tracked_autoload_options — which options usage tracking watches
  • attic_track_autoload_usage — return false to disable usage tracking entirely

Plugin tags