W3 Total Cache Plugin: How to Configure It for Optimization

Affiliate disclosure v3.1
Affiliate disclosure v3.2 (mobile)
Test environment CloudwaysDebian 12Apache 2.4.69 + nginxPHP 8.2.34WordPress 7.1.3W3 Total Cache 2.10.7Checked 2026-10-18

A WordPress site inevitably gets slower as you install plugins. That is why a cache plugin has become one of the must-have WordPress plugins. With more than 1 million active installs of the free version and a rating of 4.4 stars, the W3 Total Cache (W3TC) plugin is one of the most widely used plugins.

Because cache settings can break some features of other plugins you use, if you are new to WordPress you can use a plugin that is simple to set up, such as Cache Enabler or WP Super cache.

If you need detailed cache settings and control, you can use the W3 Total Cache plugin, which offers powerful features even in its free version.

Ⅰ. Installing W3 Total Cache and the setup guide

  • ↳ Search engines (SEO: Search Engine Optimization)
  • ↳ Performance optimization (WPO: Web Performance Optimization)
  • ↳ Integrated caching: supports CDN, page, minify, object, fragment and database caching.

Search for W3 Total Cache, then install and activate the plugin.

🧭 W3 Total Cache installation and setup guide simulator
Caching pluginPath simulator
📍Plugins›Add Plugin
Install the plugin
Type W3 Total Cache in the search box and click [Install Now]; when the installation finishes, click [Activate].
📍Performance›Setup Guide
Setup guide
After the first installation, going to [Dashboard] takes you automatically to the [Setup Guide], because nothing has been configured yet.
📍Performance›Dashboard
Dashboard
What you set in the guide is shown by feature in the [General Settings] box, and detailed settings such as the page cache are made in [General Settings].
example.com/wp-admin/plugin-install.php
Add Plugins Upload Plugin
Plugins extend and expand the functionality of WordPress. You may install plugins from the WordPress Plugin Directory right on this page, or upload a plugin in .zip format by clicking the button above.
Search ResultsFeaturedPopularRecommendedFavorites
Search PluginsKeyword
922 items
W3 Total Cache
Installing...ActiveMore Details
Search Engine (SEO) & Performance Optimization (WPO) via caching. Integrated caching: CDN, Page, Minify, Object, Fragment, Database support.
By BoldGrid
★★★★★ (5,421)
Last Updated: 2 weeks ago
900,000+ Active Installations
✓ Compatible with your version of WordPress
example.com/wp-admin/admin.php?page=w3tc_setup_guide
DashboardSettingsToolsInfoSupportUpgrade
W3 Total CacheSetup Guide
TOTAL CACHE: Setup Guide
  • Welcome
  • Page Cache
  • Database Cache
  • Object Cache
  • Image Converter
  • Lazy Load
  • More Caching Options
Welcome to the W3 Total Cache Setup Guide!
By allowing us to collect data about how W3 Total Cache is used, we can improve our features and experience for everyone. This data will not include any personally identifiable information. Feel free to review our terms of use and privacy policy.
AcceptDecline
SKIPNEXT
example.com/wp-admin/admin.php?page=w3tc_dashboard
DashboardSettingsToolsInfoSupportUpgrade
W3 Total CacheDashboard
Flush caches with Empty All Caches
Account
License: Free
Status: Free license, no expiration
Upgrade to W3 Total Cache Pro now to unlock additional settings and features that can further improve your site’s performance and Google PageSpeed ratings.
Learn more about Pro
General Settings
Preview Modedisabled
Page Cachedisabled
Minifydisabled
Opcode Cacheenabled
Database Cachedisabled
Object Cachedisabled
Browser Cachedisabled
CDNdisabled
Reverse Proxydisabled
Statisticsdisabled
Fragment Cachedisabled
Debugdisabled
Settings can be modified by visiting General Settings
Image Optimization Summary
Enable Image Converter
PageSpeed Report
Before you can get started using the Google PageSpeed tool, you’ll first need to authorize access. Please click here.
Click an enabled item in the left menu or a button on the screen.

After the first installation, going to the [Dashboard] page takes you automatically to the [Setup Guide], because nothing has been configured yet.

In the setup guide you can configure ① page cache, ② database cache, ③ object cache, ④ browser cache, ⑤ image optimization, ⑥ lazy load and ⑦ other caching options.

W3 Total Cache Setup Guide ① Page cache_disk cache (Enhanced selected)

For page cache, W3TC's default recommendation is Disk: [Enhanced]. As the table shows, Disk: Enhanced is about 10.3ms faster than Disk: Basic, which is about 17.8% better performance in terms of TTFB.

W3 Total Cache Setup Guide ② Database cache_disk cache selected

For the database cache, select disk cache.

W3 Total Cache Setup Guide ③ Object cache_Redis selected
W3 Total Cache Setup Guide ④ Browser cache
W3 Total Cache Setup Guide ⑤ Image optimization - WebP converter
W3 Total Cache Setup Guide ⑥ Lazy load - image lazy loading
W3 Total Cache Setup Guide ⑦ Other caching options_set after going to the dashboard

The settings made in the guide are now reflected on the dashboard.

Click the [Settings] tab at the top right to configure everything from [General Settings] to page cache and more.

W3TC Dashboard - Settings__

ⓐ The [page settings] in the left admin menu and ⓑ the [Settings] tab at the top right each lead to page cache, Minify and other advanced settings. If you go to each page from the top center of the General Settings tab, you can see everything for page cache and Minify, from the general settings to the Advanced settings.

Ⅱ. W3 Total Cache cache settings

  • ↳ Cache features

This is the General Settings tab within the W3TC settings.

