AEO / GEO Audit
Koskii — AI SEO / AEO (Answer Engine Optimization) Audit
Prepared: 27 August 2026 · Domain: https://www.koskii.com · Method: live technical crawl (raw HTML, not text-extraction which strips <script> tags), robots.txt + machine-readable file checks, and query-level visibility testing via web_search (a directional proxy for Google AI Overviews, which Google states are "rooted in core Search ranking").
Business context source: business-analysis.md (26-section e-commerce analysis completed this session).
Executive Summary
Koskii is above average on the technical foundation for AI citation, and below average on content-driven AEO (the part that wins "discovery" and "consideration" queries).
What's working:
- All major AI crawlers (GPTBot, ClaudeBot, Google-Extended, PerplexityBot) are explicitly allowed in robots.txt — no self-blocking.
- A high-quality, well-maintained
/llms.txtexists (dated Aug 20, 2026) with a curated collection map, brand description, and sitemap pointer. This is a genuine competitive advantage most Indian D2C ethnic brands lack. - Product schema is rich:
Product+Offerwithprice,priceCurrency,priceValidUntil,availability,sku, plusBreadcrumbList,MerchantReturnPolicy,OfferShippingDetails. Collection pages carryItemList,ClothingStore,Organization,GeoCoordinates. - hreflang is correctly implemented (
en-IN,en-US,x-default) across IN and US domains — good for geographic disambiguation. - A real FAQ page with
FAQPageschema (17 Q&A pairs) exists and is extractable.
What's broken or missing:
- Homepage and About page have ZERO
<h1>–<h6>heading tags in server-rendered HTML. They are JS-rendered Next.js shells. AI crawlers that don't execute JS (and many do this selectively) see a heading-less page. Collection/product pages are fine (23/17 headings), but the two highest-authority pages are not. - No
aggregateRating/reviewschema despite the site showing customer testimonials — AI sees every product as "unreviewed." This compounds the known review-system gap from the business analysis. - No
gtin/mpnproduct identifiers. - No content hub / blog (every blog-style slug 404s) — so Koskii cannot be cited for the high-intent discovery queries ("best saree brands," "wedding guest outfit ideas," "what to wear to a sangeet") where competitors and generic listicles win.
- No "Where to Buy" page despite being omnichannel (30 stores + Myntra + website) — a clear, citable strength left invisible to AI.
- No
/pricing.md,/agents.md,/.well-known/ucp(these are emerging/optional, butpricing.mdmatters for agentic buying agents).
Visibility gap (query testing):
- Koskii wins its own name (rank #1 on "Koskii sarees," "Koskii store near me," "Koskii reviews").
- Koskii is absent from "best saree brands India," "buy designer lehenga online under 15000," "wedding guest outfit ideas," "online ethnic wear for women" — those are dominated by Biba, Nykaa, Myntra, and generic blogs.
- Reputation risk: negative third-party reviews (MouthShut, IBTimes, Tripadvisor, YouTube "honest review / bad experience") surface prominently for "Koskii reviews." AI Overviews summarizing "Koskii reviews" will likely blend these in. Koskii has no structured, citable positive-review signal to counterweight.
1. AI Bot Access (robots.txt) — PASS
Verified live. The following are allowed (each has an explicit Disallow: line that is EMPTY, i.e. not blocked):
User-agent: GPTBot Disallow: (allowed)
User-agent: ClaudeBot Disallow: (allowed)
User-agent: Google-Extended Disallow: (allowed)
User-agent: PerplexityBot Disallow: (allowed)
User-agent: Perplexity-User Allow: /
User-agent: * Allow: / (only /search, /cart, /wishlist, /account$ etc. disallowed)
No AI search bot is blocked. No action needed — this is correct. (Note: CCBot/Common Crawl is not mentioned; leaving it unaddressed is fine since it is training-only and not a citation engine.)
2. Machine-Readable Files for AI Agents
| File | Status | Verdict |
|---|---|---|
/llms.txt | 200 (dated Aug 20 2026, well-structured) | ✅ Strong asset — keep current |
/robots.txt | 200 | ✅ |
/agents.md | 404 | Gap (Shopify auto-generates this; Koskii's headless setup doesn't). Optional but recommended |
/pricing.md | 404 | Gap — matters for agentic buying agents evaluating price programmatically |
/pricing.txt | 404 | Gap (same as above) |
/.well-known/ucp | 404 | Emerging standard — not required yet |
/sitemap_agentic_discovery.xml | 404 | Shopify auto-generates this for agentic discovery; absent here (headless custom build). Noted |
Recommendation: Keep llms.txt maintained (it already links all key collections — good). Add a lightweight /pricing.md with tier/range pricing (the business analysis gives the ranges: sarees ₹1,745–₹39,990, median ~₹5,400; lehengas ₹5,000–₹39,990, etc.). This directly helps autonomous buying agents and is trivial to maintain.
3. Schema Markup — Verified via RAW HTML (not text-extraction)
Per the skill's explicit warning, schema was checked with curl + grep against raw <script type="application/ld+json"> so <script> tags were not stripped.
3a. Product page (/products/...-gcss0017471_...)
ld+json blocks: 6. Types present:
Product×2 (withsku✓,Offer✓)Offer×2 —price✓ ("12490.00"),priceCurrency✓ (INR),priceValidUntil✓,availability✓BreadcrumbList✓,Brand✓,MerchantReturnPolicy✓,OfferShippingDetails✓
Missing on product schema: aggregateRating (0), review (0), gtin (0), mpn (0). → AI engines read every Koskii product as unreviewed and unidentified by GTIN. Critical gap.
3b. Collection page (/collections/lehengas, /collections/sarees)
ld+json: 10. Types: CollectionPage, ItemList (26 ListItem), ClothingStore, Organization, PostalAddress, GeoCoordinates, ContactPoint, BreadcrumbList. → Strong. H1 present ("Sarees"), 23 headings, server-rendered product names + meta description. Good AI-extractable collection pages.
3c. Homepage (/)
ld+json: 6 (WebSite, WebPage, Organization, SearchAction, EntryPoint). But 0 <h1>–<h6> tags in static HTML (JS-rendered). Title tag present.
3d. About page (/pages/about-us)
ld+json: Org/WebPage only. 0 <h1>–<h6> tags in static HTML. Body <p> text IS server-rendered (103 <p> tags), so prose is readable, but there is no semantic heading hierarchy for crawlers to anchor topic structure.
Schema scorecard
| Schema | Product | Collection | Home | About | FAQ |
|---|---|---|---|---|---|
| Product / Offer | ✅ | — | — | — | — |
| aggregateRating | ❌ | — | — | — | — |
| review | ❌ | — | — | — | — |
| BreadcrumbList | ✅ | ✅ | — | — | — |
| FAQPage | — | ✅* | — | — | ✅ |
| Organization | — | ✅ | ✅ | ✅ | — |
| H1 heading (static) | ✅ | ✅ | ❌ | ❌ | ❌ |
\* Collection /collections/sarees carries FAQPage schema (2 blocks).
4. Content Extractability Audit
| Check | Home | Product | Collection | About | FAQ | Customer-Reviews |
|---|---|---|---|---|---|---|
| Clear definition in first para | — | partial | ✅ | ✅ (prose) | ✅ | partial |
| Self-contained answer blocks (40–60w) | ❌ (JS) | thin | ✅ | ✅ | ✅ | narrative only |
| Statistics with sources | ❌ | ❌ | ❌ | brand-stated | ❌ | ❌ |
| Comparison tables (X vs Y) | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
| FAQ section | ❌ | ❌ | partial | ❌ | ✅ | ❌ |
| Expert attribution | ❌ | ❌ | ❌ | founders named | ❌ | testimonials, unnamed |
| Last-updated signal | n/a | ❌ | ❌ | ❌ | ❌ | ❌ |
| Heading hierarchy (static) | ❌ | ✅ | ✅ | ❌ | ❌ | ✅ (prose) |
Extractability verdict: Product and collection pages are reasonably extractable. Homepage, About, and FAQ pages are JS/heading-light and miss freshness + stat/attribution signals. There are no comparison tables and no statistics blocks anywhere — both are top GEO visibility boosters (+37–40% per Princeton KDD 2024).
5. AI Visibility Query Testing
Tested via web_search (top-5). Directionally mirrors what Google AI Overviews and AI assistants cite, because Google's generative features are built on core ranking.
| Query | Koskii cited? | Who ranks instead |
|---|---|---|
| Koskii sarees official store | ✅ #1 | (Koskii) |
| Koskii store near me Bangalore | ✅ #1 (store-locator) | Koskii, magicpin, Tripadvisor |
| Koskii reviews customer feedback | ✅ #1 (reviews) + ⚠️ negatives #2–5 (MouthShut, IBTimes, Tripadvisor, YouTube) | mixed — reputation risk |
| best saree brands India online | ❌ | UT Sarees, Rashika Mittal, Rana's, Mavuris, Myntra |
| buy designer lehenga online India under 15000 | ❌ | Aachho, Myntra, Flipkart, Indiamart |
| Koskii vs Kalki bridal wear | ❌ (no direct comparison asset) | Kalki-film noise + Tripadvisor |
| wedding guest outfit ideas women ethnic wear | ❌ | NDTV Shopping, Beauty&Flowers, VilleFashion |
| online ethnic wear for women India | ❌ | Andaaz, House of Indya, Biba, Nykaa, Anandi |
Interpretation:
- Brand/navigational: strong (owned-name queries = #1).
- Discovery / consideration / comparison: weak-to-absent. These are exactly the queries where AI answers consolidate a short list of cited brands. Koskii is invisible there, so when a user asks ChatGPT/Perplexity "what are the best saree brands in India?" Koskii is not in the answer.
- Reputation: negative third-party sentiment already outranks Koskii's own positive-review page for "Koskii reviews." AI Overviews will likely surface this mix. Koskii needs a structured, citable positive-review signal (see recommendations).
6. Priority Recommendations
Ordered by impact × effort.
P0 — Fix before anything else
- Add
aggregateRating+reviewJSON-LD to every product page. Even a modest "Rated 4.x from N customers" block (backed by real review data) flips 14,000+ products from "unreviewed" to "reviewed" in structured data. This is the single highest-leverage AEO fix and also a known CRO/trust gap. If reviews aren't collected yet, prioritize the review-collection system first (business analysis gap #3). - Restore
<h1>(and a basic heading hierarchy) to the homepage and About page in server-rendered HTML. Today those pages have 0 static heading tags — weak for non-JS AI crawlers and for accessibility. Collection/product pages prove the theme can server-render headings; apply the same to home/about.
P1 — High impact, build content
- Launch a content hub (blog/style-guide) targeting discovery queries. The biggest visibility gap is absence from "best saree brands," "wedding guest outfit ideas," "what to wear to a sangeet/haldi." Publish definitive, extractable guides with:
- Definition blocks (40–60 words) answering "what is [occasion] wear?"
- Comparison tables (e.g., "Lehenga vs Saree vs Gown for a wedding guest")
- Statistics with sources (e.g., "Indian occasion-wear market ~₹35,000 Cr — YourStory 2026")
- FAQ sections with
FAQPageschema (reuse the existing FAQ pattern) - Author attribution (founder/stylist name + title)
- "Last updated" dates
- Create a "Where to Buy" page listing all channels: koskii.com, us.koskii.com, 30 stores (8 cities), Myntra, app. Link each. Captures high-intent "where to buy Koskii" and reinforces the genuine omnichannel strength (currently invisible to AI).
- Build comparison/versus content ("Koskii vs Kalki," "Koskii vs Biba," "Designer lehenga under ₹15k") with balanced comparison tables. Currently "Koskii vs Kalki" returns only noise; owning that query with citable, structured comparison is low-cost and high-value.
P2 — Authority & trust signals
- Add
gtin/mpnto product schema where available (catalog has proprietary SKUs like GCSS0017471; map these tompn). - Counter the reputation risk. Proactively seed structured, citable positive signals: verified-buyer review snippets with star counts in schema, and a "As featured in" / press section (Inc42, YourStory, Tribune India) with links. When AI summarizes "Koskii reviews," real structured positives should dilute the third-party negatives.
- Add a lightweight
/pricing.md(tier/range pricing) for agentic buying agents. Include "Last updated" date.
P3 — Optional / emerging
- Add
/agents.md(agent instructions) — Shopify auto-generates this for standard stores; Koskii's headless build doesn't have it. Optional but cheap. - Monitor AI visibility monthly: re-run the 8 queries above across ChatGPT/Perplexity/Google and log citation rate. Tools: Peec AI, Otterly, ZipTie (cross-platform) — or manual monthly check.
7. What NOT to Do (per Google's AI optimization guide)
- Do not write separate "for AI" content or chunk pages into AI-bait fragments — risk of scaled-content-abuse spam action. The content hub above serves people AND AI with normal structure.
- Do not block GPTBot/ClaudeBot/Google-Extended (they're already allowed — keep them).
- Do not fabricate review counts/stars. Only surface real review data in
aggregateRating. - Do not gate the content hub behind login — AI can't cite what it can't read.
8. Sources & Verification Notes
- robots.txt, llms.txt, schema, and heading counts: directly verified via
curlraw HTML on 2026-08-27 (homepage, /collections/sarees, /collections/lehengas, a live product URL, /pages/about-us, /account/faq, /account/store-locator). - Schema absence claims (aggregateRating/review/gtin) verified by grepping raw
<script type="application/ld+json">content — NOT inferred from text-extraction (which strips scripts). - Query visibility: tested via web_search top-5 on 2026-08-27; Google AI Overviews correlate with organic ranking, so this is a directional proxy. ChatGPT/Perplexity direct citation testing could not be run in this environment — recommend manual re-test on those platforms.
- Business context:
business-analysis.md(this session) — 14,227 SKUs, 602 collections, 30 stores/8 cities, ₹61 Cr Series A, median price ~₹5,400, no structured review system, English-only.
Confidence: [High] for all technical findings (directly observed). [Medium] for query-visibility interpretation (proxy method). [Medium] for competitor-citation claims (based on observed SERP, not live AI answers).