Description
Purgely manages caching behavior for WordPress sites using Fastly as an edge caching solution. The plugin exposes useful
APIs to help control how pages on your site are cached, as well as provides sane defaults to make this a plug and play
solution for Fastly cache management.
The plugin handles the following:
- Sets the
Surrogate-Control
header to control the expiration time for pages - Sets the
stale-while-revalidate
andstale-if-error
Cache-Control
directives for managing these special Fastly
behaviors - Set groups of
Surrogate-Keys
for all pages to provide purging across multiple pages with one command - Provides invalidation of posts and related posts on save
Each of these items have sane defaults with ways to override them and configure them to your liking.
Additionally, the plugin exposes a WP CLI command to provide more flexible purging options.
Installation
Manual installation
- Upload the plugin directory to
/wp-content/plugins/
- Activate the plugin through the ‘Plugins’ menu in WordPress
WP CLI installation
- Run
wp plugin install --activate purgely
Configuration
Purgely provides a number of constants that can be used to control the behavior of the plugin and Fastly’s cache. Users
who wish to change these values should define the constants in wp-config.php
.
After installing, you should define PURGELY_FASTLY_KEY
and PURGELY_FASTLY_SERVICE_ID
in wp-config.php
. The plugin will work without them; however, you will not be able to purge by surrogate key or purge all without configuring these options. To define them copy the following code to your wp-config.php
file, update the key to use your key, and the service ID to match the fastly service you’re using:
`
define( ‘PURGELY_FASTLY_KEY’, ’39c4820390d8f050giweda50268c7583′ );
define( ‘PURGELY_FASTLY_SERVICE_ID’, ‘abcdefghijklmn1234567890’ );
`
Configuring other constants is similarly done by defining the constant in wp-config.php
. All constants are explained
below.
PURGELY_API_ENDPOINT
Defines the API endpoint for Fastly. This should not usually need to be changed, but is added in the event that Fastly
decides to use a different API endpoint, or if there is a need for a user to have a special endpoint.
default: (string) ”
PURGELY_ALLOW_PURGE_ALL
Determines whether or not the plugin can issue a purge all request. Purge all can have dire consequences for a website.
As such, this behavior is disabled by default. If can be turned on by setting this value to true
.
default: (bool) false
PURGELY_ENABLE_STALE_WHILE_REVALIDATE
Determines whether or not the plugin sets the stale-while-revalidate
directive for the Cache-Control
header. Setting
this value to false
will turn off the stale-while-revalidate
behavior. Note that you can manually control this
behavior via the functions exposed in the plugin regardless of this configuration option. This option only controls the
default plugin behavior.
default: (bool) true
PURGELY_STALE_WHILE_REVALIDATE_TTL
Sets the TTL for the stale-while-revalidate
directive in seconds. The value instructs Fastly to continue serving stale
content while new content is generated for the duration of the value that is set.
default: (int) 86400
PURGELY_ENABLE_STALE_IF_ERROR
Determines whether or not the plugin sets the stale-if-error
directive for the Cache-Control
header. Setting
this value to false
will turn off the stale-if-error
behavior. Note that you can manually control this
behavior via the functions exposed in the plugin regardless of this configuration option. This option only controls the
default plugin behavior.
default: (bool) true
PURGELY_STALE_IF_ERROR_TTL
Sets the TTL for the stale-if-error
directive in seconds. The value instructs Fastly to continue serving stale
content while the origin site is serving an error for the duration of the value that is set.
default: (int) 86400
PURGELY_SURROGATE_CONTROL_TTL
Sets the TTL for the Surrogate-Control
header in seconds. This value is the default TTL for all pages on your site,
unless it is cached within the app. Changing this value changes the value for the whole site.
default: (int) 300
Reviews
Contributors & Developers
“Purgely” is open source software. The following people have contributed to this plugin.
ContributorsTranslate “Purgely” into your language.
Interested in development?
Browse the code, check out the SVN repository, or subscribe to the development log by RSS.
Changelog
1.0.1
- Update key saniziation to allow all capital letters, not just A-B.
1.0.0
- Initial release.