🧭 W3 Total Cache cache settings simulator
Path simulator
📍Performance›General Settings›General
Preview mode
Before deploying actual cache changes, you can enable [Preview mode] to test for errors in advance.
📍Performance›General Settings›Page Cache›Advanced Settings
Page cache
Check [Enable] under [Page Cache], make sure the method is [Disk: Enhanced], then click [Save Settings]. Detailed options are set in [Advanced Settings].
📍Performance›General Settings›Minify›Advanced Settings
Collapse
Check [Enable] under [Minify] and click [Save Settings], then set the HTML, CSS and JS minify options in [Advanced Settings].
📍Performance›General Settings›Opcode Cache
Opcode cache
For opcode cache, the opcode cache installed on the server is applied automatically; if none is installed, it is set to disabled.
📍Performance›General Settings›Database Cache›Object Cache
Database and object cache
Check [Enable] under both [Database Cache] and [Object Cache] and save. Detailed options are set on the [Database Cache] and [Object Cache] screens.
📍Performance›General Settings›Browser Cache›Advanced Settings
Browser cache
Check [Enable] under [Browser Cache] and save, then set the cache options for each file type in [Advanced Settings].
example.com/wp-admin/admin.php?page=w3tc_general
DashboardSettingsToolsInfoSupportUpgrade
|||||||||||||||||
Empty All Caches
General
Preview mode:
Enable
Use preview mode to test configuration scenarios prior to releasing them (deploy) on the actual site. Preview mode remains active even after deploying settings until the feature is disabled.
Page Cache
Page cache is a technique used to speed up the performance of a website by storing a copy of the generated HTML page in the server’s memory or disk, and then serving that copy to subsequent visitors instead of generating the page from scratch each time. This can result in significant speed improvements for websites with high traffic or dynamic content.
Basic SettingsPremium ServicesHelp
Page Cache:
Caching pages will reduce the response time of your site and increase the scale of your web server.
Page Cache Method:
Minify
Minification is a technique used to reduce the file size of HTML, CSS, and JavaScript files by removing unnecessary characters such as whitespace, comments, and line breaks. This process can significantly improve the load times of web pages by reducing the amount of data that needs to be downloaded by the user’s browser.
Basic SettingsPremium ServicesHelp
Minify:
Minification can decrease file size of HTML, CSS, JS and feeds respectively by ~10% on average. Learn more
Minify mode:
Auto
Manual
Select manual mode to use fields on the Minify settings tab to specify files to be minified, otherwise files will be minified automatically. Learn more
Minify Cache Method:
Learn more
HTML minifier:
Learn more
JS minifier:
CSS minifier:
Opcode Cache
Opcode cache is a powerful feature that enhances the performance of a WordPress website by caching compiled PHP code. By storing pre-compiled code in memory, opcode cache eliminates the need for repetitive interpretation and compilation of PHP files, resulting in significantly faster execution times. Opcode cache reduces server load and improves response times, ultimately enhancing the overall speed and responsiveness of your WordPress site. If opcode cache is available on the hosting server it will automatically be selected in the dropdown and enabled.
Opcode Cache
Validate timestamps:
Enable
Once enabled, each file request will update the cache with the latest version. When this setting is off, the Opcode Cache will not check, instead PHP must be restarted in order for setting changes to be reflected.
Database Cache
Enable this setting to utilize the power of caching your WordPress site’s database queries. By storing frequently accessed database queries in memory, the database cache reduces the need for repetitive database interactions, resulting in faster page load times. This feature is particularly beneficial for websites with heavy database usage, improving overall performance and delivering a smoother user experience.
Basic SettingsPremium ServicesHelp
Database Cache:
Caching database objects decreases the response time of your site. Best used if object caching is not possible.
Database Cache Method:
Object Cache
Enable this option to utilize an object cache mechanism, which significantly enhances the performance of your WordPress website. Object caching stores frequently accessed database queries and complex data structures in memory, reducing the need to retrieve them from the database repeatedly. By doing so, it minimizes the processing time required to generate dynamic content, resulting in faster page loading times and improved overall site speed. Enabling object cache is particularly beneficial for websites with heavy database usage or high traffic volumes, as it helps alleviate the strain on the server by efficiently serving cached data.
Basic SettingsPremium ServicesHelp
Object Cache:
Object caching greatly increases performance for highly dynamic sites that use the Object Cache API.
Object Cache Method:
Browser Cache
Enabling browser caching will instruct visitors’ web browsers to store static files from your WordPress website, such as images, CSS, and JavaScript files, locally on their devices. By doing so, subsequent visits to your site will retrieve these cached files from the browser’s storage, reducing the need for repeated downloads. This results in faster page loading times and a smoother browsing experience for your visitors, ultimately improving the overall speed and performance of your WordPress website.
Basic SettingsPremium ServicesHelp
Browser Cache:
Enable HTTP compression and add headers to reduce server load and decrease file load time.
example.com/wp-admin/admin.php?page=w3tc_pgcache
DashboardSettingsToolsInfoSupportUpgrade
|||||||
Empty All Caches
Always Cached extension is currently disabled. To enable the extension click here.
General
Cache front page
For many blogs this is your most visited page, it is recommended that you cache it. Learn more
Cache feeds: site, categories, tags, comments
Even if using a feed proxy service enabling this option is still recommended. Learn more
Handle XML mime type
Return correct Content-Type header for XML files (e.g., feeds and sitemaps). Learn more
Cache SSL (HTTPS>) requests
Cache SSL requests (uniquely) for improved performance. Learn more
Cache URI with query string variables
Search result (and similar) pages will be cached if enabled. Learn more
Cache 404 (not found) pages
Reduce server load by caching 404 pages. If the disk enhanced method of disk caching is used, 404 pages will be returned with a 200 response code. Use at your own risk. Learn more
Don’t cache pages for logged in users
Unauthenticated users may view a cached version of the last authenticated user’s view of a given page. Disabling this option is not recommended. Learn more
Don’t cache pages for following user roles
Select user roles that should not receive cached pages: Learn more
Administrator
Editor
Author
Contributor
Subscriber
Aliases
Cache alias hostnames:
Enable
If the same WordPress content is accessed from different domains. Learn more
Additional home URLs:
Specify full home URLs of your mirrors so that plugin will flush it’s cache when content is changed. For example: http://my-site.comhttp://www.my-site.comhttps://my-site.com Learn more
Cache Preload
Automatically prime the page cache
Automatically primes the page cache using the settings configured below. Learn more
Update interval:
900seconds
The number of seconds to wait before creating another set of cached pages. Learn more
Pages per interval:
10
Limit the number of pages to create per batch. Fewer pages may be better for under-powered servers. Learn more
Sitemap URL:
 
A compliant sitemap can be used to specify the pages to maintain in the primed cache. Pages will be cached according to the priorities specified in the XML file. Learn more
Preload the sitemap once
Stop cache preloading after every URL in the sitemap has been processed. Disable and re-enable cache preloading to start a new pass.
Preload cache upon publishing a post
Only applies to pages, posts, and custom post types whose status transitioned from a non-published status to the “published” status. Learn more
Preload cache upon updating a post
Applies after updating any page, post, or custom post type with the final status being “published”. Learn more
Purge Policy:
Specify the pages and feeds to purge when posts are created, edited, or comments posted. The defaults are recommended because additional options may reduce server performance: Learn more
Front page
Post page
Blog feed
Post comments pages
Post author pages
Post terms pages
Post comments feed
Post author feed
Post terms feeds
Daily archive pages
Monthly archive pages
Yearly archive pages
rdf
rss
rss2 (default)
atom
Choose which feed types should be automatically purged. Learn more
Purge limit:
10
Specify number of pages that lists posts (archive etc.) that should be purged on post updates etc., i.e. example.com/ ... example.com/page/5.
0 means all pages that lists posts are purged, i.e. example.com/page/2 ... Learn more
Additional pages:
Specify additional pages to purge. Including parent page in path. Ex: parent/posts. Learn more
Purge sitemaps:
([a-z0-9_\-]*?)sitemap([a-z0-9_\-]*)?\.(?:xml|xsl)
Specify a regular expression that matches your sitemaps. Learn more
REST API
Use these controls to determine how the WordPress REST API responds to visitors and integrations. Caching API responses can dramatically reduce load when headless frontends, mobile apps, or third-party services request the same data repeatedly, but you can keep responses uncached for highly dynamic endpoints or disable the API altogether when it is not needed to reduce attack surface. Learn more
REST API
Don’t cache
Cache★ PRO
Disable REST API
If you’re using the WordPress API make sure to use caching to scale performance. Show More ▾
Advanced
Late initialization:
Enable
Enables support for WordPress functionality in fragment caching for the page caching engine. Use of this feature may increase response times. Learn more
Late caching:
Enable
Overwrites key of page caching via custom filters by postponing entry extraction during the init action. Learn more
Compatibility mode:
Enable
Decreases performance by ~20% at scale in exchange for increasing interoperability with more hosting environments and WordPress idiosyncrasies. Enable this option if you experience issues with the Apache rules. Learn more
Reject HEAD requests:
Disable caching of HEAD HTTP requests
If disabled, HEAD requests can often be cached resulting in “empty pages” being returned for subsequent requests for a URL. Learn more
Maximum lifetime of cache objects:
3600seconds
Determines the natural expiration time of cache items. The higher the value, the larger the cache.
Max lifetime is limited by the W3TC_CACHE_FILE_EXPIRE_MAX constant (2592000 seconds) which can be overridden in wp-config.php.
Garbage collection interval:
3600seconds
If caching to disk, specify how frequently expired cache data is removed. For busy sites, a lower value is best. Learn more
Comment cookie lifetime:
1800seconds
Significantly reduce the default TTL for comment cookies to reduce the number of authenticated user traffic. Enter -1 to revert to default TTL. Learn more
Accepted query strings:
ScCid
_branch_match_id
_bta_c
_bta_tid
_ga
_gl
_ke
adgroupid
adid
age-verified
ao_noptimize
campaignid
campid
click_id
cn-reloaded
customid
dicbo
dm_i
ef_id
epik
fb_action_ids
fb_action_types
fb_source
fbclid
gclid
gclsrc
gdffi
gdfms
gdftrk
hsa_acc
hsa_ad
hsa_cam
hsa_grp
hsa_kw
hsa_mt
hsa_net
hsa_src
hsa_tgt
hsa_ver
igshid
li_fat_id
matomo_campaign
matomo_cid
matomo_content
matomo_group
matomo_keyword
matomo_medium
matomo_placement
matomo_source
mc_cid
mc_eid
mkcid
mkevt
mkrid
mkwid
msclkid
mtm_campaign
mtm_cid
mtm_content
mtm_group
mtm_keyword
mtm_medium
mtm_placement
mtm_source
pcrid
piwik_campaign
piwik_keyword
piwik_kwd
pk_campaign
pk_cid
pk_content
pk_keyword
pk_kwd
pk_medium
pk_source
pp
redirect_log_mongo_id
redirect_mongo_id
ref
s_kwcid
sb_referer_host
si
sscid
tblci
toolid
trk_contact
trk_module
trk_msg
trk_sid
ttclid
twclid
usqp
utm_campaign
utm_content
utm_expid
utm_id
utm_medium
utm_source
utm_term
wbraid
Always cache URLs that use these query string name-value pairs. The value part is not required. But if used, separate name-value pairs with an equals sign (i.e., name=value). Each pair should be on their own line. Learn more
Rejected user agents:
Never send cache pages for these user agents. Learn more
Rejected cookies:
wptouch_switch_toggle
Never cache pages that use the specified cookies. Learn more
Never cache the following pages:
wp-.*\.php
index\.php
Always ignore the specified pages / directories. Supports regular expressions. Learn more
Never cache pages associated with these categories:
Always ignore all pages filed under the specified category slugs. Learn more
Never cache pages that use these tags:
Always ignore all pages filed under the specified tag slugs. Learn more
Never cache pages by these authors:
Always ignore all pages filed under the specified author usernames. Learn more
Never cache pages that use these custom fields:
Always ignore all pages filed under the specified custom fields. Separate name-value pairs with an equals sign (i.e., name=value). Learn more
Cache exception list:
wp-comments-popup.php
wp-links-opml.php
wp-locations.php
Cache the specified pages / directories even if listed in the “never cache the following pages” field. Supports regular expression. Learn more
Non-trailing slash pages:
sitemap(_index)?\.xml(\.gz)?
([a-z0-9_\-]+)?sitemap\.xsl
[a-z0-9_\-]+-sitemap([0-9]+)?\.xml(\.gz)?
Cache the specified pages even if they don’t have trailing slash. Learn more
Specify page headers:
Last-Modified
Content-Type
X-Pingback
P3P
Link
Specify additional page headers to cache. Learn more
Purge via WP Cron
Enabling this will schedule a WP-Cron event that will flush the Page Cache. If you prefer to use a system cron job instead of WP-Cron, you can schedule the following command to run at your desired interval: “wp w3tc flush posts”. If the Always Cached extension is active and enabled, page cache entries will instead be added to the queue instead of being purged from the cache. Learn more
Page Cache is disabled! Enable it here to enable this feature.
Enable WP-Cron Event
Enable
Start Time
This setting controls the initial start time of the cron job. If the selected time has already passed, it will schedule the job for the following day at the selected time.
Interval
This setting controls the interval that the cron job should occur.
Note(s)
  • Enable HTTP compression in the “HTML” section on Browser Cache Settings tab.
