Title: Fastly
Author: Fastly
Published: <strong>July 24, 2012</strong>
Last modified: October 16, 2025

---

Search plugins

![](https://ps.w.org/fastly/assets/banner-772x250.png?rev=1419971)

![](https://ps.w.org/fastly/assets/icon-256x256.png?rev=1419971)

# Fastly

 By [Fastly](https://profiles.wordpress.org/fastly/)

[Download](https://downloads.wordpress.org/plugin/fastly.1.2.29.zip)

 * [Details](https://pcd.wordpress.org/plugins/fastly/#description)
 * [Reviews](https://pcd.wordpress.org/plugins/fastly/#reviews)
 * [Development](https://pcd.wordpress.org/plugins/fastly/#developers)

 [Support](https://wordpress.org/support/plugin/fastly/)

## Description

Installation:

You can either install from source (you\’re looking at it), or from the WordPress
[plugin directory](https://wordpress.org/plugins/fastly/).

 1. To proceed with configuration you will need to [sign up for Fastly](https://www.fastly.com/signup)
    and create and activate a new service (unless you already have one). Details of
    how to create and activate a new service can be found [here](https://docs.fastly.com/guides/basic-setup/sign-up-and-create-your-first-service).
    You will also need to find your Service ID and make a note of the string.
 2. You will need to create an API token with the Global API access option selected.
    [Click here for token management screen](https://manage.fastly.com/account/personal/tokens).
 3. Set up the Fastly plugin inside your WordPress admin panel
 4. In your WordPress blog admin panel, Under Fastly->General, enter & save your Fastly
    API token and Service ID
 5. Verify connection by pressing `TEST CONNECTION` button.
 6. In order to get the most value out of Fastly we recommend you upload VCL snippets
    from https://github.com/fastly/WordPress-Plugin/tree/master/vcl_snippets. These
    snippets will add code for following

– Force certain paths to be passed (not cached) e.g. wp-admin, wp-login.php
 – Makes
sure that logged in user sessions are never cached – Handling for serving [stale on error](https://docs.fastly.com/guides/performance-tuning/serving-stale-content.html)

You can upload them by hand or press `Update VCL` button in the UI.

For more information, or if you have any problems, please email us.

_Note: you may have to disable other caching plugins like W3TotalCache or WP Rocket
to avoid getting odd cache behaviour._

 * Pulls in the [Fastly API](http://docs.fastly.com/api)
 * Integrates purging in post/page/taxonomies publishing
 * Includes an admin panel in `wp-admin`
 * Integrates some of the advanced purging options from Fastly API
 * Allows to monitor purging using webhooks for slack

Using this plugin means you won’t have to purge content in Fastly when you make 
changes to your WordPress content. Purges will automatically happen with no need
for manual intervention.

### Customization

#### Edge Modules

Edge Modules are a framework that enables specific functions to be enabled on Fastly
Edge without
 the need to write VCL. Current list of functions that can be included
includes

 * Enable Blackfire metrics and tracing
 * Set CORS headers
 * Enable support for bot detection partners such as Datadome/Netacea
 * Redirect one domain to another e.g. domain.com => www.domain.com
 * Rewrite URLs going to a backend e.g. /sitemap.xml => /media/sitemap.xml
 * Domain masking an external backend/origin

More details can be found at https://github.com/fastly/WordPress-Plugin/blob/master/
EDGE-MODULES.md

#### Image optimization

Image Optimization is a separately contracted feature. Please contact support@fastly.
com to request
 pricing and activation.

Once activated on service level, you will be able to enable it in your blog under
Fastly->Advanced.

Breakdown of IO options:
 Enable Image Optimization in Fastly configuration – Activating
this uploads VCL that steers image traffic to the image optimization service

    ```
    Enable Image Optimization in WordPress - Main switch to activate IO which is needed for all other options to work.

    Enable adaptive pixel ratios - Switch for adaptive pixel ratios implementation. This replaces adaptive pixels srcset to format which Fastly IO can parse and replace. Initially works only on inserted attachments like featured images, but can be applied on content images if enabled.

    Adaptive pixel ratio sizes - Select pixel ratios that will be generated when creating image srcset html.

    Enable image optimization for content images - Safe switch for Image optimization of content images (due to difference from featured images, those are processed differently). To fully utilize, insert full size images in content.
    ```

#### WordPress Hooks

Available wordpress hooks (add_action) on:

Editing related (purging) keys for a given post
 purgely_related_keys

Editing surrogate keys output
 purgely_pre_send_keys purgely_post_send_keys functions:
add_keys

Editing surrogate control headers output(max-age, stale-while-revalidate, stale-
if-error)
 purgely_pre_send_surrogate_control purgely_post_send_surrogate_control
functions: edit_headers, unset_headers

Edit cache control headers output (max-age)
 purgely_pre_send_cache_control purgely_post_send_cache_control
functions: edit_headers, unset_headers

Example:
 add_action(\’purgely_pre_send_surrogate_control\’, \’custom_headers_edit\’);
function custom_headers_edit($header_object) { $header_object->edit_headers(array(\’
custom-header\’ => \’555\’, \’max-age\’ => \’99\’)); }

add_filter(\’purgely_related_keys\’, \’custom_related_keys\’, 10, 2);
 function 
custom_related_keys($keys_array, $post_object) { $keys_array[] = \’custom-key\’;
return $keys_array; }

add_action(\’purgely_pre_send_keys\’, \’custom_surrogate_keys\’);
 function custom_surrogate_keys(
$keys_object) { $keys_object->add_key(\’custom-key\’); }

Note: you may have to disable other caching plugins like W3TotalCache to avoid getting
odd cache behaviour.

### About Fastly

Fastly is the only real-time content delivery network designed to seamlessly integrate
with your development stack.

Fastly provides real-time updating of content and the ability to cache dynamic as
well as static content. For any content that is truly uncacheable, we’ll accelerate
it.

In addition we allow you to update your configuration in seconds, provide real time
log and stats streaming, powerful edge scripting capabilities, and TLS termination(
amongst many other features).

### License

Fastly.com WordPress Plugin
 Copyright (C) 2011,2012,2013,2014,2015,2016,2017 Fastly.
com

This program is free software: you can redistribute it and/or modify
 it under the
terms of the GNU General Public License as published by the Free Software Foundation,
either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful,
 but WITHOUT ANY
WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A 
PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License
 along with this
program. If not, see [http://www.gnu.org/licenses/](http://www.gnu.org/licenses/).

## Screenshots

 * [[
 * Fastly General Tab
 * [[
 * Fastly Advanced Tab
 * [[
 * Fastly Webhooks Tab

## Reviews

There are no reviews for this plugin.

## Contributors & Developers

“Fastly” is open source software. The following people have contributed to this 
plugin.

Contributors

 *   [ Fastly ](https://profiles.wordpress.org/fastly/)

“Fastly” has been translated into 1 locale. Thank you to [the translators](https://translate.wordpress.org/projects/wp-plugins/fastly/contributors)
for their contributions.

[Translate “Fastly” into your language.](https://translate.wordpress.org/projects/wp-plugins/fastly)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/fastly/), check out
the [SVN repository](https://plugins.svn.wordpress.org/fastly/), or subscribe to
the [development log](https://plugins.trac.wordpress.org/log/fastly/) by [RSS](https://plugins.trac.wordpress.org/log/fastly/?limit=100&mode=stop_on_copy&format=rss).

## Changelog

= 1.2.29

 * Fix: Add missing nonce

= 1.2.28

 * Small fixes reported in log files
 * Bumping tested up WP version to 6.8

= 1.2.27

 * Allowing usage of Fastly service without stored credentials

= 1.2.26

 * Code cleanup, improvements in data sanitization and escaping input

= 1.2.25

 * Assignment fix for constants https://github.com/fastly/WordPress-Plugin/pull/
   99

= 1.2.24

 * Updates to Datadome and Netacea edge modules

= 1.2.23

 * Compatibility fixes for WordPress 6.2

= 1.2.22

 * Fixes for PHP 8.1

= 1.2.20

 * Another fix for PHP 8

= 1.2.19

 * Fixes for PHP 8

= 1.2.18

 * ‘front page’ should be automatically purged just like the ‘home’ page https://
   github.com/fastly/WordPress-Plugin/pull/87

= 1.2.17

 * Fix for edge modules with option values defaulting to a single value https://
   github.com/fastly/WordPress-Plugin/pull/83

#### 1.2.16

 * Scheduling posts would purge content at submission and activation. Make sure 
   we don’t purge at submission time https://github.com/fastly/WordPress-Plugin/
   pull/82

#### 1.2.15

 * Always purged keys sanitization callback was overly aggresive stripping underscores

#### 1.2.14

 * Add missing files that were missing in 1.2.13 deploy

#### 1.2.13

 * Introduce Edge Modules https://github.com/fastly/WordPress-Plugin/pull/79

#### 1.2.12

 * Removed restart logic from VCL snippets as it may clash with Image Optimization

#### 1.2.11

 * API token sanitization was too aggressive stripping off underscores which are
   now legitimate characters in a token

#### 1.2.10

 * Remove a call to a now deprecated function https://github.com/fastly/WordPress-
   Plugin/issues/72

#### 1.2.9

 * Added fix for scheduled posts transition to published

#### 1.2.8

 * Minor fixes

#### 1.2.7

 * Fixed duplicated API calls on admin page loads

#### 1.2.6

 * Add Image Optimization configuration

#### 1.2.5

 * Added fix for including only always purged keys if existing
 * Added fix for header surrogate key number larger than limit

#### 1.2.4

 * Added fix for not yet existing pages not being purged (404 pages key issue)
 * Added admin entry for always purged keys
 * Make surrogate keys comply with multi-site configurations

#### 1.2.3

 * wp_cli added configuration listing and updating functionality
 * Enabled setting of HTML for Maintenance/Error page (503)
 * Minor fixes

#### 1.2.2

 * Action Hooks fix

#### 1.2.1

 * Minor VCL clean up

#### 1.2.0

 * Added purge by url
 * Changes regarding logging logic
 * VCL update User Interface changes
 * Fixed and enabled support for wp_cli

#### 1.1.1

 * Some Purgely plugin functionalities integrated into Fastly (along with some advanced
   options)
 * Purging by Surrogate-Keys is used instead of purging by url
 * Added webhooks support (Slack focused) to log purges and other critical events
 * Added debugging logs option, purge all button for emergency
 * Advanced options: Surrogate Cache TTL, Cache TTL, Default Purge Type, Allow Full
   Cache Purges, Log purges in error log,
    Debug mode, Enable Stale while Revalidate,
   Stale while Revalidate TTL, Enable Stale if Error, Stale if Error TTL.
 * Fastly VCL update
 * Curl no longer needed

#### 1.1

 * Include fixes for header sending
 * Enable \”soft\” purging

#### 1.0

 * Mark as deprecated
 * Recommend Purgely from Condé Nast
 * Add in link to GitHub repo

#### 0.99

 * Add a guard function for cURL prequisite
 * Bring up to date with WP Plugin repo standards

#### 0.98

 * Security fixes for XSS/CSRF
 * Only load CSS/JS on admin page
 * Properly enqueue scripts and styles
 * Use WP HTTP API methods
 * Properly register scripts

#### 0.94

 * Change to using PURGE not POST for purges
 * Correct URL building for comments purger

#### 0.92

 * Fix bug in port addition

#### 0.91

 * Make work in PHP 5.3

#### 0.9

 * Fix comment purging

#### 0.8

 * Fix url purging

#### 0.7

 * Fix category purging

#### 0.6

 * Remove bogus error_log call

#### 0.5

 * Switch to using curl
 * Change PURGE methodology
 * Performance enhancements

## Meta

 *  Version **1.2.29**
 *  Last updated **6 months ago**
 *  Active installations **1,000+**
 *  WordPress version ** 4.6.2 or higher **
 *  Tested up to **6.8.0**
 *  Languages
 * [English (US)](https://wordpress.org/plugins/fastly/) and [Korean](https://ko.wordpress.org/plugins/fastly/).
 *  [Translate into your language](https://translate.wordpress.org/projects/wp-plugins/fastly)
 * Tags
 * [cdn](https://pcd.wordpress.org/plugins/tags/cdn/)[fastly](https://pcd.wordpress.org/plugins/tags/fastly/)
   [performance](https://pcd.wordpress.org/plugins/tags/performance/)[speed](https://pcd.wordpress.org/plugins/tags/speed/)
 *  [Advanced View](https://pcd.wordpress.org/plugins/fastly/advanced/)

## Ratings

 5 out of 5 stars.

 *  [  1 5-star review     ](https://wordpress.org/support/plugin/fastly/reviews/?filter=5)
 *  [  0 4-star reviews     ](https://wordpress.org/support/plugin/fastly/reviews/?filter=4)
 *  [  0 3-star reviews     ](https://wordpress.org/support/plugin/fastly/reviews/?filter=3)
 *  [  0 2-star reviews     ](https://wordpress.org/support/plugin/fastly/reviews/?filter=2)
 *  [  0 1-star reviews     ](https://wordpress.org/support/plugin/fastly/reviews/?filter=1)

[Add my review](https://wordpress.org/support/plugin/fastly/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/fastly/reviews/)

## Contributors

 *   [ Fastly ](https://profiles.wordpress.org/fastly/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/fastly/)