{"id":75667,"date":"2019-03-05T08:49:07","date_gmt":"2019-03-05T16:49:07","guid":{"rendered":"https:\/\/cloudblogs.microsoft.com\/opensource\/?p=75667"},"modified":"2025-06-29T07:50:48","modified_gmt":"2025-06-29T14:50:48","slug":"make-websites-wordpress-joomla-load-faster-azure-cdn","status":"publish","type":"post","link":"https:\/\/opensource.microsoft.com\/blog\/2019\/03\/05\/make-websites-wordpress-joomla-load-faster-azure-cdn\/","title":{"rendered":"Make websites on WordPress and Joomla faster with Azure CDN"},"content":{"rendered":"\n<p>We all know it; first impressions are the most lasting. As in real-world, sluggish load times can leave a negative impression for any website and even negatively affect your business. Below we\u2019ll walk through how Azure CDN can improve that first impression, speeding up websites hosted on WordPress or Joomla.<\/p>\n\n\n\n<p>As with most users, our goal was to test and improve the performance of our website, not only in Europe, but also globally. Since most of the content in this example is static, it\u2019s a perfect candidate to be included into a Content Delivery Network (CDN).<\/p>\n\n\n\n<p>Read on to learn how we reduced the load time of our website&nbsp;<a href=\"https:\/\/www.cloudelicious.net\/\">cloudelicous.net<\/a>&nbsp;from more than three seconds down to approximately one second.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"preparing-for-optimized-delivery\">Preparing for optimized delivery<\/h2>\n\n\n\n<p>It\u2019s good to get an understanding of how fast or slow the current website is. Helpful tools are provided by GTmetrix and Pingdom, but you can also use&nbsp;<a href=\"https:\/\/docs.microsoft.com\/en-us\/vsts\/load-test\/get-started-simple-cloud-load-test?view=vsts\">Load Test<\/a>&nbsp;from Azure DevOps. As a preparation, we looked into the following two topics:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Optimizing Images<\/strong>\u00a0is the low hanging fruit \u2013 reduce the size of images without losing out on quality. We use ShortPixel (available as a free plugin), which reduced the file size by ~60% without noticeable degrading the quality.<\/li>\n\n\n\n<li><strong>Caching of Content<\/strong>\u00a0is another very well-known and important practice. We decided to use the WordPress plugin Swift Performance, available as a free and premium version.<\/li>\n<\/ul>\n\n\n\n<p>After implementing the solution described above, we started with the performance analysis using Pingdom and ended up with a score as follows:<\/p>\n\n\n<figure class=\"wp-block-image aligncenter\"><img decoding=\"async\" src=\"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/03\/v2-CDN-Image-1-1024x609.webp\" alt=\"Website performance statistics - before\" class=\"wp-image-75751 webp-format\" srcset=\"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/03\/v2-CDN-Image-1.webp 1209w, https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/03\/v2-CDN-Image-1-300x178.webp 300w, https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/03\/v2-CDN-Image-1-1024x609.webp 1024w, https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/03\/v2-CDN-Image-1-768x457.webp 768w, https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/03\/v2-CDN-Image-1-330x196.webp 330w, https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/03\/v2-CDN-Image-1-800x476.webp 800w, https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/03\/v2-CDN-Image-1-400x238.webp 400w\" data-orig-src=\"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/03\/v2-CDN-Image-1.png\" data-orig-srcset=\"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/03\/v2-CDN-Image-1.png 1209w, https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/03\/v2-CDN-Image-1-300x178.png 300w, https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/03\/v2-CDN-Image-1-1024x609.png 1024w, https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/03\/v2-CDN-Image-1-768x457.png 768w, https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/03\/v2-CDN-Image-1-330x196.png 330w, https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/03\/v2-CDN-Image-1-800x476.png 800w, https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/03\/v2-CDN-Image-1-400x238.png 400w\"><\/figure>\n\n\n\n<p>The performance grade was already quite okay in Germany, but performed poorly for users in US, Brazil, and Tokyo. With image optimization and caching already in place, fronting the content with Content Delivery Network (CDN) is the last possible way to boost the performance.<\/p>\n\n\n\n<p>You may find various articles on how to improve the performance of a website, but using CDN is something that gave us the biggest bang for our buck.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"what-is-azure-cdn\">What is Azure CDN?<\/h2>\n\n\n\n<p>Let\u2019s dive into this question for a second: A Content Delivery Network (CDN) is a distributed network of servers that can efficiently deliver web content to users. CDNs deliver cached and dynamic content from edge servers and\/or Point of Presence (POP) locations that are, in the case of Azure, deployed in over 129 sites globally to minimize latency. For more information, reference the official&nbsp;<a href=\"https:\/\/docs.microsoft.com\/en-us\/azure\/cdn\/\">documentation<\/a>.<\/p>\n\n\n\n<p>Having a CDN brings the content of the website closer to its visitors. Using a local CDN POP helps accelerate downloading and display content. Other reasons for using a CDN could be to:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>reduce the stress on your origin, your web server<\/li>\n\n\n\n<li>protect the web server from denial of service attacks (DDoS)<\/li>\n\n\n\n<li>access to a high performing edge network at a affordable price<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"does-it-make-sense-to-use-a-cdn\">Does it make sense to use a CDN?<\/h2>\n\n\n\n<p>The prominent question at this point is when should a CDN be used. In a typical case, you should use a CDN when your website is getting accessed beyond your local region. Our blog is hosted in Europe, extending the capabilities with CDN was a logical step to improve the experience for Asia and Americas.<\/p>\n\n\n\n<p>The Azure CDN platform is comprised of three providers, namely Azure CDN from Verizon, Azure CDN from Akamai, and Azure CDN from Microsoft.<\/p>\n\n\n<figure class=\"wp-block-image aligncenter\"><img decoding=\"async\" src=\"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/03\/v2-CDN-Image-2-1024x461.webp\" alt=\"website pricing options\" class=\"wp-image-75757 webp-format\" srcset=\"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/03\/v2-CDN-Image-2.webp 1184w, https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/03\/v2-CDN-Image-2-300x135.webp 300w, https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/03\/v2-CDN-Image-2-1024x461.webp 1024w, https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/03\/v2-CDN-Image-2-768x346.webp 768w, https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/03\/v2-CDN-Image-2-330x149.webp 330w, https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/03\/v2-CDN-Image-2-800x360.webp 800w, https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/03\/v2-CDN-Image-2-400x180.webp 400w\" data-orig-src=\"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/03\/v2-CDN-Image-2.png\" data-orig-srcset=\"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/03\/v2-CDN-Image-2.png 1184w, https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/03\/v2-CDN-Image-2-300x135.png 300w, https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/03\/v2-CDN-Image-2-1024x461.png 1024w, https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/03\/v2-CDN-Image-2-768x346.png 768w, https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/03\/v2-CDN-Image-2-330x149.png 330w, https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/03\/v2-CDN-Image-2-800x360.png 800w, https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/03\/v2-CDN-Image-2-400x180.png 400w\"><\/figure>\n\n\n\n<p>We chose the \u201cStandard Verizon\u201d in our example, but we could have chosen any other provider as well. We didn\u2019t require any special features, but the most fancy is probably the \u201cCustom domain HTTPS\u201d support, which allows us to specify a custom domain name \u201ccdn.cloudelicious.net\u201d, instead of \u201ccloudelicous.azureedge.net\u201d.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"configure-azure-cdn\">Configure Azure CDN<\/h2>\n\n\n\n<p>The configuration of the CDN is very straightforward. We configured it with the following settings:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Origin\n<ul class=\"wp-block-list\">\n<li>\u201ccloudelicious.net\u201d is configured as the \u201cOrigin hostname\u201d, which defines the URL where the CDN is pulling the content from;<\/li>\n\n\n\n<li>\u201cOrigin host header\u201d and \u201cOrigin path\u201d are left blank, as they are not required for our setup;<\/li>\n\n\n\n<li>We also enabled HTTPS (443) as the protocol of choice.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>Compression\n<ul class=\"wp-block-list\">\n<li>We enabled compression, which will compress the CSS and HTML files.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>Custom Domains\n<ul class=\"wp-block-list\">\n<li>We added \u201ccdn.cloudelicious.net\u201d as our custom hostname, and then enabled https over custom domain.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<p>We will be using Azure CLI for enabling CDN. Think of the resource group (cloudelicious-prod-rg) you want to use for this and start with the creation of the CDN profile (cloudelicious-prod-profile). In this step the SKU will be selected, which will be \u201cStandard Verizon\u201d in the example below.<\/p>\n\n\n\n<p><strong>az cdn profile create -g \u2018cloudelicious-prod-rg\u2019 -n \u2018cloudelicious-prod-profile\u2019 \u2013sku Standard_Verizon<\/strong><\/p>\n\n\n\n<p>A named endpoint \u201ccloudelicious-prod-endpoint\u201d is created to connect to a CDN. In this step the origin hostname and the URL of the website (<a href=\"http:\/\/www.cloudelicious.net\/\">www.cloudelicious.net<\/a>) will be specified, SSL only (TCP 443) and compression will be enabled as well:<\/p>\n\n\n\n<p><strong>az cdn endpoint create -g \u2018cloudelicious-prod-rg\u2019 -n \u2018cloudelicious-prod-endpoint\u2019 \u2013profile-name \u2018cloudelicious-prod-profile\u2019 \u2013origin \u2018cdn.cloudelicious.net\u2019 \u2013no-http \u2013enable-compression<\/strong><\/p>\n\n\n\n<p>The next step is the configuration and enablement of the custom domain \u201ccdn.cloudelicious.net\u2019\u201d. Of course, this domain name has to be registered in your DNS before proceeding.<\/p>\n\n\n\n<p><strong>az cdn custom-domain create -g \u2018cloudelicious-prod-rg\u2019 \u2013endpoint-name \u2018cloudelicious-prod-endpoint\u2019 \u2013profile-name \u2018cloudelicious-prod-profile\u2019 -n \u2018cloudelicious\u2019 \u2013hostname \u2018cdn.cloudelicious.net\u2019<\/strong><\/p>\n\n\n\n<p>Using the final command to enable the custom domain, including validation can be completed within a few hours.<\/p>\n\n\n\n<p><strong>az cdn custom-domain enable-https -g \u2018cloudelicious-prod-rg\u2019 \u2013endpoint-name \u2018cloudelicious-prod-endpoint\u2019 \u2013profile-name \u2018cloudelicious-prod-profile\u2019 -n \u2018cloudelicious\u2019<\/strong><\/p>\n\n\n\n<p>The steps above are all you need to configure. Remember the URL specified under name \u201ccloudelicous.azureedge.net\u201d or custom domain \u201ccdn.cloudelicious.net\u201d as this will be used later to configure the CDN for the website, in the example using WordPress or Joomla.<\/p>\n\n\n\n<p>If you want to know more about Azure CDN, check out this&nbsp;<a href=\"https:\/\/channel9.msdn.com\/Shows\/Azure-Friday\/Optimize-Your-Content-Delivery-with-Azure-CDN\">Azure Friday<\/a>&nbsp;show to get an understanding of how CDN works.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"enable-joomla-for-cdn\">Enable Joomla for CDN<\/h2>\n\n\n\n<p>As mentioned during the introduction, Joomla is one of the most popular content management systems (CMS), along with WordPress. The integration of Azure CDN into a Joomla-based website is as easy and can be done by installing the extension for CDN. The extensions to add\/configure the CDN endpoints are the following and are not exclusive:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/extensions.joomla.org\/extension\/cdn-for-joomla\/\">CDN for Joomla!<\/a>\u00a0Use paid version for HTTPS support<\/li>\n\n\n\n<li><a href=\"https:\/\/extensions.joomla.org\/extension\/jch-optimize\/\">JCH Optimize<\/a><\/li>\n<\/ul>\n\n\n\n<p>The extension updates the website to support rewriting, which ensures static assets are loaded from the CDN and not anymore from the origin server.<\/p>\n\n\n\n<p>The configuration is straightforward. Add the CDN endpoint name as the \u201cCDN Domain\u201d and check the file types you want to load from the CDN. One thing not to forget is to clear the cache, this will purge all the stored cached files and force up to pull the assets from the CDN.<\/p>\n\n\n\n<p>Same as above, the configuration is straight forward. Add the CDN Endpoint Name as the \u201cCDN Domain\u201d and check the file types you want to load from the CDN. One thing not to forget is to clear the cache \u2013 this will purge all the stored cached files and force to pull the assets from the CDN.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"enable-wordpress-for-cdn\">Enable WordPress for CDN<\/h2>\n\n\n\n<p>If you are using WordPress, as we are with our blog cloudelicious.net, then you have to install a WordPress plugin. The requirement is to use a plugin that does URL rewrites using the CDN hostname on the webpage, since default WordPress doesn\u2019t do that. Using a plugin is a prerequisite as WordPress uses absolute URLs for linking on its page by default. It would bypass the CDN if no rewriting is done.<\/p>\n\n\n\n<p>The plugin is needed to add\/configure the CDN endpoints. In most cases, a caching plugin offers this integration. For this test we used \u201c<a href=\"https:\/\/wordpress.org\/plugins\/swift-performance-lite\/\">Swift Performance<\/a>\u201c as it provided the best improvement. The configuration of the CDN isn\u2019t complicated and is activated by adding the CDN\u2019s endpoint. Simply add the URL defined before in our case \u201ccdn.cloudelicious.net\u201d.<\/p>\n\n\n\n<p>It takes a few minutes to deploy, plus it\u2019s easy and maintains itself once the configuration is done. No need to push content, Azure CDN is taking care of everything from this moment. To run some tests on CDN, utilize&nbsp;<a href=\"https:\/\/www.cdnplanet.com\/tools\/cdnfinder\/#site:https:\/\/www.cloudelicious.net\/\">CDN Planet<\/a>, which offers a good tool.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"cross-origin-resource-sharing-cors\">Cross-Origin Resource Sharing (CORS)<\/h2>\n\n\n\n<p>Depending on the scenario, you might need to enable Cross-Origin Resource Sharing (CORS). CORS is an essential component when loading web fonts or images from another domain, or loading them from the CDN. When not handled correctly, the data won\u2019t be loaded or displayed unless it is explicitly stated in the HTTP header. If not stated, an error like the following would be shown:<\/p>\n\n\n\n<p>Access to Font has been blocked by CORS policy: No \u2018Access-Control-Allow-Origin\u2019 header is present on the requested resource<\/p>\n\n\n\n<p>The configuration can be done directly on the web server (the origin), or on the CDN Endpoint if supported. As we went with the Verizon Standard SKU, we had to configure the CORS header on the origin server. The code snippets below can be used to add the HTTP Header Access-Control-Allow-Origin for *.css files and web fonts:<\/p>\n\n\n\n<p><strong>.htaccess<\/strong><\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\n<IfModule mod_headers.c>\n   <FilesMatch \"\\.(ttf|ttc|otf|eot|woff|font.css|css)$\">\n     Header set Access-Control-Allow-Origin \"https:\/\/www.cloudelicous.net\"\n   <\/FilesMatch>\n<\/IfModule>\n<\/pre><\/div>\n\n\n<p><strong>Nginx<\/strong><\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\nlocation ~ \\.(ttf|ttc|otf|eot|woff|font.css|css)$ {\n            add_header Access-Control-Allow-Origin \" \nhttps:\/\/www.cloudelicous.net\";\n}\n<\/pre><\/div>\n\n\n<p>In the example above, our site \u201chttps:\/\/www.cloudelicous.net\u201d is granted access to the requested resources, such as css files and web fonts. For testing purpose, you might want to start using a wildcard (*) to setup the HTTP header, which disables CORS and allows any URL to access the CDN Endpoint. I wouldn\u2019t recommend this for production.<\/p>\n\n\n\n<p>If you don\u2019t have access to the origin server, you will need to use&nbsp;<a href=\"https:\/\/docs.microsoft.com\/en-us\/azure\/cdn\/cdn-cors#wildcard-or-single-origin-scenarios\">Azure CDN Premium SKU offers<\/a>&nbsp;to set CORS header from the CDN. As mentioned above, this capability is not yet available with the Azure CDN Standard SKU\u2019s.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"performance-improvement\">Performance improvement<\/h2>\n\n\n\n<p>You probably wonder how much this configuration changed the performance of the website. We didn\u2019t expect miracles, but we were very happy with the new score of caching and CDN:<\/p>\n\n\n<figure class=\"wp-block-image aligncenter\"><img decoding=\"async\" src=\"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/03\/v2-CDN-image-3-1024x610.webp\" alt=\"Website performance statistics - before\" class=\"wp-image-75754 webp-format\" srcset=\"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/03\/v2-CDN-image-3.webp 1205w, https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/03\/v2-CDN-image-3-300x179.webp 300w, https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/03\/v2-CDN-image-3-1024x610.webp 1024w, https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/03\/v2-CDN-image-3-768x458.webp 768w, https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/03\/v2-CDN-image-3-330x197.webp 330w, https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/03\/v2-CDN-image-3-800x477.webp 800w, https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/03\/v2-CDN-image-3-400x238.webp 400w\" data-orig-src=\"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/03\/v2-CDN-image-3.png\" data-orig-srcset=\"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/03\/v2-CDN-image-3.png 1205w, https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/03\/v2-CDN-image-3-300x179.png 300w, https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/03\/v2-CDN-image-3-1024x610.png 1024w, https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/03\/v2-CDN-image-3-768x458.png 768w, https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/03\/v2-CDN-image-3-330x197.png 330w, https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/03\/v2-CDN-image-3-800x477.png 800w, https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/03\/v2-CDN-image-3-400x238.png 400w\"><\/figure>\n\n\n\n<p>We had a significant improvement in speed from oversees. There is a slight lag when accessing the website from the same local area, but the load time of 720 ms is still very fast. As you can see from above, the configuration was also super easy and set up requires only three steps:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Setup Azure CDN<\/li>\n\n\n\n<li>Install a Joomla\/WordPress plugin or extension<\/li>\n\n\n\n<li>Configure the CMS to use CDN<\/li>\n<\/ul>\n\n\n\n<p>We reduced total load time from more than three seconds down to approximately one second (average). This is a considerable reduction that you can feel as an end-user. Of course, these results can change again when more content has been published. Also updating Joomla\/WordPress or updating the plugins could have an impact. But the performance improvements after implementing caching and a CDN are overwhelmingly positive.<\/p>\n\n\n\n<p><em>Questions or feedback? Let us know in the comments.<\/em><\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"follow-michel-michelluescher-and-on-his-blog-cloudelicious-net\">Follow Michel&nbsp;<a href=\"https:\/\/twitter.com\/michelluescher\">@michelluescher<\/a>&nbsp;and on his blog&nbsp;<a href=\"https:\/\/www.cloudelicious.net\/\">cloudelicious.net<\/a><\/h4>\n","protected":false},"excerpt":{"rendered":"<p>We all know it; first impressions are the most lasting. As in real-world, sluggish load times can leave a negative impression for any website and even negatively affect your business. Below we\u2019ll walk through how Azure CDN can improve that first impression, speeding up websites hosted on WordPress or Joomla.<\/p>\n","protected":false},"author":5562,"featured_media":95465,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"msxcm_post_with_no_image":false,"ep_exclude_from_search":false,"_classifai_error":"","_classifai_text_to_speech_error":"","footnotes":""},"post_tag":[2272],"content-type":[340],"topic":[2241],"programming-languages":[],"coauthors":[457],"class_list":["post-75667","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","tag-microsoft","content-type-tutorials-and-demos","topic-cloud","review-flag-1593580428-734","review-flag-1593580415-931","review-flag-1593580771-946","review-flag-and-o-1593580423-446","review-flag-exclu-1593580297-613","review-flag-free-1593619513-693","review-flag-new-1593580248-669"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.2 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Make websites on WordPress and Joomla faster with Azure CDN | Microsoft Open Source Blog<\/title>\n<meta name=\"description\" content=\"Michel Luescher walk through how Azure CDN can improve website performance, using his websites hosted on WordPress or Joomla as examples.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/opensource.microsoft.com\/blog\/2019\/03\/05\/make-websites-wordpress-joomla-load-faster-azure-cdn\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Make websites on WordPress and Joomla faster with Azure CDN | Microsoft Open Source Blog\" \/>\n<meta property=\"og:description\" content=\"Michel Luescher walk through how Azure CDN can improve website performance, using his websites hosted on WordPress or Joomla as examples.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/opensource.microsoft.com\/blog\/2019\/03\/05\/make-websites-wordpress-joomla-load-faster-azure-cdn\/\" \/>\n<meta property=\"og:site_name\" content=\"Microsoft Open Source Blog\" \/>\n<meta property=\"article:published_time\" content=\"2019-03-05T16:49:07+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-06-29T14:50:48+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2024\/06\/CLO19_Ubisoft_Azure_037.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1170\" \/>\n\t<meta property=\"og:image:height\" content=\"640\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Michel Luescher\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@OpenAtMicrosoft\" \/>\n<meta name=\"twitter:site\" content=\"@OpenAtMicrosoft\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Michel Luescher\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"7 min read\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/opensource.microsoft.com\/blog\/2019\/03\/05\/make-websites-wordpress-joomla-load-faster-azure-cdn\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/opensource.microsoft.com\/blog\/2019\/03\/05\/make-websites-wordpress-joomla-load-faster-azure-cdn\/\"},\"author\":[{\"@id\":\"https:\/\/opensource.microsoft.com\/blog\/author\/michel-luescher\/\",\"@type\":\"Person\",\"@name\":\"Michel Luescher\"}],\"headline\":\"Make websites on WordPress and Joomla faster with Azure CDN\",\"datePublished\":\"2019-03-05T16:49:07+00:00\",\"dateModified\":\"2025-06-29T14:50:48+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/opensource.microsoft.com\/blog\/2019\/03\/05\/make-websites-wordpress-joomla-load-faster-azure-cdn\/\"},\"wordCount\":1797,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/opensource.microsoft.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/opensource.microsoft.com\/blog\/2019\/03\/05\/make-websites-wordpress-joomla-load-faster-azure-cdn\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2024\/06\/CLO19_Ubisoft_Azure_037.webp\",\"keywords\":[\"Microsoft\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/opensource.microsoft.com\/blog\/2019\/03\/05\/make-websites-wordpress-joomla-load-faster-azure-cdn\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/opensource.microsoft.com\/blog\/2019\/03\/05\/make-websites-wordpress-joomla-load-faster-azure-cdn\/\",\"url\":\"https:\/\/opensource.microsoft.com\/blog\/2019\/03\/05\/make-websites-wordpress-joomla-load-faster-azure-cdn\/\",\"name\":\"Make websites on WordPress and Joomla faster with Azure CDN | Microsoft Open Source Blog\",\"isPartOf\":{\"@id\":\"https:\/\/opensource.microsoft.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/opensource.microsoft.com\/blog\/2019\/03\/05\/make-websites-wordpress-joomla-load-faster-azure-cdn\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/opensource.microsoft.com\/blog\/2019\/03\/05\/make-websites-wordpress-joomla-load-faster-azure-cdn\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2024\/06\/CLO19_Ubisoft_Azure_037.webp\",\"datePublished\":\"2019-03-05T16:49:07+00:00\",\"dateModified\":\"2025-06-29T14:50:48+00:00\",\"description\":\"Michel Luescher walk through how Azure CDN can improve website performance, using his websites hosted on WordPress or Joomla as examples.\",\"breadcrumb\":{\"@id\":\"https:\/\/opensource.microsoft.com\/blog\/2019\/03\/05\/make-websites-wordpress-joomla-load-faster-azure-cdn\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/opensource.microsoft.com\/blog\/2019\/03\/05\/make-websites-wordpress-joomla-load-faster-azure-cdn\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/opensource.microsoft.com\/blog\/2019\/03\/05\/make-websites-wordpress-joomla-load-faster-azure-cdn\/#primaryimage\",\"url\":\"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2024\/06\/CLO19_Ubisoft_Azure_037.webp\",\"contentUrl\":\"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2024\/06\/CLO19_Ubisoft_Azure_037.webp\",\"width\":1170,\"height\":640},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/opensource.microsoft.com\/blog\/2019\/03\/05\/make-websites-wordpress-joomla-load-faster-azure-cdn\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/opensource.microsoft.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Make websites on WordPress and Joomla faster with Azure CDN\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/opensource.microsoft.com\/blog\/#website\",\"url\":\"https:\/\/opensource.microsoft.com\/blog\/\",\"name\":\"Microsoft Open Source Blog\",\"description\":\"Open dialogue about openness at Microsoft \u2013 open source, standards, interoperability\",\"publisher\":{\"@id\":\"https:\/\/opensource.microsoft.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/opensource.microsoft.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/opensource.microsoft.com\/blog\/#organization\",\"name\":\"Microsoft Open Source Blog\",\"url\":\"https:\/\/opensource.microsoft.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/opensource.microsoft.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/08\/Microsoft-Logo.png\",\"contentUrl\":\"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/08\/Microsoft-Logo.png\",\"width\":259,\"height\":194,\"caption\":\"Microsoft Open Source Blog\"},\"image\":{\"@id\":\"https:\/\/opensource.microsoft.com\/blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/x.com\/OpenAtMicrosoft\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Make websites on WordPress and Joomla faster with Azure CDN | Microsoft Open Source Blog","description":"Michel Luescher walk through how Azure CDN can improve website performance, using his websites hosted on WordPress or Joomla as examples.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/opensource.microsoft.com\/blog\/2019\/03\/05\/make-websites-wordpress-joomla-load-faster-azure-cdn\/","og_locale":"en_US","og_type":"article","og_title":"Make websites on WordPress and Joomla faster with Azure CDN | Microsoft Open Source Blog","og_description":"Michel Luescher walk through how Azure CDN can improve website performance, using his websites hosted on WordPress or Joomla as examples.","og_url":"https:\/\/opensource.microsoft.com\/blog\/2019\/03\/05\/make-websites-wordpress-joomla-load-faster-azure-cdn\/","og_site_name":"Microsoft Open Source Blog","article_published_time":"2019-03-05T16:49:07+00:00","article_modified_time":"2025-06-29T14:50:48+00:00","og_image":[{"width":1170,"height":640,"url":"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2024\/06\/CLO19_Ubisoft_Azure_037.png","type":"image\/png"}],"author":"Michel Luescher","twitter_card":"summary_large_image","twitter_creator":"@OpenAtMicrosoft","twitter_site":"@OpenAtMicrosoft","twitter_misc":{"Written by":"Michel Luescher","Est. reading time":"7 min read"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/opensource.microsoft.com\/blog\/2019\/03\/05\/make-websites-wordpress-joomla-load-faster-azure-cdn\/#article","isPartOf":{"@id":"https:\/\/opensource.microsoft.com\/blog\/2019\/03\/05\/make-websites-wordpress-joomla-load-faster-azure-cdn\/"},"author":[{"@id":"https:\/\/opensource.microsoft.com\/blog\/author\/michel-luescher\/","@type":"Person","@name":"Michel Luescher"}],"headline":"Make websites on WordPress and Joomla faster with Azure CDN","datePublished":"2019-03-05T16:49:07+00:00","dateModified":"2025-06-29T14:50:48+00:00","mainEntityOfPage":{"@id":"https:\/\/opensource.microsoft.com\/blog\/2019\/03\/05\/make-websites-wordpress-joomla-load-faster-azure-cdn\/"},"wordCount":1797,"commentCount":0,"publisher":{"@id":"https:\/\/opensource.microsoft.com\/blog\/#organization"},"image":{"@id":"https:\/\/opensource.microsoft.com\/blog\/2019\/03\/05\/make-websites-wordpress-joomla-load-faster-azure-cdn\/#primaryimage"},"thumbnailUrl":"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2024\/06\/CLO19_Ubisoft_Azure_037.webp","keywords":["Microsoft"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/opensource.microsoft.com\/blog\/2019\/03\/05\/make-websites-wordpress-joomla-load-faster-azure-cdn\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/opensource.microsoft.com\/blog\/2019\/03\/05\/make-websites-wordpress-joomla-load-faster-azure-cdn\/","url":"https:\/\/opensource.microsoft.com\/blog\/2019\/03\/05\/make-websites-wordpress-joomla-load-faster-azure-cdn\/","name":"Make websites on WordPress and Joomla faster with Azure CDN | Microsoft Open Source Blog","isPartOf":{"@id":"https:\/\/opensource.microsoft.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/opensource.microsoft.com\/blog\/2019\/03\/05\/make-websites-wordpress-joomla-load-faster-azure-cdn\/#primaryimage"},"image":{"@id":"https:\/\/opensource.microsoft.com\/blog\/2019\/03\/05\/make-websites-wordpress-joomla-load-faster-azure-cdn\/#primaryimage"},"thumbnailUrl":"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2024\/06\/CLO19_Ubisoft_Azure_037.webp","datePublished":"2019-03-05T16:49:07+00:00","dateModified":"2025-06-29T14:50:48+00:00","description":"Michel Luescher walk through how Azure CDN can improve website performance, using his websites hosted on WordPress or Joomla as examples.","breadcrumb":{"@id":"https:\/\/opensource.microsoft.com\/blog\/2019\/03\/05\/make-websites-wordpress-joomla-load-faster-azure-cdn\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/opensource.microsoft.com\/blog\/2019\/03\/05\/make-websites-wordpress-joomla-load-faster-azure-cdn\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/opensource.microsoft.com\/blog\/2019\/03\/05\/make-websites-wordpress-joomla-load-faster-azure-cdn\/#primaryimage","url":"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2024\/06\/CLO19_Ubisoft_Azure_037.webp","contentUrl":"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2024\/06\/CLO19_Ubisoft_Azure_037.webp","width":1170,"height":640},{"@type":"BreadcrumbList","@id":"https:\/\/opensource.microsoft.com\/blog\/2019\/03\/05\/make-websites-wordpress-joomla-load-faster-azure-cdn\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/opensource.microsoft.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Make websites on WordPress and Joomla faster with Azure CDN"}]},{"@type":"WebSite","@id":"https:\/\/opensource.microsoft.com\/blog\/#website","url":"https:\/\/opensource.microsoft.com\/blog\/","name":"Microsoft Open Source Blog","description":"Open dialogue about openness at Microsoft \u2013 open source, standards, interoperability","publisher":{"@id":"https:\/\/opensource.microsoft.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/opensource.microsoft.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/opensource.microsoft.com\/blog\/#organization","name":"Microsoft Open Source Blog","url":"https:\/\/opensource.microsoft.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/opensource.microsoft.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/08\/Microsoft-Logo.png","contentUrl":"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/08\/Microsoft-Logo.png","width":259,"height":194,"caption":"Microsoft Open Source Blog"},"image":{"@id":"https:\/\/opensource.microsoft.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/x.com\/OpenAtMicrosoft"]}]}},"msxcm_display_generated_audio":false,"msxcm_animated_featured_image":null,"distributor_meta":false,"distributor_terms":false,"distributor_media":false,"distributor_original_site_name":"Microsoft Open Source Blog","distributor_original_site_url":"https:\/\/opensource.microsoft.com\/blog","push-errors":false,"_links":{"self":[{"href":"https:\/\/opensource.microsoft.com\/blog\/wp-json\/wp\/v2\/posts\/75667","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/opensource.microsoft.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/opensource.microsoft.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/opensource.microsoft.com\/blog\/wp-json\/wp\/v2\/users\/5562"}],"replies":[{"embeddable":true,"href":"https:\/\/opensource.microsoft.com\/blog\/wp-json\/wp\/v2\/comments?post=75667"}],"version-history":[{"count":1,"href":"https:\/\/opensource.microsoft.com\/blog\/wp-json\/wp\/v2\/posts\/75667\/revisions"}],"predecessor-version":[{"id":97815,"href":"https:\/\/opensource.microsoft.com\/blog\/wp-json\/wp\/v2\/posts\/75667\/revisions\/97815"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/opensource.microsoft.com\/blog\/wp-json\/wp\/v2\/media\/95465"}],"wp:attachment":[{"href":"https:\/\/opensource.microsoft.com\/blog\/wp-json\/wp\/v2\/media?parent=75667"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/opensource.microsoft.com\/blog\/wp-json\/wp\/v2\/post_tag?post=75667"},{"taxonomy":"content-type","embeddable":true,"href":"https:\/\/opensource.microsoft.com\/blog\/wp-json\/wp\/v2\/content-type?post=75667"},{"taxonomy":"topic","embeddable":true,"href":"https:\/\/opensource.microsoft.com\/blog\/wp-json\/wp\/v2\/topic?post=75667"},{"taxonomy":"programming-languages","embeddable":true,"href":"https:\/\/opensource.microsoft.com\/blog\/wp-json\/wp\/v2\/programming-languages?post=75667"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/opensource.microsoft.com\/blog\/wp-json\/wp\/v2\/coauthors?post=75667"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}