Kinsta CDN

At Kinsta, maximizing the performance of our customers’ sites is one of our top priorities. Every part of our hosting stack, from our Google Cloud C3D virtual machines to our highly tuned software configurations, is selected with performance in mind.

A content delivery network (CDN) is a crucial component of a modern hosting stack. We’re proud to offer a premium CDN powered by Cloudflare at no additional cost. In this article, you’ll learn more about Kinsta’s CDN and how to enable it for your WordPress site.

Kinsta’s CDN is enabled by default on all new sites here at Kinsta.

Kinsta’s CDN

Our free Cloudflare integration secures all sites hosted on Kinsta. In addition to an enterprise-level firewall and DDoS protection, Kinsta customers also have access to a high-performance HTTP/3 CDN powered by Cloudflare’s robust global network.

How Fast Is Kinsta’s CDN?

To test the performance of Kinsta’s CDN, we ran a series of benchmark tests from 10 locations around the world. For this test, we used a WordPress blog with a custom theme and a variety of text and graphical content hosted in Google Cloud’s data center in Iowa, USA. In total, the page we tested made over 30 static asset requests (JS, CSS, images, fonts, etc.) and weighed in at 3.2 MB. Lastly, we measured the full page load time three times per location and calculated the average time in each location.

During our performance benchmark tests, we found that enabling Kinsta’s CDN resulted in up to a 44% reduction in page load time. In the table below, you can see the before vs after results compared for different locations.

Keep in mind that locations that are in close proximity to the origin server we used to run our tests (Iowa, USA) may not see a performance boost with Kinsta’s CDN.

LocationNo CDN (seconds)Kinsta’s CDN (seconds)Percent Diff
Frankfurt2.642.19-17.05%
Amsterdam3.051.7-44.26%
London2.781.55-44.24%
New York1.160.835-28.02%
Dallas0.7210.849+17.75%
San Francisco1.11.2+9.09%
Singapore4.913.41-30.55%
Sydney4.723.95-16.31%
Tokyo2.832.18-22.97%
Bangalore4.434.82+8.80%

With a network that spans 260+ cities in more than 100 countries, Cloudflare operates one of the largest CDN networks in the world. Comparatively, other popular CDN providers like KeyCDN, and Bunny CDN have less than 60 points-of-presence (PoPs).

This means that by enabling Kinsta’s CDN, your WordPress site will be able to serve static assets from many more locations across the world without the need to pay for additional services!

Advantages of Kinsta’s CDN

By leveraging Cloudflare’s network, Kinsta’s CDN offers a number of advantages over traditional CDN providers. Let’s go over a few of the CDN’s biggest advantages:

HTTP/3 Support

Kinsta’s CDN comes with native support for HTTP/3, the latest revision of the HTTP protocol. Compared to HTTP/2, HTTP/3 offers faster 0-RTT handshakes, SSL encryption requirements, better performance, and more.

Now that major web browsers like Chrome and Firefox have added HTTP/3 support, it’s important for CDN providers to start supporting it as well. At this time, Kinsta’s CDN is one of the few CDNs that support HTTP/3. With that said, you don’t have to worry if your visitors’ browsers don’t support HTTP/3 yet, as Kinsta’s CDN will automatically fall back to HTTP/2 when necessary.

Primary Domain Support

Cloudflare is a reverse proxy service, which means you won’t need a secondary domain just to take advantage of its various features. Thanks to Kinsta’s CDN, your site’s cached assets can be served from your primary domain instead of a secondary CDN domain.

While Google claims there is no SEO benefit to serving images from your primary domain, there are still a few advantages to not having to rely on a secondary CDN domain. For example, if you share an image URL that uses a secondary CDN domain, it may return an HTTP 404 error if you switch your CDN provider in the future. By caching and serving static assets via your primary domain, you won’t have to worry about this problem.

Lastly, being able to serve assets from the primary domain without dealing with URL rewrites for a secondary domain also improves compatibility with WordPress multisite.

Image Optimization

Kinsta’s CDN offers image optimization, which automatically converts your PNG, GIF, and JPEG images to the WebP format to improve your website speed and performance.

Code minification

