# Merchant image dimension evidence

Measured 5 September 2026. These three original synthetic grids are downloadable, reproducible dimension fixtures, not product photographs or evidence of Google approval. No image was uploaded to Google.

The 500×400 and 499×500 files meet the current non-apparel and apparel dimension minimums but miss the 500-pixel minimum on one side. The 500×500 file meets that minimum on both sides. “Pass” refers only to the local checked rules: it does not establish image suitability, source provenance, URL availability, account acceptance or ranking. None of these small grids meets the separate 1500-pixel recommendation.

Download each PNG and inspect it at https://jpegconvert.com/check-my-file with the matching preset. The report includes current non-apparel, current apparel and 31 January 2027 profile IDs, source links, actual bytes and SHA-256 hashes. It uses the site's real format/header inspector, destination coach and requirement evaluator.

The two 64-million-pixel boundary cases are explicitly separate arithmetic tests. There are no 8000×8000 or 8001×8000 image files; their bytes, compression and decoding were not tested.

From webapp, using Node 22:

    node --loader ./tests/unit/alias-loader.mjs scripts/generate-merchant-image-evidence.mjs
    node --loader ./tests/unit/alias-loader.mjs scripts/generate-merchant-image-evidence.mjs --check
    node --loader ./tests/unit/alias-loader.mjs tests/unit/run-merchant-image-evidence-tests.mjs

Generation creates filter-0, 8-bit RGB scanlines with a 50-pixel grid and colored edge markers, then writes standard IHDR, IDAT and IEND chunks. Tests independently validate every chunk checksum using Node zlib, inflate the complete image data, check the row lengths and reproduce the evaluator results and source IDs. PNG compression bytes can vary with the zlib runtime; measurements.json records that version.
