March 11, 2026·6 min read

I Built a ChatGPT Shopping SEO Optimizer in One Night (And Why It Matters)

AI shopping is already here. I built a tool that scores and rewrites your product listings so ChatGPT recommends you first — here's how I did it.

#webdev#javascript#typescript#productivity

Last week someone asked ChatGPT for "the best running shoes under $150." ChatGPT answered. It recommended specific products. It explained why each one was good. And it had zero idea that your store even existed.

That's the new SEO problem. And it's already here.

The Problem

Search engine optimization as we know it — keywords, backlinks, meta descriptions — was built for a world where people type queries into a box and click links. That world is fading fast.

When someone asks ChatGPT "what's a good coffee maker for a small apartment?", the AI doesn't crawl your sitemap. It draws from training data and, increasingly, real-time product search integrations. The products that get recommended are the ones with rich, specific, complete product data — brand, model number, dimensions, materials, use cases, compatibility, certifications.

The typical Shopify store? Title: "Coffee Maker - Black." Description: "Great coffee maker for your home." AI score: basically zero.

I wanted to build a tool that shows store owners exactly how bad their product listings are for AI discovery — and fixes them instantly.

The Core Insight

I spent an evening reading through how large language models reason about product quality. The pattern is consistent: AI systems reward specificity, structure, and completeness. A product listing that a human might find acceptable is often invisible to an AI because it lacks the data density needed to answer a specific question.

The formula I landed on:

  • Brand + Model = baseline identity (without this, you're anonymous)
  • Specific attributes (size, weight, material, color) = filterable signals
  • Use-case keywords ("for trail running", "for small apartments") = query matching
  • Social proof signals ("award-winning", "certified", "top-rated by X") = trust layer
  • Comparison hooks ("vs. competitors", "unlike X") = recommendation context

If you score each of these categories out of 20, you get a 0–100 "AI Visibility Score." Simple, but surprisingly predictive.

Building It

The stack was the usual: Next.js 15, Tailwind v4, shadcn/ui, TypeScript. One night, one product.

The interesting part was the scoring engine. I wrote a lightweight analyzer that inspects a raw product text for the signal categories above:

function scoreProduct(text: string): ProductAnalysis {
  const signals = {
    hasModelNumber: /\b[A-Z]{2,}\d{3,}|\d{3,}[A-Z]{2,}/i.test(text),
    hasBrand: brandRegex.test(text),
    hasDimensions: /\d+\s*(mm|cm|inch|"|oz|lb|kg|g)\b/i.test(text),
    hasUseCases: useCaseKeywords.some(kw => 
      text.toLowerCase().includes(kw)),
    hasSpecificColor: colorWords.some(c => 
      text.toLowerCase().includes(c)),
  };
  
  const rawScore = Object.values(signals)
    .filter(Boolean).length * 20;
  return { score: rawScore, signals, 
    suggestions: buildSuggestions(signals) };
}

The real magic is the rewrite. I pass the original product text plus the signal analysis to the optimizer, asking it to produce a new title and description that maximizes every signal category. The diff view showing old vs. new is where the "aha moment" lives — seeing your generic "Coffee Maker Black" become a fully-attributed product listing with model numbers and use cases.

What Surprised Me

The score gaps are brutal. I tested with real product listings from mid-size Shopify stores (public-facing data). The average raw score: around 22/100. After optimization: 82/100. That's not a small delta — that's the difference between being invisible and being recommended.

What also surprised me: the optimization wasn't just about adding keywords. The structure of how information is presented matters. "12-Cup Programmable Drip Coffee Maker" surfaces differently in AI reasoning than "Coffee Maker 12 Cup Programmable" — the adjective ordering and phrase construction actually affect how models parse product identity.

What I'd Do Next

  • CSV/JSON bulk import — right now it's one product at a time. Store owners need to run their entire catalog through this.
  • Shopify app — a native integration that pulls listings directly from the store and pushes optimized versions back.
  • Monitoring dashboard — track your AI visibility score over time and alert when it drops.
  • Competitor benchmarking — paste a competitor's product URL and see their score vs. yours.

The bigger play is that AI shopping optimization will be as important in 2026 as mobile optimization was in 2015. The window to get ahead of it is now.

Try It

If you run an ecommerce store, paste one of your product listings and see your score. I've pre-loaded four demo products so you can see what good vs. bad looks like immediately.

Live at: chatgpt-shop-seo-optimizer.vercel.app

The tool is free. The AI shopping wave is not optional.

Built by Jacobo in one night. Feedback welcome.