With Kinsta’s CDN, you also have the option to turn on code minification to remove unnecessary elements from your JavaScript and CSS files. This reduces page load time and bandwidth needed for your site.

How to Enable Kinsta’s CDN

To enable Kinsta’s CDN, log in to MyKinsta, go to WordPress Sites > sitename > CDN, and click Enable CDN. When CDN is enabled, we serve all static content (such as images, CSS, and JavaScript files) through our Content Delivery Network. The limit is 5 GB per file.

Enable Kinsta's CDN in MyKinsta.
Enable Kinsta’s CDN in MyKinsta.

Next, confirm this change by clicking on the Enable CDN button in the pop-up/modal window.

Confirm you want to enable Kinsta's CDN by clicking on the Enable CDN button.
Confirm you want to enable Kinsta’s CDN by clicking on the Enable CDN button.

File Types Cached by Kinsta’s CDN

Files are cached based on the file extension, not the MIME type. If you would like to exclude some content from the CDN, check out CDN Default File and URL Exclusions.

7zafmapkaviavifbmpbz2cff
csscurdmgdocdocxeotepubexe
ffilflacflvgifgzheicheifico
isojfifjpegjpgjsjsonlwfnm4a
m4vmapmidmidimkvmovmp3mp4
mpgaodpodsodtoggogvotfpdf
pfbpfmpngpptpptxproqtrar
rtfscssttfstdsvgsvgztartgz
tiftifftxtwavwebmwebpwmvwoff
woff2xlsxlsxxmlxsfzipzst

CDN Default File and URL Exclusions

When you enable CDN, we exclude certain files by default from being served by the CDN:

  • The robots.txt file.
  • Any files in the .well-known directory.
  • Any file name that contains the word “sitemap” (whether it’s at the beginning, middle, or end of the file name).

CDN Exclusion Settings

On the CDN page, under the Exclude files from CDN section, click on the Settings button to configure additional directory paths, URL paths, and/or file extensions to be excluded from the CDN. Excluding files from being cached will increase your resource usage.

Add Exclusions

Enter the (directory) path, URL (path), or file extension you want to exclude.

  • Exclude files based on directory (directory path): Enter one directory or file path at a time, relative to the public directory/folder, like /wp-content/uploads/custom-image-folder, /my-documents, or /data-feed.txt and click the Add directory button. All static assets within those directories and subdirectories (if they exist) will be excluded from the CDN.
  • Exclude files based on URL (URL path): Enter the path (do not include the protocol or domain), one page at a time like /homepage, /blog/2021, or /shopping, and click the Add URL path button. All static assets on those pages will be excluded from the CDN, based on their Referer header. When a page is loaded in the browser, all subrequests for static assets have a Referer header that matches that page’s URL. Any subrequest that has an excluded URL path in its Referer header is excluded from the CDN.
  • Exclude files based on type: Add one or multiple file extensions like .jpg, .jpeg, or .gif by choosing each file type from the dropdown menu and clicking the Add extension button for each extension you want to add. Any file ending in any of those extensions will be excluded from the CDN, no matter where they are located in your site files. To quickly find a file extension, you can start typing it in the field provided.
MyKinsta settings for CDN exclusion.
MyKinsta settings for CDN exclusion.

Edit Exclusions

To edit the path or URL exclusions, click on the pencil (edit) icon on the right-hand side for that exclusion.

Edit directory or URL exclusions in Kinsta CDN settings.
Edit directory or URL exclusions in Kinsta CDN settings.

In the Edit exclusion modal/pop-up that appears, make your desired changes to the exclusion and click the Edit exclusion button to save your changes.

Saving your edit to a CDN exclusion.
Saving your edit to a CDN exclusion.

Delete Exclusions

To delete an exclusion, click on the trash can (delete) icon on the right-hand side for that exclusion.

Delete a directory or URL exclusion in Kinsta CDN settings.
Delete a directory or URL exclusion in Kinsta CDN settings.

You can also select multiple exclusions by selecting the checkbox next to each one or check the multi-select box at the top of each exclusion list to select all exclusions in that list.

Delete multiple file type exclusions in Kinsta CDN.
Delete multiple file type exclusions in Kinsta CDN.

