TSO Options & Tables Cleaner

Beschreibung

TSO Options & Tables Cleaner is a database maintenance plugin for WordPress. It helps you clean wp_options, orphan metadata, revisions, and leftover plugin tables, with backups and table optimization.

Features:

  • Current status — Dashboard tab with database size, options/transients summary, autoload highlights, and quick links to cleanup actions
  • General cleanup — Remove expired transients, post revisions, auto-drafts, trashed posts and comments, orphan post/comment/user/term metadata
  • wp_options manager — Browse, search and delete orphan options grouped by plugin, with autoload management and plugin detection for 300+ known plugins
  • Extra tables — Detect and remove tables left by uninstalled plugins (see detection limitations below)
  • Plugin & theme history — Track installation, activation, deactivation and deletion events for plugins and themes
  • Database backup — Export the full database to SQL, download, restore or delete backups stored in wp-content/uploads/tso-options-tables-cleaner/backups/
  • Table optimizer — Run OPTIMIZE TABLE on all fragmented WordPress tables
  • Interface languages — Catalan, Spanish and English UI with per-user language preference
  • Cache-plugin compatible — Compatible with LiteSpeed Cache and other caching plugins

Detection is heuristic, not perfect

WordPress does not record which database table belongs to which plugin. TSO Options & Tables Cleaner infers ownership from table prefixes, plugin folders on disk, install history, and other signals. That works well for many sites, but it cannot be 100% accurate in every case.

You may occasionally see:

  • A table marked as probably orphaned while the plugin is still installed or active (false positive)
  • A leftover table not flagged as orphaned after uninstall (false negative)
  • Recent activity on a table because MySQL metadata was updated (maintenance, repair, or unreliable timestamps on some engines) even though the plugin is gone
  • Unclear ownership for shared prefixes, renamed plugin folders, or custom tables

The plugin is intentionally conservative: when confidence is low, delete actions are blocked and you will see Review only. Always check the plugin list, export SQL before dropping tables, and use manual assignment when the automatic label looks wrong. Never delete a table unless you are sure it is safe for your site.

Privacy Policy

TSO Options & Tables Cleaner does not collect, transmit, or share any personal data with external services.

Data stored locally:

  • Language preference: The administrator’s chosen UI language (Catalan, Spanish or English) is stored in wp_usermeta under the key tso_ui_lang. This data stays on your server and is never transmitted anywhere.
  • Plugin/theme history: A log of plugin and theme events is stored in wp_options under the key tso_plugin_history. This log is optional and can be cleared at any time from the History tab.
  • Database backups: SQL backup files are stored locally in wp-content/uploads/tso-options-tables-cleaner/backups/ and are never uploaded to any external service. They are removed when you uninstall the plugin (download first if you need to keep them).

No external connections: This plugin does not make any HTTP requests to external servers, does not use analytics, and does not track usage of any kind.

Screenshots

Installation

  1. Upload the plugin folder to /wp-content/plugins/
  2. Activate the plugin through the Plugins screen in WordPress
  3. Go to Tools > TSO Options & Tables Cleaner to start cleaning

FAQ

Is it safe to delete options from inactive plugins?

Yes. Options from inactive plugins can be deleted safely. The plugin marks active plugin options with a warning so you can identify them.

Is plugin and table detection always accurate?

No. Detection is heuristic. WordPress does not store a definitive link between each table or option and its plugin. TSO uses prefixes, folder names, history, and other clues. Results are usually helpful, but false positives and false negatives can happen — especially after plugin renames, shared prefixes, stale maps, or unusual custom setups.

Why does a table show as orphaned when the plugin is still active?

Usually because automatic detection matched an outdated path, a label-only prefix map, or conflicting signals. Reload the Extra tables tab after plugin updates. If the label is wrong, use Assign to link the table to the correct plugin, or export SQL and review before deleting anything.

Why is delete blocked for a table that looks orphaned?

