Replaces the blog URL by another for all files under
That way static content can be handled by a CDN by origin pull. (The origin is your blog address.)
You could upload your static files to S3, CloudFront or just any site, too.
For S3/Cloudfront, see this script
to help you with uploading/synchronizing your blog files.
lite version of the plugin works like the regular version but is not supported.
You can get the regular version at Github, which:
- Is free of charge, open source and without any ads.
- Supported. Here is the bug tracker if you encounter any issues.
- Has more and advanced features.
- Is updated more frequently. See Downloads.
- Quality assurance.
- Setup your CDN: Either configure an origin pull, mirror bucket or upload your static files somewhere.
- Upload the plugin to your
- Activate the plugin through the ‘Plugins’ menu in WordPress.
- Provide the URL where your static files can be found under
- How to uninstall?
Either deactivate the plugin or delete the plugin’s directory.
- Why another such plugin?
As many WP plugins don’t correctly include JS and CSS files most of the current CDN plugins cannot
rewrite links correctly. They rely on the high-level WP API.
This plugin does its rewriting on the lowest level possible – PHP itself.
- How does it work?
After your blog pages have been rendered but before sending them to the visitor,
it will rewrite links pointing to
wp-includes. That rewriting will simply
replace your blog URL with that you have entered in settings screen.
Thus files are pulled from the other site.
- Is it compatible to plugin XY?
Yes, by design it is compatible to all plugins. It hooks into a PHP function (ob_start)
and there does the string replacement. Therefore, no WordPress function is altered, overwritten or modified in any way.
Indeed, you could even copy this plugin’s rewriter into any arbitrary PHP software.
- Where can I see it in action?
On my own blog, Mark’s blog. See the source code of any page.
- Will it work with my CDN?
Yes, if it supports origin pull (aka mirror bucket, some sort of caching). Or if you upload your files manually.
- What about Amazon’s S3?
Right, S3 doesn’t support origin pull. You will have to upload your files by hand.
I’ve written a script for this, too, so it is just a matter of running it. It is linked on the bottom of my blog post about copying files to S3.
- What other plugins do you recommend?
Now that you can offload all the files such as images, music or CSS, you should serve your blog posts as static files to decrease load on your server.
I recommend SuperCache-Plus
as it will maintain, update and create that static files from dynamic content for you.
The off-linker is compatible.
The experts at
Arcostreamcurrently develop (or have it ready by now) a plugin which enables you to set up a CDN at their’s
with one click or two. Without any configuration, everything is automatic. Please google their licensed flavour of this plugin. 😉
- I discovered a bug!
If you are using the
liteversion, please upgrade.
The following applies only to the
regularversion which you can find at Github.
Share it with me! The rarer a species, the more interesting. But I will need its habitat, too.
Therefore, please send me at least one page with the plugin turned off and on, as attachment.
Contributors & Developers
“CDN Linker lite” is open source software. The following people have contributed to this plugin.Contributors
Translate “CDN Linker lite” into your language.
Interested in development?
Browse the code, check out the SVN repository, or subscribe to the development log by RSS.
- Lite version. With less features, but as simple as the original.
- Support for multiple CDN (domain) names. (Idea by «ericesev» and «digory». You’re great!)
- New option to rewrite «root-relative» links has been added. (As suggested by Tony Stuck. Thanks!)
- The plugin has been rewritten and received unit tests.
The plugin has been
- renamed to «CDN Linker» and
- moved to Github.
- version bump due to WordPress’ plugin page having released the plugin prematurely
- an input field has been added for defining matches that shall be excluded from rewriting
- added the feature to include additional (to
wp-includes) directories for rewriting
- fixed: bug which messed with urls located at the root level of the site, introduced in 1.0.2 (thanks to Vic Holtreman for reporting)
- rewriting of URLs from embedded
- fixed: wrongful rewrite of links into the blogs root directory (thanks to Greg Winn for reporting)
- support for off-loading files in root directory, such as
- initial version, as published on my blog