What Shopify Actually Means by "Position"
Every image attached to a Shopify product carries an integer position field, starting at 1. That number is the single source of truth for gallery order. It is not derived from upload time, filename, or the order you dragged things in the admin — dragging simply rewrites the integers behind the scenes.
Three things follow from that, and they are the reason image position matters more than most merchants assume:
- Position 1 is the featured image. It is what appears on collection pages, in search results inside your store, in cart line items, and in the Shopify-generated Open Graph tag that social platforms scrape.
- Positions renumber themselves. Insert a new image at position 2 and everything below shifts down by one. There are no gaps and no stable slots.
- New images append by default. Upload without specifying a position and the image lands last — which is exactly where nobody looks.
That last point is where most catalogs quietly break. A merchant retouches a hero shot, uploads the improved version, and the old snapshot stays at position 1 while the good image sits at position 7 below the fold.
If your image workflow ends with "upload the new file," you have not replaced anything. You have added a ninth image to a product that already had eight, and the featured image is unchanged.
Why the Featured Image Carries Disproportionate Weight
Position 1 is not just the first image in a gallery. It is the only image most shoppers ever see.
On a collection page showing 24 products, a visitor sees 24 featured images and zero secondary images. The decision to click into a product detail page is made entirely on position 1. Everything from position 2 onward only gets seen by people who have already committed to looking.
The same image is reused across surfaces you may not be thinking about when you set it:
| Surface | Which image it uses | Typical render size |
|---|---|---|
| Collection grid | Position 1 | Small, often square-cropped |
| Search results (in-store) | Position 1 | Thumbnail |
| Cart line item | Position 1 | Tiny |
| Open Graph / social share | Position 1 | Large, 1.91:1 crop |
| Google Shopping feed | Position 1 | Varies |
| Product detail gallery | All, in order | Large |
Choosing a featured image that reads well at 200 pixels wide is therefore a different job from choosing the most beautiful image in the set. A busy lifestyle shot with the product occupying 15% of the frame is unreadable in a collection grid, however good it looks at full size. This is one of the reasons a clean, consistently framed cutout tends to outperform on the grid even for brands whose overall aesthetic is editorial — see our breakdown of white background versus lifestyle imagery for where each belongs.
Setting Image Position When You Push, Not After
The reliable fix is to decide position at the moment the image is created, rather than uploading first and reordering later in the admin.
Shopify's Admin API accepts a position value on the image itself when the image is attached to a product. Send 1 and the image becomes the featured image immediately; existing images shift down. Send nothing and it appends.
Retouchable's Shopify integration exposes exactly this. When you push a finished image to a product, you choose whether it becomes the featured image or appends to the end of the gallery, and you set the filename and alt text in the same action. The result is that the retouched image lands in the slot you intended, with correct metadata, without a second trip to the Shopify admin.
Upload-then-reorder
- Export the retouched file to your desktop
- Open the Shopify admin, find the product
- Upload — image appends to the end
- Drag it to the top
- Click into the image to add alt text
- Delete or hide the old hero
- Repeat per product
Push with position set
- Pick the product from the picker
- Choose "featured" or "append"
- Set filename and alt text inline
- Push — it lands in position 1
- Move to the next product
The step count matters less than the failure mode it removes. Manual reordering is the part of the workflow people skip when they are behind, which is precisely when a catalog refresh most needs to actually land.
A Sane Gallery Order for the Rest of the Positions
Positions 2 onward are seen only by shoppers already on the product page, but they carry the job of answering objections in the order those objections arise. A defensible default for most physical products:
| Position | Shot | Question it answers |
|---|---|---|
| 1 | Clean hero, product filling the frame | What is it? |
| 2 | In use / on model / in context | What does it look like in real life? |
| 3 | Scale reference | How big is it? |
| 4 | Detail / material macro | Is the quality good? |
| 5 | Alternate angle or back | What am I not being shown? |
| 6+ | Variants, packaging, size chart | Which one do I buy? |
Two rules keep this from decaying over time. First, keep the order identical across every product in a collection — a shopper who learns that image 3 is the scale shot on one product will look for it on the next, and inconsistency costs them that shortcut. Second, cap the count. Beyond roughly eight images the marginal image is rarely viewed, and a long gallery pushes the add-to-cart button further down on mobile. Our post on how many product images actually lift conversion covers where the curve flattens.
Write your gallery order down as a numbered standard and store it with your image naming convention. A position that only exists in someone's head does not survive that person taking a week off.
Keeping Position Stable Across a Catalog Refresh
Reordering one product is trivial. Reordering four hundred is where teams lose control, because every insert renumbers everything below it and there is no undo for a bulk reorder.
Three practices keep a refresh from turning into a mess:
Replace in place rather than adding alongside
If a retouched image is meant to supersede an old one, push it to position 1 and then remove the superseded image in the same pass. Leaving both creates a gallery where positions 1 and 2 are near-identical shots, which reads to a shopper as carelessness and to a crawler as duplicate content.
Batch by collection, not by product
Working through a collection at a time means the featured images that sit next to each other on the grid are updated together. Working product by product across collections leaves you with grids that are half refreshed and half not for days at a time — visibly worse than either state.
Audit position 1 separately
After a refresh, look only at the collection page, not the product pages. It is the fastest way to spot a product whose featured image never moved. If one tile in the grid has a different background tone, framing, or product scale from its neighbours, its position 1 was missed.
Position, Filename, and Alt Text Travel Together
Position controls what a shopper sees. Filename and alt text control what everything else sees — screen readers, Google Images, and increasingly the AI shopping assistants that read a product page rather than looking at it.
These three fields are set at the same moment for a practical reason: they are all properties of the image record, and if you set them in separate passes you will eventually do one and not the others. A featured image with a filename like IMG_4471.jpg and empty alt text is doing half its job.
- Filename — descriptive, hyphenated, product-first:
walnut-ceramic-mug-12oz-front.jpg. It becomes part of the CDN URL and is one of the few pieces of text Google associates with the image file itself. - Alt text — a plain description of what is in the frame, written for someone who cannot see it. Not a keyword list. If the image shows the mug from the front on a white background, say that.
- Position — set deliberately, every time, rather than accepting the append default.
Getting all three right on the featured image of every product is a larger share of practical image SEO than most technical audits credit. For the metadata side in more depth, see Shopify image metadata: alt text, filenames and order.
A Short Checklist Before You Call the Refresh Done
Run these six checks on a sample of ten products after any catalog image update. If all ten pass, the batch is almost certainly fine; if two or more fail, re-run the batch rather than patching individually.
- Does position 1 show the new retouched image, not the old one?
- Is the superseded image removed, not just pushed down?
- Does the featured image read clearly at thumbnail size, with the product filling most of the frame?
- Is the gallery order the same as the standard you wrote down?
- Does every image have alt text, and does the featured image have a descriptive filename?
- Does the collection page look internally consistent — same background, same product scale, same crop across tiles?
The sixth check is the one worth doing on a real screen rather than in the admin. Consistency across the grid is the effect all of this position work is actually buying you, and it is only visible when the tiles sit next to each other.
Treat "which position does this go in?" as part of finishing an image, not part of publishing it. The decision is cheap while the image is still in front of you and expensive to reconstruct three hundred products later.