Skip to main content

Uninstalling plugins

Uninstall removes a plugin's bundle from Flexweg and unregisters it from the admin. Two categories matter:

  • External plugins (installed via the Install plugin button) — fully uninstallable via the UI
  • Built-in plugins that aren't bundled by default (only relevant if the admin was built with custom flags) — uninstallable via the same UI
  • Bundled built-ins (core-seo, flexweg-sitemaps, etc.) — bundled with the admin code, cannot be uninstalled, only disabled
  • Must-use plugins — always active, no UI to disable or uninstall

Where the button is

PluginsInstall plugin button → modal shows currently-installed externals → each with an Uninstall button.

What happens when you click Uninstall

The order matters — partial cleanup leaves a recoverable state:

  1. Remove from settings/externalRegistry in Firestore. After this step, the admin will not try to load the plugin on next boot — even if the next steps fail.
  2. Delete /admin/plugins/<id>/ on Flexweg via deleteFolder. 404 silent (already gone is fine).
  3. Unregister from the in-memory external registry. The plugin's filters and actions stop running immediately on subsequent publishes.

A failure at step 2 (e.g. Flexweg unreachable) leaves the bundle on disk but the admin no longer references it — safe to retry by hand later.

What's preserved

  • Plugin settings at settings.pluginConfigs.<id> are NOT deleted. Re-installing the same plugin restores configured behaviour without a re-config step.
  • Files the plugin uploaded to public paths (e.g. /sitemap-index.xml for sitemaps) are NOT deleted. Use Flexweg's file manager to clean them up by hand.
  • Files the plugin injected into pages (e.g. <script> tags from custom-code) keep being served until the affected pages are regenerated. Run Themes → Regenerate site → All HTML pages after uninstalling to flush them out.

Reinstalling

If you want to revert an uninstall, just re-install the same ZIP via the Install plugin button. Settings are preserved (see above), so the plugin comes back configured.

For a clean reinstall (forget all settings), uninstall first, then in Firestore manually delete the settings.pluginConfigs.<id> field, then re-install.

Bundled defaults available

The Install plugin modal has a Bundled defaults available section listing bundled built-in plugins that aren't currently registered. This is mostly relevant for custom admin builds where someone removed a built-in from src/plugins/index.ts. For a stock admin build, the section is empty (every built-in is loaded).

Cannot uninstall the active state

There's no "are you sure" prompt — uninstalls go through immediately. To soft-disable instead of uninstalling:

  • Plugins tab → click Disable on the plugin's card. Settings + files are preserved; the plugin stops running. Re-enabling is one click.

Use Disable when you want to test with the plugin off but keep the option to re-enable it later. Use Uninstall when you're confident you don't want the plugin's code on Flexweg anymore.

Cleaning up after must-use plugins

Must-use plugins can't be uninstalled via the UI. To remove one (very rare — see Must-use overview for why):

  1. Edit src/mu-plugins/index.ts and remove the plugin's import + entry
  2. Rebuild: npm run build
  3. Re-deploy the new dist/admin/ to Flexweg

Settings persist in Firestore (you can wipe them manually if desired).

Continue