X-LiteSpeed-Tag
The HTTP X-LiteSpeed-Tag response header is an unofficial HTTP header carrying cache tags assigned by the LiteSpeed cache engine (LSCache) to a cached response.
Note
The "X-" naming convention for HTTP headers, "X" referring to "experimental", has been deprecated and needs to be transitioned to the formal naming convention for HTTP headers.
Usage
LSCache tags are short identifiers attached to every cached response. Each tag represents a piece of content, a resource type, or a URL contributing to the page. When content changes, the application purges the cache by tag rather than by individual URL. This makes invalidation fast and precise, even on sites with thousands of cached pages.
The tags are set by the application layer, typically through a Caching plugin like the LiteSpeed Cache plugin for WordPress. The plugin maps WordPress objects (posts, pages, taxonomies, static assets) to tags and passes them to the server through this header. LiteSpeed Web Server stores the tag-to-URL associations and uses them to locate and remove stale entries when a purge request arrives.
Values
Tag values are comma-separated strings. The tag format
conventions described below, including the {siteID}_{type}
pattern, the hex site identifier, and named types like post,
Po.{id}, URL.{hash}, are observed patterns from the
LiteSpeed Cache plugin for WordPress. LiteSpeed's official
documentation does not formally specify these naming
conventions.
Content type tags
Tags like post, page, front, home, and product
identify the WordPress content type of the cached response.
A homepage gets a front or home tag, a blog entry gets
post, and a WooCommerce item gets product.
Post ID tags
Tags in the format Po.{id} reference a specific post or
page by its database ID. When a post with ID 544234 is
updated, the application purges all cache entries carrying
the matching Po.544234 tag.
URL tags
Tags in the format URL.{hash} tie a cache entry to a
specific URL path. The hash is derived from the request URI,
giving LSCache a direct link between the cached object and
the URL serving the content.
Resource tags
Minified CSS and JavaScript assets get tags in the format
MIN.{hash}.css or MIN.{hash}.js. Unique CSS optimization
results appear as UCSS.{hash}. These tags allow the cache
to be purged when optimized assets are regenerated.
Privacy scope tags
Tags prefixed with public: belong to the public cache
layer. A companion tag_priv tag marks the entry as having
a private-cache counterpart. This separation lets LSCache
maintain distinct cache copies for logged-in and anonymous
visitors.
Catch-all tag
A bare site ID tag (e.g. a0e_) acts as a catch-all. A
purge targeting this tag clears the entire cache for the
associated site.
Example
A simple response for a 404 page on a LiteSpeed-powered site
carries a single tag identifying the HTTP status. The d0a
prefix is the site identifier, and HTTP.404 marks the
response as a cached 404 error page.
X-LiteSpeed-Tag: d0a_HTTP.404
A WordPress page with post ID 544234 produces a richer tag
set. The front tag marks the page type, Po.544234
identifies the specific post, PGS indicates a static page
context, and guest means the cache entry is for anonymous
visitors. The MIN tags reference optimized CSS and
JavaScript bundles included in the response.
X-LiteSpeed-Tag: 176_front, 176_URL.6666cd76f969564, 176_F, 176_Po.544234, 176_PGS, 176_guest, 176_, 176_MIN.be6669b1090bd42.css, 176_MIN.985f1b0361ccd40.js
When private caching is active, public-layer tags are
prefixed with public: and a tag_priv entry signals
a private cache component exists for the same page.
X-LiteSpeed-Tag: 12e_tag_priv, public:12e_page, public:12e_URL.4a28556c19c4e2f, public:12e_Po.16329, public:12e_PGS, public:12e_guest, public:12e_
Takeaway
The X-LiteSpeed-Tag header exposes the cache tags LSCache assigned to a response. These tags enable tag-based purging, where a single invalidation request removes all cached pages associated with the changed content, without needing to know every affected URL.