EWWW Easy IO
EWWW Easy IO (also called ExactDN) is a CDN and image optimisation service from EWWW Image Optimizer. When configured as your CDN in WP Media Cloud, Easy IO intercepts your media URLs and serves them through its own CDN with on-the-fly optimisation including WebP and AVIF conversion, resizing, and lazy loading. WP Media Cloud handles the origin registration and URL handoff automatically.
How EWWW Easy IO works with WP Media Cloud#
The integration works in two stages:
- WP Media Cloud offloads files to your cloud storage bucket and rewrites WordPress attachment URLs to point to the bucket.
- EWWW Easy IO intercepts those bucket URLs and rewrites them again to the Easy IO CDN domain, where it applies image optimisation on the fly before serving the file to the visitor.
For Easy IO to recognise your bucket as the origin it should proxy, WP Media Cloud writes an EXACTDN_LOCAL_DOMAIN constant to wp-config.php and creates a mu-plugin that loads before EWWW. This happens automatically when you save EWWW Easy IO as your CDN type. You do not need to set this up manually.
When Easy IO is active, WP Media Cloud disables its own URL rewriting hooks to avoid double-rewriting. Easy IO takes over URL rewriting from the bucket URL onwards.
Before you start#
You will need:
- The EWWW Image Optimizer plugin installed and active.
- Easy IO (ExactDN) enabled in EWWW Image Optimizer settings.
- An EWWW API key with an Easy IO plan.
- Your storage provider already configured in WP Media Cloud with a working connection test.
EWWW Easy IO is available as a CDN type for all storage providers except Bunny Edge Storage, which uses its own CDN integration.
Step 1: Enable Easy IO in EWWW Image Optimizer#
In your WordPress admin, go to Settings > EWWW Image Optimizer. Enable Easy IO and enter your EWWW API key. Save settings. EWWW will register your site with the Easy IO service and assign an ExactDN domain in the format [hash].exactdn.com.
Step 2: Configure EWWW Easy IO in WP Media Cloud#
Go to WP Media Cloud > Settings and find the CDN section for your storage provider. Select EWWW Easy IO as the CDN type. Enter your EWWW API key in the field provided.
Save settings. WP Media Cloud will automatically register your bucket’s origin URL with the Easy IO service using the API, retrieve your ExactDN alias hostname, and write the EXACTDN_LOCAL_DOMAIN configuration so EWWW knows to treat your bucket as the origin. The CDN URL field will be populated automatically with your ExactDN alias once registration completes.
Step 3: Test CDN delivery#
Go to Media > Library, click on any offloaded image, and check the file URL in the attachment details panel. It should show your ExactDN alias hostname rather than the direct bucket URL. Open the URL in a browser to confirm the file loads and that EWWW is applying optimisation (check the response headers for an x-exactdn header).
Dashboard analytics#
When EWWW Easy IO is configured as your CDN, WP Media Cloud’s Dashboard tab shows bandwidth data pulled from the EWWW API:
- Total bandwidth — total bytes delivered through Easy IO for the last 30 days
EWWW Easy IO does not provide a daily bandwidth breakdown, so no bandwidth chart is shown on the Dashboard. Only the total bandwidth figure is available from the Easy IO API.
Known behaviour#
When EWWW Easy IO is active alongside WP Media Cloud, WP Media Cloud’s own URL rewriting is disabled. Easy IO handles all URL rewriting from the bucket URL onward. If you deactivate the EWWW Image Optimizer plugin, WP Media Cloud’s own URL rewriting will resume and media will be served directly from your bucket URL rather than through Easy IO.
WP Media Cloud writes a mu-plugin to wp-content/mu-plugins/ and modifies wp-config.php when EWWW Easy IO is set as the CDN type. When you switch to a different CDN type, these are removed automatically on save.
Troubleshooting#
CDN URL not populating after save
WP Media Cloud registers your bucket origin with EWWW automatically on save. If the CDN URL field remains empty, confirm your EWWW API key is correct and that your server can make outbound HTTPS connections to optimize.exactlywww.com. Check the Health tab for outbound connection issues.
Images not serving through Easy IO
Confirm that Easy IO is enabled in EWWW Image Optimizer settings and that an ExactDN domain has been assigned. Also confirm that EXACTDN_LOCAL_DOMAIN is correctly set in wp-config.php to your bucket’s origin URL. If it is missing, re-save your WP Media Cloud CDN settings to trigger the write.
Double URL rewriting
If image URLs contain both a bucket hostname and an ExactDN hostname in the same URL, WP Media Cloud’s URL rewriting has not been disabled correctly. This can happen if EWWW Easy IO is not fully initialised before WP Media Cloud runs. Re-saving settings and clearing any page cache usually resolves this.
Deactivating EWWW breaks image URLs
When EWWW Easy IO is your CDN and you deactivate the EWWW Image Optimizer plugin, WP Media Cloud resumes rewriting URLs to the bucket directly. Images will load from the bucket URL. If your bucket is not publicly accessible, images will break. Ensure your bucket is publicly readable before deactivating EWWW.