Important Notes

  • Percent-encoding (aka URL encoding) is a method for encoding spaces and certain special characters in URLs. If needed, this is handled in the background. If you enter a URL path with spaces or other reserved characters, it will be shown in MyKinsta the way you enter it but will be stored and used with the encoded value, so it works as intended. If you’re not sure if a URL path is encoded, visit the URL of the page or asset and copy the URL path from your browser’s address bar.
  • Subpaths of a directory path or URL path are excluded as well. For example, if /blog is entered, subpages like /blog/category-1 and /blog/category-1/some-post-title will also be excluded from the CDN. If you do not want those subpages to be excluded, you’ll need to enter the entire path of the page to be excluded. Entering /blog/category-2/some-title will exclude that page from the CDN, while other pages like /blog, /blog/category-1, and even /blog/category-2/some-other-title will still be served by the CDN.
  • Only one path or file extension can be entered at a time.
  • A single, specific file can be excluded by adding the directory path and file name to the Exclude files based on directory field.

Exclusion Examples

Exclude all static assets in the /public/wp-content/my-custom-folder directory.

Add /wp-content/my-custom-folder to Exclude files based on path.

Add /wp-content/my-custom-folder to Exclude files based on directory in CDN settings.
Add /wp-content/my-custom-folder to Exclude files based on directory in CDN settings.

Visiting any page that loads static assets from that directory and viewing the Network tab of browser developer tools will show those static assets are bypassing the CDN.

Exclude the data-feed.txt file in the public directory.

Add /data-feed.txt to Exclude files based on directory.

Add /data-feed.txt to Exclude files based on directory in CDN settings.
Add /data-feed.txt to Exclude files based on directory in CDN settings.

Exclude all static assets on the /shop/item-1 page.

Add /shop/item-1 to Exclude files based on URL.

Add /shop/item-1 to Exclude files based on URL in CDN settings.
Add /shop/item-1 to Exclude files based on URL in CDN settings.

Visiting the https://example.com/shop/item-1 page and viewing the Network tab of browser developer tools will show all static assets loaded on that page are bypassing the CDN.

Exclude all PDF files from the CDN.

Add the PDF extension to Exclude files based on type.

Add the PDF extension to Exclude files based on type in CDN settings.
Add the PDF extension to Exclude files based on type in CDN settings.

Visiting any page that includes a PDF file and viewing the Network tab of browser developer tools will show that the file is bypassing the CDN.

Code Minification

Once CDN is enabled, the Code minification settings will be available. Minification removes unnecessary characters like comments and whitespace from your code.

These characters are great for humans when we’re editing code, but browsers do not need them. Removing them optimizes your code, reduces page size, and reduces page load time.

Enable Code Minification

Click on the Settings button to configure your preferred code minification settings.

Code minification settings for CDN in MyKinsta.
Code minification settings for CDN in MyKinsta.

In the Code minification pop-up modal that appears, choose CSS, JS, or both, and click the Change Settings button to save your settings.

Save code minification settings for CDN.
Save code minification settings for CDN.

Important Notes

  • Be sure to check your site after enabling Code minification. Some browsers may have issues with minified items. If you see any problems on your site, disable Code minification.
  • Enabling code minification may take a few minutes to take effect.
  • If you have your own Cloudflare account, you’ll need to clear cache at Cloudflare (either in the Cloudflare dashboard or the Cloudflare plugin) for minification to work.
  • Any files ending in .css or .js served over the Kinsta-hosted domain will be minified, depending on which file type you enable minification for or if you enable it for both. For instance, if you host example.com with us and choose to minify CSS files, both example.com/wp-content/themes/yourtheme/style.css and example.com/wp-content/plugins/woocommerce/some-file.css will be minified, but externally linked assets like twitter.com/styles/example-shared.css can’t be minified by this tool.
  • Any files that have .min in the file name will be skipped. Typically, files with .min in the file name have already been minified and trying to minify the file again doesn’t provide any advantage.

