Playbooks
Writing Shopify Product and Collection Meta at Scale with AI
Set the field rules and templates first, then let AI fill them — with mechanical length, duplication and banned-word checks before anything is written back.
Once a store passes a few hundred SKUs, the usual SEO debt isn't missing content — it's that product and collection titles and descriptions are either empty or identical: dozens of search results whose titles differ by one colour word. That's a good job for AI, as long as you don't reverse the order. Define the field rules and templates first, let the model fill them, then sample by hand.
Two lengths to remember
From Shopify's own SEO documentation:
- the page title can be up to 70 characters, and Shopify suggests keeping it around 60 so it isn't truncated in search results;
- the meta description should be around 160 characters; anything longer gets shortened by search engines.
Both fields can be edited separately on products, collections, pages, blog posts and the store homepage. Shopify's guidance is equally clear that each one should be unique and written as a natural, readable phrase rather than a keyword pile.
Those counts include spaces. For non-English stores, check the rendered length in the target language rather than guessing.
Step 1: separate the product job from the collection job
The two page types answer different searches, so they need different templates.
| Page type | What the searcher wants | Title structure | What the description answers |
|---|---|---|---|
| Product | A specific model or attribute | Product name + key attribute + brand | What this exact item is, key specs, who it's for |
| Collection | Category plus a modifier | Category term + qualifier + brand | What the range covers and how to choose |
| Content page | A question or how-to | Question-shaped phrasing | What problem this page solves |
Collection pages are the ones most often skipped. They usually carry the higher-volume queries, yet frequently ship with a bare category word and an empty description.
Step 2: build the field sheet before you prompt
Don't hand a whole product page to a model and ask it to "optimise SEO". Export a sheet first:
| Field | Purpose |
|---|---|
| handle / url | Locate the page for write-back |
| page_type | product / collection / page |
| product_title | Admin product name |
| brand | Brand term |
| key_attributes | Material, size, capacity, use case |
| audience | Target user, where it's actually known |
| current_title / current_desc | Existing meta, for comparison and rollback |
| generated_title / generated_desc | AI candidates |
| char_count_title / char_count_desc | Mechanical count |
| review_status | Human review state |
Rows with empty key_attributes don't get generated yet. A blank field is a missing document, not an invitation to improvise.
Step 3: the batch prompt
Run it per page_type, not across the whole sheet:
You are an ecommerce SEO editor. Use only the fields supplied below. Do not add materials, benefits,
certifications or audiences that aren't provided.
Page type: product
Requirements:
1. A page title of at most 60 characters including spaces, with the brand at the end;
2. A meta description of roughly 150-160 characters containing one concrete attribute and one use case,
with no superlatives;
3. No price, discount or free-shipping wording, since those change;
4. Output: title, title character count, description, description character count, and which fields you used.
Product fields: ...
Requiring the model to name the fields it used is the fastest way to catch an invented attribute.
Step 4: three mechanical checks
Run these with a script or spreadsheet formula before any human reads the output:
- Length: title ≤70 (aim ≤60), description ≈160;
- Duplication: strip the brand term from every generated title and compare — a high match rate means the template is too rigid;
- Banned wording: price, discounts, "free shipping", absolute claims, competitor trademarks.
Check 2 is the one teams skip. Across 300 product pages, if titles differ only by an attribute word, search engines still treat them as near-identical. Give the descriptions at least three to five sentence patterns.
Step 5: sample by hand, then write back
Take 20–30 high-traffic pages and read them: is every attribute in the description actually on the page, does the sentence read naturally, has "works with" quietly become "officially certified for"? Only then write back in bulk, keeping current_title and current_desc for rollback.
Don't check rankings the next morning. Watch instead:
- whether impressions for this set of pages move in Search Console;
- whether click-through rate moves — that's what a rewritten description affects most directly;
- whether any new duplicate-title warnings appear;
- whether collection pages start picking up category-level impressions.
Four common traps
- Pasting a keyword list into the title. Readability drops and CTR usually drops with it.
- Putting prices or promotions in the description. The moment the price changes, the description is wrong.
- One sentence pattern site-wide. Templated descriptions have no distinctiveness in a results page.
- Ignoring collections. Category terms usually out-volume individual model numbers.
Launch checklist
- every title and description is unique;
- title ≤70 characters, description around 160, both counted by a tool;
- every attribute in the description exists on the page;
- no price, discount or stock information;
- old values retained for rollback;
- sample validated before the bulk write-back.
To build reusable fact templates first, pair this with turning one product photo into a full Amazon and Etsy listing. Feed titles follow different rules — see optimising Google Merchant Center titles with AI.
Sources checked 2026-08-28: Shopify SEO keywords and meta guidance. Field limits can change — confirm against the admin before editing.