example.com/wp-admin/admin.php?page=w3tc_minify
DashboardSettingsToolsInfoSupportUpgrade
||||||
Empty All Caches
General
Rewrite URL structure
If disabled, CSS and JS embeddings will use GET variables instead of “fancy” links. Learn more
Disable minify for logged in users
Authenticated users will not receive minified pages if this option is enabled. Learn more
Minify error notification:
Notify when minify cache creation errors occur. Learn more
HTML & XML
HTML minify settings:
Enable
Inline CSS minification
Inline JS minification
Don’t minify feeds
Line break removal
Enable HTML minification and optionally remove whitespace from inline CSS, JS, and feeds. Learn more
Ignored comment stems:
google_ad_
RSPEAK_
mfunc
Do not remove comments that contain these terms. Learn more
JS
JS minify settings:
Enable
Minify enqueued and inline JavaScript files according to the settings below. Learn more
Minify method:
Choose how JavaScript files should be combined or minified when using automatic mode. Learn more
Minify engine settings:
Operations in areas:
Embed type:
Before </head>
After <body>
Preserved comment removal (not applied when combine only is active)
Line break removal (not safe, not applied when combine only is active)
Control where scripts are placed and whether they stay blocking or load asynchronously for each template area. Learn more
HTTP/2 push
Enable
For better performance, send files to browser before they are requested when using the HTTP/2 protocol. Not supported by “Disk: Enhanced” page cache method for Nginx Learn more
CSS
CSS minify settings:
Enable
Minify stylesheets and inline CSS snippets declared in the queues below. Learn more
Minify method:
Choose how stylesheets should be combined or minified when using automatic mode. Learn more
Minify engine settings:
Preserved comment removal (not applied when combine only is active)
Line break removal (not applied when combine only is active)
Eliminate render-blocking CSS by moving it to HTTP body★ PRO
Website visitors cannot navigate your website until a given page is ready – reduce the wait time with this feature. Show More ▾
Decide where CSS is placed and whether it should load synchronously or asynchronously for each template area. Learn more
@import handling:
Control how @import rules are handled when combining and minifying stylesheets. Learn more
HTTP/2 push
Enable
For better performance, send files to browser before they are requested when using the HTTP/2 protocol. Not supported by “Disk: Enhanced” page cache method for Nginx Learn more
Advanced
Update external files every:
86400seconds
Specify the interval between download and update of external files in the minify cache. Hint: 6 hours is 21600 seconds. 12 hours is 43200 seconds. 24 hours is 86400 seconds. Learn more
Garbage collection interval:
86400seconds
If caching to disk, specify how frequently expired cache data is removed. For busy sites, a lower value is best.
Max interval is limited by the W3TC_CACHE_FILE_EXPIRE_MAX constant (2592000 seconds) which can be overridden in wp-config.php. Learn more
Never minify the following pages:
Always ignore the specified pages / directories. Use relative paths. Omit: protocol, hostname, leading forward slash and query strings. Learn more
Never minify the following JS files:
Always ignore the specified JS files. Use relative paths. Omit: protocol, hostname, leading forward slash and query strings. Learn more
Never minify the following CSS files:
Always ignore the specified CSS files. Use relative paths. Omit: protocol, hostname, leading forward slash and query strings. Learn more
Rejected user agents:
Specify user agents that will never receive minified content. Learn more
Include external files/libraries:
Specify external files/libraries that should be combined. Learn more
Use regular expressions for file name matching
If external script file names vary, use regular expressions in the “Include external files/libraries” field to simplify matching. Learn more
Purge via WP Cron
Enabling this will schedule a WP-Cron event that will flush the Minify Cache. If you prefer to use a system cron job instead of WP-Cron, you can schedule the following command to run at your desired interval: “wp w3tc flush minify”. Learn more
Minify is disabled! Enable it here to enable this feature.
Enable WP-Cron Event
Enable
Start Time
This setting controls the initial start time of the cron job. If the selected time has already passed, it will schedule the job for the following day at the selected time.
Interval
This setting controls the interval that the cron job should occur.
Note(s):
  • Enable HTTP compression in the “Cascading Style Sheets & JavaScript” section on Browser Cache Settings tab.
  • The TTL of page cache files is set via the “Expires header lifetime” field in the “Cascading Style Sheets & JavaScript” section on Browser Cache Settings tab.