Check for Code Minification

  1. Visit your site and open developer tools in your browser.
  2. On the Network tab, double-click a JS or CSS file to open it in a new tab. Be sure to choose one that wasn’t previously minified by your theme or a plugin.
  3. Check the file for white space or comments. If you’re seeing any JS or CSS files that aren’t minified, reload the page a couple of times, then check the JS or CSS files again.
  4. If files aren’t minified after reloading the page a couple of times, open a new chat with our Support team and let them know the URLs of the files that aren’t minified.

CDN Code Minification Advantages

This minification is done on Cloudflare’s edge and cached there too, so it has some advantages over code minification with a plugin:

  • Your server doesn’t have to use resources (CPU/memory/storage) to minify the files. Cloudflare handles that on their side.
  • Your server doesn’t have to subsequently serve the minified files, either. Cloudflare serves them directly from the closest edge server to the visitor making the request.
  • Cloudflare minifies the files in the background, so the first request to a not-yet-minified asset is not delayed by Cloudflare’s process to make it minified. The next request to that asset should get the cached, minified version.

Image Optimization

Images account for the bulk of most websites’ load times. With a few clicks, Image Optimization can improve load times and make you and your visitors happier. Image Optimization is only available when Kinsta’s CDN is enabled.

Image optimization does not alter the images stored in your site files; it creates new images. The new images don’t require additional storage, and they will not count toward the disk space use of your Kinsta plan.

When Lossless or Lossy is enabled, the CDN automatically creates WebP versions of the images on the fly using Cloudflare’s Polish service. The WebP versions are cached in Cloudflare’s CDN and are delivered if:

  1. the Accept header in the visitor’s browser includes WebP, and
  2. the WebP version is significantly smaller.

Enabling Image Optimization

On the CDN page, click on the Image Optimization Settings button to configure and enable Image Optimization on your WordPress site.

Image optimization settings in MyKinsta.
Image optimization settings in MyKinsta.

That will bring you to a new window where you choose between Lossless or Lossy image optimization:

Image optimization settings in MyKinsta.
Image optimization settings in MyKinsta.

Lossless Image Optimization

Lossless Image Optimization is done with lossless compression and has no impact on the quality of your images. Only GIF and PNG images are compressed, and WebP versions of those images are created. Metadata is removed from all images.

Selecting the Lossless image optimization option in MyKinsta.
Selecting the Lossless image optimization option in MyKinsta.

Select this option if retaining your image quality is essential. If you want to compress and make WebP versions of JPEG images, you’ll need to select the Lossy option.

After you click the Save Settings button, the CDN page should look like this:

Lossless image optimization enabled in MyKinsta.
Lossless image optimization enabled in MyKinsta.

Lossy Image Optimization

Lossy Image Optimization may reduce the quality of your JPEG images because it uses lossy compression to make those images as small as possible. This option will compress GIF and PNG files the same as the lossless option and remove metadata from all images. It will also create Webp versions of all images, but the Webp version is only used if it is significantly smaller than the lossy or lossless compressed image.

Selecting the Lossy image optimization option in MyKinsta.
Selecting the Lossy image optimization option in MyKinsta.

Select this option to maximize image optimization, understanding that it may impact image quality.

After you click the Save Settings button, the CDN page should look like this:

Lossy image optimization enabled in MyKinsta.
Lossy image optimization enabled in MyKinsta.

Test Image Optimization

Image Optimization doesn’t change the URL or file extension of the image, and it will not alter the HTML of your website’s pages. To confirm Image Optimization is working, you can inspect the HTTP headers of an image on your site with your browser’s built-in developer tools.

  1. Visit your site and open developer tools in your browser (right-click on the page or an image and click Inspect).
  2. On the Network tab, reload the page if needed and select an image.
  3. In the Headers tab for the selected image, scroll down until you see the Response Headers and look for these headers and values:
    1. cf-polished: This shows you the original format and file size of the image. If the generated WebP version of the image is a larger file size than the original image, the original image is still used.
    2. content-type: This shows you what file format is being served, regardless of the URL or file extension.
    3. ki-cache-type: This should have a value of CDN.
    4. ki-cf-cache-status: This should have a value of HIT. This, in combination with a ki-cache-type header value of CDN shows that the image is being served by Kinsta’s CDN.

Disabling Image Optimization

To disable Image Optimization on your website, log in to MyKinsta, go to WordPress Sites > sitename > CDN and click on Settings for Image Optimization. From the new window, select None and click on Save Settings.

