{"id":197022,"date":"2024-08-05T09:32:30","date_gmt":"2024-08-05T09:32:30","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/cdntr\/"},"modified":"2026-08-24T18:22:55","modified_gmt":"2026-08-24T18:22:55","slug":"cdntr","status":"publish","type":"plugin","link":"https:\/\/lt.wordpress.org\/plugins\/cdntr\/","author":23063238,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"2.2.0","stable_tag":"2.2.0","tested":"7.0.4","requires":"5.7","requires_php":"7.2","requires_plugins":null,"header_name":"CDNTR","header_author":"cdn.com.tr","header_description":"Simple (CDN) integration plugin.","assets_banners_color":"1565c0","last_updated":"2026-08-24 18:22:55","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/cdn.com.tr\/en\/features\/wordpress-platform","header_author_uri":"https:\/\/cdn.com.tr","rating":5,"author_block_rating":0,"active_installs":0,"downloads":1515,"num_ratings":1,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.2.1":{"tag":"1.2.1","author":"cdninternet","date":"2024-08-05 09:33:54"},"1.2.2":{"tag":"1.2.2","author":"cdninternet","date":"2024-08-06 09:50:12"},"1.2.5":{"tag":"1.2.5","author":"cdninternet","date":"2026-07-15 21:51:39"},"2.0.0":{"tag":"2.0.0","author":"cdninternet","date":"2026-08-05 13:25:55"},"2.1.1":{"tag":"2.1.1","author":"cdninternet","date":"2026-08-15 19:33:03"},"2.2.0":{"tag":"2.2.0","author":"cdninternet","date":"2026-08-24 18:22:55"}},"upgrade_notice":{"2.2.0":"<p>CDNTR now speaks your language: the whole plugin is translated into Turkish, Spanish, French, Russian, Arabic and Persian. Also fixes a package-expiry notice that never appeared when it should have \u2014 and appeared when it should not.<\/p>","2.1.1":"<p>Connect in one click \u2014 no passwords, no keys to copy. Your account password is never asked for again: connecting issues a purge-only key you can revoke per site. Adds a speed health dashboard, a tabbed settings screen, and warm-up you can actually watch.<\/p>"},"ratings":{"1":0,"2":0,"3":0,"4":0,"5":1},"assets_icons":{"icon-256x256.png":{"filename":"icon-256x256.png","revision":3131494,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-772x250.png":{"filename":"banner-772x250.png","revision":3131494,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.2.1","1.2.2","1.2.5","2.0.0","2.1.1","2.2.0"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3648987,"resolution":"1","location":"assets","locale":"","width":1568,"height":629},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3648987,"resolution":"2","location":"assets","locale":"","width":1568,"height":629},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3648987,"resolution":"3","location":"assets","locale":"","width":1568,"height":629},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3648987,"resolution":"4","location":"assets","locale":"","width":1568,"height":629},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3648987,"resolution":"5","location":"assets","locale":"","width":1568,"height":629}},"screenshots":{"1":"The Optimization dashboard \u2014 a live check of your whole delivery stack: is the CDN really serving your files, do you have an object cache and a page cache, and is anything on your site blocking caching.","2":"Connect in one click \u2014 approve the site in your own CDN.com.tr panel. No password, no key to copy.","3":"CDN delivery \u2014 pick your CDN hostname and control exactly which files are served from the edge.","4":"Free next-gen images \u2014 serve WebP and AVIF from the CDN, with universal coverage for theme, plugin and CSS background images, plus a background bulk converter for your media library.","5":"CDN cache warm-up \u2014 keep your edge hot, and see exactly which pages were warmed, what the CDN answered, and how long each took."}},"plugin_section":[],"plugin_tags":[194661,146,3863,29161,15376],"plugin_category":[59],"plugin_contributors":[230329],"plugin_business_model":[],"class_list":["post-197022","plugin","type-plugin","status-publish","hentry","plugin_tags-avif","plugin_tags-cache","plugin_tags-cdn","plugin_tags-image-optimization","plugin_tags-webp","plugin_category-utilities-and-tools","plugin_contributors-cdninternet","plugin_committers-cdninternet"],"banners":{"banner":"https:\/\/ps.w.org\/cdntr\/assets\/banner-772x250.png?rev=3131494","banner_2x":false,"banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/cdntr\/assets\/icon-256x256.png?rev=3131494","icon_2x":"https:\/\/ps.w.org\/cdntr\/assets\/icon-256x256.png?rev=3131494","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/cdntr\/assets\/screenshot-1.png?rev=3648987","caption":"The Optimization dashboard \u2014 a live check of your whole delivery stack: is the CDN really serving your files, do you have an object cache and a page cache, and is anything on your site blocking caching."},{"src":"https:\/\/ps.w.org\/cdntr\/assets\/screenshot-2.png?rev=3648987","caption":"Connect in one click \u2014 approve the site in your own CDN.com.tr panel. No password, no key to copy."},{"src":"https:\/\/ps.w.org\/cdntr\/assets\/screenshot-3.png?rev=3648987","caption":"CDN delivery \u2014 pick your CDN hostname and control exactly which files are served from the edge."},{"src":"https:\/\/ps.w.org\/cdntr\/assets\/screenshot-4.png?rev=3648987","caption":"Free next-gen images \u2014 serve WebP and AVIF from the CDN, with universal coverage for theme, plugin and CSS background images, plus a background bulk converter for your media library."},{"src":"https:\/\/ps.w.org\/cdntr\/assets\/screenshot-5.png?rev=3648987","caption":"CDN cache warm-up \u2014 keep your edge hot, and see exactly which pages were warmed, what the CDN answered, and how long each took."}],"raw_content":"<!--section=description-->\n<p><strong>CDNTR connects your WordPress site to the <a href=\"https:\/\/cdn.com.tr\/\">CDN.com.tr<\/a> content delivery network.<\/strong> It rewrites the URLs of your static files \u2014 CSS, JavaScript and images \u2014 so they are served from CDN edge servers close to each visitor instead of your single origin. The result is faster page loads, less load on your server, and a site that stays fast during traffic spikes.<\/p>\n\n<p>Connect your CDN.com.tr account and CDNTR also gives you <strong>one-click cache purging<\/strong> from the WordPress admin bar, plus <strong>automatic purging<\/strong> when your content changes \u2014 so updates go live immediately without waiting for the cache to expire.<\/p>\n\n<h4>Connect in one click<\/h4>\n\n<p>No API keys to copy. Press <strong>Connect to CDN.com.tr<\/strong>, approve the site in your own CDN.com.tr panel \u2014 exactly the way you connect a GitHub or Google account \u2014 and the site is connected. The key it receives can only clear your cache: it gives no access to your storage, your FTP or your account settings, and you can revoke any single site from your panel without touching the others. Sites on CDN.com.tr WordPress hosting arrive connected already.<\/p>\n\n<h4>See your whole speed stack at a glance<\/h4>\n\n<p>The plugin page opens with an <strong>Optimization dashboard<\/strong>: a live test that proves your files really are served from the CDN edge (with cache HIT and response time), plus checks for a persistent <strong>object cache<\/strong>, an active <strong>page cache<\/strong>, conflicting CDN plugins, and <strong>cache blockers<\/strong> \u2014 no-cache headers or cookies sent to anonymous visitors. Everything CDNTR can fix, it fixes in place; everything else links you to exactly where to fix it \u2014 and when something on your own site is stopping pages from being cached, the dashboard names the theme or plugin doing it, with the file and line.<\/p>\n\n<h4>Serve images in next-gen formats, for free<\/h4>\n\n<p>Clear the PageSpeed Insights \/ Lighthouse <strong>\"Serve images in next-gen formats\"<\/strong> recommendation without paying a cloud service. CDNTR converts your images to <strong>WebP<\/strong> (and <strong>AVIF<\/strong> where your server supports it) right on your own server using PHP's GD or Imagick \u2014 no per-image fees and nothing leaves your host \u2014 then serves them from the CDN via <code>&lt;picture&gt;<\/code> with the original as an automatic fallback. Turn on universal coverage and it optimizes your whole site: media-library uploads, theme and plugin images, and even CSS <code>background-image<\/code>. It only ever serves a converted file when it is genuinely smaller than the original.<\/p>\n\n<h4>Keep your CDN cache hot (cache warm-up \/ preload)<\/h4>\n\n<p>CDNTR can <strong>warm up (preload) your CDN cache<\/strong> so real visitors never pay for a cold page render. After you purge \u2014 or on a light background schedule \u2014 it pre-requests your cacheable pages through the CDN so the edge always holds a fresh copy and every visitor gets an instant cached hit. You can watch it work: the Warm-up tab lists every page it requested, the response it got, whether the edge served it from cache, and how long it took.<\/p>\n\n<h4>Why use a CDN with WordPress?<\/h4>\n\n<p>By default WordPress serves every asset from one server. The further a visitor is, the slower it loads \u2014 and heavy images and scripts make it worse. A CDN keeps copies of your static files at the edge, close to visitors, which is one of the biggest wins for <a href=\"https:\/\/cdn.com.tr\/en\/learn\/speed-up-wordpress\">WordPress speed<\/a> and Core Web Vitals. New to CDNs? Start with <a href=\"https:\/\/cdn.com.tr\/en\/learn\/what-is-a-cdn\">What is a CDN?<\/a><\/p>\n\n<h4>Features<\/h4>\n\n<ul>\n<li><strong>Fast, efficient rewrite engine<\/strong> \u2014 automatically rewrites static asset URLs (CSS, JS, images) to your CDN hostname.<\/li>\n<li><strong>Include by file extension \/ exclude by string<\/strong> \u2014 precise control over exactly which URLs are served from the CDN.<\/li>\n<li><strong>One-click cache purging<\/strong> \u2014 purge everything or selected paths from the WordPress admin (requires a connected CDN.com.tr account).<\/li>\n<li><strong>Automatic purging<\/strong> \u2014 built-in hooks purge affected pages when you edit posts, terms, the customizer or switch themes, with a coalesced queue that de-duplicates API calls.<\/li>\n<li><strong>One-click connection<\/strong> \u2014 approve the site in your CDN.com.tr panel; the site receives a purge-only key, never your password. Revocable per site, and re-checked daily so a connection that stops working tells you instead of failing silently.<\/li>\n<li><strong>Speed health dashboard<\/strong> \u2014 one screen that tests your CDN live, checks your object cache, page cache and cache blockers, and points at whatever is holding your site back.<\/li>\n<li><strong>Free next-gen images (WebP\/AVIF)<\/strong> \u2014 optionally convert your images on your own server (GD\/Imagick) and serve them from the CDN via <code>&lt;picture&gt;<\/code>, with automatic fallback for older browsers. No per-image cloud fees. Converts new uploads in the background and includes a bulk converter for your existing media library.<\/li>\n<li><strong>Universal next-gen coverage<\/strong> \u2014 optionally next-gen every local image, not just your media library: theme and plugin images too, and CSS background images via <code>image-set()<\/code>. Only serves a converted file when it is actually smaller than the original, so photos are never upgraded to a bigger file.<\/li>\n<li><strong>CDN cache warm-up<\/strong> \u2014 keep your CDN edge hot by pre-requesting your cacheable pages, so real visitors get a fast cached hit instead of waiting for a cold origin render. Runs automatically after a purge and on a gentle background schedule.<\/li>\n<li><strong>WP-CLI support<\/strong> \u2014 manage and purge from the command line.<\/li>\n<li><strong>Multisite ready<\/strong> \u2014 works across a WordPress multisite network.<\/li>\n<li><strong>WordPress REST API support.<\/strong><\/li>\n<\/ul>\n\n<h4>Learn more about CDN.com.tr<\/h4>\n\n<p>CDN.com.tr is a CDN and managed hosting platform with edge locations across multiple countries, plus DDoS protection, WAF and automatic SSL.<\/p>\n\n<ul>\n<li><a href=\"https:\/\/cdn.com.tr\/en\/learn\/speed-up-wordpress\">How to speed up WordPress<\/a><\/li>\n<li><a href=\"https:\/\/cdn.com.tr\/en\/features\/wordpress-platform\">Managed WordPress on CDN.com.tr<\/a><\/li>\n<li><a href=\"https:\/\/cdn.com.tr\/en\/learn\/free-ssl-certificate\">Free SSL certificates explained<\/a><\/li>\n<\/ul>\n\n<h3>Third Party Service Usage<\/h3>\n\n<p>This plugin utilizes external services to provide its functionality. Specifically, it interacts with the CDN.com.tr service for content delivery network (CDN) related operations. This includes actions like purging cached content and checking account status.<\/p>\n\n<ul>\n<li>Service Name: CDN.com.tr<\/li>\n<li>Purpose: Used to connect the site to a CDN.com.tr account, to purge cached content, and to check the account status.<\/li>\n<li>Endpoints:\n\n<ul>\n<li>Purge All Cache: https:\/\/cdn.com.tr\/api\/purgeAll<\/li>\n<li>Purge Selected Paths: https:\/\/cdn.com.tr\/api\/purge<\/li>\n<li>Check Account Status: https:\/\/cdn.com.tr\/api\/checkAccount<\/li>\n<li>Connect this site (you are sent here to approve it, in your browser): https:\/\/cdn.com.tr\/connect\/wordpress<\/li>\n<li>Collect the connection key after you approve (server to server): https:\/\/cdn.com.tr\/api\/wp\/connect\/exchange<\/li>\n<\/ul><\/li>\n<li>What is sent: your site address and the connection key issued to this site. Warm-up and the live CDN test request your own public URLs through the CDN; no visitor data is sent to CDN.com.tr.<\/li>\n<li>Privacy Policy: https:\/\/cdn.com.tr\/en\/privacy<\/li>\n<li>Terms of Use: https:\/\/cdn.com.tr\/en\/privacy<\/li>\n<\/ul>\n\n<p>Please be aware that using this plugin means that your data will be sent to the aforementioned service. Ensure that you review the service's terms and policies to understand how your data is being used and to comply with any legal requirements.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Install CDNTR from <strong>Plugins \u2192 Add New<\/strong> in your WordPress admin, or upload the <code>cdntr<\/code> folder to <code>\/wp-content\/plugins\/<\/code>.<\/li>\n<li>Activate the plugin through the <strong>Plugins<\/strong> screen.<\/li>\n<li>Open <strong>Settings \u2192 CDNTR<\/strong>, go to the <strong>Connection<\/strong> tab and press <strong>Connect to CDN.com.tr<\/strong>. Approve the site in your panel; you are sent straight back, connected. (Sites on CDN.com.tr WordPress hosting are connected already.)<\/li>\n<li>On the <strong>CDN delivery<\/strong> tab pick your CDN hostname, adjust the file extensions to include and any strings to exclude, then save. Your static assets are now served from the CDN.<\/li>\n<li>Use the <strong>Purge<\/strong> button in the admin bar whenever you need to clear the cache; content changes are also purged automatically.<\/li>\n<li>Optional: turn on next-gen images on the <strong>Images<\/strong> tab and edge warm-up on the <strong>Warm-up<\/strong> tab.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"do%20i%20need%20a%20cdn.com.tr%20account%20to%20use%20the%20plugin%3F\"><h3>Do I need a CDN.com.tr account to use the plugin?<\/h3><\/dt>\n<dd><p>Yes \u2014 CDNTR rewrites your asset URLs to the CDN hostname tied to your CDN.com.tr account, and a connected account unlocks one-click and automatic cache purging from inside WordPress.<\/p><\/dd>\n<dt id=\"how%20does%20connecting%20work%2C%20and%20what%20can%20the%20site%20do%20with%20my%20account%3F\"><h3>How does connecting work, and what can the site do with my account?<\/h3><\/dt>\n<dd><p>You press <strong>Connect to CDN.com.tr<\/strong> and approve the site in your own panel; the site never sees your password. It receives a key scoped to a single permission \u2014 clearing your cache \u2014 which cannot read or change your storage, FTP or account settings. Every connected site is listed in your panel and can be revoked on its own. If your site cannot complete the redirect (a local or password-protected install), you can create the same key in the panel and paste it by hand.<\/p><\/dd>\n<dt id=\"will%20this%20work%20with%20my%20existing%20theme%20and%20plugins%3F\"><h3>Will this work with my existing theme and plugins?<\/h3><\/dt>\n<dd><p>Yes. CDNTR only rewrites the URLs of static files; it does not change your theme or content. You can include specific file extensions and exclude specific URLs as needed.<\/p><\/dd>\n<dt id=\"does%20it%20support%20woocommerce%20and%20dynamic%20sites%3F\"><h3>Does it support WooCommerce and dynamic sites?<\/h3><\/dt>\n<dd><p>Yes. Only static assets (CSS, JS, images) are served from the CDN; dynamic pages such as cart, checkout and account keep working normally. Automatic purge hooks help keep category and shop pages fresh.<\/p><\/dd>\n<dt id=\"how%20does%20cache%20purging%20work%3F\"><h3>How does cache purging work?<\/h3><\/dt>\n<dd><p>With a connected account you can purge all cache or selected paths manually from the admin bar, and the plugin also purges automatically when relevant content changes. Purges are queued and de-duplicated to avoid unnecessary API calls.<\/p><\/dd>\n<dt id=\"does%20it%20work%20on%20wordpress%20multisite%3F\"><h3>Does it work on WordPress multisite?<\/h3><\/dt>\n<dd><p>Yes, CDNTR supports multisite networks.<\/p><\/dd>\n<dt id=\"can%20i%20use%20it%20from%20wp-cli%3F\"><h3>Can I use it from WP-CLI?<\/h3><\/dt>\n<dd><p>Yes, CDNTR registers WP-CLI commands so you can manage and purge from the command line.<\/p><\/dd>\n<dt id=\"does%20it%20convert%20my%20images%20to%20webp%2Favif%3F\"><h3>Does it convert my images to WebP\/AVIF?<\/h3><\/dt>\n<dd><p>Optionally, yes. Enable \"Next-Gen Images\" in the settings and CDNTR creates WebP versions of your images on your own server using PHP's GD or Imagick \u2014 no cloud service and no per-image fees. Browsers that support WebP get the smaller file (served from the CDN via a <code>&lt;picture&gt;<\/code> element); older browsers automatically get the original. AVIF is offered too when your server supports it. New uploads are converted in the background, and a bulk converter handles your existing media library. If your server can't create WebP, the option is hidden with a note. CDNTR only advertises a converted file when it is genuinely smaller than the source, so it never upgrades a well-compressed photo to a bigger file.<\/p><\/dd>\n<dt id=\"can%20it%20convert%20theme%20images%20and%20css%20backgrounds%20too%3F\"><h3>Can it convert theme images and CSS backgrounds too?<\/h3><\/dt>\n<dd><p>Yes. Turn on the \"universal\" next-gen option and CDNTR covers every local image on the page \u2014 including images shipped by your theme and plugins, and images used as CSS <code>background-image<\/code> (delivered via <code>image-set()<\/code> with a graceful fallback) \u2014 not just your media library.<\/p><\/dd>\n<dt id=\"what%20is%20cdn%20cache%20warm-up%3F\"><h3>What is CDN cache warm-up?<\/h3><\/dt>\n<dd><p>After a purge (or on a light background schedule) CDNTR can pre-request your cacheable pages through the CDN so a fresh copy is stored at the edge. That way your visitors get an instant cached response instead of being the one that waits for a cold page render. It skips non-cacheable pages such as cart, checkout, account and search, and can warm both desktop and mobile variants.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>2.2.0<\/h4>\n\n<ul>\n<li>New: the plugin is fully translated into Turkish, Spanish, French, Russian, Arabic and Persian \u2014 all 155 strings, including the health-check diagnostics that explain what is wrong and how to fix it. Translations ship with the plugin, so they work as soon as you update; WordPress.org language packs, where they exist, still take precedence.<\/li>\n<li>Fix: two notices about your CDN package were hard-coded in Turkish and appeared that way to everyone, whatever their language.<\/li>\n<li>Fix: the package-expiry notice never fired. It compared an always-positive day count, so an expired package announced \"less than 7 days remain\" for a week after it had already lapsed, and the \"expired\" notice never showed at all.<\/li>\n<\/ul>\n\n<h4>2.1.1<\/h4>\n\n<ul>\n<li>New: <strong>Optimization dashboard.<\/strong> The plugin page opens with a one-look health check of your whole delivery stack: is the CDN really serving your files (live edge test with cache HIT\/MISS and timing), do you have a persistent object cache, is a page cache \u2014 or a conflicting second CDN plugin \u2014 active, and is anything blocking caching. Every row either fixes the issue in place or links you to exactly where it can be fixed.<\/li>\n<li>New: <strong>Connect to CDN.com.tr in one click.<\/strong> Press the button, approve the site in your own CDN.com.tr panel \u2014 the way you would connect a GitHub or Google account \u2014 and you are done. Nothing to copy, no password to type. Sites on CDN.com.tr WordPress hosting arrive connected already, and can be pointed at another account at any time.<\/li>\n<li>Security: the plugin no longer asks for your CDN.com.tr account password. Connecting issues a purge-only key that can clear your cache and nothing else, and any single site can be disconnected without touching the others.<\/li>\n<li>Security: your credentials are now verified on the server. They used to be sent from the browser, which exposed them to any script running on the admin page.<\/li>\n<li>The plugin screen is now one row of tabs \u2014 Optimization, Connection, CDN delivery, Images, Warm-up \u2014 instead of one long column of settings. Each tab has its own address, so a reload or a bookmark keeps you where you were, and saving one tab leaves the others untouched.<\/li>\n<li>The connection panel names the account the way your CDN.com.tr panel does, with the account ID kept underneath for support.<\/li>\n<li>The homepage check now tells the truth about HTML caching \u2014 and names the culprit. If your own theme or a plugin sends no-cache headers (or WordPress internally resolves your pages as 404s), the check says so with the exact file, instead of blaming your CDN settings; only when the origin is truly clean does it point at the CDN account.<\/li>\n<li>Fix: \"Max pages to warm\" is finally respected. The Warm cache now button asked for a fixed 200 pages and ignored the setting entirely.<\/li>\n<li>New: the Warm-up tab shows what warming actually did \u2014 every page it requested, the response it got, whether the CDN edge served it from cache, and how long it took, updating live while a run is in progress.<\/li>\n<li>Fix: approving the connection twice (a browser Back, a reload, a second tab) no longer reports the connection as invalid. A repeated approval is recognised, and a site that is already connected is told so instead of being shown an error.<\/li>\n<li>Fix: the plugin re-checks its connection once a day. A site whose credentials stopped being accepted used to go on claiming it was connected forever, while every purge failed in silence.<\/li>\n<li>A saved connection key is no longer printed back into the settings page; leave the field empty to keep the stored key.<\/li>\n<li>Sites on CDN.com.tr WordPress hosting connect themselves \u2014 no username, no key, nothing to enter.<\/li>\n<\/ul>\n\n<h4>2.0.0<\/h4>\n\n<p>A major release: CDNTR grows from a CDN URL rewriter + purge tool into a full CDN performance plugin \u2014 free next-gen images and CDN cache warm-up, all on-server and opt-in.\n* New: Local next-gen images \u2014 optional on-server WebP (and AVIF where supported) conversion, served from the CDN via <code>&lt;picture&gt;<\/code> with the original as an automatic fallback. Background conversion on upload + a bulk converter for your existing media library (with progress and cancel). Runs on GD\/Imagick \u2014 no per-image cloud fees, nothing leaves your server.\n* New: Universal next-gen coverage \u2014 optionally next-gen <em>every<\/em> local image, not just the media library: theme and plugin images, and CSS <code>background-image<\/code> via <code>image-set()<\/code>. Understands page-optimizer image proxies so it still works alongside them.\n* New: Smart size guard \u2014 a converted file is only served when it is actually smaller than the original (photos are never upgraded to a bigger WebP).\n* New: CDN cache warm-up \u2014 keeps your CDN edge hot by pre-requesting cacheable pages, so visitors get a fast cached hit instead of a cold origin render. Fires automatically after a purge, batched so it never hammers your origin, and can warm desktop + mobile variants.\n* New: Warns in the admin when another image-optimization plugin is active, to avoid double processing.\n* Tested up to WordPress 7.0.<\/p>\n\n<h4>1.2.5<\/h4>\n\n<ul>\n<li>Added async purge mode support for runtime-triggered invalidations<\/li>\n<li>Added coalesced purge queue with short window to reduce duplicate API calls<\/li>\n<li>Added lightweight purge telemetry counters for operational diagnostics<\/li>\n<li>Added purge mode\/coalescing filters (<code>cdntr_purge_mode<\/code>, <code>cdntr_purge_coalesce_window<\/code>)<\/li>\n<\/ul>\n\n<h4>1.2.4<\/h4>\n\n<ul>\n<li>Added built-in term change purge hooks (create\/edit\/delete) with focused taxonomy support<\/li>\n<li>Added built-in sitewide purge hooks for customizer and theme switch events<\/li>\n<li>Added short purge burst throttling for noisy event streams to reduce duplicate API calls<\/li>\n<li>Reduced need for site-specific CDNTR auto-purge mu-plugins by moving common logic into core plugin<\/li>\n<\/ul>\n\n<h4>1.2.3<\/h4>\n\n<ul>\n<li>Security hardening for path-based purge normalization (control-char stripping, traversal-like path guard, length bound)<\/li>\n<li>Safer taxonomy purge handling by skipping invalid term links<\/li>\n<li>Improved delete-flow purge coverage by collecting related post\/category\/shop paths before deletion<\/li>\n<\/ul>\n\n<h4>1.2.2<\/h4>\n\n<ul>\n<li>screenshots and assets added<\/li>\n<\/ul>\n\n<h4>1.2.1<\/h4>\n\n<ul>\n<li>Minor security updates<\/li>\n<\/ul>","raw_excerpt":"Connect in one click. CDN for WordPress with free WebP\/AVIF images, automatic cache purging, edge warm-up and a live speed health check.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/lt.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/197022","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/lt.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/lt.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/lt.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=197022"}],"author":[{"embeddable":true,"href":"https:\/\/lt.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/cdninternet"}],"wp:attachment":[{"href":"https:\/\/lt.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=197022"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/lt.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=197022"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/lt.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=197022"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/lt.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=197022"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/lt.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=197022"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/lt.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=197022"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}