Safeguard
Supply Chain•

What goes in an SBOM for a WordPress site?

A WordPress site SBOM should list core, plugins, themes, must-use plugins, drop-ins and Composer libraries with versions and sources. A field guide.

Safeguard Security Team
4 min read

A WordPress site SBOM should list WordPress core, every plugin and theme, must-use plugins, drop-ins and any Composer or JavaScript libraries, each with a name, version and source. A plugin list alone is incomplete, because several kinds of code sit outside the normal Plugins screen.

The layers to include

LayerHow to collect itNotes
CoreThe installed version, checked against WordPress.org with the core checksum commandOne entry per site
PluginsThe WP-CLI list command with JSON outputInclude inactive ones until deleted
ThemesThe matching theme list commandInclude parent and child themes
Must-use pluginsThe list command with the must-use statusNo update notices, so list carefully
Drop-insThe list command with the dropin statusFor example object-cache.php
Composer packagesThe composer.lock fileIncludes transitive packages
Front end librariespackage-lock.json or similarOnly if shipped to production

The WP-CLI handbook confirms the list command reports status values including active, active-network, inactive, must-use and dropin, and optional fields including version and title.

Fields worth recording

For each component: name, version, supplier or author, source (WordPress.org, vendor, custom, Composer), license where known, install status, and the date you last checked. The Plugin Handbook header fields include License and Version, which you can read from the main plugin file.

How to build it

  1. Export core, plugin, theme, must-use and drop-in lists for each site.
  2. Add the Composer lock file if the project uses one.
  3. Merge into one CycloneDX or SPDX document, or a clean spreadsheet if a formal format is not required.
  4. Store it with the date and the site name.
  5. Refresh on every deploy or at least weekly.

What it will miss

Libraries bundled inside a plugin's own folder often do not appear in any manifest. Premium plugins may not give you a changelog. Be honest about gaps in the document itself, with a notes column such as bundled code not enumerated. Our post on what an agency can ask a SaaS supplier for in an SBOM covers asking suppliers.

Who uses it

Clients ask for them in questionnaires, insurers ask about inventories, and your own team needs one the day an advisory lands. See why agencies keep a software inventory.

Where Safeguard fits

Safeguard produces SBOMs and scans dependencies for Composer and other ecosystems, and you can try a free scan at gold.safeguard.sh/scan. Plugin folders without a manifest still need the WP-CLI export above.

Try it yourself

Click through it at your own pace, or open it full screen. See how components, versions and licenses appear in a single inventory.

Keeping it honest

An SBOM that claims completeness it does not have is worse than a partial one. Add a short scope note at the top: which layers were collected, which were not, and how the data was gathered. When a client or insurer reads it, they see what it covers and what to ask next. When an advisory lands, your team knows where to look beyond the document, such as plugin folders with bundled libraries.

Quick check

Do I need a formal SBOM format?

Not always. A consistent table is useful, and CycloneDX or SPDX helps when a client or tool expects one.

Should inactive plugins be listed?

Yes, until they are deleted, since their files are still on the server.

Sources

Last reviewed: 19 October 2026.

Never miss an update

Weekly insights on software supply chain security, delivered to your inbox.

Self-healing security runs on Safeguard.

Your first fix PR is minutes away.

No sales call required, even your agent can complete the purchase over MCP.