{"id":32407,"date":"2024-01-04T07:00:00","date_gmt":"2024-01-04T15:00:00","guid":{"rendered":"https:\/\/cloudinary.com\/blog\/?p=32407"},"modified":"2024-08-05T00:24:32","modified_gmt":"2024-08-05T07:24:32","slug":"further-image-optimization-tips-netlify","status":"publish","type":"post","link":"https:\/\/cloudinary.com\/blog\/further-image-optimization-tips-netlify","title":{"rendered":"Further Image Optimization Tips With Netlify"},"content":{"rendered":"<div class=\"wp-block-cloudinary-markdown \"><p>Previously, I shared how to easily <a href=\"https:\/\/cloudinary.com\/blog\/integrating-cloudinary-image-optimization-netlify-hosting\">optimize your images with Cloudinary and Netlify<\/a> by using the <a href=\"https:\/\/netlify.cloudinary.dev\/\">Netlify Cloudinary<\/a> integration. In that blog post, I demonstrated a basic Eleventy blog that made use of images across the site. I then added the Netlify Cloudinary integration with <em>no work<\/em> on the code side. As a result, there were tremendous improvements to the images, both in size and format with the best images being sent to browsers automatically.<\/p>\n<p>In that initial blog post, the only configuration I did was to specify my Cloudinary cloud name, but the integration supports more than that. Let\u2019s take a look!<\/p>\n<h2>Configuring Your Integration<\/h2>\n<p>First, let\u2019s make changes to the Cloudinary integration, or more broadly, any integration at Netlify. If you log in and select your site, click <strong>Integrations<\/strong> in the navigation:<\/p>\n<p><img width=\"291\" height=\"376\" data-public-id=\"Web_Assets\/blog\/shot1\/shot1.png\" decoding=\"async\" src=\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/w_291,h_376,c_scale\/f_auto,q_auto\/v1704394117\/Web_Assets\/blog\/shot1\/shot1.png?_i=AA\" alt=\"alt\" loading=\"lazy\" class=\"c-transformed-asset wp-image-32408\" data-format=\"png\" data-transformations=\"f_auto,q_auto\" data-version=\"1704394117\" data-seo=\"1\" srcset=\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1704394117\/Web_Assets\/blog\/shot1\/shot1.png?_i=AA 291w, https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1704394117\/Web_Assets\/blog\/shot1\/shot1.png?_i=AA 232w\" sizes=\"(max-width: 291px) 100vw, 291px\" \/><\/p>\n<p>This will land you on the Integrations page which, a bit oddly, defaults to \u201cAll,\u201d so select <strong>Enabled<\/strong> to filter to ones you\u2019ve actually installed:<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/v1704394114\/Web_Assets\/blog\/shot2\/shot2-png?_i=AA\" alt=\"alt\" loading=\"lazy\" class=\"c-transformed-asset\"  width=\"750\" height=\"403\"\/><\/p>\n<p>From here, note two things. If for some reason you don\u2019t like your images automatically becoming more awesome, you can quickly disable the Cloudinary integration. Next, check out the <strong>Options<\/strong> dropdown:<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/v1704394111\/Web_Assets\/blog\/shot3\/shot3-png?_i=AA\" alt=\"alt\" loading=\"lazy\" class=\"c-transformed-asset\"  width=\"363\" height=\"375\"\/><\/p>\n<p>There\u2019s a lot to love here, especially the instant access to the changelog. With it being hard (in general) to keep up with changes to our code and dependencies, I really appreciate this being the first option. What you <em>won\u2019t<\/em> see here is the ability to configure your integration. At this time, it isn\u2019t possible to change how the integration works in the Netlify UI. For that, you\u2019ll need to switch to <a href=\"https:\/\/docs.netlify.com\/configure-builds\/file-based-configuration\/\">file-based configuration<\/a>. Let\u2019s walk through that process now.<\/p>\n<h2>Setting Up the File-Based Configuration<\/h2>\n<p>While Netlify\u2019s dashboard makes it easy to configure how your site works, file-based configuration can be incredibly handy as well. Even better, being file-based means you can track changes to your site\u2019s configuration in your repository. To begin, you\u2019ll add a <code>netlify.toml<\/code> file to your site.<\/p>\n<p>In there, you can add explicit support for the integration by adding a <code>plugins<\/code> section.<\/p>\n<p>(Note: Like YAML, <a href=\"https:\/\/en.wikipedia.org\/wiki\/TOML\">TOML<\/a> is both easy to use and strict when it comes to formatting. Be careful with your formatting!)<\/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\">&#91;&#91;plugins]]\n  package = <span class=\"hljs-string\">\"netlify-plugin-cloudinary\"<\/span>\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>Next, to add configuration options, you can use <code>plugins.inputs<\/code>. For example, when you set up the initial Cloudinary integration, you were asked for your cloud name. This is saved to a Netlify environment variable, but can be specified in the <code>netlify.toml<\/code> as well:<\/p>\n<pre class=\"js-syntax-highlighted\" aria-describedby=\"shcb-language-2\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript shcb-wrap-lines\">&#91;&#91;plugins]]\n  package = <span class=\"hljs-string\">\"netlify-plugin-cloudinary\"<\/span>\n\n  &#91;plugins.inputs]\n  cloudName = <span class=\"hljs-string\">\"raymondcamden\"<\/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\">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>Given that we now know how to specify configuration values, what\u2019s available for the Cloudinary integration?<\/p>\n<ul>\n<li>\n<strong>cname<\/strong>. Allows you to specify a custom domain name for building URLs.<\/li>\n<li>\n<strong>deliveryType<\/strong>. Allows you to specify how Cloudinary stores images. This defaults to fetch but can be set to upload.<\/li>\n<li>\n<strong>folder<\/strong>. Allows you to specify a folder where images will be stored. This defaults to the Netlify site name.<\/li>\n<li>\n<strong>imagesPath<\/strong>. Allows you to specify (as either one value or a list) where in the local system images are served from.<\/li>\n<li>\n<strong>loadingStrategy<\/strong>. Lets you specify a loading strategy for images, either eager or lazy (the default).<\/li>\n<li>\n<strong>privateCdn<\/strong>. A boolean that turns on private CDN distribution of images.<\/li>\n<li>\n<strong>uploadPreset<\/strong>. Lets you specify a custom preset for uploads.<\/li>\n<li>\n<strong>uploadConcurrency<\/strong>. Sets the maximum number of uploads at once.<\/li>\n<\/ul>\n<p>Each of these is described in more detail at the integration\u2019s <a href=\"https:\/\/netlify.cloudinary.dev\/configuration\">documentation<\/a>, but for now, let\u2019s deep dive into one more configuration, maxSize.<\/p>\n<h2>The MaxSize Configuration Setting<\/h2>\n<p>When working on a site with multiple authors, editors, and designers, it\u2019s not always possible to enforce guidelines for images. Sometimes properly resizing images is just simply forgotten. One of the most powerful features of the Cloudinary integration is a way to force a defined maximum size right in your configuration.<\/p>\n<p>The setting, <code>maxSize<\/code>, takes a set of three possible sub-settings:<\/p>\n<ul>\n<li>dpr &#8211; Device Pixel Ratio<\/li>\n<li>height<\/li>\n<li>width<\/li>\n<\/ul>\n<p>For example, if you want to set a max width of 800 and height of 800, you can configure it like this:<\/p>\n<pre class=\"js-syntax-highlighted\"><code>[[plugins]]\n  package = &quot;netlify-plugin-cloudinary&quot;\n\n  [plugins.inputs]\n  cloudName = &quot;raymondcamden&quot;\n\n  [plugins.inputs.maxSize]\n  width = 800\n  height = 800\n<\/code><\/pre>\n<p>Now here comes the truly incredible part. First, those values are maxes, not a size to set images too. What that means is that if an image in your site is larger in any dimension, it will be <em>proportionally<\/em> resized to get within those constraints, respecting your aspect ratio. Second, the plugin will never increase the size of your images.<\/p>\n<p>While a \u201cone-dev\u201d shop probably doesn\u2019t have to worry about a new image being added that isn\u2019t optimized, it\u2019s also nice to know that this can act as a safeguard for when accidents happen. I always resize every image I add to my blog post, and I can <em>guarantee<\/em> that there have been times when I\u2019ve forgotten to do so. Now this can be prevented automatically! Let\u2019s test it to be really sure though.<\/p>\n<h2>Testing MaxSize<\/h2>\n<p>In the last blog post, I created a simple Eleventy blog that used a header image and allowed images in individual posts as well. Here, I\u2019ve created a new blog post and specified both:<\/p>\n<pre class=\"js-syntax-highlighted\"><code>---\nlayout: post\ntitle: Kitten Post\ntags: posts\ndate: 2020-10-10 12:00:00\nheader: \/images\/cat_path.jpg\n---\n\nThis is the Gamma post. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus sem ante, elementum ac efficitur id, vehicula vel ipsum. Quisque ornare convallis est, eu ullamcorper dolor luctus sed. Cras aliquet nulla non interdum ultrices. Nam pretium tellus non rhoncus tempor. Cras sit amet metus sed nunc ultrices efficitur. Donec laoreet magna ante, id sagittis tellus gravida a. Duis venenatis gravida cursus.\n\nUt eros sapien, iaculis non lacus vel, condimentum viverra mauris. Duis quis interdum elit. Fusce arcu eros, ornare vitae interdum in, consectetur mattis lacus. Donec ornare venenatis sollicitudin. Cras nec rutrum ex. Vivamus vitae felis in ligula pretium dapibus id at mauris. Aliquam nec lectus et turpis vehicula suscipit eget eget erat. Donec bibendum at dolor at aliquet.\n\n![Cat readin](\/images\/cat_newspaper.jpg)\n\nInteger lobortis est nunc, laoreet lacinia lectus sollicitudin sed. Integer mauris justo, tincidunt ac erat at, vestibulum rutrum metus. Praesent convallis arcu sed arcu mollis, quis ullamcorper ante euismod. Nullam non lacus eros. Sed lacus sem, blandit nec erat venenatis, vestibulum euismod diam. Vestibulum sapien enim, aliquet id nibh vel, varius varius orci. Quisque in lectus non massa vulputate ornare ut a sapien. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae; Donec pulvinar vehicula velit, sed porttitor purus feugiat sit amet. Duis fringilla purus lacus, maximus ornare ex interdum quis. Quisque a ex venenatis, malesuada eros at, condimentum diam.\n<\/code><\/pre>\n<p>In this case, I forgot to resize the images and never bothered to actually check in my local environment. The results are\u2026 not so great:<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/v1704394109\/Web_Assets\/blog\/shot4\/shot4-png?_i=AA\" alt=\"alt\" loading=\"lazy\" class=\"c-transformed-asset\"  width=\"650\" height=\"480\"\/><\/p>\n<p>You can\u2019t even see the text of the article above the fold due to the header. Now let\u2019s see what happens when deployed and built on Netlify:<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/v1704394105\/Web_Assets\/blog\/shot5\/shot5-png?_i=AA\" alt=\"alt\" loading=\"lazy\" class=\"c-transformed-asset\"  width=\"650\" height=\"580\"\/><\/p>\n<p>You can view this post (and the rest of the site) here: <a href=\"https:\/\/netlify-cloudinary-test.netlify.app\/\">https:\/\/netlify-cloudinary-test.netlify.app\/<\/a>.<\/p>\n<p>The source code for the same may be found here: <a href=\"https:\/\/github.com\/cfjedimaster\/netlify-cloudinary-integration\">https:\/\/github.com\/cfjedimaster\/netlify-cloudinary-integration<\/a>.<\/p>\n<h2>Important Note<\/h2>\n<p>As a quick aside, note that you may encounter some issues getting Netlify to use the very latest version of the Cloudinary integration. You may need to set the latest version as a dependency in your <code>package.json<\/code> file like so:<\/p>\n<pre class=\"js-syntax-highlighted\"><code>npm i --save-dev netlify-plugin-cloudinary\n<\/code><\/pre>\n<p>I\u2019d recommend doing this when moving to a file-based configuration of your Cloudinary integrations. Finally, don\u2019t forget to check the <a href=\"https:\/\/github.com\/cloudinary-community\/netlify-plugin-cloudinary\">netlify-plugin-cloudinary<\/a> repository for the latest docs and updates!<\/p>\n<\/div>","protected":false},"excerpt":{"rendered":"","protected":false},"author":87,"featured_media":32415,"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-32407","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>Cloudinary and Netlify Integration: Optimize Your Images<\/title>\n<meta name=\"description\" content=\"Read more for image optimization tips using the Cloudinary and Netlify integration.\" \/>\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\/further-image-optimization-tips-netlify\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Further Image Optimization Tips With Netlify\" \/>\n<meta property=\"og:description\" content=\"Read more for image optimization tips using the Cloudinary and Netlify integration.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/cloudinary.com\/blog\/further-image-optimization-tips-netlify\" \/>\n<meta property=\"og:site_name\" content=\"Cloudinary Blog\" \/>\n<meta property=\"article:published_time\" content=\"2024-01-04T15:00:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-08-05T07:24:32+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/v1701814727\/netlify_optimization-blog\/netlify_optimization-blog-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\/further-image-optimization-tips-netlify#article\",\"isPartOf\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/further-image-optimization-tips-netlify\"},\"author\":{\"name\":\"melindapham\",\"@id\":\"https:\/\/cloudinary.com\/blog\/#\/schema\/person\/0d5ad601e4c3b5be89245dfb14be42d9\"},\"headline\":\"Further Image Optimization Tips With Netlify\",\"datePublished\":\"2024-01-04T15:00:00+00:00\",\"dateModified\":\"2024-08-05T07:24:32+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/further-image-optimization-tips-netlify\"},\"wordCount\":6,\"publisher\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/further-image-optimization-tips-netlify#primaryimage\"},\"thumbnailUrl\":\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1701814727\/netlify_optimization-blog\/netlify_optimization-blog.jpg?_i=AA\",\"keywords\":[\"Guest Post\",\"Image\",\"Netlify\"],\"inLanguage\":\"en-US\",\"copyrightYear\":\"2024\",\"copyrightHolder\":{\"@id\":\"https:\/\/cloudinary.com\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/cloudinary.com\/blog\/further-image-optimization-tips-netlify\",\"url\":\"https:\/\/cloudinary.com\/blog\/further-image-optimization-tips-netlify\",\"name\":\"Cloudinary and Netlify Integration: Optimize Your Images\",\"isPartOf\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/further-image-optimization-tips-netlify#primaryimage\"},\"image\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/further-image-optimization-tips-netlify#primaryimage\"},\"thumbnailUrl\":\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1701814727\/netlify_optimization-blog\/netlify_optimization-blog.jpg?_i=AA\",\"datePublished\":\"2024-01-04T15:00:00+00:00\",\"dateModified\":\"2024-08-05T07:24:32+00:00\",\"description\":\"Read more for image optimization tips using the Cloudinary and Netlify integration.\",\"breadcrumb\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/further-image-optimization-tips-netlify#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/cloudinary.com\/blog\/further-image-optimization-tips-netlify\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/cloudinary.com\/blog\/further-image-optimization-tips-netlify#primaryimage\",\"url\":\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1701814727\/netlify_optimization-blog\/netlify_optimization-blog.jpg?_i=AA\",\"contentUrl\":\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1701814727\/netlify_optimization-blog\/netlify_optimization-blog.jpg?_i=AA\",\"width\":2000,\"height\":1100},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/cloudinary.com\/blog\/further-image-optimization-tips-netlify#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/cloudinary.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Further Image Optimization Tips With Netlify\"}]},{\"@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":"Cloudinary and Netlify Integration: Optimize Your Images","description":"Read more for image optimization tips using the Cloudinary and Netlify integration.","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\/further-image-optimization-tips-netlify","og_locale":"en_US","og_type":"article","og_title":"Further Image Optimization Tips With Netlify","og_description":"Read more for image optimization tips using the Cloudinary and Netlify integration.","og_url":"https:\/\/cloudinary.com\/blog\/further-image-optimization-tips-netlify","og_site_name":"Cloudinary Blog","article_published_time":"2024-01-04T15:00:00+00:00","article_modified_time":"2024-08-05T07:24:32+00:00","og_image":[{"width":2000,"height":1100,"url":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/v1701814727\/netlify_optimization-blog\/netlify_optimization-blog-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\/further-image-optimization-tips-netlify#article","isPartOf":{"@id":"https:\/\/cloudinary.com\/blog\/further-image-optimization-tips-netlify"},"author":{"name":"melindapham","@id":"https:\/\/cloudinary.com\/blog\/#\/schema\/person\/0d5ad601e4c3b5be89245dfb14be42d9"},"headline":"Further Image Optimization Tips With Netlify","datePublished":"2024-01-04T15:00:00+00:00","dateModified":"2024-08-05T07:24:32+00:00","mainEntityOfPage":{"@id":"https:\/\/cloudinary.com\/blog\/further-image-optimization-tips-netlify"},"wordCount":6,"publisher":{"@id":"https:\/\/cloudinary.com\/blog\/#organization"},"image":{"@id":"https:\/\/cloudinary.com\/blog\/further-image-optimization-tips-netlify#primaryimage"},"thumbnailUrl":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1701814727\/netlify_optimization-blog\/netlify_optimization-blog.jpg?_i=AA","keywords":["Guest Post","Image","Netlify"],"inLanguage":"en-US","copyrightYear":"2024","copyrightHolder":{"@id":"https:\/\/cloudinary.com\/#organization"}},{"@type":"WebPage","@id":"https:\/\/cloudinary.com\/blog\/further-image-optimization-tips-netlify","url":"https:\/\/cloudinary.com\/blog\/further-image-optimization-tips-netlify","name":"Cloudinary and Netlify Integration: Optimize Your Images","isPartOf":{"@id":"https:\/\/cloudinary.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/cloudinary.com\/blog\/further-image-optimization-tips-netlify#primaryimage"},"image":{"@id":"https:\/\/cloudinary.com\/blog\/further-image-optimization-tips-netlify#primaryimage"},"thumbnailUrl":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1701814727\/netlify_optimization-blog\/netlify_optimization-blog.jpg?_i=AA","datePublished":"2024-01-04T15:00:00+00:00","dateModified":"2024-08-05T07:24:32+00:00","description":"Read more for image optimization tips using the Cloudinary and Netlify integration.","breadcrumb":{"@id":"https:\/\/cloudinary.com\/blog\/further-image-optimization-tips-netlify#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/cloudinary.com\/blog\/further-image-optimization-tips-netlify"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/cloudinary.com\/blog\/further-image-optimization-tips-netlify#primaryimage","url":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1701814727\/netlify_optimization-blog\/netlify_optimization-blog.jpg?_i=AA","contentUrl":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1701814727\/netlify_optimization-blog\/netlify_optimization-blog.jpg?_i=AA","width":2000,"height":1100},{"@type":"BreadcrumbList","@id":"https:\/\/cloudinary.com\/blog\/further-image-optimization-tips-netlify#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/cloudinary.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Further Image Optimization Tips With Netlify"}]},{"@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\/v1701814727\/netlify_optimization-blog\/netlify_optimization-blog.jpg?_i=AA","_links":{"self":[{"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/posts\/32407","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=32407"}],"version-history":[{"count":5,"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/posts\/32407\/revisions"}],"predecessor-version":[{"id":35084,"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/posts\/32407\/revisions\/35084"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/media\/32415"}],"wp:attachment":[{"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/media?parent=32407"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/categories?post=32407"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/tags?post=32407"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}