StoreFix

Live demo

The plan, before you buy

Northbound Supply Co. is not a real store. We made it up.

Its 14 products were written by hand. The plan was not — every job came out of the same 19 checks, the same weights and the same time budget a connected store gets, over the real number of products that failed.

Nothing has changed since earlier today

Same number of products with findings, same store score. We compared this reading against that one rather than assuming — if something had changed in this demo catalogue, it would be on this line.

  • Today45 min · 1 job
  • This week4.5 hr · 16 jobs
  • Over time9 min · 3 jobs
Why these three windows
Today
The jobs closest to somebody deciding whether to buy. If a shopper is on the page right now, these are what is standing between them and the checkout. About 45 minutes — the amount a person running a shop can actually find in a day.
This week
The next six days at the same pace. These matter less in the moment of a decision and more for being found at all: how your listings read in search, and whether an AI assistant has enough to recommend you.
Over time
Everything we found that did not fit above, still in the order it matters. Nothing here is urgent and none of it is optional forever — this is the list you chip at on a quiet afternoon.
  1. 1Description too thin to sell withHigh · 45 min · 4 products · ✦ draftabletoday

    Why it costs you

    A short description doesn't answer the questions that stop a purchase — sizing, materials, what's included, what happens if it's wrong. Every question left open is either a support email or an abandoned cart, and it's usually the second one.

    What to do

    Cover what it is, who it's for, what it's made of and what happens if it's wrong.

    4 of 4 products in this sittingmore of this job later We draft these once your store is connected
    What a good one looks likean example, not your product

    Weak

    Soft merino jumper. Available in four colours.

    Strong

    A mid-weight crew knitted from 100% RWS-certified merino — warm enough for a cold platform, fine enough to wear under a jacket all day without overheating. Fit: true to size, straight through the body, with a slightly dropped shoulder. Our 5'10" model wears a medium. Between sizes, take the smaller one; merino relaxes about half a size in the first month of wear. Made from 19.5 micron merino at 320gsm, knitted in Portugal. Machine washable at 30°C on a wool cycle, dried flat — no hand washing and no dry cleaning. In the box: the crew and a spare matching yarn card for repairs. Free UK returns for 60 days, worn or unworn, and we pay the postage both ways.

    The short one is a label — it repeats the title and stops. Neither sentence answers a question a shopper was actually hesitating over.

    Shopify › Product › Description

  2. 2Description too thin to sell with (continued)High · 3 min · 1 product · ✦ draftablethis week

    Why it costs you

    A short description doesn't answer the questions that stop a purchase — sizing, materials, what's included, what happens if it's wrong. Every question left open is either a support email or an abandoned cart, and it's usually the second one.

    What to do

    Cover what it is, who it's for, what it's made of and what happens if it's wrong.

    1 of 4 products in this sitting We draft these once your store is connected
  3. 3Description stops before the questions startMedium · 56 min · 7 products · ✦ draftablethis week

    Why it costs you

    There is a real description here — it just runs out before it covers sizing, materials, what's in the box and what happens if it's wrong. Under about 600 characters there is rarely room for all four, and the one you left out is the one a particular shopper needed.

    What to do

    Add the specifics: dimensions or fit, what it's made of, what's included, and your returns line.

    7 of 7 products in this sitting We draft these once your store is connected
    What a good one looks likean example, not your product

    Weak

    A mid-weight crew knitted from 100% RWS-certified merino — warm enough for a cold platform, fine enough to wear under a jacket all day without overheating. Knitted in Portugal from 19.5 micron yarn at 320gsm, with a ribbed collar, cuffs and hem. Available in charcoal, oat, navy and moss, in sizes XS through XXL, and restocked every autumn.

    Strong

    A mid-weight crew knitted from 100% RWS-certified merino — warm enough for a cold platform, fine enough to wear under a jacket all day without overheating. Fit: true to size, straight through the body, with a slightly dropped shoulder. Our 5'10" model wears a medium. Between sizes, take the smaller one; merino relaxes about half a size in the first month of wear. Made from 19.5 micron merino at 320gsm, knitted in Portugal. Machine washable at 30°C on a wool cycle, dried flat — no hand washing and no dry cleaning. In the box: the crew and a spare matching yarn card for repairs. Free UK returns for 60 days, worn or unworn, and we pay the postage both ways.

    The first one is well written and stops after the first question. Sizing, care and returns are the three it never reaches, and they are the ones that get emailed to your support inbox instead.

    Shopify › Product › Description

  4. 4No description at allCritical · 30 min · 2 products · ✦ draftablethis week

    Why it costs you

    A shopper who lands here has a title, a price and nothing to justify either. There is also no text for Google to rank, nothing for an AI assistant to quote, and no way this page can win a search for anything except your exact product name.

    What to do

    Write one. This page currently gives a shopper nothing to read.

    2 of 2 products in this sitting We draft these once your store is connected
    What a good one looks likean example, not your product

    Weak

    (empty)

    Strong

    A mid-weight crew knitted from 100% RWS-certified merino — warm enough for a cold platform, fine enough to wear under a jacket all day without overheating. Fit: true to size, straight through the body, with a slightly dropped shoulder. Our 5'10" model wears a medium. Between sizes, take the smaller one; merino relaxes about half a size in the first month of wear. Made from 19.5 micron merino at 320gsm, knitted in Portugal. Machine washable at 30°C on a wool cycle, dried flat — no hand washing and no dry cleaning. In the box: the crew and a spare matching yarn card for repairs. Free UK returns for 60 days, worn or unworn, and we pay the postage both ways.

    Four paragraphs answering the four questions that stop a purchase: what it is, how it fits, what it is made of, and what happens if it is wrong.

    Shopify › Product › Description

  5. 5Only one product photoHigh · 20 min · 2 productsthis week

    Why it costs you

    One photo answers what it looks like from the front and nothing else. Shoppers reach for a second image to judge scale, material and finish — the things that decide whether they'll be disappointed — and when it isn't there, some of them resolve the doubt by not buying. This is the single most common reason a listing that looks finished converts like an unfinished one.

    What to do

    Add a second and third angle — a detail shot and something showing scale or use.

    2 of 2 products in this sittingBy hand — it needs a decision only you can make
  6. 6No meta descriptionMedium · 24 min · 6 products · ✦ draftablethis week

    Why it costs you

    This is the sentence under your link in Google, and it's the whole pitch someone reads before deciding whether to click you or the competitor below you. Left empty, Google grabs whatever text it finds first — often a shipping notice or a cookie banner.

    What to do

    Write the sentence you want under your link in Google. Left empty, Google picks its own.

    6 of 6 products in this sitting We draft these once your store is connected
    What a good one looks likean example, not your product

    Weak

    (empty — Google picks its own sentence)

    Strong

    Mid-weight 100% merino crew in four colours, machine washable and true to size. Free UK returns for 60 days.

    It is inside the length Google will show, and it spends that room on the four things that decide a click: what it is, what it is made of, how it fits, and what happens if it is wrong.

    Shopify › Product › Search engine listing › Description

  7. 7Nothing on this product can be boughtCritical · 5 min · 1 productthis week

    Why it costs you

    This page still appears in search, still takes ad clicks and still gets linked to, and every visitor who arrives converts at zero. It is the only finding here where the loss is certain rather than likely.

    What to do

    Restock it, add a back-in-stock signup, or redirect the page to the nearest available product. It's still taking traffic.

    1 productBy hand — it needs a decision only you can make
  8. 8No product photosCritical · 12 min · 1 productthis week

    Why it costs you

    Online, the photo is the product — it's the only way a shopper can inspect what they're being asked to pay for. A listing without one reads as unfinished or abandoned, and it also has nothing to show in Google Shopping, social previews or your own collection pages.

    What to do

    Add at least 3 photos. Nobody buys what they can't see.

    1 productBy hand — it needs a decision only you can make
  9. 9Photos have no alt textLow · 24 min · 6 productsthis week

    Why it costs you

    Alt text is what Google Images indexes and what a screen reader reads aloud, so an untagged photo is invisible to image search and silent to a shopper using assistive technology. In several countries that second part is also a legal exposure, not just a missed sale.

    What to do

    Describe what each photo shows. It's what Google Images reads and what a screen reader announces.

    6 of 6 products in this sittingBy hand — it needs a decision only you can make
    What a good one looks likean example, not your product

    Weak

    (no alt text on any photo)

    Strong

    Charcoal merino crew worn open over a white tee, photographed from the front

    Every photo needs its own line describing that shot. A photo with none is not indexed by Google Images and is silent to anyone using a screen reader.

    Shopify › Product › Media › each image › Alt text

  10. 10Fewer than 3 product photosMedium · 16 min · 2 productsthis week

    Why it costs you

    Two photos usually means a front and a back, which answers what it looks like but not how big it is, what it's made of, or what it looks like in use. Those three questions are the ones that get asked right before somebody either buys or closes the tab.

    What to do

    Add a third photo showing scale or the product in use — the shot that answers “how big is it actually”.

    2 of 2 products in this sittingBy hand — it needs a decision only you can make
  11. 11Photos are too small to zoomMedium · 30 min · 2 productsthis week

    Why it costs you

    Your theme turns zoom on above roughly 800px and this sits under the size where zoom is worth having. Zoom is how somebody checks a seam, a grain or a finish without holding it — take it away and the doubt that would have been resolved in two seconds gets resolved by not buying.

    What to do

    Re-upload at 1600px or larger on the longest side so the theme's zoom has something to show.

    2 of 2 products in this sittingBy hand — it needs a decision only you can make
  12. 12No brand declaredMedium · 4 min · 4 productsthis week

    Why it costs you

    A growing share of product discovery starts with someone asking an assistant for a brand by name. Those systems match on the vendor field, and a product that doesn't state one can't be returned for a branded request — including requests for your own brand.

    What to do

    Set the Vendor field. Assistants asked for a brand by name can't match a product that doesn't state one.

    4 of 4 products in this sittingBy hand — it needs a decision only you can make
    What a good one looks likean example, not your product

    Weak

    (empty)

    Strong

    Northbound Supply Co.

    It is a match, not a sentence — the field either holds your brand name or it does not. Empty means a request for your own brand by name cannot return this product.

    Shopify › Product › Product organisation › Vendor

  13. 13Variants carry no barcodeLow · 12 min · 6 productsthis week

    Why it costs you

    A GTIN is how the rest of the internet knows your listing is the same item sold elsewhere — it's what attaches reviews, price comparisons and Google Shopping matches to your page. Without it this product is treated as something nobody has ever reviewed.

    What to do

    Add the GTIN/UPC/EAN if the product has one. It's how an engine knows your listing is the same item sold elsewhere.

    6 of 6 products in this sittingBy hand — it needs a decision only you can make
    What a good one looks likean example, not your product

    Weak

    (empty)

    Strong

    5060937420117

    The manufacturer's GTIN/UPC/EAN, if the product has one — do not invent a number. It is how reviews and price comparisons elsewhere get attached to your page.

    Shopify › Product › Variants › each variant › Barcode (ISBN, UPC, GTIN)

  14. 14Photos are too small to look at properlyHigh · 20 min · 1 productthis week

    Why it costs you

    A photo this small is being stretched by the browser on any modern screen, so it arrives soft and slightly blurred. Shoppers do not diagnose resolution — they read a blurry product shot as a cheap product or a careless shop, and neither is what you meant to say.

    What to do

    Re-upload at 1600px or larger on the longest side. Shopify recommends 2048×2048 for product photos.

    1 productBy hand — it needs a decision only you can make
  15. 15No tagsLow · 9 min · 3 productsthis week

    Why it costs you

    Tags are what your own collections, search and filters run on, and they are the closest thing your catalogue has to a description of a product's attributes — colour, material, occasion, who it's for. With none set, this product can only be reached by browsing to it, and an assistant asked for “something waterproof” has nothing to match against.

    What to do

    Add a handful: material, colour, use case, who it's for. They drive your own filters before they drive anything else.

    3 of 3 products in this sittingBy hand — it needs a decision only you can make
    What a good one looks likean example, not your product

    Weak

    (none)

    Strong

    merino · machine-washable · mid-weight · layering · unisex · winter

    Attributes, not adjectives. These are what your own filters and collections run on, and what an assistant asked for “something machine washable” matches against.

    Shopify › Product › Tags

  16. 16Variants carry no SKULow · 4 min · 2 productsthis week

    Why it costs you

    The SKU is the identifier your own systems match on — inventory, returns, fulfilment, ad feeds and marketplace listings all key off it. Without one, every one of those has to fall back to matching on the product title, which breaks the moment you rename anything.

    What to do

    Give each variant a SKU. It's the handle everything downstream matches your listing on.

    2 of 2 products in this sittingBy hand — it needs a decision only you can make
    What a good one looks likean example, not your product

    Weak

    (empty)

    Strong

    NB-DMC-CHR-M

    Any stable code works as long as every variant has its own. Inventory, returns, ad feeds and marketplaces all key off this; with it empty they fall back to matching on the title, which breaks the day you rename anything.

    Shopify › Product › Variants › each variant › SKU

  17. 17Meta description is the wrong lengthLow · 1 min · 1 product · ✦ draftablethis week

    Why it costs you

    Google gives every result a fixed amount of room. Under it you're leaving free advertising space unused; over it your sentence gets cut mid-word, which tends to truncate exactly the part that would have earned the click.

    What to do

    Aim for 70–160 characters. Shorter wastes the space, longer gets cut off.

    1 of 2 products in this sittingmore of this job later We draft these once your store is connected
    What a good one looks likean example, not your product

    Weak

    Merino crew neck jumper.

    Strong

    Mid-weight 100% merino crew in four colours, machine washable and true to size. Free UK returns for 60 days.

    24 characters leaves most of the space Google gives you empty. 108 characters fills it and still ends on a full sentence rather than mid-word.

    Shopify › Product › Search engine listing › Description

  18. 18Meta description is the wrong length (continued)Low · 5 min · 2 products · ✦ draftablelater

    Why it costs you

    Google gives every result a fixed amount of room. Under it you're leaving free advertising space unused; over it your sentence gets cut mid-word, which tends to truncate exactly the part that would have earned the click.

    What to do

    Aim for 70–160 characters. Shorter wastes the space, longer gets cut off.

    2 of 2 products in this sitting We draft these once your store is connected
  19. 19No product typeLow · 1 min · 1 productlater

    Why it costs you

    Almost nobody searches for a product by its name — they search for the category and pick from what comes back. With no type set, this product isn't in the pool being picked from, so it can only be found by people who already know it exists.

    What to do

    Set the product type. It's how a request for a category reaches this product at all.

    1 productBy hand — it needs a decision only you can make
    What a good one looks likean example, not your product

    Weak

    (empty)

    Strong

    Knitwear › Crew neck jumper

    The category somebody would actually browse or ask for. With it empty, this product is not in the pool a category request picks from at all.

    Shopify › Product › Product organisation › Product type

  20. 20Search title will be cut offLow · 3 min · 1 product · ✦ draftablelater

    Why it costs you

    The title is the blue link — the largest, most-read thing in a search result. When it overruns, Google trims the end, and the end is usually where the size, colour or model number lives, so what's left can look like a different product.

    What to do

    Keep the page title under 60 characters so the whole thing shows in results.

    1 product We draft these once your store is connected
    What a good one looks likean example, not your product

    Weak

    Dune Merino Crew Neck Jumper for Men and Women in Charcoal, Oat, Navy and Moss — Northbound Supply Co.

    Strong

    Dune Merino Crew — Charcoal, Oat, Navy, Moss | Northbound

    The long one gets trimmed after roughly sixty characters, and the part Google cuts is the colour list — so the result looks like a different product. The short one fits whole.

    Shopify › Product › Search engine listing › Page title

You never tick anything off this list

and that is deliberate — here is why

There is no “mark as done” button anywhere in StoreFix. A checklist you maintain by hand goes out of date the first time you forget to update it, and then it is lying to you.

  1. 1

    You change something — in Shopify, or here by approving a draft.

  2. 2

    The next time you open this page, we read your products from the Shopify Admin API again and re-run all the checks. Not a cache, not a queue: the read happens while you wait.

  3. 3

    The check you fixed stops firing, so its job leaves the list and the work behind it moves up. The panel at the top of this page says what moved since your last visit, so the change is not silent.

A diagram, not your jobs. The top one stopped being true, so it leaves and the next one becomes today's work.

Want this list about your own products?

It needs a connected store, because every job above is a field read out of the Shopify Admin API rather than guessed from a public page. One click, and it asks for product read and write — nothing about orders, customers or payouts.

Product links inside the plan go to the real dashboard, which will ask you to connect a store — there is no fictional product page behind them, because we would rather stop at the edge of what we built than mock up the rest.