{
  "title": "Shopify Product Image Upload Limits — 2026 Test Results",
  "publisher": "QuickTiny",
  "sourcePage": "https://quicktinyv2.vercel.app/shopify-image-upload-limits-test-2026",
  "verifiedDate": "2026-09-13",
  "scope": "Shopify's product and collection image upload path specifically. Does not apply to theme assets, blog images, or general Files uploads, which use different limits.",
  "limits": {
    "maxPixels": 25000000,
    "maxPixelsDescription": "25 megapixels (5000x5000 px for a square image)",
    "maxFileSizeBytes": 20971520,
    "maxFileSizeDescription": "20 MB",
    "independentChecks": true,
    "independentChecksNote": "The megapixel limit and the file-size limit are enforced independently. An image can pass one and fail the other."
  },
  "shopifyDocumentation": {
    "publisher": "Shopify",
    "title": "Shopify Help Center: Product media types",
    "url": "https://help.shopify.com/en/manual/products/product-media/product-media-types",
    "quote": "Your product and collection images can be any size up to 5000 x 5000 px, or 25 megapixels. Product and collection images need to have a file size smaller than 20 MB to be added to Shopify."
  },
  "tests": [
    {
      "widthPx": 2048,
      "heightPx": 2048,
      "megapixels": 4.19,
      "fileSizeMB": null,
      "result": "accepted",
      "shopifyErrorMessage": null,
      "note": "File size well under 20 MB; not the variable being isolated in this row."
    },
    {
      "widthPx": 6000,
      "heightPx": 4000,
      "megapixels": 24.00,
      "fileSizeMB": null,
      "result": "accepted",
      "shopifyErrorMessage": null,
      "note": "File size well under 20 MB; not the variable being isolated in this row."
    },
    {
      "widthPx": 5000,
      "heightPx": 5000,
      "megapixels": 25.00,
      "fileSizeMB": null,
      "result": "accepted",
      "shopifyErrorMessage": null,
      "note": "Exactly at the 25-megapixel ceiling and still accepted."
    },
    {
      "widthPx": 5200,
      "heightPx": 5200,
      "megapixels": 27.04,
      "fileSizeMB": null,
      "result": "rejected",
      "shopifyErrorMessage": "Exceeds 25 megapixels (width x height). Resize to smaller dimensions and try again.",
      "note": "Rejected on megapixels; file size was not the issue."
    },
    {
      "widthPx": 3200,
      "heightPx": 3200,
      "megapixels": 10.24,
      "fileSizeMB": 29.9,
      "result": "rejected",
      "shopifyErrorMessage": "Exceeds maximum image size of 20 MB.",
      "note": "Well under the megapixel limit; rejected on file size alone."
    },
    {
      "widthPx": 4898,
      "heightPx": 4898,
      "megapixels": 23.99,
      "fileSizeMB": null,
      "result": "accepted",
      "shopifyErrorMessage": null,
      "note": "QuickTiny-resized output of the rejected 5200x5200 file above; the same file, re-uploaded and accepted."
    },
    {
      "widthPx": 3200,
      "heightPx": 3200,
      "megapixels": 10.24,
      "fileSizeMB": 8.81,
      "result": "accepted",
      "shopifyErrorMessage": null,
      "note": "QuickTiny-compressed output of the rejected 29.9MB file above, dimensions unchanged; re-uploaded and accepted."
    }
  ],
  "methodology": "Test images were generated at specific, known pixel dimensions and file sizes, then uploaded one at a time through Shopify's own product-image uploader in the Shopify admin. For each upload we recorded the exact width x height, computed megapixel count, file size, whether Shopify accepted or rejected it, and, for rejections, Shopify's exact verbatim error text.",
  "license": "CC BY 4.0 — free to reuse and cite, with attribution to QuickTiny and a link to the source page above.",
  "disclaimer": "This is a single-store empirical test, not a claim about Shopify's internal source code or a guarantee these numbers stay fixed forever. Shopify can and does change platform limits over time; verify against Shopify's current documentation for critical use."
}
