Live on WordPress.orgUtilities

Site Extensions Snapshot

View every installed plugin and theme with status, version and author, then export the lot to CSV in one click. Built for audits, compliance checks and client handovers.

FREE40+ active installs on WordPress.orgv1.1.2

Published in the WordPress.org plugin directory.

Or install it from your WordPress dashboard: go to Plugins, Add New, and search Site Extensions Snapshot.

Why it exists

Documenting what is running on a WordPress site means scrolling the Plugins screen, then the Themes screen, copying names and version numbers by hand into a spreadsheet. It is tedious, and it goes stale the moment anything updates.

Site Extensions Snapshot adds one Tools page that lists every plugin and theme with its status, version, author and description, in a sortable, searchable table, and exports the whole thing to CSV in a single click.

It is not a security scanner

This tells you what is installed and what is out of date. It does not tell you whether any of it is vulnerable, abandoned or safe to run. It makes no external requests at all, so it has nothing to check a plugin against. If that is the question, the free WordPress Plugin Risk Report on this site answers it for a site you can reach over the web.

What it does

Plugins overview with active/inactive status
Themes overview with active/inactive status
Stats cards for total, active, inactive and updates-available, recounted per tab
Filter chips for All, Active, Inactive and Update Available, combined with search
“Update Available” badge on any plugin or theme with a pending update
One-click CSV export covering both tabs, including an Update Available column
Searchable and sortable columns
Keyboard shortcuts for export and tab switching, suspended while you are typing
Version and author for every extension
Read-only: nothing is activated, deactivated or modified
Restricted to users with the manage_options capability
Nonce-verified exports, sanitised input, escaped output
Zero external requests

Why it matters

An inventory is only worth having if it is accurate at the moment you need it, and a spreadsheet stops being accurate the first time anything auto-updates. The point of reading it out of WordPress on demand is that there is no copy to go stale: the list is generated from what the site is running when you open the page.

Screenshots

Site Extensions Snapshot — Plugins tab

Plugins tab

Every installed plugin with status, version, author and description in one sortable table.

Site Extensions Snapshot — Themes tab

Themes tab

The same layout for themes, active versus inactive at a glance.

How it works

The plugin adds a single page under Tools. Opening it reads the plugin and theme data WordPress already holds in memory for the current request, joins it against the update transients core maintains, and renders both sets as tables. There is no scan, no cron job and no stored index, which is why the numbers cannot drift out of step with the site.

Active state is resolved with is_plugin_active() rather than by comparing against the active_plugins option directly. On a multisite install those two answers differ: a plugin can be network-activated and therefore genuinely running on a site whose own option does not list it. Reading the option alone reports it inactive, which is the wrong answer on exactly the installs most likely to need an audit.

The plugin and theme lists are cached for the length of the request, because the stats cards, the filter chips and the table body all need the same data. The sortable-table JavaScript is scoped to this screen's own table, so it cannot reorder an unrelated list table elsewhere in wp-admin.

What the CSV contains, per row:

  • Name, as WordPress reports it from the plugin or theme header
  • Type, so plugins and themes stay distinguishable once the two tabs are in one file
  • Status, active or inactive
  • Version currently installed
  • Update Available, so an audit records what was already behind at the time it was taken
  • Author
  • Description

Requirements and limits

WordPress6.0 or higher (tested to 7.1)
PHP7.4 or higher
  • Licensed GPLv2 or later, and free with no paid tier

What it does not do

Read-only by design. It will not activate, deactivate, update or delete anything, and it deliberately offers no bulk actions. The screen an auditor uses should not be a screen that can change what is being audited.

It reports that an update is available, not what is in it. Release notes, changelogs and diffs are not fetched, because fetching them would mean making external requests and this plugin makes none.

There is no scheduled export, no history and no diff between two points in time. Each export is a snapshot of the moment you pressed the button. Keeping the file is how you get a record.

Installing it and finding the screen

It is in the WordPress.org directory, so the normal route is Plugins, Add New, search for Site Extensions Snapshot, install and activate. To install it by hand instead, upload the site-extensions-snapshot folder to wp-content/plugins/ and activate it from the Plugins menu.

Once active the screen is at Tools › Site Extensions Snapshot. There is no settings page and nothing to configure, which is deliberate: every option this plugin could have offered would be a decision about how to display a list, and the filter chips and column sorting already cover it without persisting anything.

The only thing it writes to the database is a single option recording when it was activated. Deactivating it stops the screen appearing and leaves the site otherwise exactly as it was.

What it is actually used for

The case it was built for is a client handover. The pack needs to state what was running on the day the site changed hands: which plugins, which versions, which were already behind, and which themes were installed but inactive. Doing that by hand means alternating between two admin screens and retyping version numbers, and the result is stale before the document is signed.

The same export answers two other questions. During a compliance or licensing review it is the list of third-party code the site depends on, in a format a spreadsheet opens. And when a support ticket says the site broke after an update, an export taken before the work gives you the versions to compare against, which is usually faster than reading the update history back out of the site.

It is the least interesting plugin we publish, and that is the point. It does one small job completely, makes no network requests, cannot change anything, and has been in the directory since March 2026.

Frequently asked questions

Who can access the Site Extensions Snapshot screen?

Only users with the manage_options capability, which in a standard install means Administrators. The page lives under Tools › Site Extensions Snapshot.

Does it modify my plugins or themes?

No. It is entirely read-only. It reads the plugin and theme data WordPress already holds and displays it in a table. Nothing is activated, deactivated, updated or deleted.

What is in the CSV export?

Each plugin or theme's name, status, version, author and description: enough to drop straight into an audit document or a client handover pack.

Does it send any data anywhere?

No external requests are made at all. The only thing it writes to your database is a single activation timestamp.

Does it work on multisite?

Yes. Active state is resolved with is_plugin_active(), so a network-activated plugin is reported as active on the site you are viewing. Reading the active_plugins option directly would report it inactive, which is wrong on exactly the installs most likely to need an audit. The screen covers the current site rather than rolling up the whole network.

How does it know an update is available?

It reads the update information WordPress core already holds after its own update check. The plugin makes no external requests of its own, so if core has not run its check recently the badge reflects what core last saw rather than what the directory says this second.

Is it really free?

Yes. It is published in the WordPress.org directory under GPLv2 and there is no paid tier.

Get Site Extensions Snapshot

Install it from the WordPress.org directory, or talk to us about adapting it to your site.