The CDN page will now reflect no Image Optimization settings are applied and will look like this:

Image optimization disabled in MyKinsta.
Image optimization disabled in MyKinsta.

How to Disable or Purge Kinsta’s CDN

After Kinsta’s CDN has been enabled, a green checkmark beside Enabled indicates that the CDN is now live! On this page, there are now two buttons –Disable and Clear CDN Cache.

  • Disable: click this button to disable Kinsta’s CDN.
  • Clear CDN Cache: click this button to flush the CDN cache; this process may take up to 5 minutes to complete. Clearing the CDN cache is a good first troubleshooting step if you see discrepancies on the front end of your site. For example, if you make some changes to your CSS but don’t see the changes on the front end, the old CSS file may be cached. Clearing the CDN cache would be one of the first things to try in your troubleshooting process.
Disable Kinsta's CDN or Clear CDN Cache in MyKinsta.
Disable Kinsta’s CDN or Clear CDN Cache in MyKinsta.

Clear CDN Cache With the Kinsta MU Plugin

With the Kinsta MU plugin installed on your site, you can clear the CDN cache in your WordPress dashboard or use WP-CLI to clear the CDN cache with this command:

wp kinsta cache purge --cdn

Testing Kinsta’s CDN

Since Kinsta’s CDN doesn’t use a secondary CDN domain, you can’t verify that the CDN is working by inspecting the URL of your static files, but you can test it with a website speed test tool.

Before you proceed with speed tests, we recommend inspecting the HTTP headers of a static asset to confirm it is loading from Kinsta’s CDN. Below are a few ways to check your site’s HTTP headers.

How to Check Kinsta’s CDN With Kinsta’s HTTP Status and Redirect Checker

You can check the HTTP status and redirect chain of any URL with our free HTTP status and redirect checker. Using this tool you can review the response headers to check whether Kinsta’s CDN is working.

First, you’ll need to find the URL of a static asset on your site. To do this, right-click on an image on your site, and copy the URL. Paste this URL into the redirect checker tool and run the check.

You should see results like this:

HTTP headers in the results of Kinsta's HTTP Status and Redirect Checker tool.
HTTP headers in the results of Kinsta’s HTTP Status and Redirect Checker tool.

Scroll down until you see Response headers. In this section, there are two headers to check the values of: cf-cache-status and ki-cf-cache-status. The values will vary depending on whether or not you use your own Cloudflare account (Cloudflare domain) or not (non-Cloudflare domain).

Non-Cloudflare Domain (no Cloudflare account)

Both headers (cf-cache-status and ki-cf-cache-status) should have a value of HIT. If you see a different value such as MISS or DYNAMIC, try to run the check a few times to prime the CDN cache. You should also see the ki-cache-tag response header, which indicates the asset is being served by Kinsta’s CDN.

Cloudflare Domain (your own Cloudflare account)

The cf-cache-status header will indicate if cache was returned from your Cloudflare account and the ki-cf-cache-status header will indicate if cache was returned from Kinsta’s Cloudflare integration. If the value of cf-cache-status is DYNAMIC or BYPASS and the value of ki-cf-cache-status is HIT, this shows Kinsta’s CDN is enabled while CDN is disabled (usually with a Page Rule) in your Cloudflare account.

How to Check Kinsta’s CDN With a Web Browser

You can use your web browser’s built-in developer tools to check whether Kinsta’s CDN is working. For this example, we’ll use Google Chrome to inspect HTTP headers for a static asset. To launch the Chrome developer tools, right-click on the page and click Inspect.

Right-click and select Inspect to launch Chrome developer tools.
Right-click and select Inspect to launch Chrome developer tools.

Next, click on the Network tab and reload the page. As the page loads, you’ll see a list of the page’s static assets on the left-hand side of the developer tools window. To verify that Kinsta’s CDN is working correctly, click on any static asset (CSS, JS, image file, or web font) that loads from your domain.

HTTP headers in the Network tab of Chrome developer tools.
HTTP headers in the Network tab of Chrome developer tools.