example.com/wp-admin/admin.php?page=w3tc_dbcache
DashboardSettingsToolsInfoSupportUpgrade
||
Empty All Caches
Database caching via Disk is currently disabled.
General
Don’t cache queries for logged in users
Enabling this option is recommended to maintain default WordPress behavior. Learn more
Advanced
Maximum lifetime of cache objects:
180seconds
Determines the natural expiration time of unchanged cache items. The higher the value, the larger the cache. Learn more
Garbage collection interval:
3600seconds
If caching to disk, specify how frequently expired cache data is removed. For busy sites, a lower value is best. Learn more
Never cache the following pages:
Always ignore the specified pages / directories. Supports regular expressions (See FAQ). Learn more
Ignored query stems:
gdsr_
wp_rg_
_wp_session_
_wc_session_
Do not cache queries that contain these terms. Any entered prefix (set in wp-config.php) will be replaced with current database prefix (default: wp_). Query stems can be identified using debug mode. Learn more
Reject query words:
^\s*insert\b
^\s*delete\b
^\s*update\b
^\s*replace\b
^\s*create\b
^\s*alter\b
^\s*show\b
^\s*set\b
\bautoload\s+=\s+’yes’
\bsql_calc_found_rows\b
\bfound_rows\(\)
Do not cache queries that contain these words or regular expressions. Learn more
Reject constants:
APP_REQUEST
DOING_CRON
DONOTCACHEDB
SHORTINIT
XMLRPC_REQUEST
Disable caching once specified constants defined. Learn more
Enable for WP-CLI
Enable
WP-CLI already uses Memcached, Redis, and other persistent engines. Enable this only if your database cache engine is Disk and you want WP-CLI to use it. Learn more
Purge via WP Cron
Enabling this will schedule a WP-Cron event that will flush the Database Cache. If you prefer to use a system cron job instead of WP-Cron, you can schedule the following command to run at your desired interval: “wp w3tc flush db”. Learn more
Database Cache is disabled! Enable it here to enable this feature.
Enable WP-Cron Event
Enable
Start Time
This setting controls the initial start time of the cron job. If the selected time has already passed, it will schedule the job for the following day at the selected time.
Interval
This setting controls the interval that the cron job should occur.
example.com/wp-admin/admin.php?page=w3tc_objectcache
DashboardSettingsToolsInfoSupportUpgrade
|
Empty All Caches
Object caching via Disk is currently disabled.
Advanced
Default lifetime of cache objects:
180seconds
Determines the natural expiration time of unchanged cache items. The higher the value, the larger the cache. Learn more
Garbage collection interval:
600seconds
If caching to disk, specify how frequently expired cache data is removed. For busy sites, a lower value is best. Learn more
Global groups:
Groups shared amongst sites in network mode. Learn more
Non-persistent groups:
counts
plugins
Groups that should not be cached. Learn more
Enable caching for wp-admin requests
Enabling this option will increase wp-admin performance, but may cause side-effects Learn more
Store transients in database
Store transients in database even when external cache is used, which allows transient values to survive object cache cleaning/expiration Learn more
Enable for WP-CLI
Enable
WP-CLI already uses Memcached, Redis, and other persistent engines. Enable this only if your object cache engine is Disk and you want WP-CLI to use it. Learn more
Purge via WP Cron
Enabling this will schedule a WP-Cron event that will flush the Object Cache. If you prefer to use a system cron job instead of WP-Cron, you can schedule the following command to run at your desired interval: “wp w3tc flush object”. Learn more
Object Cache is disabled! Enable it here to enable this feature.
Enable WP-Cron Event
Enable
Start Time
This setting controls the initial start time of the cron job. If the selected time has already passed, it will schedule the job for the following day at the selected time.
Interval
This setting controls the interval that the cron job should occur.
example.com/wp-admin/admin.php?page=w3tc_browsercache
DashboardSettingsToolsInfoSupportUpgrade
||||
Empty All Caches
General
Specify global browser cache policy.
Set Last-Modified header
Set the Last-Modified header to enable 304 Not Modified response. Learn more
Set expires header
Set the expires header to encourage browser caching of files. Learn more
Set cache control header
Set pragma and cache-control headers to encourage browser caching of files. Learn more
Set entity tag (eTag)
Set the ETag header to encourage browser caching of files. Learn more
Set W3 Total Cache header
Set this header to assist in identifying optimized files. Learn more
Enable HTTP (gzip) compression
Reduce the download time for text-based files. Learn more
Enable HTTP (brotli) compression
Reduce the download time for text-based files. Learn more
Prevent caching of objects after settings change
Whenever settings are changed, a new query string will be generated and appended to objects allowing the new policy to be applied. Learn more
Remove query strings from static resources
Resources with a “?” in the URL are not cached by some proxy caching servers. Learn more
Prevent caching exception list:
Do not add the prevent caching query string to the specified URIs. Supports regular expressions. Learn more
Disable cookies for static files
Removes Set-Cookie header for responses. Learn more
Do not process 404 errors for static objects with WordPress
Reduce server load by allowing the web server to handle 404 (not found) errors for static files (images etc).
If enabled – you may get 404 File Not Found response for some files generated on-the-fly by WordPress plugins. You may add those file URIs to 404 error exception list below to avoid that. Learn more
404 error exception list:
robots\.txt
[a-z0-9_\-]*sitemap[a-z0-9_\.\-]*\.(xml|xsl|html)(\.gz)?
Never process 404 (not found) events for the specified URIs. Learn more
Rewrite URL structure of objects
Generate unique URI for each file protected from caching by browser. Learn more
CSS & JS
Specify browser cache policy for Cascading Style Sheets and JavaScript files.
Set Last-Modified header
Set the Last-Modified header to enable 304 Not Modified response. Learn more
Set expires header
Set the expires header to encourage browser caching of files. Learn more
Expires header lifetime:
31536000seconds
Specify how long CSS and JS files should be cached (in seconds). Learn more
Set cache control header
Set pragma and cache-control headers to encourage browser caching of files. Learn more
Cache Control policy:
Choose the Cache-Control policy applied to CSS and JS responses.
The Expires header already sets the max-age. Learn more
Set entity tag (eTag)
Set the ETag header to encourage browser caching of files. Learn more
Set W3 Total Cache header
Set this header to assist in identifying optimized files. Learn more
Enable HTTP (gzip) compression
Reduce the download time for text-based files. Learn more
Enable HTTP (brotli) compression
Reduce the download time for text-based files. Learn more
Prevent caching of objects after settings change
Whenever settings are changed, a new query string will be generated and appended to objects allowing the new policy to be applied. Learn more
Remove query strings from static resources
Resources with a “?” in the URL are not cached by some proxy caching servers. Learn more
Disable cookies for static files
Removes Set-Cookie header for responses. Learn more
HTML & XML
Specify browser cache policy for posts, pages, feeds and text-based files.
Set Last-Modified header
Set the Last-Modified header to enable 304 Not Modified response. Learn more
Set expires header
Set the expires header to encourage browser caching of files. Learn more
Expires header lifetime:
3600seconds
Max lifetime is limited by the W3TC_CACHE_FILE_EXPIRE_MAX constant (2592000 seconds) which can be overridden in wp-config.php. Learn more
Set cache control header
Set pragma and cache-control headers to encourage browser caching of files. Learn more
Cache Control policy:
Choose the Cache-Control policy applied to HTML and XML responses. Learn more
Set entity tag (ETag)
Set the ETag header to encourage browser caching of files. Learn more
Set W3 Total Cache header
Set this header to assist in identifying optimized files. Learn more
Enable HTTP (gzip) compression
Reduce the download time for text-based files. Learn more
Enable HTTP (brotli) compression
Reduce the download time for text-based files. Learn more
Media & Other Files
Set Last-Modified header
Set the Last-Modified header to enable 304 Not Modified response. Learn more
Set expires header
Set the expires header to encourage browser caching of files. Learn more
Expires header lifetime:
31536000seconds
Specify how long media and other files files should be cached (in seconds). Learn more
Set cache control header
Set pragma and cache-control headers to encourage browser caching of files. Learn more
Cache Control policy:
Choose the Cache-Control policy applied to media and other files responses.
The Expires header already sets the max-age. Learn more
Set entity tag (ETag)
Set the ETag header to encourage browser caching of files. Learn more
Set W3 Total Cache header
Set this header to assist in identifying optimized files. Learn more
Enable HTTP (gzip) compression
Reduce the download time for text-based files. Learn more
Enable HTTP (brotli) compression
Reduce the download time for text-based files. Learn more
Prevent caching of objects after settings change
Whenever settings are changed, a new query string will be generated and appended to objects allowing the new policy to be applied. Learn more
Remove query strings from static resources
Resources with a “?” in the URL are not cached by some proxy caching servers. Learn more
Disable cookies for static files
Removes Set-Cookie header for responses. Learn more
Click an enabled item in the left menu or a button on the screen.

1️⃣ Preview mode

Before deploying actual cache changes, you can turn on preview mode to test for errors in advance.

W3TC General Settings preview mode2

[Preview]: click it to test while previewing the changes, and if all is well, click [Deploy] to apply them to the site.

2️⃣ Page cache

