{"id":31339,"date":"2023-10-03T07:00:00","date_gmt":"2023-10-03T14:00:00","guid":{"rendered":"https:\/\/cloudinary.com\/blog\/?p=31339"},"modified":"2024-06-27T10:46:11","modified_gmt":"2024-06-27T17:46:11","slug":"integrating-cloudinary-image-optimization-netlify-hosting","status":"publish","type":"post","link":"https:\/\/cloudinary.com\/blog\/integrating-cloudinary-image-optimization-netlify-hosting","title":{"rendered":"Integrating Cloudinary Image Optimization With Netlify Hosting"},"content":{"rendered":"<div class=\"wp-block-cloudinary-markdown \"><p>For web developers, <a href=\"https:\/\/www.netlify.com\">Netlify<\/a> is one of the premier options for both hosting as well as a suite of other features to enable you to serve up performant websites quickly and simply. Combining this with Cloudinary then becomes an obvious choice. Cloudinary\u2019s image (and video) optimizations can help those websites even more by allowing for tedious image improvements to be handled for you. Let\u2019s take a look at how this can be done, first at a high level and then I\u2019ll demonstrate with a real example of it in action.<\/p>\n<h2>Multiple Options for Multiple Needs<\/h2>\n<p>At a high level, there\u2019s three ways you can consider using Cloudinary on your Netlify site, and it\u2019s absolutely possible that your site may make use of one or more of these techniques.<\/p>\n<h3>The Manual Approach With SDKs<\/h3>\n<p>The first option would be a <strong>manual<\/strong> or SDK approach. In this example, you would look at your images on your site and decide which should be optimized and how. This optimization can be done by hand (changing the URL to one hosted by Cloudinary with optimization options) or done via the SDKs (which also ultimately output a URL that would be used in your HTML). This approach also allows for a more \u201cgradual\u201d move to employing Cloudinary. So for example, maybe you just use it to optimize header images, and then later more improvements are added. This gives the best and more precise control over how Cloudinary helps improve your site, but also takes the most time.<\/p>\n<h3>Optimizing via Netlify Integration<\/h3>\n<p>The second option would be via the <a href=\"https:\/\/netlify-plugin-cloudinary.netlify.app\/\">Netlify Cloudinary<\/a> integration. This option runs at build time, when your site is generated, and handles the optimizations for your automatically. While there\u2019s still options here for configuration and such, this will be the easiest solution for folks who want everything handled for them.<\/p>\n<h3>The CMS Options<\/h3>\n<p>Lastly, another option is to enable optimization at the CMS or ecommerce layer. You can find ready to use solutions for this on various platforms, including WordPress, Contentful, Magento, Salesforce and more. For developers making use of these solutions and integrating them with their Netlify site, this provides yet another \u201cautomatic\u201d solution for quick performance improvements.<\/p>\n<p>Now let\u2019s take a look at this in action.<\/p>\n<\/div>\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" title=\"Optimize Netlify Images for Faster Page Load in 5 Minutes - Dev Hints\" width=\"500\" height=\"281\" src=\"https:\/\/www.youtube.com\/embed\/TT3IPLXyFt8?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe>\n<\/div><\/figure>\n\n\n<div class=\"wp-block-cloudinary-markdown \"><h2>A Real World Example<\/h2>\n<p>For my demo, I\u2019m going to go with a \u201creal\u201d site (real looking at least) that\u2019s a basic blog. This blog will have a home page and some posts. The content will be boilerplate, but will include images throughout. These images will include things like post headers, images in the posts themselves, and so forth.<\/p>\n<p>I\u2019ll be using the excellent <a href=\"https:\/\/www.11ty.dev\/\">Eleventy<\/a> as my static site builder. This is <em>absolutely not required<\/em> but I also <em>absolutely love<\/em> Eleventy.<\/p>\n<h2>A Quick Rundown of the Initial Site<\/h2>\n<p>As mentioned above, our demo site will make use of Eleventy and be a basic blog. It has a home page which lists the most recent posts:<\/p>\n<\/div>\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img width=\"1000\" height=\"911\" data-public-id=\"Web_Assets\/blog\/home2-1_313535c37e\/home2-1_313535c37e.png\" loading=\"lazy\" decoding=\"async\" src=\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/w_1000,h_911,c_scale\/f_auto,q_auto\/v1696349582\/Web_Assets\/blog\/home2-1_313535c37e\/home2-1_313535c37e.png?_i=AA\" alt=\"\" class=\"wp-post-31339 wp-image-31353\" style=\"width:840px;height:765px\" data-format=\"png\" data-transformations=\"f_auto,q_auto\" data-version=\"1696349582\" data-seo=\"1\" srcset=\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1696349582\/Web_Assets\/blog\/home2-1_313535c37e\/home2-1_313535c37e.png?_i=AA 1000w, https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1696349582\/Web_Assets\/blog\/home2-1_313535c37e\/home2-1_313535c37e.png?_i=AA 300w, https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1696349582\/Web_Assets\/blog\/home2-1_313535c37e\/home2-1_313535c37e.png?_i=AA 768w\" sizes=\"auto, (max-width: 1000px) 100vw, 1000px\" \/><\/figure>\n\n\n<div class=\"wp-block-cloudinary-markdown \"><p>In this case, the image you see here is simply added in the source Markdown and references a local file:<\/p>\n<pre class=\"js-syntax-highlighted\"><code>&lt;!-- hero image --&gt;\n&lt;img src=&quot;images\/cat.jpg&quot;&gt;\n\n&lt;h2&gt;Blog Demo&lt;\/h2&gt;\n\n&lt;p&gt;\nThis is my blog. It will be informative. It will amuse you. It will blah blah etc and so forth. I'm just filling up\nsome space here and I'd rather not use lorem ipsum. So how are you? How are you doing? In general, this is a stressful\ntime for us all, but luckily we have cats. Cats make everything better. \n&lt;\/p&gt;\n<\/code><\/pre>\n<p>Each blog post can have a header, and possibly images inside. Here\u2019s one example:<\/p>\n<\/div>\n\n\n<figure class=\"wp-block-image size-large\"><img width=\"759\" height=\"1024\" data-public-id=\"Web_Assets\/blog\/post\/post.png\" loading=\"lazy\" decoding=\"async\" src=\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/w_759,h_1024,c_scale\/f_auto,q_auto\/v1696349400\/Web_Assets\/blog\/post\/post.png?_i=AA\" alt=\"\" class=\"wp-post-31339 wp-image-31346\" data-format=\"png\" data-transformations=\"f_auto,q_auto\" data-version=\"1696349400\" data-seo=\"1\" srcset=\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1696349400\/Web_Assets\/blog\/post\/post.png?_i=AA 795w, https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1696349400\/Web_Assets\/blog\/post\/post.png?_i=AA 222w, https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1696349400\/Web_Assets\/blog\/post\/post.png?_i=AA 768w, https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1696349400\/Web_Assets\/blog\/post\/post.png?_i=AA 759w\" sizes=\"auto, (max-width: 759px) 100vw, 759px\" \/><\/figure>\n\n\n<div class=\"wp-block-cloudinary-markdown \"><p>In this example, the header image is specified via the post\u2019s front matter:<\/p>\n<pre class=\"js-syntax-highlighted\" aria-describedby=\"shcb-language-1\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript shcb-wrap-lines\">---\nlayout: post\n<span class=\"hljs-attr\">title<\/span>: Gamma Post\n<span class=\"hljs-attr\">tags<\/span>: posts\n<span class=\"hljs-attr\">date<\/span>: <span class=\"hljs-number\">2020<\/span><span class=\"hljs-number\">-10<\/span><span class=\"hljs-number\">-10<\/span> <span class=\"hljs-number\">12<\/span>:<span class=\"hljs-number\">00<\/span>:<span class=\"hljs-number\">00<\/span>\n<span class=\"hljs-attr\">header<\/span>: <span class=\"hljs-regexp\">\/images\/<\/span>path.jpg\n---\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-1\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n<p>And then included in the Post template by Eleventy:<\/p>\n<pre class=\"js-syntax-highlighted\"><code>{% if header %}\n\t&lt;p&gt;\n\t&lt;img src=&quot;{{ header }}&quot; class=&quot;post-header&quot;&gt;\n\t&lt;\/p&gt;\n{% endif %}\n<\/code><\/pre>\n<p>The other image in the blog is included just with a regular image tag in Markdown. All in all, our sample site is five pages \u2014 the home page with four blog posts. You can find the original source for this code here: <a href=\"https:\/\/github.com\/cfjedimaster\/netlify-cloudinary-integration\">https:\/\/github.com\/cfjedimaster\/netlify-cloudinary-integration<\/a> If you clone the repository, be sure to run <code>npm i<\/code> first and then <code>npm run serve<\/code> to fire up the local Eleventy server and see the site.<\/p>\n<h2>Using the Netlify Cloudinary Integration<\/h2>\n<p>Now let\u2019s see how the Cloudinary Integration can help. For the purpose of this article, I\u2019ll assume you already know how to create a site with Netlify and (optionally, but usually) tie it to a GitHub repo.<\/p>\n<p>Once you have your site setup properly, you\u2019ll first want to select \u201cIntegrations\u201d in the left hand menu. This will bring up a large list of supported Netlify integrations, including the Cloudinary one:<\/p>\n<\/div>\n\n\n<figure class=\"wp-block-image size-full\"><img width=\"1000\" height=\"757\" data-public-id=\"Web_Assets\/blog\/n1\/n1.png\" loading=\"lazy\" decoding=\"async\" src=\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/w_1000,h_757,c_scale\/f_auto,q_auto\/v1696349413\/Web_Assets\/blog\/n1\/n1.png?_i=AA\" alt=\"\" class=\"wp-post-31339 wp-image-31342\" data-format=\"png\" data-transformations=\"f_auto,q_auto\" data-version=\"1696349413\" data-seo=\"1\" srcset=\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1696349413\/Web_Assets\/blog\/n1\/n1.png?_i=AA 1000w, https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1696349413\/Web_Assets\/blog\/n1\/n1.png?_i=AA 300w, https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1696349413\/Web_Assets\/blog\/n1\/n1.png?_i=AA 768w\" sizes=\"auto, (max-width: 1000px) 100vw, 1000px\" \/><\/figure>\n\n\n<div class=\"wp-block-cloudinary-markdown \"><p>Clicking Enable first brings you to a prompt:<\/p>\n<\/div>\n\n\n<figure class=\"wp-block-image size-full\"><img width=\"566\" height=\"200\" data-public-id=\"Web_Assets\/blog\/n2\/n2.png\" loading=\"lazy\" decoding=\"async\" src=\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/w_566,h_200,c_scale\/f_auto,q_auto\/v1696349410\/Web_Assets\/blog\/n2\/n2.png?_i=AA\" alt=\"\" class=\"wp-post-31339 wp-image-31343\" data-format=\"png\" data-transformations=\"f_auto,q_auto\" data-version=\"1696349410\" data-seo=\"1\" srcset=\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1696349410\/Web_Assets\/blog\/n2\/n2.png?_i=AA 566w, https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1696349410\/Web_Assets\/blog\/n2\/n2.png?_i=AA 300w\" sizes=\"auto, (max-width: 566px) 100vw, 566px\" \/><\/figure>\n\n\n<div class=\"wp-block-cloudinary-markdown \"><p>Once you confirm you want to install the integration, you are prompted for your Cloudinary Cloud name:<\/p>\n<\/div>\n\n\n<figure class=\"wp-block-image size-full\"><img width=\"721\" height=\"479\" data-public-id=\"Web_Assets\/blog\/n3\/n3.png\" loading=\"lazy\" decoding=\"async\" src=\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/w_721,h_479,c_scale\/f_auto,q_auto\/v1696349407\/Web_Assets\/blog\/n3\/n3.png?_i=AA\" alt=\"\" class=\"wp-post-31339 wp-image-31344\" data-format=\"png\" data-transformations=\"f_auto,q_auto\" data-version=\"1696349407\" data-seo=\"1\" srcset=\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1696349407\/Web_Assets\/blog\/n3\/n3.png?_i=AA 721w, https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1696349407\/Web_Assets\/blog\/n3\/n3.png?_i=AA 300w\" sizes=\"auto, (max-width: 721px) 100vw, 721px\" \/><\/figure>\n\n\n<div class=\"wp-block-cloudinary-markdown \"><p>Click that final button and you\u2019re good to go. You\u2019ll end up back on the Integrations page now with Cloudinary showing as enabled:<\/p>\n<\/div>\n\n<div class=\"wp-block-cloudinary-markdown \"><\/div>\n\n\n<figure class=\"wp-block-image size-full\"><img width=\"1000\" height=\"593\" data-public-id=\"Web_Assets\/blog\/n4\/n4.png\" loading=\"lazy\" decoding=\"async\" src=\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/w_1000,h_593,c_scale\/f_auto,q_auto\/v1696349403\/Web_Assets\/blog\/n4\/n4.png?_i=AA\" alt=\"\" class=\"wp-post-31339 wp-image-31345\" data-format=\"png\" data-transformations=\"f_auto,q_auto\" data-version=\"1696349403\" data-seo=\"1\" srcset=\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1696349403\/Web_Assets\/blog\/n4\/n4.png?_i=AA 1000w, https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1696349403\/Web_Assets\/blog\/n4\/n4.png?_i=AA 300w, https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1696349403\/Web_Assets\/blog\/n4\/n4.png?_i=AA 768w\" sizes=\"auto, (max-width: 1000px) 100vw, 1000px\" \/><\/figure>\n\n\n<div class=\"wp-block-cloudinary-markdown \"><p>In order to see the plugin in action, head over to your Deploys page and trigger a new one. Browse to your site and \u2026 be surprised when nothing looks different. However, if you go into your code, you\u2019ll see changes.<\/p>\n<p>For example, previously the HTML for the home page image was just this:<\/p>\n<pre class=\"js-syntax-highlighted\" aria-describedby=\"shcb-language-2\" data-shcb-language-name=\"HTML, XML\" data-shcb-language-slug=\"xml\"><span><code class=\"hljs language-xml shcb-wrap-lines\"><span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">img<\/span> <span class=\"hljs-attr\">src<\/span>=<span class=\"hljs-string\">\"\/images\/cat.jpg\"<\/span>&gt;<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-2\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">HTML, XML<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">xml<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n<p>Now it\u2019s been transformed:<\/p>\n<pre class=\"js-syntax-highlighted\" aria-describedby=\"shcb-language-3\" data-shcb-language-name=\"HTML, XML\" data-shcb-language-slug=\"xml\"><span><code class=\"hljs language-xml shcb-wrap-lines\"><span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">img<\/span> <span class=\"hljs-attr\">src<\/span>=<span class=\"hljs-string\">\"https:\/\/res.cloudinary.com\/raymondcamden\/image\/fetch\/f_auto,q_auto\/https:\/\/netlify-cloudinary-test.netlify.app\/images\/cat.jpg\"<\/span> <span class=\"hljs-attr\">loading<\/span>=<span class=\"hljs-string\">\"lazy\"<\/span>&gt;<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-3\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">HTML, XML<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">xml<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n<p>Not only is it being served through Cloudinary\u2019s CDN, it\u2019s been set to auto-optimize as well as lazy load. In this case, it\u2019s also serving a different version based on browser support. In Chrome, the image is returned in AVIF format. As just one example, the home page image weighed in at a whopping 292Kb. Run through Cloudinary\u2019s CDN, with no change to your source code at all, is now at 19Kb.<\/p>\n<p>If you head over to one of the posts, for example, <a href=\"https:\/\/netlify-cloudinary-test.netlify.app\/posts\/gamma\/\">Gamma<\/a>, you\u2019ll see <em>both<\/em> images coming in at a reduced size as well.<\/p>\n<p>Obviously savings will depend on the nature of the original image, how much it was already organized, and so forth, but considering the effort involved (30 seconds or so), the results are pretty impressive.<\/p>\n<h2>Next Steps<\/h2>\n<p>As of October 17, 2023, Netlify\u2019s built-in optimization feature will be <a href=\"https:\/\/www.netlify.com\/blog\/deprecation-of-post-processing-asset-optimization-feature\/\">going away<\/a>. With the use of the <a href=\"https:\/\/netlify-plugin-cloudinary.netlify.app\/\">Cloudinary Netlify<\/a> integration, developers can get the image optimization features automatically, quickly, and easily. In this article we demonstrated the out of the box use of the integration, but developers can add further configurations, even setting a maximum size for images and using Cloudinary\u2019s resize transformation without writing any code at all. To get started, <a href=\"https:\/\/cloudinary.com\/users\/register_free\">sign up<\/a> today!<\/p>\n<\/div>","protected":false},"excerpt":{"rendered":"","protected":false},"author":87,"featured_media":31349,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_cloudinary_featured_overwrite":false,"footnotes":""},"categories":[1],"tags":[134,370,385],"class_list":["post-31339","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-uncategorized","tag-guest-post","tag-image","tag-netlify"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v25.6 (Yoast SEO v26.9) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Integrating Cloudinary Image Optimization With Netlify Hosting<\/title>\n<meta name=\"description\" content=\"Combine Netlify with Cloudinary to get image optimizations features and serve up performant websites quickly and easily.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/cloudinary.com\/blog\/integrating-cloudinary-image-optimization-netlify-hosting\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Integrating Cloudinary Image Optimization With Netlify Hosting\" \/>\n<meta property=\"og:description\" content=\"Combine Netlify with Cloudinary to get image optimizations features and serve up performant websites quickly and easily.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/cloudinary.com\/blog\/integrating-cloudinary-image-optimization-netlify-hosting\" \/>\n<meta property=\"og:site_name\" content=\"Cloudinary Blog\" \/>\n<meta property=\"article:published_time\" content=\"2023-10-03T14:00:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-06-27T17:46:11+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/v1696011459\/Blog-netlify\/Blog-netlify-jpg?_i=AA\" \/>\n\t<meta property=\"og:image:width\" content=\"2000\" \/>\n\t<meta property=\"og:image:height\" content=\"1100\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"melindapham\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"NewsArticle\",\"@id\":\"https:\/\/cloudinary.com\/blog\/integrating-cloudinary-image-optimization-netlify-hosting#article\",\"isPartOf\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/integrating-cloudinary-image-optimization-netlify-hosting\"},\"author\":{\"name\":\"melindapham\",\"@id\":\"https:\/\/cloudinary.com\/blog\/#\/schema\/person\/0d5ad601e4c3b5be89245dfb14be42d9\"},\"headline\":\"Integrating Cloudinary Image Optimization With Netlify Hosting\",\"datePublished\":\"2023-10-03T14:00:00+00:00\",\"dateModified\":\"2024-06-27T17:46:11+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/integrating-cloudinary-image-optimization-netlify-hosting\"},\"wordCount\":15,\"publisher\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/integrating-cloudinary-image-optimization-netlify-hosting#primaryimage\"},\"thumbnailUrl\":\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1696011459\/Blog-netlify\/Blog-netlify.jpg?_i=AA\",\"keywords\":[\"Guest Post\",\"Image\",\"Netlify\"],\"inLanguage\":\"en-US\",\"copyrightYear\":\"2023\",\"copyrightHolder\":{\"@id\":\"https:\/\/cloudinary.com\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/cloudinary.com\/blog\/integrating-cloudinary-image-optimization-netlify-hosting\",\"url\":\"https:\/\/cloudinary.com\/blog\/integrating-cloudinary-image-optimization-netlify-hosting\",\"name\":\"Integrating Cloudinary Image Optimization With Netlify Hosting\",\"isPartOf\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/integrating-cloudinary-image-optimization-netlify-hosting#primaryimage\"},\"image\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/integrating-cloudinary-image-optimization-netlify-hosting#primaryimage\"},\"thumbnailUrl\":\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1696011459\/Blog-netlify\/Blog-netlify.jpg?_i=AA\",\"datePublished\":\"2023-10-03T14:00:00+00:00\",\"dateModified\":\"2024-06-27T17:46:11+00:00\",\"description\":\"Combine Netlify with Cloudinary to get image optimizations features and serve up performant websites quickly and easily.\",\"breadcrumb\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/integrating-cloudinary-image-optimization-netlify-hosting#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/cloudinary.com\/blog\/integrating-cloudinary-image-optimization-netlify-hosting\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/cloudinary.com\/blog\/integrating-cloudinary-image-optimization-netlify-hosting#primaryimage\",\"url\":\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1696011459\/Blog-netlify\/Blog-netlify.jpg?_i=AA\",\"contentUrl\":\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1696011459\/Blog-netlify\/Blog-netlify.jpg?_i=AA\",\"width\":2000,\"height\":1100},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/cloudinary.com\/blog\/integrating-cloudinary-image-optimization-netlify-hosting#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/cloudinary.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Integrating Cloudinary Image Optimization With Netlify Hosting\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/cloudinary.com\/blog\/#website\",\"url\":\"https:\/\/cloudinary.com\/blog\/\",\"name\":\"Cloudinary Blog\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/cloudinary.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/cloudinary.com\/blog\/#organization\",\"name\":\"Cloudinary Blog\",\"url\":\"https:\/\/cloudinary.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/cloudinary.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1649718331\/Web_Assets\/blog\/cloudinary_logo_for_white_bg_1937437aa7_19374666c7_193742f877\/cloudinary_logo_for_white_bg_1937437aa7_19374666c7_193742f877.png?_i=AA\",\"contentUrl\":\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1649718331\/Web_Assets\/blog\/cloudinary_logo_for_white_bg_1937437aa7_19374666c7_193742f877\/cloudinary_logo_for_white_bg_1937437aa7_19374666c7_193742f877.png?_i=AA\",\"width\":312,\"height\":60,\"caption\":\"Cloudinary Blog\"},\"image\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/cloudinary.com\/blog\/#\/schema\/person\/0d5ad601e4c3b5be89245dfb14be42d9\",\"name\":\"melindapham\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/cloudinary.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/e6f989fa97fe94be61596259d8629c3df65aec4c7da5c0000f90d810f313d4f4?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/e6f989fa97fe94be61596259d8629c3df65aec4c7da5c0000f90d810f313d4f4?s=96&d=mm&r=g\",\"caption\":\"melindapham\"}}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Integrating Cloudinary Image Optimization With Netlify Hosting","description":"Combine Netlify with Cloudinary to get image optimizations features and serve up performant websites quickly and easily.","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:\/\/cloudinary.com\/blog\/integrating-cloudinary-image-optimization-netlify-hosting","og_locale":"en_US","og_type":"article","og_title":"Integrating Cloudinary Image Optimization With Netlify Hosting","og_description":"Combine Netlify with Cloudinary to get image optimizations features and serve up performant websites quickly and easily.","og_url":"https:\/\/cloudinary.com\/blog\/integrating-cloudinary-image-optimization-netlify-hosting","og_site_name":"Cloudinary Blog","article_published_time":"2023-10-03T14:00:00+00:00","article_modified_time":"2024-06-27T17:46:11+00:00","og_image":[{"width":2000,"height":1100,"url":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/v1696011459\/Blog-netlify\/Blog-netlify-jpg?_i=AA","type":"image\/jpeg"}],"author":"melindapham","twitter_card":"summary_large_image","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"NewsArticle","@id":"https:\/\/cloudinary.com\/blog\/integrating-cloudinary-image-optimization-netlify-hosting#article","isPartOf":{"@id":"https:\/\/cloudinary.com\/blog\/integrating-cloudinary-image-optimization-netlify-hosting"},"author":{"name":"melindapham","@id":"https:\/\/cloudinary.com\/blog\/#\/schema\/person\/0d5ad601e4c3b5be89245dfb14be42d9"},"headline":"Integrating Cloudinary Image Optimization With Netlify Hosting","datePublished":"2023-10-03T14:00:00+00:00","dateModified":"2024-06-27T17:46:11+00:00","mainEntityOfPage":{"@id":"https:\/\/cloudinary.com\/blog\/integrating-cloudinary-image-optimization-netlify-hosting"},"wordCount":15,"publisher":{"@id":"https:\/\/cloudinary.com\/blog\/#organization"},"image":{"@id":"https:\/\/cloudinary.com\/blog\/integrating-cloudinary-image-optimization-netlify-hosting#primaryimage"},"thumbnailUrl":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1696011459\/Blog-netlify\/Blog-netlify.jpg?_i=AA","keywords":["Guest Post","Image","Netlify"],"inLanguage":"en-US","copyrightYear":"2023","copyrightHolder":{"@id":"https:\/\/cloudinary.com\/#organization"}},{"@type":"WebPage","@id":"https:\/\/cloudinary.com\/blog\/integrating-cloudinary-image-optimization-netlify-hosting","url":"https:\/\/cloudinary.com\/blog\/integrating-cloudinary-image-optimization-netlify-hosting","name":"Integrating Cloudinary Image Optimization With Netlify Hosting","isPartOf":{"@id":"https:\/\/cloudinary.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/cloudinary.com\/blog\/integrating-cloudinary-image-optimization-netlify-hosting#primaryimage"},"image":{"@id":"https:\/\/cloudinary.com\/blog\/integrating-cloudinary-image-optimization-netlify-hosting#primaryimage"},"thumbnailUrl":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1696011459\/Blog-netlify\/Blog-netlify.jpg?_i=AA","datePublished":"2023-10-03T14:00:00+00:00","dateModified":"2024-06-27T17:46:11+00:00","description":"Combine Netlify with Cloudinary to get image optimizations features and serve up performant websites quickly and easily.","breadcrumb":{"@id":"https:\/\/cloudinary.com\/blog\/integrating-cloudinary-image-optimization-netlify-hosting#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/cloudinary.com\/blog\/integrating-cloudinary-image-optimization-netlify-hosting"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/cloudinary.com\/blog\/integrating-cloudinary-image-optimization-netlify-hosting#primaryimage","url":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1696011459\/Blog-netlify\/Blog-netlify.jpg?_i=AA","contentUrl":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1696011459\/Blog-netlify\/Blog-netlify.jpg?_i=AA","width":2000,"height":1100},{"@type":"BreadcrumbList","@id":"https:\/\/cloudinary.com\/blog\/integrating-cloudinary-image-optimization-netlify-hosting#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/cloudinary.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Integrating Cloudinary Image Optimization With Netlify Hosting"}]},{"@type":"WebSite","@id":"https:\/\/cloudinary.com\/blog\/#website","url":"https:\/\/cloudinary.com\/blog\/","name":"Cloudinary Blog","description":"","publisher":{"@id":"https:\/\/cloudinary.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/cloudinary.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/cloudinary.com\/blog\/#organization","name":"Cloudinary Blog","url":"https:\/\/cloudinary.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/cloudinary.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1649718331\/Web_Assets\/blog\/cloudinary_logo_for_white_bg_1937437aa7_19374666c7_193742f877\/cloudinary_logo_for_white_bg_1937437aa7_19374666c7_193742f877.png?_i=AA","contentUrl":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1649718331\/Web_Assets\/blog\/cloudinary_logo_for_white_bg_1937437aa7_19374666c7_193742f877\/cloudinary_logo_for_white_bg_1937437aa7_19374666c7_193742f877.png?_i=AA","width":312,"height":60,"caption":"Cloudinary Blog"},"image":{"@id":"https:\/\/cloudinary.com\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/cloudinary.com\/blog\/#\/schema\/person\/0d5ad601e4c3b5be89245dfb14be42d9","name":"melindapham","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/cloudinary.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/e6f989fa97fe94be61596259d8629c3df65aec4c7da5c0000f90d810f313d4f4?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/e6f989fa97fe94be61596259d8629c3df65aec4c7da5c0000f90d810f313d4f4?s=96&d=mm&r=g","caption":"melindapham"}}]}},"jetpack_featured_media_url":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1696011459\/Blog-netlify\/Blog-netlify.jpg?_i=AA","_links":{"self":[{"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/posts\/31339","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/users\/87"}],"replies":[{"embeddable":true,"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/comments?post=31339"}],"version-history":[{"count":13,"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/posts\/31339\/revisions"}],"predecessor-version":[{"id":34597,"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/posts\/31339\/revisions\/34597"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/media\/31349"}],"wp:attachment":[{"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/media?parent=31339"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/categories?post=31339"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/tags?post=31339"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}