In the Headers tab, scroll down until you see the Response Headers. In this section, there are two headers to check the values of: cf-cache-status and ki-cf-cache-status. The values will vary depending on whether or not you use your own Cloudflare account (Cloudflare domain) or not (non-Cloudflare domain).

Non-Cloudflare Domain (no Cloudflare account)

Both headers (cf-cache-status and ki-cf-cache-status) should have a value of HIT. If you see a different value such as MISS or DYNAMIC, try to refresh the page a few times to prime the CDN cache. You should also see the ki-cache-tag response header, which indicates the asset is being served by Kinsta’s CDN.

Cloudflare Domain (your own Cloudflare account)

The cf-cache-status header will indicate if cache was returned from your Cloudflare account and the ki-cf-cache-status header will indicate if cache was returned from Kinsta’s Cloudflare integration. If the value of cf-cache-status is DYNAMIC or BYPASS and the value of ki-cf-cache-status is HIT, this shows Kinsta’s CDN is enabled while CDN is disabled (usually with a Page Rule) in your Cloudflare account.

How to Check Kinsta’s CDN in Terminal

If you’re familiar with using Terminal (command line), you can also check HTTP headers with the curl command. First, you’ll need to find the URL of a static asset on your site. To do this, right-click on an image on your site, and copy the URL.

Next, use the command below and substitute the URL at the end of the command with your asset URL.

curl -L -s -o /dev/null -D - https://kinstacdn.kinstalife.com/wp-content/uploads/2021/01/post-one.jpg

After running this command, you should get a response like this:

Check cf-cache-status, ki-cf-cache-status, and ki-cache-tag in response to curl to a static asset in Terminal.
Check cf-cache-status, ki-cf-cache-status, and ki-cache-tag in response to curl to a static asset in Terminal.

There are two headers to check the values of: cf-cache-status and ki-cf-cache-status. The values will vary depending on whether or not you use your own Cloudflare account (Cloudflare domain) or not (non-Cloudflare domain).

Non-Cloudflare Domain (no Cloudflare account)

If Kinsta’s CDN is enabled, there should be a HIT value next to both headers (cf-cache-status and ki-cf-cache-status). If you see DYNAMIC or MISS instead of HIT, try to run the command a few more times to prime the CDN cache. You should also see the ki-cache-tag header in the response, which indicates the asset is being served by Kinsta’s CDN.

Cloudflare Domain (your own Cloudflare account)

The cf-cache-status header will indicate if cache was returned from your Cloudflare account and the ki-cf-cache-status will indicate if cache was returned from Kinsta’s Cloudflare integration. If the value of cf-cache-status is DYNAMIC or BYPASS and the value of ki-cf-cache-status is HIT, this shows Kinsta’s CDN is enabled while CDN is disabled (usually with a Page Rule) in your Cloudflare account.

Important Notes

Here are some important notes regarding Kinsta’s CDN integration.

  • If you’re using a third-party CDN, we recommend disabling it before enabling Kinsta’s CDN. Using multiple CDN services for a single site can cause asset purging issues.
  • If you use your own Cloudflare account alongside Kinsta’s Cloudflare integration, some caching and optimization settings may override the Kinsta settings or vice versa, depending on the setting. In this case, enabling Kinsta’s CDN will only offer the benefit of letting you cache larger files than what the Free, Pro, and Business Cloudflare plans offer.
  • The maximum cacheable file size is 5 GB.
  • Static assets are not automatically served over HTTPS. To ensure all assets are served over HTTPS, enable Force HTTPS in MyKinsta.
  • When Kinsta’s CDN is enabled, the cache-control header is set as follows:
    "Cache-Control", "public, max-age=31536000, s-maxage=31536000"
    This Cache-Control header overrides any Expires or Cache-Control headers set in Nginx or your Cloudflare account’s Browser Cache TTL. If you need custom Expires or Cache-Control headers, you’ll need to disable Kinsta’s CDN.

Summary

Kinsta’s CDN is a high-performance CDN available to all Kinsta customers at no additional cost. It’s powered by our free Cloudflare integration and automatically serves your content from 260+ PoPs across the globe. If you have any questions about Kinsta’s CDN, feel free to reach out to our 24/7 Support team for further assistance!

Was this article helpful?