Bulk AI Product Descriptions for Shopify: How to Rewrite 1000+ SKUs Without Sounding Generic
The metafield-driven rewrite system we run on Shopify catalogs of 500 to 5,000 SKUs, with prompts, QA sampling, tools compared, and the indexation lift we measured.
Naveen runs Cobalt Atelier, a multi-category gifting brand on Shopify Plus. ARR around $4.2M. The catalog runs 2,847 SKUs across paper goods, candles, ceramics, and small leather, most of it imported from three suppliers with copy that read like the spec sheet on the back of a box. Google had de-indexed 41 percent of the product pages by April. Perplexity refused to cite the brand for any gifting query. He called us in the first week of May.
The audit took an afternoon. The rewrite took six weeks.
The content debt nobody put on the cap table
When a brand imports a supplier catalog, the copy comes with it, and that copy is identical across every store reselling the same SKUs. We audited four Shopify Plus brands in Q1 alone where over 40 percent of product pages shared verbatim meta descriptions with at least three competitor stores. Google treats those pages as substitutable. Once that classification sticks, organic impressions on the affected pages drop 60 to 80 percent within a quarter.
This is content debt and almost nobody books it. Founders treat product copy as “done” the moment the SKU goes live. The de-indexation hits months later, the team blames the rankings algorithm or the niche, and the actual lever, which is the copy, goes untouched.
Naveen’s catalog had a second compounding problem. Of the 2,847 SKUs, 1,902 had no meta description at all, because the supplier export did not include one. Shopify auto-generated the meta from the first 160 characters of the product body, which was, again, identical across competitor stores.
Why Shopify Magic alone tanks past 200 SKUs
Shopify Magic is per-product. You open a SKU, click generate, edit if needed, save. It is good for the first 50 products in a new store. We have measured the per-SKU completion time at around 90 seconds when the operator is comfortable with the tool. On a 2,000 SKU catalog that is 50 hours of focused work, which nobody does in one stretch, so the rewrite spreads across weeks, gets paused, restarts with different operator voice, and the catalog ends up with three or four different tone registers depending on who was clicking that day.
The other Magic failure mode is structural. The model prompt is the same across every product, and the only differentiators it has are the title and the existing body copy. If the title is generic and the body is the supplier text, what comes out is generic copy phrased slightly differently. Pretty much exactly what came in.
We have seen brands run Magic on a thousand SKUs and end up with a thousand variations of the same paragraph. “The perfect addition to your home”, “designed to elevate your everyday”, “crafted with the modern customer in mind”. The model produces clean prose, not distinct prose.
Metafields are the inputs that force uniqueness
Here is the trick almost nobody runs first. Before the rewrite, build a metafield schema that captures the merchandising attributes the supplier export did not include. The schema is per-category, not per-store. For Naveen’s catalog it looked like this.
For candles: scent_family, pour_weight_g, burn_hours, occasion, vessel_material, wax_type. For ceramics: clay_body, glaze, dimensions, dishwasher_safe, made_in, artist_origin. For paper goods: paper_weight_gsm, print_method, closure, occasion, recyclable.
Then we populate the metafields from whatever source data exists. Some of it lives in supplier spec sheet PDFs, some in internal warehouse notes, some on the supplier’s own product pages. We use Claude to extract values from those documents into a CSV, then bulk import into Shopify using the standard product import flow.
The LLM rewriting the description now has actual merchandising data to work with. Not just “ceramic mug” but “stoneware-clay mug, matte celadon glaze, 14oz, made in Seto, Japan, dishwasher safe”. A model writing from those inputs cannot produce the same paragraph for 50 SKUs. The inputs force differentiation.
This is the step that takes the longest and the one founders push back on the hardest. They want the rewrite. The metafield buildout feels like infrastructure work. It is the infrastructure work. Skip it and the rewrite produces clean generic copy at scale.
Category-specific prompt templates
The prompt template is shorter than founders expect. Once metafields are in place, the structure is mechanical. The category determines which metafields get pulled, the tone is constant across the catalog, and the model’s job is to weave the attributes into prose that fits the brand voice.
Apparel pulls material, fit_persona, use_case, care_label, season. Body copy structure is opening hook on the fit_persona (“for the customer who runs warm in cotton blends”), spec block in prose (“French terry, 280 GSM, regular fit, machine wash cold”), one sentence on use_case.
Home goods pulls material, room, style, dimensions, care. Body copy leads on the room and the style register, embeds the dimensions naturally, and closes on care. The care metafield matters more than founders expect, because the question “is this dishwasher safe” drives a stupid amount of search intent.
Beauty pulls ingredient profile, skin_type, scent_family, ph_level. The lead is the skin concern the product addresses, the ingredient hierarchy is integrated next, the close is the sensory note.
B2B SKUs lead on the spec, embed certifications, close on the use case. This is the only category where the spec dominates. Consumers care about the story, B2B buyers care about the certification.
Brand voice gets pinned with three sample products the founder writes manually. The model uses those as few-shot exemplars. We do not write a brand voice document, we write three product pages and let the model infer. It works better than the document.
QA sampling, how to audit 1000 pages in an afternoon
Reading all 2,000 outputs is not realistic and not the point. The point is statistical coverage. We sample 50 SKUs at random across categories, score them on four axes, fix systemic failures in the prompt, regenerate the affected batch, and move on.
The first axis is distinctness, measured by the longest matching n-gram between any two outputs in the sample. We target zero seven-word n-grams shared between SKUs in the same category, and under three across the full sample. The Python check is twelve lines and runs in seconds. If the score fails, the metafield set is too sparse and the model is filling in with stock phrasing.
The next axis is schema validity. Each output gets a JSON-LD block generated alongside the description. We run the Schema Markup Validator on the sample. Failures usually mean a metafield value contained a quote character that broke the JSON.
Keyword coverage is the third. Primary keyword for the SKU appears in the title, in the first 160 characters of body, and in the meta description. Miss any one, the SKU gets flagged.
The last axis is voice. Manual read of all 50 sampled outputs. Sounds excessive, takes 90 minutes. The voice drift the n-gram check misses is the kind that breaks brand trust on the storefront.
The tools stack that actually scales
We have benchmarked four configurations on Naveen’s catalog and two others. Shopify Magic, generic catalog-rewrite apps, the OpenAI API direct with our prompt scaffolding, and Anthropic’s Claude with the same scaffolding.
Magic at scale needed 50 hours of operator time, $0 compute, output quality 5 out of 10. Distinctness failed the n-gram test. Indexation lift after six weeks was under 10 percent.
Generic rewrite apps (we tested three of them) needed 3 to 6 hours of operator time and $200 to $600 in app fees. Output quality 6 out of 10. The structural problem was the same as Magic. No metafield integration, generic prompts, output reads consistent but indistinct. Indexation lift around 20 percent.
OpenAI GPT-5 via direct API with our scaffolding needed 4 hours of operator time for prompt setup, 40 hours for metafield population, and $280 in API costs for 2,847 SKUs at 800 output tokens each. Output quality 8 out of 10. Indexation lift 47 percent over six weeks on the test account.
Claude Sonnet 4.6 with identical scaffolding hit the same operator time, $340 in API costs, output quality 8.5 out of 10, indexation lift 51 percent. The voice register held more consistently across the catalog. We default to Claude now for anything over 1,000 SKUs.
Measuring what the rewrite actually moved
The number to watch is not impressions. Impressions lift slowly and noisily and the founder will lose patience. The number to watch is indexation rate in Google Search Console, filtered to the affected product URLs. That moves first and moves cleanly.
On Naveen’s catalog, indexation rate on the rewritten URLs moved from 59 percent to 91 percent in 38 days. The lift is visible inside two weeks and consolidates by week six. Once indexation is back, organic impressions follow, but the lag is real and the reporting needs to show the indexation number alongside impressions so the founder understands the sequence.
The second number, and the one founders actually care about in 2026, is AI citation count. We track how often Perplexity, ChatGPT, and Claude cite the brand for category queries. Cobalt Atelier was cited zero times for “ceramic mug gift under $40” in April. By July it was the second result Perplexity returned for that exact query. Citation lift runs two to four weeks behind indexation lift, so impatience is the enemy.
Conversion lift on the affected pages was 18 percent over the same window. We attribute roughly half of that to the rewrite and half to organic traffic recovery, but the attribution math is loose and we tell founders so.
What we keep telling clients
The rewrite is a one-time investment that gets compromised the next time the founder adds 200 SKUs without running them through the same pipeline. Build the pipeline once. Run every new batch of imports through it before the products go live. The catalog stays clean indefinitely.
Naveen closed out the project in week seven. Cobalt Atelier shipped the new descriptions in two waves so we could measure lift cleanly. The first wave was 1,400 SKUs in the candles and ceramics categories. The second was the remaining 1,447 across paper and leather. Indexation recovered, AI citation count moved from zero to 47 across the three engines we track, and the organic revenue contribution moved from 11 percent to 19 percent of monthly GMV by August.
The metafield buildout was 80 percent of the work. The rewrite itself was four hours of compute. That ratio surprised him on the kickoff call and was correct on the closeout call. We say it on every project now and operators still push back on it on every project. They are wrong every time.
Questions we get every week
How long does a 2,000 SKU rewrite take end to end? Six to eight weeks with one operator. Three weeks of that is metafield buildout. Two weeks is prompt iteration and QA sampling. One week is the actual generation run and the cleanup pass on the failures. The compute is hours. The operator time is most of the calendar.
Do I need to rewrite collection descriptions too? Yes, but separately. Collection descriptions are not driven by SKU metafields, they are driven by the collection’s positioning. The prompt scaffolding looks different, the inputs are merchandising intent and seasonal context, and the output count is twenty or thirty, not two thousand. Treat it as a small follow-on project.
Can I keep the supplier copy somewhere as a backup? We export the pre-rewrite body and meta description to a metafield called description_legacy_supplier before the run. Costs nothing, gives you a rollback path, and the supplier copy stays out of the visible storefront.
Will GPTBot crawl my new copy faster if I update sitemaps? Sitemaps help a little. Submitting the affected URLs to Google Search Console manually helps more. For AI engines specifically, the llms.txt file is the lever most brands have not pulled. Add it once, point it at the product feed, and the citation lag shortens by roughly a week in our measurement.
Sitting on a few thousand SKUs of supplier copy and watching the indexation graph slide? Talk to us at monkeyman.agency/contact and we will scope a six-week catalog rewrite with the metafield buildout, the QA sampling pipeline, and the measurement dashboard included.