The guide already set the basic setting to [Disk: Enhanced]. You can change it later if, for example, a server move means the server uses a different cache.

If a single (non-multisite) site also uses subdomains, you can set up caching for alias domains as well.

Server spec level

Update interval (sec)

Pages per interval

Description

Low-spec server (1 vCPU / 1 GB or less)

1800 s (30 min)

5

Avoid CPU spikes while building the cache: use a generous interval and keep the page count minimal

Mid-range server (2 vCPU / 2–4 GB)

900 s (15 min)

10

Keeping the default is recommended; handles some concurrency

High-performance server (4 vCPU / 8 GB or more)

300 s (5 min)

20~30

Prepares the cache quickly; good for high-traffic sites

REST API is the interface WordPress provides for exchanging data with the outside world; it lets you request or manipulate content in JSON format via URLs. Through it, mobile apps, external web apps, the block editor and more can sync with or edit WordPress content in real time.

The REST API serves not only administrators but also ordinary users' requests, enabling efficient data exchange that makes the site more flexible and extensible.

Option

Description

Recommended

Late initialization

Allows WordPress functions to be called for fragment caching.

⚠️ Only when you need advanced caching

Late caching

Delays cache key generation until after user filters, allowing finer cache control

⚠️ Only when overriding keys

Compatibility mode

Gives up some optimizations for hosting compatibility (about 20% slower)

✅ Recommended when you hit hosting errors

Charset

Fixes UTF-8 encoding issues

✅ Recommended if strange characters appear

Reject HEAD requests

Prevents HEAD requests from creating empty caches

✅ Prevents unexpected blank pages

Maximum lifetime of cache objects

How long cached items are kept (sec)

⏱ Higher for low traffic, lower for high traffic

Garbage collection interval

How often expired cache data is removed (sec)

⏱ Shorter the more traffic you have

Comment cookie lifetime

Adjusts the cookie TTL when someone comments (default 1800 s)

✅ Useful for reducing logged-in user traffic

3️⃣ Minify

In HTML, CSS and JS files, Minify removes unnecessary whitespace, comments and line breaks, to reduce file size and improve loading speed. This process does not change functionality but makes the code leaner , so the browser can parse it faster.

Option

Description

Recommended

Auto

W3TC detects and minifies HTML, CSS and JS files automatically.

✅ Suits most users

Manual

Only applies once you enter the paths of the files to minify yourself.

⚠️ Only for advanced users who need precise control

Option

Description

Best environment

Disk

Stores minified files on the server disk

✅ Typical shared hosting; the default

APC / APCu

Stores in memory using PHP's opcode cache

✅ Performs well on dedicated/virtual servers

eAccelerator

An old PHP opcode cache

⚠️ Only relevant on old servers

XCache

One of PHP's caching mechanisms (rarely used)

❌ Not recommended (outdated)

WinCache

PHP cache for Windows servers

✅ IIS/Windows servers only

Memcached

Stored on distributed cache servers

✅ Multi-server, cluster setups

Redis

Caches minified files in a fast key-value store

✅ High-performance VPS / multi-server setups

Option

Description

Features

Minify (default)

W3TC's built-in HTML minifier
Removes whitespace, line breaks and comments to shrink the HTML

Very stable and compatible with most sites

HTML Tidy

Cleans up the HTML structure while minifying
Even tries to fix syntax errors

Includes structure correction → risk of breaking the layout

OptionDescriptionFeaturesChoosing a JS minifier
JSMin (default)Simple, fast JS minifier: removes basic whitespace and commentsVery stable, low risk of conflicts✅ Speed/stability first; typical WordPress sites
Google Closure Compiler (web service)Google's advanced JS optimizer: compresses via the Google APIAccurate, but an external server call is required → can be slow⚠️ External API use is OK; precise optimization first
Google Closure Compiler (local Java)Runs the same engine in the server's Java environment insteadAdvanced optimization possible, Java must be installed✅ Java can be installed; when you want advanced optimization
NarcissusA classic compressor that parses and regenerates JSAn old approach, practically unsupported—
YUI CompressorJS/CSS compressor developed by Yahoo; can keep preserved commentsOld but still stable—
Closure (needs testing)——⚠️ Lots of modern JS (ES6+)
OptionDescription
✅ Minify (default)Fast and stable; suits most WordPress sites
⚠️ CSS TidyTidies structure and fixes syntax; styles may break → needs testing
⚠️ YUI Compressor (PHP)Old compression logic, no longer updated → legacy sites only
⚠️ YUI Compressor (Java)Needs Java; precise compression, but no support for modern CSS syntax

The guide already set the basic setting to [Disk: Enhanced]. You can change it later if, for example, a server move means the server uses a different cache.

Item

Description

Rewrite URL structure

Uses clean URL structures for CSS/JS links. If disabled, they are output as GET-parameter-based URLs such as [?ver=xxx].

For logged-in users,
disable minify

Logged-in users see the original files, not the minified ones. Useful while debugging or developing.

Minimize error notifications

Notifies you if an error occurs while building the minify cache. If disabled, no warning is shown.

Item

Description

HTML minify settings

Compresses HTML documents to reduce their size by removing whitespace, indentation and so on.

Inline CSS minification

Compresses the CSS code inside [<style>] tags.

Inline JS minification

Compresses the JS code inside [<script>] tags.

Don't minify feeds

Leaves RSS/Atom feeds (XML) unminified, exactly as they are.

Remove line breaks

Removes line break characters in the HTML → smaller file size

Example

Purpose

google_ad_

Protects Google AdSense ad script comments

RSPEAK_

Protects screen reader/accessibility code comments

mfunc

Protects W3TC's [<!– mfunc –>] fragment cache comments

Minify method

Description

Recommended for

Combine & Minify

Combines several JS files into one and compresses them at the same time

✅ Most effective in typical cases
: fewer files + smaller size

Combine Only

Bundles files into one without compressing them

⚠️ When JS conflicts are a concern: avoids errors caused by compression

Minify Only

Keeps the number of files and compresses each one individually

⚠️ On HTTP/2 + when JS errors occur
When you only want smaller files, without merging

Minify engine settings

Description

Embed location: before [</head>]

Inserts the JS inside [<head>] (runs before the page loads)

Embed location: after [<body>]

Inserts the JS at the very bottom of the page (runs after rendering)

Embed type (Blocking / Non-blocking)

Whether JS execution pauses page rendering

Item

Description

Recommended setting

Enable HTTP/2 Push

The server pushes JS files before the browser requests them

✅ Can improve performance on HTTP/2

Caveats

If W3TC's Page Cache uses [Disk: Enhanced] with NGINX, HTTP/2 Push ❌ does not work

✅ Works best with Apache + HTTP/2

Minify method

Description

Recommended for

Combine & Minify

Merges CSS files, then compresses them

✅ General use

Combine only

Bundles files without compressing

⚠️ If CSS conflicts are a concern

Minify only

Compresses only, no merging

✅ Suits HTTP/2 servers

Minify engine settings

Description

Applies when

Remove preserved comments(Preserved comment removal)

Removes license notes and preserved comments inside CSS files to reduce their size.

⚠️ Applies only with [Combine & Minify] or [Minify only] (※ not with [Combine only])

Remove line breaks(Line break removal)

Deletes line break characters from CSS to produce a more compact file (slightly smaller)

⚠️ Works only with [Combine & Minify] or [Minify only] (※ ignored with [Combine only])

@import handling

Description

Recommended setting

None

Leaves [@import] CSS calls as they are

❌ Not recommended (blocks rendering)

Bubble

Moves [@import] to the top of the CSS file

⚠️ Limited effect

Process

Includes [@import] calls in the merge

✅ Recommended (improves performance)

Advanced item

Description

Recommended setting

Update interval for external files(Update interval for external files)

How often W3TC re-downloads/minifies CSS/JS files from CDNs and external URLs (in seconds)

✅ Keep the default [86400] s (24 hours) ※ if external files change often, consider [21600] (6 hours)

Garbage collection interval(Garbage collection interval)

How often expired cache files are deleted (applies to disk cache)

✅ [43200–86400] s recommended (can be lower with heavy traffic) ※ an upper limit (2592000 s) can be set in [wp-config.php]