Delete is allowed only when status and usage signals both look safe. If MySQL reports recent writes, the plugin folder still exists but is inactive, or ownership is uncertain, the UI shows Review only to reduce the risk of dropping a table still in use. Export the SQL backup and verify manually when in doubt.

Where are the backups stored?

In wp-content/uploads/tso-options-tables-cleaner/backups/. This directory is protected by .htaccess and an index.php to prevent direct access. Files are stored locally and never transmitted to any external service.

What happens to backups when I uninstall the plugin?

Uninstall removes the plugin-owned uploads folder (including SQL backups and options-tab cache). Download any backups you want to keep before deleting the plugin from WordPress.

Does it work with LiteSpeed Cache?

Yes. The plugin sends the appropriate no-cache headers and LiteSpeed Cache API calls to avoid caching the admin interface.

What data does this plugin store?

Only the administrator interface language preference (Catalan, Spanish or English), saved as user meta (tso_ui_lang). No data is sent to external servers.

Rezensionen

Zu diesem Plugin liegen noch keine Rezensionen vor.

Mitwirkende und Entwickler

„TSO Options & Tables Cleaner“ ist Open-Source-Software. Folgende Menschen haben an diesem Plugin mitgewirkt:

Mitwirkende

Änderungsprotokoll

Recent releases only. Older notes are in changelog.txt in the plugin folder.

1.3.6

  • Fix: the auto-drafts cleanup no longer deletes auto-drafts younger than one day, so a post editor left open no longer breaks when its draft is removed
  • Improvement: the Cron tab now updates its list in place (no page reload) right after each scheduled event is due, instead of on a fixed timer
  • Fix: automatic cleanup „Next run“ could show a date far beyond the selected frequency (e.g. 20 days on weekly) because every save pushed it out; saving no longer moves an existing schedule and the next run is realigned to last run + interval
  • Fix: cleaning post revisions / old revisions (and other post deletions) crashed with a critical error caused by an infinite recursion in the cleanup capability filter
  • Security hardening: the wp_options value viewer no longer instantiates PHP objects when unserializing a stored option’s raw value (allowed_classes disabled), reducing object-injection exposure from other plugins‘ data
  • Fix: code-scan index build (option/table detection across installed plugins and themes) could hit „Maximum execution time exceeded“ and fatal out on hosts with a low time limit or slow disk; it now stops within a safe time budget instead of running until the host kills it

1.3.5

  • Admin: day / night / auto UI theme
  • Language: first use now follows the WordPress language installed for that user (Catalan/Spanish/English) instead of always defaulting to Catalan; falls back to English when unsupported
  • Performance: several admin_init/init hooks (options-tab signature, pre-theme-switch snapshot, code-scan cache warm-up, one-time storage/option-map migrations, comment-trash backfill, auto-clean cron migration) now only run on the relevant screen instead of on every wp-admin page or, in two cases, every front-end request
  • Current status tab: new DB size and persistent object-cache indicators, total KB shown for top autoload options, one-click wp_options refresh, and a 7-day „hide this notice“ link on non-urgent findings; fixed a duplicate history read on every load
  • General cleanup tab: removed duplicate COUNT queries — refreshing action counts after a manual run or a retention-days change now reuses the already-computed stats instead of re-querying each action separately

1.3.4

  • Extra tables: fix delete UI when «Allow table deletion» is enabled (instant unlock + sync on reload)
  • Extra tables: correct detection for TSO plugin tables named pluginstso_* (legacy pluginspc_* aliases)
  • Options tab: search matches plugin group names (e.g. «really» finds Really Simple Security); clear ✕ on search field
  • Status tab: recent plugin/theme changes shown in a compact table with action badges
  • Detection audit: path column stacks segments; table fits viewport without forced horizontal scroll
  • Email report: inline CSS only (WordPress.org Plugin Check)
  • Regression tests: auto-clean schedule includes cleanup helpers