There is a tab open on every growing store's screen that no one likes to look at. It is the product list, filtered to the ones with no description, and it is always longer than you remember. A new drop landed with forty SKUs. A supplier sent a spreadsheet with two hundred. Each one needs copy that says what it is, who it is for, and why this one and not the next, and each one is sitting there with an empty body field or a line of text pasted straight from the manufacturer. Someone opens the first product, types a few words into the AI box, reads the result, decides it sounds like every other AI result, rewrites half of it, and moves to the second. Two hundred to go.

This is the chore that looks solved from a distance and turns out to be half-solved up close. Shopify Magic, the AI assistant built into the admin, will genuinely write you a product description. It will just do it one product at a time, from the keywords you feed it, in a voice that reads as nobody's in particular. The descriptions you actually need are the whole catalog, written in your voice, each one different enough to earn its own page, and that is exactly where the built-in tool runs out of room.

The description is the only salesperson on the page. A blank one says nothing, and a borrowed one says it for everybody.

Why the blank description is the expensive one

It is tempting to treat product copy as decoration, the thing you will get to once the real work is done. It is not decoration. On a product page with no live chat and no clerk, the description is the only thing answering the question the shopper actually has: will this fit, what is it made of, how is it different from the cheaper one next to it. A page that does not answer loses the sale to a competitor's page that does.

It is also the page's whole case to a search engine. A blank description gives Google nothing to rank. Worse, the line you pasted from the supplier is already live word-for-word on every other store that bought the same feed, so there is no reason for yours to be the one that surfaces. The result is quiet and compounding: the products you spent money to stock sit on pages that get no organic traffic and convert the trickle they do get at a lower rate. The empty body field is not a cosmetic gap. It is unsold inventory wearing a to-do list.

What Shopify actually does, and where it stops

Shopify Magic is a real tool and the right first thing to reach for. It is free inside the admin, it drafts from a few keywords, and for a single product it can save you the blank-page stare. The gap is not that it cannot write. The gap shows up the moment you stop thinking about one product and start thinking about the catalog.

First, it works one product at a time. Magic lives in the editor for a single product. There is no native button that writes the catalog. The known workaround is to export your products to a CSV, add a prompt column, run it through an AI tool, and re-import, which works for the people who enjoy that sort of thing and breaks in small ways on a large file for everyone else. Either way you are managing the run, not escaping it.

Second, it writes from your keywords, not from the product. Magic drafts from the handful of words you type into the box. It does not read the variants and options, the supplier spec sheet, the materials list, or the product photo. So the context that makes a description specific and true still comes from you, typed in by hand, for every product. The slow part of writing copy was never the typing. It was reading the thing closely enough to have something to say, and that part stays on your desk.

Third, it sounds like AI, so you edit every one. The common complaint on the forums is not that Magic is wrong, it is that the copy comes out bland, a little robotic, and recognizably machine-made, with no trace of the voice that makes a brand worth buying from. So you rewrite it. The work moves from writing to editing, which feels like progress and is not, because you are still touching every product by hand and the catalog is still as long as it was.

Fourth, nothing keeps the catalog from repeating itself. Run a generator across ten near-identical variants and you get ten near-identical descriptions. That is the duplicate-content problem from the inside: pages that compete with each other instead of each making its own case, which is the same way a pile of sold-out look-alikes drags a whole collection down. Speed without differentiation just manufactures the SEO problem faster.

◆ DATA Two quiet ways product copy leaks money. Duplicate text: a description pasted from the supplier is already live on every other store running the same feed, so search engines have no reason to rank yours, and a bulk generator fed thin inputs produces near-twins that compete with each other. Bland text: copy that reads as obviously machine-made converts worse and signals low value to both shoppers and search. Neither shows up as an error. Both show up as traffic and sales that never arrive, which is why the fix is not faster generation but closer reading and one consistent voice.

Why the usual fixes don't hold

Once a merchant feels this, they reach for one of three workarounds. Each buys some ground and each gives it back in a familiar spot.

"I will just write them myself." The highest quality and the one that never finishes. Hand-written copy is the best copy, and it is also the first thing that stops when a launch week hits, which is precisely when the new products land. The backlog grows faster than any one person writes, so the list of blank descriptions is permanent. The work is never wrong. It is just never done.

"I will use the built-in AI per product." The natural next step, and fine for the occasional one-off. But it relocates the chore rather than removing it: you still open each product, still feed it context, still rewrite the bland draft, still apply none of your brand voice consistently. You have automated the first sentence and kept everything around it.

