On your site
Page caching on a translated WordPress website
Why caching just works here, and what happens when a translation changes.
Why there is nothing to configure
Because the language is in the URL, a page cache sees two URLs where you see two languages. No Vary header, no cookie-aware caching, no cache-key rules. A CDN in front of it behaves the same way.
This is the practical payoff of the URL decision, and it is why WPGlotty needs no cache integration to be correct: only to be quick.
Clearing after a change
The moment a cache is stale is when a translation changes: that one URL now has cached HTML with the old text in it. WPGlotty clears it automatically for the caches it recognises.
- WP Rocket, W3 Total Cache, WP Super Cache, LiteSpeed Cache
- Cache Enabler, Nginx Helper, SiteGround, WP Fastest Cache
- Breeze, Hummingbird, Kinsta, WP Engine, the official Cloudflare plugin
A cache it does not know
If none of those is present, WPGlotty says so once: it saved the translation but could not clear anything, so clear it yourself. The notice returns the next time it happens rather than nagging on every screen.
Server-level caches (nginx FastCGI, Varnish, a host panel) usually have no PHP function to call. Two filters let you plug one in.
add_filter( 'bdt_purge_all_handled', function () {
my_host_purge_everything();
return true; // tells WPGlotty it was handled
} );
add_filter( 'bdt_purge_url_handled', function ( $handled, $url ) {
my_host_purge( $url );
return true;
}, 10, 2 );