Never minify the following pages(Never minify the following pages)

Enter the URLs to always exclude from minification (relative paths, without queries)

✅ Add admin, login page, AJAX URLs, etc. as needed. Example: [wp-login.php], [wp-admin/], [my-custom-endpoint/]

JS files to never minify

Specify JS files that throw errors when minified

⚠️ Add problem JS files when you find them. Example: [plugins/some-script.js]

CSS files to never minify

Lets you make exceptions when CSS conflicts occur

⚠️ Make an exception for CSS that breaks the layout. Example: [themes/mytheme/style.css]

Rejected user agents

Doesn't serve minified files to specific user agents (crawlers, bots, etc.)

✅ Specify only the bots that need to bypass the cache. Example: [Lighthouse], [GTmetrix], [Chrome-Lighthouse], etc.

Include external files/libraries(Include external files/libraries)

Manually adds external CDN scripts to the combine list

⚠️ Only when you want to minify/merge external JS/CDN files. Example: [ajax.googleapis.com/…/jquery.min.js]

Allow regular expressions

Lets you match with regex when file name patterns vary

✅ Useful when external scripts often change by version number. Example: [cdn.example.com/js/lib-\d+\.js]

# EX: 
#JS files to never minify:
plugins/some-plugin/assets/js/legacy-script.js
wp-includes/js/jquery/jquery.js

#CSS to never minify:
themes/mytheme/style.css
# EX: 
#Rejected user agents:
Lighthouse
Chrome-Lighthouse
GTmetrix

Item

Description

Recommended setting

Use WP-Cron event(Enable WP-Cron event)

To purge/refresh the page cache automatically on a schedule, schedule a WP-Cron job

✅ Enabling recommended (keep the default)

Start time(Start time)

When WP-Cron first runs (e.g. 12:00 am)

✅ A low-load time (e.g. between midnight and 3 a.m.)

Interval(Interval)

WP-Cron cache purge frequency Settings

✅ Twice daily or hourly (high-traffic sites)

System cron alternative

Instead of WP-Cron, you can run the [wp w3tc flush_posts] command from a real OS-level cron

Recommended on high-performance servers (more accurate and efficient than WP-Cron)

4️⃣ Opcode cache

For opcode cache, the opcode cache installed on the server is applied automatically; if none is installed, it is set to disabled.

5️⃣ Database cache and object cache: Memcached·Redis

Option

Description

Recommended environment

Disk

Stores cache data on the server disk

✅ Shared hosting / basic setups

Memcached

Network-based distributed cache; fast

✅ Multi-server / cluster

Typical WordPress sites often use only one of Memcached or Redis for the database cache, but in W3 Total Cache you can split them up: ⓐ one for the database cache and ⓑ the other for the object cache.

📌 Typical WordPress Site
├─ Database Cache
│   └─ Memcached or Redis · only one use
└─ Object Cache
    └─ the same Cache engine shared is common

📌 W3 Total Cache (W3TC)
├─ Database Cache
│   └─ Memcached use (example)
└─ Object Cache
    └─ Redis use (example)

🛠️ Applied strategy
└─ Cache engine by role — Separated Applied possible
    ├─ Server resource distribution
    ├─ Cache bottleneck reduction
    └─ Performance Optimization flexibility secured

In W3 Total Cache's settings, by default the database cache is set to Memcached and the object cache to Redis.

Item

Description

Recommendation or note

Maximum lifetime of cache objects

Natural expiry time of unchanged cache items (sec)

[180 s] (default); too high wastes memory

Garbage collection interval

How often expired cache data is deleted (sec)

[3600 s] (1 hour); lower it under heavy use

Never cache the
following pages

Paths to exclude from caching (regex allowed)

Excluding dynamic pages such as login, cart and search is recommended

Ignored query stems

Queries with a matching prefix are not cached

Session/temporary data such as [gdsr_], [wp_rg_]

Reject queries (Query Rejects)

Excludes queries containing specific keywords/patterns (regex)

[insert], [update], [autoload], [found_rows()], etc.

Reject Constants

Disables the DB cache when the listed WP constants are defined

[DOING_CRON], [XMLRPC_REQUEST], etc.

Enable for WP-CLI

Whether to use the cache when WP-CLI runs too

✅ Faster when enabled (be careful in test environments)

Option

Description

Recommended environment

Disk

Stores cache data on the server disk

✅ Shared hosting / basic setups

Redis

Fast key-value cache; works well with PHP-FPM

✅ High-performance servers / VPS

W3TC Object Cache_Advanced Settings 1

Item

Description

Redis host/IP