"I will run a bulk description app." The app store is full of tools that promise ten thousand descriptions in one click, and they deliver the click. What they cannot deliver is the reading. Fed the same thin product data, they produce a large volume of generic, near-duplicate copy that you now have to audit and re-edit, which is the work you were trying to skip. You have bought speed, not judgement, and the catalog needs judgement.

What the automation actually has to do

The real job is not "draft a description from these keywords." It is "read this product the way a careful merchandiser would, write copy that is true and specific in our voice, make sure it does not collide with the product next to it, and do that across the whole catalog and keep doing it as the catalog changes." That is reading, writing, and bookkeeping on every product. As a Dugong playbook, in plain prose, it reads like this:

# trigger
On every product created or updated, and on a one-time backfill of the catalog

# steps
1. Read each product whole: title, type and tags, every
   variant and option, the existing copy, the supplier spec sheet, and the
   product images, not a few keywords typed by hand
2. Write the description in one defined brand voice,
   applied the same way across every product, from a short brief instead of
   per-product tone toggles
3. Differentiate near-identical products so each page
   earns its own ranking, and never paste the supplier's shared copy
4. Structure for SEO and scanning: a lead line, the
   specifics a buyer needs, one focus phrase, no keyword stuffing
5. Write the descriptions back across the whole catalog
   through the API, not one editor box at a time
6. Backfill the products that ship blank or with
   placeholder copy, and refresh when the product or spec changes
7. Flag the products too thin to describe well and ask
   for a spec, and log every description with the inputs it was written from

Seven lines. The compiler fills in everything beneath: pulling each product whole rather than waiting for you to retype its details, writing in one voice you defined once instead of a tone dropdown set per product, checking each new description against its neighbours so the catalog does not turn into a hall of mirrors, shaping the copy so it reads well and ranks without sounding stuffed, writing back across the whole catalog at once, and going over the old blank pages so nothing is left selling itself with an empty field. The merchandiser never sat in the editor retyping the spec sheet. They described the voice and the standard once and let the compiler do the volume.

◆ NOTE Generating text was never the bottleneck. Reading the product and sounding like you is the job. Any tool can produce sentences about a product. The hard part is looking at the actual variants, spec, and photo, deciding what is worth saying, saying it in a voice a shopper would recognize as yours, and making sure the next product does not say the same thing. A one-click generator gives you speed; it still cannot read or sound like anyone. The goal is not more words faster. It is a catalog that reads as if one good writer wrote all of it.

Why this is a compiler problem, not an app problem

There are capable description apps, and for a quick fill-in they do the job. But a good description is a small act of judgement about a specific product: what is genuinely different here, which detail decides the purchase, how this one earns a page next to the three that look almost the same, and how all of that should sound in your voice rather than a generic one. That changes with your catalog, your buyers, and your brand, and a chunk of it lives in the spec and the photo that no keyword box captures. Those are judgements about your store, not tokens in someone else's template.

A natural-language compiler fits because writing the catalog was never really a generation problem. It is a reading and voice problem wearing a generation problem's clothes. Producing a sentence is the easy part, which is why Shopify and the apps do it. The hard part is everything around it: read the whole product, say something true and specific, keep one voice across thousands of pages, make each one distinct, fill the blanks, and keep doing it as the catalog turns over. You can write that brief in a paragraph. You could never hold it as a hand-writing ritual that restarts with every new drop.


The workflow worth building this week

If you have more products than you have time to write copy for, this is the automation to set up before your next launch, because the SKU you leave blank under pressure is the one that quietly never ranks. It also sits next to a pattern we keep returning to. The page's meta description has the exact same shape: Shopify will bulk-edit it only by making every one identical, so the unique version gets written one at a time or left blank, and the body copy fails for the same reason. Both are the on-page SEO work that our field study found almost no one actually automates, because the easy half looks finished and the hard half is the reading.

Describe it the way you would brief a sharp merchandiser on their first day: here is our voice, read every product whole including the spec and the photo, write copy that is true and specific, make each one distinct from its look-alikes, fill in everything that is blank, and tell me about the products too thin to describe well. That is the whole brief. The compiler does the reading, the writing, the differentiating, and the write-back across the catalog. You keep your attention for the hero products that deserve a human pass, and you close the tab with the two hundred blank descriptions for good.

◆ READING If this resonates, two companion pieces: our dispatch on the meta description you write one at a time, the same on-page SEO chore at the snippet level, and the field study on the Shopify automations no one builds, where writing copy at scale is a headline example of effort spent on the easy half of the work.

If you are a Shopify merchant who has wired up product copy that reads the whole product and holds one brand voice across the catalog, or you have a story about the blank page that cost a launch or the pasted line that tanked a ranking, the inbox is open: field-notes@dugong.live. We are collecting case studies for the next issue.