
Basil is a full-page cache plugin for site owners who want caching decisions to
be explicit and explainable. Its first release is focused on layered cache and
bypass rules, local static HTML files, and a minimal early cache-hit path.
Basil is fail-open: a request that is unmatched, unsafe, expired, corrupt, or
otherwise unsuitable for caching continues through WordPress normally.
Rules may match the entire eligible site, exact public content, public post
types, built-in categories and their descendants, or case-sensitive URL path
globs. Match and exception conditions can be nested with AND and OR groups.
When several rules apply, Basil resolves them deterministically by higher
priority, greater specificity, and then later creation.
Cached anonymous HTML is stored as guarded local files. On a valid warm hit,
the standalone advanced-cache.php drop-in serves the final response before
WordPress or Composer boots. Logged-in, personalized, query-string, private,
non-HTML, and otherwise unsafe responses bypass the cache.
The plugin makes no external requests and collects no telemetry.
Version 1 supports single-site WordPress installations only. It does not edit
cached HTML, optimize HTML/CSS/JavaScript, cache media, warm pages, or use a
remote cache service.
Usage
- Open Basil > Rules and create an explicit cache or bypass rule.
- Choose a numeric priority. A larger number wins before specificity is
considered. - Build the required Match tree and, when needed, an Unless tree.
- Choose Lite, Aggressive, or bounded Custom cache lifetimes for cache rules.
- Save the rule, then request an eligible matching page once to generate it.
- Use Basil > Dashboard to inspect cache health or purge one URL or all pages.
Basil notices use WordPress’s standard close control. Dismissing the recurring
configured-cache confirmation is remembered for the current administrator;
new safety warnings remain independent and visible.
HEAD and conditional ETag requests may consume an existing entry. Only an
eligible anonymous GET response can generate one.
Support
Website: basilcache.com
The Basil dashboard reports setup, ownership, conflict, and cache-directory
state. If caching is unavailable, first review its contextual guidance and
confirm that WordPress can write wp-config.php, wp-content/, and the cache
directory through the configured filesystem method.
When requesting support, include the Basil and WordPress versions, PHP version,
the dashboard status text, and reproducible rule inputs. Do not publish cached
HTML, cookies, authorization headers, filesystem credentials, or private site
data.
Privacy
Basil does not send data to third parties or collect telemetry. Cached files
contain final anonymous HTML responses and private cache metadata on the local
server. Depending on the rendered page, that anonymous HTML may contain public
site content or visitor-independent output produced by other plugins. Site
administrators are responsible for configuring rules that exclude dynamic or
personalized pages. Administrators can purge these files from the Basil
dashboard.
Screenshots

Dashboard showing cache status, storage usage, scheduled cleanup, and controls to purge all pages or one URL.

Rules list showing enabled state, priority, cache action, match conditions, and rule-management controls.

Rule settings for the name, priority, enabled state, action, and cache profile.

Match-condition editor with condition groups, JSON representation, and optional exceptions.