Nobody ships a broken storefront on purpose. Template bugs arrive quietly: an app gets uninstalled but leaves a snippet behind, a theme update renames a section type, a metafield sits empty and the sentence built around it renders anyway. The store keeps taking orders, so nothing pages anyone. The only people guaranteed to see the result are the ones you least want to — shoppers, mid-decision. This field note is a catalogue of what that looks like in the wild, from the customer’s side of the glass.
Australian Shopify stores we’ve audited since mid-July 2026 had at least one template defect visible to shoppers on the public buying path — a rendered error message, placeholder or test content, a blank where a variable should be, or a section heading over nothing. Every specimen below is real, observed this month, and anonymised: our content names a store only when it has a published teardown.
A field guide to the five species
1. The error that announces itself
This is Shopify’s template language failing out loud. The usual story is exactly the one the message tells: a page-builder app added a snippet, the app or its section later went away, and the reference kept rendering as an error string on every single page — including the product pages of $550 garments. We first logged this specimen in mid-July; it was still printing when we re-checked this week. That’s the defining property of this species: nothing breaks operationally, so it survives for weeks in a place every customer scrolls past.
2. The note that wasn’t for you
A developer’s to-self, typed somewhere a template later decided to render. It reads as harmless until you picture the shopper who has just been asked to trust this checkout with their card details, reading what is unmistakably the inside of an unfinished job. Test and scaffolding content in production is rarer than the other species — and does the most trust damage per pixel, because it can’t be mistaken for anything except nobody checking the page.
3. The placeholder that shipped
The store built a homepage feature for a marquee brand — the banner names it proudly — and the carousel beneath is rendering the theme’s demo placeholder, twenty times, instead of a single product. The feature is selling nothing. This species is the theme editor’s default content escaping into production: “Product title”, “$12.34”, “Your collection’s name”, lorem ipsum, and the multilingual cousin — translation missing: keys — all belong to it. A furniture maker we audited this month had a related case: a delivery line that rendered as “Arriving in our Melbourne warehouse in {DATE_WILL_BE_SHOWN_HERE}” to our fetcher. (Caveat where it’s due: JS-heavy themes sometimes fill these client-side after load — which is why that one is logged with an asterisk until we’ve confirmed it in a real browser, and why we verify everything before it goes in a paid report.)
4. The blank that renders anyway
The sentence exists, the variable doesn’t, and the result is a full stop where the answer should be — across an entire catalogue, on the exact line a pre-order buyer reads twice. We wrote about this store’s blank in the delivery-information field note as a shipping problem; it belongs here too, because the root cause is template, not policy: a data feed stopped filling a metafield and no template guard was there to hide the empty sentence. A blank answer is worse than no answer — it proves the store meant to say something and didn’t notice it failed.
5. The heading over nothing
The quietest species. An accordion or section renders its title and its body comes back empty — missing metafield, filtered-out recommendations, a content block someone deleted from the admin without deleting the frame. One empty heading looks like a small thing. But it sits on pages asking for $250 and $2,599 respectively, and an empty promise of information is still a promise broken at the moment of maximum attention.
Why it costs more than it looks like it should
We don’t invent conversion percentages, so here is the mechanism. A shopper can’t inspect your warehouse, your returns desk or your customer service before buying — the storefront is the only evidence they get, so they read it as a proxy for everything they can’t see. A rendered error string or a placeholder title is therefore never judged as “a minor CSS issue”; it’s judged as how this store does things, at exactly the moment the shopper is deciding whether to hand over card details. The damage concentrates at considered price points — the $550 knit, the $2,599 dresser — where the buyer is actively looking for reasons to defer. And unlike a genuinely broken checkout, nothing in your analytics flags it: revenue doesn’t stop, it just quietly runs below where it should, which is why these bugs survive for weeks.
Why Shopify stores specifically
Not because Shopify is fragile — because its ecosystem makes leftovers easy. Apps inject snippets and sections into themes; uninstalling the app doesn’t always uninstall the injection, which is how a dead page-builder ends up printing Liquid errors in a footer. Section-based themes fail soft: a missing section type renders an error string rather than crashing the page, so nothing forces a fix. Metafield-driven templates render whatever is in the field — including nothing. And theme editors ship with demo content that looks fine in the editor preview precisely because it looks like content. Every one of these is a five-minute fix once seen. The whole problem is that the person who can fix it never looks at the rendered store the way a first-time visitor does.
Find yours in fifteen minutes
- Open your storefront in a private window — not the theme editor, the real store — and read your own homepage, top three product pages, and footer, slowly, on both desktop and phone. Most of the specimens above are findable by the first person who actually reads the page.
- On each of those pages, hit Ctrl-F / Cmd-F and search for: Liquid error, translation missing, lorem, $12.34, and a stray {. Ten seconds per page, catches species 1 and 3 outright.
- Click every accordion and tab on your best-selling product page. Empty ones are species 5 — either fill them or add the template guard that hides an empty block.
- Render your edge-case products: a pre-order item, a sold-out item, a personalised item. Blanks and stale dates live on the templates you look at least (species 4).
- After uninstalling any app, re-read the pages it touched. App leftovers are the single most common cause of species 1, and uninstall day is the one day you know to look.
- If you run multiple languages, open the non-default language and repeat step 2 — translation missing keys cluster there.
The honest caveats
Two, both real. First: automated fetchers (ours included) see pre-hydration HTML, so on JS-heavy themes a “placeholder” can be filled by script a moment later — we confirm in a real browser before any finding goes into a paid report, and you should apply the same discipline before panicking at step 2. Second: an empty accordion is only a bug if it renders; well-built themes hide empty blocks, and no shopper sees the metafield you never filled. The species above all share one property — they were visible, rendered, on the public buying path. That’s the bar. And template debt is one leak among several: the same 40 audits found no reviews on the buying path at most stores, nothing offered for an email address at more than half, and delivery answers missing at the decision point at nearly half. A store leaking here usually leaks elsewhere — sequencing the fixes is most of the value of an audit.
We’ll read your store the way your customers do.
A 40-point revenue-leak teardown — template defects, product pages, trust, shipping messages, email flows, stock states, SEO, checkout friction — delivered as a prioritised fix roadmap in 48 hours. Fixed A$695, no retainer. Fewer than 5 actionable fixes and we refund in full.