TSO Options & Tables Cleaner
TSO Options & Tables Cleaner
Description
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.
Installation
- Upload the plugin folder to /wp-content/plugins/
- Activate the plugin through the Plugins screen in WordPress
- Go to Tools > TSO Options & Tables Cleaner to start cleaning
Faq
Yes. Options from inactive plugins can be deleted safely. The plugin marks active plugin options with a warning so you can identify them.
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.
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.
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.
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.
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.
Yes. The plugin sends the appropriate no-cache headers and LiteSpeed Cache API calls to avoid caching the admin interface.
Only the administrator interface language preference (Catalan, Spanish or English), saved as user meta (tso_ui_lang). No data is sent to external servers.
Reviews
Changelog
Recent releases only. Older notes are in changelog.txt in the plugin folder.
1.4.0
- Fix: wp_options Accions column keeps all row buttons on one line (no wrap, no large empty gap before the actions)
- Fix: Confirmar only appears when there is a real auto-suggested plugin/theme to promote — not on bare “Unconfirmed” rows with no candidate (same rule for extra tables)
- Fix: bare tso_* keys from other TSO plugins are no longer attributed to theme tso-blog via the short token “tso” (history/map); polluted theme map rows are dropped on sanitize
- Improvement: admin buttons use rounded relief styling; day-mode selects keep the chevron; Confirmar and secondary CTAs align with the WordPress admin colour scheme
- Improvement: night-mode text and accent contrast reviewed across tabs; dead admin CSS/PHP paths removed
- Fix: Cron tab EscapeOutput compliance for soft-broken hook names in the UI
1.3.9
- Fix: third-party promo/review notices that use
.notice-success(e.g. Media Cleaner) are no longer treated as first-party and forced visible on the Tools screen; only TSO-marked notices stay shown - Fix: deep-scan / cache info banners no longer use WordPress
.notice-info(white bar + unreadable text in night mode); they use first-party.tso-notice-infowith night-theme contrast - Improvement: night-mode chromatic pass across all tabs — design tokens, readable status labels, and form-control dark accents
- Improvement: primary buttons, active tabs, language chips and accent UI follow the WordPress admin colour scheme (Sunrise, Ocean, Ectoplasm, …), same approach as TSO Link Inspector
1.3.8
- Fix: extra-tables list no longer needs horizontal scrolling to see the action buttons, and the wp_options owner detection now recognizes Jetpack Carousel’s option keys (carousel_display_exif and its siblings) instead of leaving them unconfirmed
- Fix: the “looks uninstalled, safe to delete” notice could wrongly claim a plugin’s folder was gone when it was actually still on the server (get_plugins() was sometimes called before WordPress had loaded it, on top of a stale cached check) — it now re-checks the folder live and shows a caution warning instead of a false all-clear when the folder is still there, and softens the wording (‘probably safe’) since automatic detection is not infallible
- Fix: wp_options owner detection now recognizes WordPress core’s own Connectors API keys (connectors_ai_google_api_key and its siblings, added in WordPress 7.0 for AI provider credentials) as WP Core instead of leaving them unconfirmed




