WordPress spends most of its front-end time on images, CSS, JS and webfonts. Put those on a NetDNA pull zone and let EdgeCaching serve them from the nearest PoP. This is the integration NetDNA documented in 2013 with W3 Total Cache — expanded here into a maintained setup guide.
Screenshots below are labeled recreations of the 2013 Control Panel and W3 Total Cache CDN screen, not live product captures.
1. Create a pull zone
In the control panel choose Add Pull Zone. Origin is the WordPress site (https://www.example.com). The zone hostname will look like example.netdna-cdn.com.
Leave query-string caching off unless every plugin enqueue uses ?ver= and you want each version stored. See query-string caching.
2. Point a CNAME
Create cdn.example.com CNAME to the zone hostname. Paste that CNAME into W3 Total Cache, not the raw *.netdna-cdn.com name, so you can change providers later. Use Anycast DNS if NetDNA holds DNS.
3. Configure W3 Total Cache
- Plugins → Add New → W3 Total Cache → Activate.
- Performance → General → enable CDN.
- Performance → CDN → engine Generic Mirror or NetDNA / MaxCDN if the 2013 dropdown is present.
- SSL: Auto (EdgeSSL) or HTTPS only.
- Replace site’s hostname with
cdn.example.comon theme files, wp-includes, custom files. Never the HTML document itself. - Save all settings, then empty caches.
2013 blog note this expands: W3 Total Cache + MaxCDN.
4. HTTPS and mixed content
If WordPress is HTTPS, the CDN must be HTTPS. Enable EdgeSSL, then use https://cdn.example.com in W3TC. Protocol-relative URLs are a last resort. Full fix list: mixed content after a CDN move.
5. Purge after deploys
Theme and plugin updates leave stale CSS. Purge the zone or the file. Do not set TTL to zero to fake a purge.
- Control panel → zone → Purge
- REST: purge from PHP
- CI: purge from deploy
6. Verify
- View source. CSS/JS/image hosts should be
cdn.example.com. curl -I https://cdn.example.com/wp-content/themes/…/style.cssshould return 200 from the edge.- After a CSS edit, purge once; Age should reset.
Does W3 Total Cache work with NetDNA?
Yes. Create a pull zone, then enter the CDN hostname in W3 Total Cache → CDN → Generic Mirror or the NetDNA/MaxCDN engine if present. Mirror wp-content and wp-includes.
Should I enable SSL on the CDN for WordPress?
Yes if the site is HTTPS. Provision EdgeSSL on the zone and use https://cdn.example.com in W3TC so mixed-content warnings do not appear.
How do I purge WordPress after a deploy?
Purge the zone from the NetDNA control panel, the REST API, or a plugin hook. Do not lower TTL to zero as a substitute for purge.
The Science of Acceleration