Reference

Feature modes

Every plugin feature Static Shield knows about is classified into one of six modes. The mode answers a single question: when a visitor triggers this feature, does the request reach WordPress — and if so, how much of it?

Modes are set per feature, not per plugin. A plugin's overall classification — Full Static, Static + Bridge, Hybrid Supported — is a rollup of its features' modes, not the other way round. You will see them in the Plugins tab, in the Mode column of an expanded component, and in the Override dropdown beside it.

The six modes

Static

No request reaches WordPress.

Fully prerendered at build time and served from disk. No PHP executes, no database query runs, WordPress is never involved. This is the goal state for most page content.

Static Fragment

No request reaches WordPress — one small part resolves in the browser.

The page is static, but one small piece genuinely differs per visitor: a "dynamic island" resolved client-side rather than by a server round-trip.

The core Log In/Out block is the textbook case — its link text and destination depend on the viewer's own login state, which the browser can determine by checking for the WordPress logged-in cookie. Native search behaves the same way once Static Search is on: served from the prebuilt index instead of a live ?s= query.

Shield Bridge

One narrow, approved path reaches WordPress.

An explicitly approved endpoint that does reach WordPress, exposing only the single path the feature needs rather than the whole application. Bridges are rate-limited — 20 requests per minute by default for core features.

Comment submission is one. WP-Cron is another, and a good illustration of why bridges exist at all: WordPress's built-in pseudo-cron only ever runs because a visitor's page load triggers it. On a site where visitors never reach PHP, scheduled events — publishing a future-dated post, subscription renewals, backup jobs — simply stop firing, with no error anywhere.

Dynamic

The full WordPress application is reachable on this path.

The request falls through to WordPress. The feature works exactly as it always did, and the entire WordPress surface is reachable on that path. This is the largest attack surface of the six, and it is used deliberately: when Static Shield cannot safely narrow something, it says Dynamic rather than guessing and quietly breaking the feature.

Private

Reachable, but only by you.

Answers only for an allowlisted admin address or path, via the Admin Access Gateway. The public internet gets nothing. wp-login.php and wp-admin become Private once the gateway is on; so does WP-Cron once offloaded to a real system cron.

Blocked

Refused for everyone.

Nothing serves it, publicly or privately. XML-RPC is the common example — a legacy authentication endpoint frequently targeted for brute-force and amplification, which most sites do not need. Author enumeration via ?author=N is another: it reveals valid usernames for credential-guessing and has no static-site use case.

How modes roll up into a classification

This is the part worth understanding, because it explains why an override changes a plugin's verdict:

ModeCounts asEffect on the plugin's classification
StaticStaticPushes toward Full Static
Static FragmentBridgedPushes toward Static + Bridge
Shield BridgeBridgedPushes toward Static + Bridge
DynamicDynamicPulls down to Hybrid Supported
PrivateResolvedExcluded from the ratio entirely
BlockedResolvedExcluded from the ratio entirely

Two consequences follow from that table, and both surprise people:

There is also a seventh internal mode, Unknown, which is not offered as an override. It means no adapter has classified that feature. Unknown on half or more of a plugin's features makes it Experimental; fewer makes it Partially Supported. Those are the rows highlighted for review.

Ordered by exposure

Least exposed to most:

BlockedPrivateStaticStatic FragmentShield BridgeDynamic

Overriding a mode

The Override dropdown (a Pro feature) lets you set a mode yourself when the adapter's classification is wrong for your site — which is exactly what a low confidence score is telling you to look at.

An override changes how Static Shield treats a feature, not what the feature needs. Forcing something to Static or Blocked because it looks better in the matrix will break it if it genuinely required a live request. And because Private and Blocked are excluded from the classification ratio, that same override also improves the score — so the wrong choice can look like an improvement. Change a mode because you know what the feature does, not because you want a greener row.

After an override, use Shield Preview and the Dynamic Content Scan to confirm the feature still behaves — the preview builds a candidate without touching your live site, which is the safe place to find out you were wrong.