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
Plugins → Install 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:
- Remove from
settings/externalRegistryin Firestore. After this step, the admin will not try to load the plugin on next boot — even if the next steps fail. - Delete
/admin/plugins/<id>/on Flexweg viadeleteFolder. 404 silent (already gone is fine). - 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.xmlfor 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):
- Edit
src/mu-plugins/index.tsand remove the plugin's import + entry - Rebuild:
npm run build - Re-deploy the new
dist/admin/to Flexweg
Settings persist in Firestore (you can wipe them manually if desired).