{"id":60411,"date":"2018-10-19T00:00:00","date_gmt":"2018-10-19T00:00:00","guid":{"rendered":"https:\/\/blog.hellotax.com\/blog\/amazon\/listing\/optimization\/images\/"},"modified":"2020-01-12T17:01:39","modified_gmt":"2020-01-12T16:01:39","slug":"images","status":"publish","type":"post","link":"https:\/\/hellotax.com\/blog\/amazon\/listing\/optimization\/images","title":{"rendered":"Amazon Image Requirements:<br> Guidelines, Sizes, Optimization Tricks"},"content":{"rendered":"\n<p>Amazon product Images are essential for high sales and a good representation of your brand. People always see the product first and it highly impacts the buying decision. That\u2019s why you should use the images properly.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" width=\"1024\" height=\"536\" src=\"https:\/\/hellotax.com\/blog\/wp-content\/uploads\/2019\/09\/amazon-image-optimization-1024x536.jpg\" alt=\"\" class=\"wp-image-61361\" srcset=\"https:\/\/hellotax.com\/blog\/wp-content\/uploads\/2019\/09\/amazon-image-optimization-1024x536.jpg 1024w, https:\/\/hellotax.com\/blog\/wp-content\/uploads\/2019\/09\/amazon-image-optimization-300x157.jpg 300w, https:\/\/hellotax.com\/blog\/wp-content\/uploads\/2019\/09\/amazon-image-optimization-768x402.jpg 768w, https:\/\/hellotax.com\/blog\/wp-content\/uploads\/2019\/09\/amazon-image-optimization.jpg 1200w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">What Amazon Product Listing Images should be like (Requirements)<\/h2>\n\n\n\n<p>Of course, as\nsoon as you upload images to your listings, you must stick to the technical\nguidelines, like image size, file formats, etc.<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><strong>Image size:<\/strong>\u00a0min. 1000 pixels in either width or height. Amazon recommends 2560 pixels wide.<\/li><li><strong>Image frame:<\/strong>\u00a0The product should fill 85% of the frame.<\/li><li><strong>Background color:<\/strong> pure white background recommended<\/li><li><strong>File formats:<\/strong> JPEG, PNG, GIF or TIFF files.<\/li><li><strong>Color mode:<\/strong>\u00a0Both sRGB and CMYK are accepted.<\/li><li><strong>File names:<\/strong>\u00a0 file name must include product identifier (<a href=\"https:\/\/hellotax.com\/blog\/amazon\/asin-ean-sku\/\">Amazon ASIN<\/a>, JAN, EAN, 13-digit ISBN or UPC)<\/li><\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Related articles<\/h3>\n\n\nNo content has been found here, sorry \ud83d\ude42\n\n\n\n<h2 class=\"wp-block-heading\">Amazon Product Images: Use them all<\/h2>\n\n\n\n<p>Amazon allows merchants to display <strong>seven to nine product images per listing<\/strong>. It is highly recommended to do so and use <strong>all possible product image slots<\/strong> as online sellers usually have the problem of not being able to show the real product to the customer.<\/p>\n\n\n\n<p><strong>Show your product from different perspectives<\/strong>, show what it can or in use. Think about which angles make sense for the customer to see. <\/p>\n\n\n\n<p>Get them into the right order, the <strong>main image should just be the product itself<\/strong>. Additional images can be all parts of the product, the product in use, different colors, from different sides, etc. <\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Optimization Tricks for Images &#8211; Guidelines<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Amazon\u2019s standards for\nhigh-quality images<\/h3>\n\n\n\n<p>Always <strong>use high-quality images<\/strong> for the your listings as this is essential for converting sales. Converting sales and a higher click-through-rate increase the visibility as these factors are main aspect of Amazon\u2019s algorithm.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Use real photos<\/h3>\n\n\n\n<p><strong>No graphics or vectors<\/strong>. Use real, high-quality images!<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Less is more<\/h3>\n\n\n\n<p>Don\u2019t distract potential customers with <strong>unnecessary stuff<\/strong><\/p>\n\n\n<div class=\"cta-shortcode cta-shortcode-embed\"><div class=\"cta-content\"><h3 class=\"font600\">Join our VAT community<\/h3><p>Discuss about VAT on Facebook with our <strong>+1500 members<\/strong> VAT community.<\/p>\n<\/div><div class=\"cta-embed-code\"><style>\r\n\t#_form_10_ ._form-thank-you { position:relative; left:0; right:0; text-align:center; font-size:18px; }\r\n<\/style>\r\n<form method=\"POST\" action=\"https:\/\/fbahero77513.activehosted.com\/proc.php\" id=\"_form_10_\" class=\"_form _form_10 _inline-form  _dark\" novalidate>\r\n  <input type=\"hidden\" name=\"u\" value=\"10\" \/>\r\n  <input type=\"hidden\" name=\"f\" value=\"10\" \/>\r\n  <input type=\"hidden\" name=\"s\" \/>\r\n  <input type=\"hidden\" name=\"c\" value=\"0\" \/>\r\n  <input type=\"hidden\" name=\"m\" value=\"0\" \/>\r\n  <input type=\"hidden\" name=\"act\" value=\"sub\" \/>\r\n  <input type=\"hidden\" name=\"v\" value=\"2\" \/>\r\n  <div class=\"_form-content\">\r\n    <div class=\"_form_element _x02957572 _full_width \" >\r\n      <label class=\"_form-label\">\r\n      <\/label>\r\n      <div class=\"_field-wrapper\">\r\n        <input type=\"text\" name=\"email\" placeholder=\"Enter your email\" required\/>\r\n      <\/div>\r\n    <\/div>\r\n    <div style=\"padding-top:10px;\" class=\"_button-wrapper _full_width\">\r\n      <button id=\"_form_10_submit\" class=\"_submit button button-secondary\" type=\"submit\">\r\n        Get your invitation\r\n      <\/button>\r\n    <\/div>\r\n    <div class=\"_clear-element\">\r\n    <\/div>\r\n  <\/div>\r\n  <div class=\"_form-thank-you\" style=\"display:none;\">\r\n  <\/div>\r\n<\/form><script type=\"text\/javascript\">\r\nwindow.cfields = [];\r\nwindow._show_thank_you = function(id, message, trackcmp_url) {\r\n  var form = document.getElementById('_form_' + id + '_'), thank_you = form.querySelector('._form-thank-you');\r\n  form.querySelector('._form-content').style.display = 'none';\r\n  thank_you.innerHTML = message;\r\n  thank_you.style.display = 'block';\r\n  if (typeof(trackcmp_url) != 'undefined' && trackcmp_url) {\r\n    \/\/ Site tracking URL to use after inline form submission.\r\n    _load_script(trackcmp_url);\r\n  }\r\n  if (typeof window._form_callback !== 'undefined') window._form_callback(id);\r\n};\r\nwindow._show_error = function(id, message, html) {\r\n  var form = document.getElementById('_form_' + id + '_'), err = document.createElement('div'), button = form.querySelector('button'), old_error = form.querySelector('._form_error');\r\n  if (old_error) old_error.parentNode.removeChild(old_error);\r\n  err.innerHTML = message;\r\n  err.className = '_error-inner _form_error _no_arrow';\r\n  var wrapper = document.createElement('div');\r\n  wrapper.className = '_form-inner';\r\n  wrapper.appendChild(err);\r\n  button.parentNode.insertBefore(wrapper, button);\r\n  document.querySelector('[id^=\"_form\"][id$=\"_submit\"]').disabled = false;\r\n  if (html) {\r\n    var div = document.createElement('div');\r\n    div.className = '_error-html';\r\n    div.innerHTML = html;\r\n    err.appendChild(div);\r\n  }\r\n};\r\nwindow._load_script = function(url, callback) {\r\n    var head = document.querySelector('head'), script = document.createElement('script'), r = false;\r\n    script.type = 'text\/javascript';\r\n    script.charset = 'utf-8';\r\n    script.src = url;\r\n    if (callback) {\r\n      script.onload = script.onreadystatechange = function() {\r\n      if (!r && (!this.readyState || this.readyState == 'complete')) {\r\n        r = true;\r\n        callback();\r\n        }\r\n      };\r\n    }\r\n    head.appendChild(script);\r\n};\r\n(function() {\r\n  if (window.location.search.search(\"excludeform\") !== -1) return false;\r\n  var getCookie = function(name) {\r\n    var match = document.cookie.match(new RegExp('(^|; )' + name + '=([^;]+)'));\r\n    return match ? match[2] : null;\r\n  }\r\n  var setCookie = function(name, value) {\r\n    var now = new Date();\r\n    var time = now.getTime();\r\n    var expireTime = time + 1000 * 60 * 60 * 24 * 365;\r\n    now.setTime(expireTime);\r\n    document.cookie = name + '=' + value + '; expires=' + now + ';path=\/';\r\n  }\r\n      var addEvent = function(element, event, func) {\r\n    if (element.addEventListener) {\r\n      element.addEventListener(event, func);\r\n    } else {\r\n      var oldFunc = element['on' + event];\r\n      element['on' + event] = function() {\r\n        oldFunc.apply(this, arguments);\r\n        func.apply(this, arguments);\r\n      };\r\n    }\r\n  }\r\n  var _removed = false;\r\n  var form_to_submit = document.getElementById('_form_10_');\r\n  var allInputs = form_to_submit.querySelectorAll('input, select, textarea'), tooltips = [], submitted = false;\r\n\r\n  var getUrlParam = function(name) {\r\n    var regexStr = '[\\?&]' + name + '=([^&#]*)';\r\n    var results = new RegExp(regexStr, 'i').exec(window.location.href);\r\n    return results != undefined ? decodeURIComponent(results[1]) : false;\r\n  };\r\n\r\n  for (var i = 0; i < allInputs.length; i++) {\r\n    var regexStr = \"field\\\\[(\\\\d+)\\\\]\";\r\n    var results = new RegExp(regexStr).exec(allInputs[i].name);\r\n    if (results != undefined) {\r\n      allInputs[i].dataset.name = window.cfields[results[1]];\r\n    } else {\r\n      allInputs[i].dataset.name = allInputs[i].name;\r\n    }\r\n    var fieldVal = getUrlParam(allInputs[i].dataset.name);\r\n\r\n    if (fieldVal) {\r\n      if (allInputs[i].type == \"radio\" || allInputs[i].type == \"checkbox\") {\r\n        if (allInputs[i].value == fieldVal) {\r\n          allInputs[i].checked = true;\r\n        }\r\n      } else {\r\n        allInputs[i].value = fieldVal;\r\n      }\r\n    }\r\n  }\r\n\r\n  var remove_tooltips = function() {\r\n    for (var i = 0; i < tooltips.length; i++) {\r\n      tooltips[i].tip.parentNode.removeChild(tooltips[i].tip);\r\n    }\r\n      tooltips = [];\r\n  };\r\n  var remove_tooltip = function(elem) {\r\n    for (var i = 0; i < tooltips.length; i++) {\r\n      if (tooltips[i].elem === elem) {\r\n        tooltips[i].tip.parentNode.removeChild(tooltips[i].tip);\r\n        tooltips.splice(i, 1);\r\n        return;\r\n      }\r\n    }\r\n  };\r\n  var create_tooltip = function(elem, text) {\r\n    var tooltip = document.createElement('div'), arrow = document.createElement('div'), inner = document.createElement('div'), new_tooltip = {};\r\n    if (elem.type != 'radio' && elem.type != 'checkbox') {\r\n      tooltip.className = '_error';\r\n      arrow.className = '_error-arrow';\r\n      inner.className = '_error-inner';\r\n      inner.innerHTML = text;\r\n      tooltip.appendChild(arrow);\r\n      tooltip.appendChild(inner);\r\n      elem.parentNode.appendChild(tooltip);\r\n    } else {\r\n      tooltip.className = '_error-inner _no_arrow';\r\n      tooltip.innerHTML = text;\r\n      elem.parentNode.insertBefore(tooltip, elem);\r\n      new_tooltip.no_arrow = true;\r\n    }\r\n    new_tooltip.tip = tooltip;\r\n    new_tooltip.elem = elem;\r\n    tooltips.push(new_tooltip);\r\n    return new_tooltip;\r\n  };\r\n  var resize_tooltip = function(tooltip) {\r\n    var rect = tooltip.elem.getBoundingClientRect();\r\n    var doc = document.documentElement, scrollPosition = rect.top - ((window.pageYOffset || doc.scrollTop)  - (doc.clientTop || 0));\r\n    if (scrollPosition < 40) {\r\n      tooltip.tip.className = tooltip.tip.className.replace(\/ ?(_above|_below) ?\/g, '') + ' _below';\r\n    } else {\r\n      tooltip.tip.className = tooltip.tip.className.replace(\/ ?(_above|_below) ?\/g, '') + ' _above';\r\n    }\r\n  };\r\n  var resize_tooltips = function() {\r\n    if (_removed) return;\r\n    for (var i = 0; i < tooltips.length; i++) {\r\n      if (!tooltips[i].no_arrow) resize_tooltip(tooltips[i]);\r\n    }\r\n  };\r\n  var validate_field = function(elem, remove) {\r\n    var tooltip = null, value = elem.value, no_error = true;\r\n    remove ? remove_tooltip(elem) : false;\r\n    if (elem.type != 'checkbox') elem.className = elem.className.replace(\/ ?_has_error ?\/g, '');\r\n    if (elem.getAttribute('required') !== null) {\r\n      if (elem.type == 'radio' || (elem.type == 'checkbox' && \/any\/.test(elem.className))) {\r\n        var elems = form_to_submit.elements[elem.name];\r\n        if (!(elems instanceof NodeList || elems instanceof HTMLCollection) || elems.length <= 1) {\r\n          no_error = elem.checked;\r\n        }\r\n        else {\r\n          no_error = false;\r\n          for (var i = 0; i < elems.length; i++) {\r\n            if (elems[i].checked) no_error = true;\r\n          }\r\n        }\r\n        if (!no_error) {\r\n          tooltip = create_tooltip(elem, \"Please select an option.\");\r\n        }\r\n      } else if (elem.type =='checkbox') {\r\n        var elems = form_to_submit.elements[elem.name], found = false, err = [];\r\n        no_error = true;\r\n        for (var i = 0; i < elems.length; i++) {\r\n          if (elems[i].getAttribute('required') === null) continue;\r\n          if (!found && elems[i] !== elem) return true;\r\n          found = true;\r\n          elems[i].className = elems[i].className.replace(\/ ?_has_error ?\/g, '');\r\n          if (!elems[i].checked) {\r\n            no_error = false;\r\n            elems[i].className = elems[i].className + ' _has_error';\r\n            err.push(\"Checking %s is required\".replace(\"%s\", elems[i].value));\r\n          }\r\n        }\r\n        if (!no_error) {\r\n          tooltip = create_tooltip(elem, err.join('<br\/>'));\r\n        }\r\n      } else if (elem.tagName == 'SELECT') {\r\n        var selected = true;\r\n        if (elem.multiple) {\r\n          selected = false;\r\n          for (var i = 0; i < elem.options.length; i++) {\r\n            if (elem.options[i].selected) {\r\n              selected = true;\r\n              break;\r\n            }\r\n          }\r\n        } else {\r\n          for (var i = 0; i < elem.options.length; i++) {\r\n            if (elem.options[i].selected && !elem.options[i].value) {\r\n              selected = false;\r\n            }\r\n          }\r\n        }\r\n        if (!selected) {\r\n          elem.className = elem.className + ' _has_error';\r\n          no_error = false;\r\n          tooltip = create_tooltip(elem, \"Please select an option.\");\r\n        }\r\n      } else if (value === undefined || value === null || value === '') {\r\n        elem.className = elem.className + ' _has_error';\r\n        no_error = false;\r\n        tooltip = create_tooltip(elem, \"This field is required.\");\r\n      }\r\n    }\r\n    if (no_error && elem.name == 'email') {\r\n      if (!value.match(\/^[\\+_a-z0-9-'&=]+(\\.[\\+_a-z0-9-']+)*@[a-z0-9-]+(\\.[a-z0-9-]+)*(\\.[a-z]{2,})$\/i)) {\r\n        elem.className = elem.className + ' _has_error';\r\n        no_error = false;\r\n        tooltip = create_tooltip(elem, \"Enter a valid email address.\");\r\n      }\r\n    }\r\n    if (no_error && \/date_field\/.test(elem.className)) {\r\n      if (!value.match(\/^\\d\\d\\d\\d-\\d\\d-\\d\\d$\/)) {\r\n        elem.className = elem.className + ' _has_error';\r\n        no_error = false;\r\n        tooltip = create_tooltip(elem, \"Enter a valid date.\");\r\n      }\r\n    }\r\n    tooltip ? resize_tooltip(tooltip) : false;\r\n    return no_error;\r\n  };\r\n  var needs_validate = function(el) {\r\n    return el.name == 'email' || el.getAttribute('required') !== null;\r\n  };\r\n  var validate_form = function(e) {\r\n    var err = form_to_submit.querySelector('._form_error'), no_error = true;\r\n    if (!submitted) {\r\n      submitted = true;\r\n      for (var i = 0, len = allInputs.length; i < len; i++) {\r\n        var input = allInputs[i];\r\n        if (needs_validate(input)) {\r\n          if (input.type == 'text') {\r\n            addEvent(input, 'blur', function() {\r\n              this.value = this.value.trim();\r\n              validate_field(this, true);\r\n            });\r\n            addEvent(input, 'input', function() {\r\n              validate_field(this, true);\r\n            });\r\n          } else if (input.type == 'radio' || input.type == 'checkbox') {\r\n            (function(el) {\r\n              var radios = form_to_submit.elements[el.name];\r\n              for (var i = 0; i < radios.length; i++) {\r\n                addEvent(radios[i], 'click', function() {\r\n                  validate_field(el, true);\r\n                });\r\n              }\r\n            })(input);\r\n          } else if (input.tagName == 'SELECT') {\r\n            addEvent(input, 'change', function() {\r\n              validate_field(this, true);\r\n            });\r\n          } else if (input.type == 'textarea'){\r\n            addEvent(input, 'input', function() {\r\n              validate_field(this, true);\r\n            });\r\n          }\r\n        }\r\n      }\r\n    }\r\n    remove_tooltips();\r\n    for (var i = 0, len = allInputs.length; i < len; i++) {\r\n      var elem = allInputs[i];\r\n      if (needs_validate(elem)) {\r\n        if (elem.tagName.toLowerCase() !== \"select\") {\r\n          elem.value = elem.value.trim();\r\n        }\r\n        validate_field(elem) ? true : no_error = false;\r\n      }\r\n    }\r\n    if (!no_error && e) {\r\n      e.preventDefault();\r\n    }\r\n    resize_tooltips();\r\n    return no_error;\r\n  };\r\n  addEvent(window, 'resize', resize_tooltips);\r\n  addEvent(window, 'scroll', resize_tooltips);\r\n  window._old_serialize = null;\r\n  if (typeof serialize !== 'undefined') window._old_serialize = window.serialize;\r\n  _load_script(\"\/\/d3rxaij56vjege.cloudfront.net\/form-serialize\/0.3\/serialize.min.js\", function() {\r\n    window._form_serialize = window.serialize;\r\n    if (window._old_serialize) window.serialize = window._old_serialize;\r\n  });\r\n  var form_submit = function(e) {\r\n    e.preventDefault();\r\n    if (validate_form()) {\r\n      \/\/ use this trick to get the submit button & disable it using plain javascript\r\n      document.querySelector('#_form_10_submit').disabled = true;\r\n            var serialized = _form_serialize(document.getElementById('_form_10_'));\r\n      var err = form_to_submit.querySelector('._form_error');\r\n      err ? err.parentNode.removeChild(err) : false;\r\n      _load_script('https:\/\/fbahero77513.activehosted.com\/proc.php?' + serialized + '&jsonp=true');\r\n    }\r\n    return false;\r\n  };\r\n  addEvent(form_to_submit, 'submit', form_submit);\r\n})();\r\n<\/script><\/div><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">Quality matters<\/h3>\n\n\n\n<p>Use sharp, <strong>high-resolution product images<\/strong> with professional backgrounds and exposure. It\u2019s alway all about customer satisfaction and quality.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Zoom<\/h3>\n\n\n\n<p>The resolution of your images has to be good enough that the quality doesn\u2019t get worse when <strong>people use Amazon\u2019s zoom<\/strong> in function.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Angle and perspective<\/h3>\n\n\n\n<p>Show the <strong>product from different angeles<\/strong>. People want to know exactly what they are buying.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Background<\/h3>\n\n\n\n<p>It makes sense for some products to be placed into the environment in <strong>which it usually can be found<\/strong>, is used, etc. <\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Size ratios<\/h3>\n\n\n\n<p>Depending on the product it can be helpful to <strong>illustrate the size ratios<\/strong>. Especially if the size is something that add\u2019s value to the product (e.g. a very slim smartphone, or big rims, etc.)<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Use different product photos<\/h3>\n\n\n\n<p> Use of course <strong>different photos of your product<\/strong> and again, the visual aspect has a big impact on the buying decision of potential clients. <\/p>\n","protected":false},"excerpt":{"rendered":"<p>Amazon product Images are essential for high sales and a good representation of your brand. People always see the product first and it highly impacts the buying decision. That\u2019s why you should use the images properly. What Amazon Product Listing Images should be like (Requirements) Of course, as soon as you upload images to your [&hellip;]<\/p>\n","protected":false},"author":21,"featured_media":61361,"parent":60409,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_lmt_disableupdate":"yes","_lmt_disable":"","_genesis_hide_title":false,"_genesis_hide_breadcrumbs":false,"_genesis_hide_singular_image":false,"_genesis_hide_footer_widgets":false,"_genesis_custom_body_class":"","_genesis_custom_post_class":"","_genesis_layout":"","footnotes":""},"categories":[],"tags":[],"class_list":{"0":"post-60411","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"entry"},"acf":[],"modified_by":"Niki Stanev","_links":{"self":[{"href":"https:\/\/hellotax.com\/blog\/wp-json\/wp\/v2\/posts\/60411","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/hellotax.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/hellotax.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/hellotax.com\/blog\/wp-json\/wp\/v2\/users\/21"}],"replies":[{"embeddable":true,"href":"https:\/\/hellotax.com\/blog\/wp-json\/wp\/v2\/comments?post=60411"}],"version-history":[{"count":0,"href":"https:\/\/hellotax.com\/blog\/wp-json\/wp\/v2\/posts\/60411\/revisions"}],"up":[{"embeddable":true,"href":"https:\/\/hellotax.com\/blog\/wp-json\/wp\/v2\/posts\/60409"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/hellotax.com\/blog\/wp-json\/wp\/v2\/media\/61361"}],"wp:attachment":[{"href":"https:\/\/hellotax.com\/blog\/wp-json\/wp\/v2\/media?parent=60411"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/hellotax.com\/blog\/wp-json\/wp\/v2\/categories?post=60411"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/hellotax.com\/blog\/wp-json\/wp\/v2\/tags?post=60411"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}