Format [127.0.0.1:6379]. For TLS, use the [tls://] prefix

Verify TLS certificate

Checks certificate validity when using TLS (optional)

Use persistent connections

Reuses Redis connections for better performance

Connection timeout

Maximum time allowed to connect to Redis (sec)

Connection retry interval

Wait before retrying after a failure (ms)

Connection read timeout

Maximum time to wait for a response (sec)

Redis DB ID

Database number within Redis (default [0])

Redis password

Password or SASL authentication input

Default cache lifetime

Default time cache items are kept (sec). Default 180 s

Garbage collection interval

How often expired cache is deleted. Default 600 s

Global groups

Groups shared in network mode (for multisite)

Non-persistent groups

Groups excluded from caching, e.g. [counts], [plugins]

Cache wp-admin requests

Applies the cache to the admin area too (⚠️ test first)

Store transients in database

Keeps temporary values in the DB even while an external cache is used

Enable WP-CLI

Allows the cache for WP-CLI commands as well

6️⃣ Browser cache

Browser caching stores static files such as images, CSS and JS on the visitor's device, greatly cutting loading time on repeat visits. This improves page response speed and the user experience.

Most of these settings focus on cache control and reducing server load. On sites with heavy traffic or where static resource optimization matters, it is fine to enable many of them.

ItemGeneralCSS and JSHTML and XMLMedia and other files
Set [Last-Modified] headerIncludes the file's last-modified date to allow 304 responses✅ Enable in most cases✅ Suits most servers✅ Works with most CDN/browser caches
Set [Expires] headerMakes the browser cache files for a set period✅ Default 31536000 s (1 year), recommended✅ Default [3600 s (1 hour)] ✅ [31536000 s] (1 year) by default → suits static files
⏱️ Set the Expires lifetime—⏱️ e.g. [31536000 s = 1 year] · can be shortened when used with a CDN——
Set [Cache-Control] headerControls the caching strategy by adding pragma and cache-control headers✅ [“public, max-age=31536000”] recommended✅ Set to e.g. [“public, max-age=3600”]✅ [“public, max-age=31536000”] recommended
✅ Cache control policy—✅ Use a policy that includes [max-age] · [“public, max-age=EXPIRES_SECONDS”] is used by default——
Set [ETag]Provides an entity tag that identifies the file – for detecting changes✅ Effective when used within the same server✅ If caches aren't shared between servers,
use is recommended
✅ Useful when running a single server
Set W3TC headerAdds a header that shows whether a file was optimized by W3TC🔖 Not required; for analysis🔖 Not required (for debugging)🔖 Optional
gzip compressionCompression that shrinks text files (widely compatible)✅ Supported on most servers✅ Supported by most servers✅ No effect on images
brotli compressionHigher compression ratio than gzip (supported browsers only)✅ Requires Apache/Nginx configuration✅ Enable the Apache/nginx module✅ Applies only to supported browsers
Prevent caching of objects after settings changeAdds a query string to invalidate the old cache✅ Recommended if settings change often—✅ File changes take effect immediately
Remove query stringsRemoves [?] from static resources to improve cacheability⚠️ Only needed with some CDNs/proxies—✅ Can be applied to versioned files
Remove cookiesRemoves the [Set-Cookie] header from static resource responses✅ Check it in most cases—✅ Images and the like don't need cookies
Don't let WordPress handle 404sThe web server handles 404s for static files → less load on WP———
404 exception URI listSpecifies URI patterns that WP should still handle (e.g. sitemap, robots.txt)———
Rewrite object URL structureGenerates unique URIs to bypass caches (e.g. [ver=xxxx])———

Ⅲ. W3 Total Cache extra features

  • ↳ WP Cron, CDN, reverse proxy, user experience, statistics, WebP converter, Google PageSpeed, import/export settings

Purging the cache via WP Cron is a global setting.

🧭 W3 Total Cache extra features simulator
Path simulator
📍Performance›General Settings›Purge via WP Cron
WP Cron
Purging the cache with WP Cron is a global setting where you set the start time and interval.
📍Performance›General Settings›CDN›Advanced Settings
CDN
After signing up with a CDN provider, check [Enable] under [CDN], choose the [CDN Type] and save; detailed options are set in [Advanced Settings].
📍Performance›General Settings›Reverse Proxy
Reverse proxy
Check [Enable reverse proxy caching via varnish] only if you use Varnish. Enter the IP address of your Varnish server in [Varnish servers].
📍Performance›General Settings›User Experience›Advanced Settings
User experience
Check [Lazy Load Images] and save, then set the lazy load options in [Advanced Settings]. Over 50% of the features in the advanced settings are available in the premium version.
📍Performance›General Settings›Image Converter
WebP converter
If you check [Enable Image Converter Extension] under [Image Converter], you can convert Media Library images to WebP or AVIF.
example.com/wp-admin/admin.php?page=w3tc_general
DashboardSettingsToolsInfoSupportUpgrade
|||||||||||||||||
Empty All Caches
Purge via WP Cron
Enabling this will schedule a WP-Cron event that will flush all enabled Caches via a single cron job. Each cache’s advanced settings page features similar settings to this if you wish to schedule purges for specific caches only. If you prefer to use a system cron job instead of WP-Cron, you can schedule the following command to run at your desired interval: “wp w3tc flush all”. If the Always Cached extension is active and enabled, page cache entries will instead be added to the queue instead of being purged from the cache. Visit here for more information.
Enable WP-Cron Event
Enable
Start Time
This setting controls the initial start time of the cron job. If the selected time has already passed, it will schedule the job for the following day at the selected time.
Interval
This setting controls the interval that the cron job should occur.
CDN
Content Delivery Network (CDN) is a powerful feature that can significantly enhance the performance of your WordPress website. By leveraging a distributed network of servers located worldwide, a CDN helps deliver your website’s static files, such as images, CSS, and JavaScript, to visitors more efficiently. This reduces the latency and improves the loading speed of your website, resulting in a faster and smoother browsing experience for your users. With W3 Total Cache’s CDN integration, you can easily configure and connect your website to a CDN service of your choice, unleashing the full potential of your WordPress site’s speed optimization.
Basic SettingsPremium ServicesHelp
CDN:
Theme files, media library attachments, CSS, and JS files will load quickly for site visitors.
CDN Type:
Select the CDN type you wish to use.
Host the entire website with your compatible CDN provider to reduce page load time.
FSD CDN:
Enable★ PRO
Deliver visitors the lowest possible response and load times for all site content including HTML, media (e.g. images or fonts), CSS, and JavaScript. Show More ⌄ Learn more about Pro
Reverse Proxy
A reverse proxy is a server that sits between a client and a web server, acting as an intermediary for requests. It retrieves resources on behalf of the client from the server, and then returns the response to the client. By utilizing a reverse proxy, such as Varnish or Nginx, in conjunction with W3 Total Cache, you can significantly enhance the performance of your WordPress website by caching and serving static content directly from the reverse proxy server, reducing the load on your WordPress server and improving response times for visitors.
Enable reverse proxy caching via varnish
Varnish servers:
Specify the IP addresses of your varnish instances above. The VCL’s ACL must allow this request.
Trusted reverse proxies:
IP addresses or CIDR ranges of reverse proxies and load balancers in front of this site (one per line). Forwarded scheme and client-IP headers are used only for these addresses. Leave empty when PHP receives client connections directly. Developers may also supply this list via the w3tc_trusted_proxies filter.
User Experience
User Experience (UX) is a setting that focuses on enhancing the overall browsing experience for visitors of your website. By enabling this feature, you can optimize your website’s performance by minimizing load times, reducing server requests, and delivering content more efficiently. This ultimately leads to faster page loading, improved user satisfaction, and increased engagement, resulting in a speedier and more enjoyable WordPress website.
Basic Settings
Defer loading offscreen images.
Lazy Load Google Maps★ PRO
In addition to lazy loading images, with W3 Total Cache Pro you can lazy load Google Maps! More information and settings can be found on the User Experience page.
Disable Emoji
Remove emojis support from your website.
Delay Scripts★ PRO
Delay the loading of specified internal/external JavaScript sources on your pages separate from Minify.
Remove Unwanted/Unused CSS/JS★ PRO
Removes specified CSS/JS tags from the homepage or on a per page basis.
Preload Requests★ PRO
DNS prefetching, pre-connecting, and preloading are essential web optimization techniques that enhance website performance by proactively resolving network-related tasks. Learn more about Pro
Disable wp-embed script
Remove wp-embed.js script from your website. oEmbed functionality still works but you will not be able to embed other WordPress posts on your pages.
Disable jquery-migrate on the front-end
Remove jquery-migrate support from your website front-end.
Image Converter
The Image Converter tool can be used to generate modern-format versions (e.g., WebP or AVIF) of media library images which offer superior lossless and lossy compression.
Enable Image Converter Extension
This extension allows for optimizing media library images to modern formats like WebP or AVIF.
As a free user you are limited to conversions of 10/hour and 100/month. The Pro license increases these rates to 10,000/hour and unlimited/month. Conversion rates are subject to change and documentation can be found here. Learn more about Pro
example.com/wp-admin/admin.php?page=w3tc_cdn
DashboardSettingsToolsInfoSupportUpgrade
||
Empty All Caches
General
Host attachments
Upload attachments
If checked, all attachments will be hosted with the CDN.
Host wp-includes/ files
Upload includes files
If checked, WordPress static core file types specified in the “wp-includes file types to upload” field below will be hosted with the CDN.
Host theme files
Upload theme files
If checked, all theme file types specified in the “theme file types to upload” field below will be hosted with the CDN.
Host minified CSS and JS files
Upload minify files
If checked, minified CSS and JS files will be hosted with the CDN.
Host custom files
Upload custom files
If checked, any file names or paths specified in the “custom file list” field below will be hosted with the CDN.
Force over-writing of existing files
If modified files are not always detected and replaced, use this option to over-write them.
Advanced
Only purge CDN manually
Purge CDN only if explicit purge button is clicked.
Disable CDN on SSL pages
When SSL pages are returned no CDN URLs will appear in HTML pages.
Use CDN links for the Media Library on admin pages
All Media Library content will use CDN links on administration pages.
Add CORS header
Add CORS headers to allow cross-domain assets usage.
Disable CDN for the following roles
Select user roles that will use the origin server exclusively:
Administrator
Editor
Author
Contributor
Subscriber
Disable CDN on the following pages:
Always ignore the specified pages / directories. Supports regular expression.
Automatically upload minify files
If CDN is enabled (and not using the origin pull method), your minified files will be automatically uploaded.
Export changed files automatically
Automatically attempt to find and upload changed files.
Auto upload interval:
3600seconds
Specify the interval between upload of changed files.
Re-transfer cycle interval:
900seconds
The number of seconds to wait before upload attempt.
Re-transfer cycle limit:
25
Number of files processed per upload attempt.
wp-includes file types to upload:
*.css;*.js;*.gif;*.png;*.jpg;*.xml
Specify the file types within the WordPress core to host with the CDN.
Theme file types to upload:
*.css;*.js;*.gif;*.png;*.jpg;*.ico;*.ttf;*.otf;*.woff;*.woff2;*.less
Specify the file types in the active theme to host with the CDN.
File types to import:
 
Automatically import files hosted with 3rd parties of these types (if used in your posts / pages) to your media library. Only common static types (images, CSS, JS, fonts, and media) are imported. Script, markup, and SVG types are ignored even if listed. Empty, *, and *.* use that static allowlist rather than every file.
Custom file list:
favicon.ico
{wp_content_dir}/gallery/*
{wp_content_dir}/uploads/avatars/*
{plugins_dir}/wordpress-seo/css/xml-sitemap.xsl
{plugins_dir}/wp-minify/min*
{plugins_dir}/*.js
{plugins_dir}/*.css
{plugins_dir}/*.gif
{plugins_dir}/*.jpg
{plugins_dir}/*.png
Specify any files outside of theme or other common directories to host with the CDN.
Rejected user agents:
Specify user agents that should not access files hosted with the CDN.
Rejected files:
{uploads_dir}/wpcf7_captcha/*
{uploads_dir}/imagerotator.swf
{plugins_dir}/wp-fb-autoconnect/facebook-platform/channel.html
Specify the path of files that should not use the CDN.
Set cookie domain to “example.com”
If using subdomain for CDN functionality, this setting helps prevent new users from sending cookies in requests to the CDN subdomain.
Note(s):
  • You can use placeholders {wp_content_dir}, {plugins_dir}, {uploads_dir} instead of writing folder paths (wp-content, wp-content/plugins, wp-content/uploads).
  • If using Amazon Web Services or Self-Hosted CDN types, enable HTTP compression in the “Media & Other Files” section on Browser Cache Settings tab.
example.com/wp-admin/admin.php?page=w3tc_userexperience
DashboardSettingsToolsInfoSupportUpgrade
Empty All Caches
Lazy loading is currently disabled.
Lazy Loading
Process HTML image tags
Process img tags
Process background images
Process background styles
Exclude words:
avia-bg-style-fixed
data-bgposition=
data-envira-src=
data-large_image=
data-lazy-original=
data-lazy-src=
data-lazyload=
data-lazysrc=
data-no-lazy=
data-src=
data-srcset=
fullurl=
lazy-slider-img=
loading=”eager”
no-lazy
rev-slidebg
skip-lazy
soliloquy-image
swatch-img
w3-total-cache
woocommerce/assets/images/placeholder.png
wpcf7_captcha
Exclude tags containing words
Threshold
 
The outer distance off the scrolling area from which to start loading the elements (example: 100px, 10%).
Script Embed method:
Use inline method only when your website has just a few pages
Google Maps
Lazy load google map
WP Google Map Plugin plugin
Google Maps Easy plugin
WP Google Maps plugin
Click an enabled item in the left menu or a button on the screen.

1️⃣ CDN

You can configure this after signing up with a CDN provider.

Option

Description

✅ Host attachments

Uploads attachments such as images in [wp-content/uploads] to the CDN

✅ Host wp-includes files

Includes WordPress core static files (js/css, etc.) in the CDN

✅ Host theme files

Includes the active theme's static files (css/js/images, etc.) in the CDN

✅ Host minified CSS/JS files

Serves the CSS/JS files minified by W3TC from the CDN

✅ Host custom files

Pushes paths or file names you specify to the CDN

⚠️ Force overwrite of existing files

For forcing a re-upload when changes aren't detected automatically

Item

Description

Only purge CDN manually

Removes files from the CDN only when you click the manual purge button

Disable CDN on SSL pages

Doesn't use CDN URLs on HTTPS pages

Use CDN links in the admin

Shows CDN URLs for media in the admin screens too

Add CORS header

Adds a response header that allows CORS

Disable CDN by role

Doesn't apply the CDN for selected user roles (e.g. only administrators use the origin)

Page exclusion list

Excludes the specified paths from the CDN (regex allowed)

Automatically upload minified files

Uploads minified files to the CDN automatically (Push)

Export changed files automatically

Uploads automatically when file changes are detected

Auto-upload interval

Upload interval after changes are detected (default 3600 s)

Re-transfer interval / limit

Retry interval after failures and a limit on files processed

wp-includes files to upload

Specifies which core file types go to the CDN

Theme file types to upload

Specifies theme-related file types such as CSS/JS/fonts

File types to import

Sets conditions for automatically downloading externally linked files

Custom file list

Specifies individual file paths to send to the CDN (templates, external plugins, etc.)

Rejected user agents

Specifies bots/user agents to block from CDN files

Rejected file paths

Specifies file paths to keep off the CDN, such as CAPTCHAs and special paths

Set cookie domain

Specifies a domain to stop cookies being sent when using a subdomain CDN

2️⃣ Reverse proxy

The description uses Varnish and Nginx as examples, but since Nginx is configured on the server, apply this in the W3 Total Cache plugin only if you use Varnish.

3️⃣ User experience: lazy load

In the advanced settings, more than 50% of the features are available only in the premium version.

Item

Description

When to use it

✅ Process HTML image tags

[<img>] tags get the lazy attribute

For lazy loading ordinary content images

✅ Process background images

Applies lazy loading to CSS [background-image]

For design-heavy sites with many background images

Exclude wordsExample
Lazy exclusion attributes[data-src], [data-lazy-src], [data-no-lazy], [loading=”eager”], etc.
Lazy exclusion classes[no-lazy], [skip-lazy], [lazy-slider-img], [rev-slidebg], etc.
Plugins/sliders[soliloquy-image], [envira], [w3-total-cache], [wpcf7_captcha], etc.
WooCommerce[swatch-img], [woocommerce/…/placeholder.png], etc.

The lazy loading “threshold” sets how far below the browser viewport (screen) images and background elements start loading in advance. For example, with 100px, an element loads when the user scrolls within 100 pixels of it; too small a value delays image loading so users may see blank areas, so 100–300px is usually appropriate.

Next are the script embed methods.

Embed method

Description

Location or attribute

Asynchronous (Async)

Runs in parallel with page loading and doesn't block rendering

[<script async>]

Synchronous (in the head)

Runs first in the [<head>] area and can temporarily block rendering (in the head)

[<head>] or [<script>]

Inline

Inserts the script directly into the HTML document so it runs without a separate request

Inserted inside [<script>code</script>]

W3TC User Experience Advanced Settings 2
W3TC User Experience Advanced Settings 3

4️⃣ WebP converter

W3TC WebP Converter_details (Advanced Settings) 1
W3TC WebP Converter_details (Advanced Settings) 2

Ⅳ. W3 Total Cache overall review

W3 Total Cache's interface (UI) isn't bad, but it is clearly inconvenient. Many developers and professional users point out the same thing. Compared with modern plugins such as WP Rocket or FlyingPress, it can keep up on site performance, but the user experience (UX) falls short.

Having lots of features is a strength, but for beginners the structure can feel overly complex. In particular, with frequent jumps between menus and many detailed options, even experienced developers and site administrators can make configuration mistakes. Naturally you won't remember every setting, but in use it is an advanced caching plugin that allows fine-grained tuning.

With over 1 million installs of the free version, it's hard to dismiss it as simply an old plugin — in practice, few cache plugins can match its range and richness of features.

ItemRating (⭐)Assessment
🎛️ Interface⭐⭐⭐Many menus and a complex structure; a barrier for new users. The UI feels dated
⚙️ Range of features⭐⭐⭐⭐⭐Cache, CDN, Redis and almost every other feature; it's hard to find something missing
🛠️ Fine-tuning flexibility⭐⭐⭐⭐Almost everything can be fine-tuned; watch for conflicts between settings
🚀 Performance gains⭐⭐⭐⭐⭐Excellent performance once optimized; object/browser cache make a big difference
🧩 Compatibility⭐⭐⭐May conflict with some hosts, themes and plugins.
📄 Documentation and guides⭐⭐⭐⭐⭐Extensive official documentation
💡 User recommendation⭐⭐⭐⭐(4.5)Recommended for advanced users; beginners may prefer WP Rocket, Cache Enabler, etc.
📊 Overall rating⭐⭐⭐⭐(4.5)A powerful, feature-focused plugin. There is a learning curve; consider your skill level

Ⅴ. Performance test

After configuring the plugin, the final speed test showed a more noticeable speed improvement than typical cache plugins.

ℹ️ Affiliate Disclosure
This site's content contains affiliate links. When a visitor buys a product or service through one of them, the site receives a commission from the seller. The amount the buyer pays(it goes down during event discounts ↓)does not go up. Posted prices, discounts, and stock reflect the time of writing and may differ, so confirm with the seller before buying. Products are chosen and reviewed by our own standards, and commissions do not affect the order or content of reviews.

Leave a Reply

Your email address will not be published. Required fields are marked *

Prove your humanity: 0   +   9   =