Summary
Overall health, top wins, and critical issues at a glance
Overall Store Score
Good — Room to Grow
Strong brand, underutilized tech
🏆 Top 3 Wins
-
✓
Industry-leading agentic commerce
Fully implemented UCP protocol (agents.md), agentic discovery sitemap, and Shop Pay integration — one of the most forward-thinking setups on Shopify.
-
✓
Comprehensive international SEO
68 hreflang tags across 30+ markets, dedicated regional domains (EU/UK), and Global-E for localized pricing — strong global infrastructure.
-
✓
Rich checkout payment ecosystem
Apple Pay, Shop Pay, Afterpay, Klarna, and PayPal — covering all major BNPL and wallet options for maximum checkout conversion.
🔴 Top 3 Critical Issues
-
✗
8 H1 tags on the homepage
Multiple H1s confuse crawlers and dilute page authority. Combined with 67+ images missing alt text, this creates a serious SEO and accessibility gap.
-
✗
Blog content essentially abandoned
The blog sitemap contains only 1 listing URL with no individual articles indexed (last modified March 2023). A brand of this scale is leaving enormous organic and AI traffic on the table.
-
✗
Duplicate review app stack
Both Yotpo and BazaarVoice are active simultaneously — two enterprise-tier review platforms loading scripts on every page, with no aggregateRating schema output from either.
Growth Opportunity
Kylie Cosmetics has the brand equity, product depth, and technical infrastructure of a category leader — yet the store is significantly under-leveraging its organic and AI search potential. With zero indexed blog articles and product descriptions that read like marketing taglines rather than genuine beauty expertise, the store is invisible to the AI-powered discovery surfaces where the next generation of shoppers finds their products. Fixing the H1 hierarchy, adding GTIN identifiers to all product schemas, and investing in substantive content (shade-by-shade breakdowns, real wear-time comparisons, Kylie's formulation backstory) would dramatically improve both Google AI Overview citations and AI assistant recommendations. The agentic commerce setup is already best-in-class; now the content layer needs to catch up.
Per-Page Issues
Every issue found, categorized and prioritized
| Page | Issue | Category | Severity | Recommendation |
|---|---|---|---|---|
| Homepage | 8 H1 tags present — Page has H1s for the logo, hero banner, and multiple sections simultaneously. Crawlers can only reliably use one H1 to understand page intent. | Technical / SEO | 🔴 Critical | Demote all H1s except the primary brand/page heading to H2 or appropriate semantic elements. The logo text should be in a <p> or <span>, not an H1. |
| Homepage | 67 images missing alt text out of ~82 total. Many product images, hero visuals, and promotional banners have empty alt="" attributes. | Technical / SEO / A11y | 🔴 Critical | Add descriptive alt text to every image. Product images should include product name + shade (e.g., "Matte Liquid Lipstick in Posie K — deep mauve"). Hero banners should describe the offer and visual context. |
| Homepage | No <link rel="preload"> hints for critical above-the-fold assets (hero image, custom fonts). This increases Largest Contentful Paint time. | Technical / Performance | 🔴 Critical | Add preload hints in <head> for the LCP hero image and the two custom web fonts (TT Chocolates, UniversLTStd). This is a high-impact, low-effort change that directly improves Core Web Vitals. |
| Homepage | 50+ third-party script requests on page load — Rakuten, TikTok Pixel, Snapchat Pixel, Reddit Pixel, Bing Ads, Pinterest, Facebook, TreasureData, Optimizely, Nosto, Firework, OneTrust, Forter, Global-E, and more all fire on every visit. | Technical / Performance | 🔴 Critical | Consolidate pixels through Google Tag Manager with consent-gated loading. Defer non-critical scripts (affiliate trackers, loyalty, personalization) until after the page becomes interactive. Review which tracking scripts actually produce ROI and remove dead ones. |
| Homepage | 22 CSS files loaded separately. This creates unnecessary render-blocking requests and HTTP connection overhead. | Technical / Performance | 🟡 Warning | Bundle and minify CSS through the theme build process. Aim for 3–5 CSS files maximum. Review if app-injected CSS can be consolidated or loaded conditionally. |
| Homepage | Invalid X-Frame-Options header — Console shows "ALLOW-FROM https://kyliecosmetics.com is not a recognized directive." This header is being ignored by browsers. | Technical | 🟡 Warning | Replace the obsolete ALLOW-FROM directive with Content-Security-Policy's frame-ancestors directive (e.g., frame-ancestors 'self'). Update your server/CDN configuration accordingly. |
| Homepage | CSP violations in console — Multiple "Refused to execute inline script" errors and "TrustedHTML assignment" warnings indicate some app scripts are conflicting with the Content Security Policy. | Technical | 🟡 Warning | Audit which third-party scripts are triggering CSP violations. Update the CSP policy to include nonce-based allowances for trusted scripts, or work with app vendors to bring their scripts into compliance. |
| Homepage | Multiple 404 and 403 resource errors in the browser console — several assets or API endpoints are returning errors on page load. | Technical | 🟡 Warning | Use browser DevTools (Network tab) to identify the specific failing resources. Broken assets can slow page load and may indicate outdated app configurations or deleted files. |
| Homepage | Organization schema is incomplete — Missing foundingDate, contactPoint, address, and telephone fields. Logo field points to the homepage URL instead of the actual logo image URL. | SEO / GEO | 🟡 Warning | Update Organization JSON-LD with: foundingDate, contactPoint (type: CustomerService with email/phone), address (HQ location), and set "logo" to the actual PNG URL of the logo, not just the domain. |
| Collection Pages | No collection descriptions on any collection page. The collections are missing introductory copy that explains the product range and its benefits. | SEO / GEO / CRO | 🟡 Warning | Add 50–150 word descriptions to all key collection pages (Lips, Face, Eyes, Skin). These descriptions improve crawlability, provide ranking signals, and give AI systems context to include collections in relevant queries. |
| Product Pages | Product schema missing GTIN, MPN, and SKU — identifier_exists is null. The offers array uses numeric Shopify variant IDs as "sku" instead of the actual product SKU codes (e.g., KC871). | SEO / GEO | 🔴 Critical | Add barcode values (GTINs are present in the product JSON API — e.g., 4064941007012) to the Product schema. Set identifier_exists to true. Map the actual SKU field (KC871) to the schema. This is required for Google Shopping rich results and Merchant Center feed quality. |
| Product Pages | No aggregateRating in Product schema — Despite having both Yotpo and BazaarVoice loaded, neither review platform is outputting star rating markup in the structured data for Google's review snippet. | SEO / GEO | 🔴 Critical | Configure whichever review platform you standardize on (recommended: Yotpo) to output aggregateRating in the Product JSON-LD block. Review snippets with star ratings significantly improve organic CTR and are eligible for Google AI Overviews. |
| Product Pages | 72 images with empty alt text on a typical product page — product gallery images, swatch previews, and brand assets all lack descriptive alt attributes. | Technical / SEO / A11y | 🔴 Critical | Populate alt text for every product image with shade name, product type, and usage context (e.g., "Matte Liquid Lipstick in shade 22 Posie K applied on lips for a bold matte look"). |
| Product Pages | Thin product descriptions — Current copy uses first-person marketing language ("my ultra-creamy lip liner is a must-have") but lacks formulation details, ingredient callouts, wear-time context, or application tips that create genuine expertise signals. | GEO / CRO | 🟡 Warning | Expand product descriptions to include: key ingredients and WHY they were chosen, real wear-time data (e.g., "8 hours in humidity testing"), application technique tips, and Kylie's personal perspective on the shade or formula development. This content is what AI systems cite. |
| Product Pages | No FAQPage schema — Common questions (ingredients, vegan/cruelty-free status, shade compatibility) are not marked up in structured data. | SEO / GEO | 🟡 Warning | Add FAQPage schema to product pages addressing the top 3–5 questions per product type. These Q&A pairs are directly eligible for Google AI Overview citations and expand SERP real estate. |
| Blog (/blogs/news) | Zero blog articles indexed — The blog sitemap only contains the listing page URL (last modified March 2023). There are no individual article URLs in the XML sitemap, meaning no blog content is being surfaced to search engines or AI crawlers. | SEO / GEO / Content | 🔴 Critical | Reactivate the content program. Publish at minimum 2 articles per month covering topics like shade guides, application tutorials, product-vs-product comparisons, and ingredient deep-dives. Ensure all articles appear in sitemap_blogs_1.xml with correct lastmod dates. |
| About Page | About page content is extremely thin and JS-dependent — The crawlable HTML of /pages/about-us contains almost no substantive brand story, founder narrative, or credentials. The visible content is primarily navigation repeated. | GEO / SEO | 🟡 Warning | Ensure the core About Us copy (brand founding story, Kylie Jenner's role, clean beauty credentials, press mentions, awards) is present in the initial HTML response — not loaded via JavaScript only. Add Organization schema with founding year and founder details on this page specifically. |
| robots.txt | /search is disallowed for all crawlers. This prevents Google from indexing and evaluating the search functionality, and removes a potential discovery URL for product-category queries. | Technical / SEO | 🟡 Warning | Evaluate whether /search needs to remain blocked. If search result pages have consistent, quality content (they appear to — "28 results for lip gloss"), consider allowing crawling. At minimum, ensure the search page's canonical tag points correctly. |
| Cart | Cart is empty when accessed directly — The cart page shows "Your cart is empty" when accessed without items, with no product recommendations or collection links to re-engage visitors who arrive with an empty cart. | CRO | 🟡 Warning | Add "popular products" or "bestseller" recommendations to the empty cart state to drive product discovery and recovery. This is a quick win for customers who navigated there by mistake. |
| Checkout | Guest checkout availability unclear — The login page (/account/login) does not surface a visible guest checkout option. Customers who hit this page before purchasing may be blocked by a forced login barrier. | CRO | 🟡 Warning | Confirm that Shopify's native guest checkout is enabled in settings and that the checkout flow does not force account creation. Test the mobile checkout path specifically, as account walls on mobile disproportionately hurt conversion. |
| All Pages | No preconnect hints for critical CDN domains — Heavy third-party domains (cdn.cookielaw.org, apps.bazaarvoice.com, cdn-widgetsrepository.yotpo.com) are not preconnected in the HTML head. | Technical / Performance | 🟢 Info | Add <link rel="preconnect"> tags for the 3–5 most critical third-party domains used above the fold. This reduces DNS lookup and TCP handshake time for those resources. |
| All Pages | siteNavigationElement schema uses raw navigation text — Nav items like "^Fragrance" and "~rewards" contain formatting characters in the schema name field that should not be in structured data. | Technical / SEO | 🟢 Info | Clean the siteNavigationElement JSON-LD so names are plain text (remove ^ and ~ prefixes). These characters may cause Google to discard or misparse the structured data. |
GEO Audit
Generative Engine Optimization — readiness for Google AI Overviews, ChatGPT, Perplexity, and AI assistants
GEO Score
⚡ Partially Optimized
Dimension Scores
1. Non-Commodity Content Quality (28/100 — Highest Priority)
- ✗ Product descriptions use first-person marketing language but lack formulation expertise, ingredient justification, or real-world performance data
- ✗ No blog articles — zero educational, expert, or comparison content that AI can cite in "best lip liner" or "long-lasting lipstick" queries
- ✗ About page content is not substantively crawlable — Kylie Jenner's brand story, clean beauty journey, and formulation philosophy are not in HTML text
- ~ Product "callouts" (clean, vegan, cruelty-free, paraben-free) are present in tags/badges but not expanded in descriptive prose
- ✓ Product pages have genuine reviews (via Yotpo/BazaarVoice) which provide user-generated expertise signals
2. Entity Clarity & Brand Authority (58/100)
- ✓ Organization schema present with name, URL, and 4 social profile sameAs links
- ✓ Google Site Verification present (strong signal of ownership/authority)
- ✓ Pinterest domain verification meta tag present
- ✗ Organization schema logo field points to the homepage URL, not the actual logo image
- ✗ No foundingDate, contactPoint, or address in Organization schema
- ✗ No YouTube in sameAs links — a major brand channel missing from entity graph
- ✗ About page does not surface founding story or key brand milestones in crawlable HTML
- ~ Kylie Jenner's personal brand is well-known but the schema doesn't connect to a Person entity
3. Technical Crawlability & Indexing (65/100)
- ✓ No noindex or nosnippet meta tags on key pages — all product/collection pages are snippet-eligible
- ✓ No AI crawler blocking in robots.txt (GPTBot, ClaudeBot, PerplexityBot all allowed)
- ✓ sitemap_agentic_discovery.xml present — excellent forward-thinking signal
- ✓ 68 hreflang tags — strong international crawl signal
- ✓ Cloudflare bot detection only fires on interactive browser sessions, not Googlebot
- ✗ /search disallowed in robots.txt — search result pages cannot be crawled or indexed
- ✗ Blog has 0 articles in sitemap — no editorial content is being submitted for crawling
- ~ About page content is primarily JS-rendered — may not be fully indexed
- ~ Heavy JavaScript dependency on collection pages could limit full product discovery
5. Structured Data (52/100 — Supporting Role)
- ✓ Product, Organization, WebSite, BreadcrumbList schemas all present
- ✓ WebSite SearchAction schema enables sitelinks search box
- ✓ Product schema includes brand, description, availability, and price for all variants
- ✗ Missing GTIN/barcode in Product schema (barcode values exist in product JSON API but not in schema output)
- ✗ identifier_exists is null instead of true — signals to Google that identifiers are unknown
- ✗ No aggregateRating in Product schema despite having two review platforms active
- ✗ No FAQPage schema on product pages or the /pages/faq page
- ✗ siteNavigationElement names contain formatting characters (^, ~) that may cause parsing issues
6. Multimodal Readiness (45/100)
- ✓ Multiple product images per product (gallery format)
- ✓ Firework shoppable video platform active — video content is surfaceable
- ✓ Shade swatches provide visual variety in product imagery
- ✗ 72+ empty alt attributes on product pages — AI systems cannot understand image subjects
- ✗ Product images listed in schema use CDN URLs with query parameters but no descriptive filenames
- ~ No image sitemap entries found — product images may not be submitted to Google Image Search
9. Agentic Experience Readiness (92/100 — Best-in-Class)
- ✓ Universal Commerce Protocol (UCP) fully implemented — /.well-known/ucp endpoint active with search_catalog, create_cart, create_checkout, update_checkout, complete_checkout tools
- ✓ agents.md present at /agents.md with clear agent instructions, buy-for-me guidelines, and Shop skill recommendation
- ✓ sitemap_agentic_discovery.xml in sitemap index — proactively discoverable by AI crawlers
- ✓ Shop Pay integration enables frictionless agent-driven checkout with buyer-approval model
- ✓ Product JSON API (/products/{handle}.json) works without authentication — agents can read catalog
- ✓ UCP versions 2026-04-08 and 2026-01-23 both supported
- ~ ATC button has clear ARIA structure but empty alt on product images may limit agent visual context
GEO Action Items — Prioritized
| # | Action | Difficulty | Impact | Dimension |
|---|---|---|---|---|
| 1 | Relaunch the blog with genuine expert content — shade guides, wear-test comparisons, formulation stories | Medium | High | Content Quality |
| 2 | Expand product descriptions with genuine first-hand expertise — formulation rationale, real wear data, ingredient callouts | Medium | High | Content Quality |
| 3 | Add GTIN barcodes to Product schema (values already exist in product API JSON) | Easy | High | Structured Data / Merchant Center |
| 4 | Enable aggregateRating output from Yotpo (or whichever review platform is kept) in Product JSON-LD | Easy | High | Structured Data |
| 5 | Add descriptive alt text to all 72+ empty product images using a programmatic batch update | Medium | High | Multimodal |
| 6 | Update Organization schema: fix logo URL, add foundingDate, contactPoint, address, YouTube sameAs | Easy | Medium | Entity Clarity |
| 7 | Ensure About page brand story content is in initial HTML (not JS-only rendered) | Medium | Medium | Entity Clarity |
| 8 | Add FAQPage schema to product pages and /pages/faq — answer top customer questions in structured data | Medium | Medium | Structured Data |
| 9 | Add collection descriptions (50–150 words each) to all major collection pages | Easy | Medium | Content Structure |
| 10 | Evaluate allowing /search in robots.txt — search result pages may rank for long-tail product queries | Easy | Medium | Crawlability |
🚫 GEO Myths This Store Does NOT Need to Worry About
Based on Google's official AI Optimization Guide (May 2026), the following are commonly recommended but NOT actually required for AI search visibility:
- ✗ llms.txt — Google explicitly states "you don't need to create new machine-readable files, AI text files, markup, or Markdown to appear in generative AI search." Note: Kylie Cosmetics DOES have an agents.md file — this is for agent commerce transactions, not for Google AI Overviews, and it's genuinely valuable for agentic shopping.
- ✗ Content "chunking" — Breaking product descriptions into tiny fragments for AI consumption is not recommended. Google's systems understand full-page nuance.
- ✗ Rewriting content for AI using long-tail keywords — AI systems understand synonyms and general meanings. Write naturally for humans.
- ✗ Seeking inauthentic mentions — Spam systems block this. Earned media and real brand authority matter; bought mentions do not.
- ✗ Over-indexing on structured data — Schema is supplementary. Content quality and genuine expertise signals are primary. Adding GTIN helps, but it doesn't replace substantive content.
CRO Scorecard
Conversion funnel analysis — Awareness → Consideration → Purchase → Retention
🔍 Awareness & Discovery
Score: 65/100🧐 Consideration & Product Evaluation
Score: 74/100🛒 Purchase & Checkout
Score: 79/100💌 Retention & Loyalty
Score: 68/100App Stack Audit
Detected apps, cost estimates, and consolidation opportunities
Total Potential Savings
~$1,000–$2,000 / month
~$12,000–$24,000 / year — by consolidating the duplicate review app stack
Primary opportunity: Remove BazaarVoice
Yotpo already covers all review + loyalty needs
| App | Purpose | Perf. Impact | Est. Monthly Cost | Verdict | Notes |
|---|---|---|---|---|---|
| Yotpo | Reviews + Loyalty (Swell) | 🟡 Medium | ~$500–$1,500/mo | Keep | Core reviews and loyalty platform. Configure to output aggregateRating in Product JSON-LD. |
| BazaarVoice | Reviews (duplicate) | 🔴 High | ~$1,000–$2,000/mo | Remove | REDUNDANT. Both Yotpo and BazaarVoice are active simultaneously — loading scripts on every page with neither outputting aggregateRating schema. Yotpo covers all review needs. Removing BazaarVoice saves ~$12k–$24k/year and reduces script payload. |
| Klaviyo | Email Marketing | 🟡 Medium | ~$800–$2,000/mo | Keep | Industry-standard ESP for Shopify. Ensure flows are optimized for post-purchase sequences. |
| Attentive | SMS Marketing | 🟡 Medium | ~$500–$1,000/mo | Keep | SMS is high-ROI for beauty brands. Monitor overlap with Klaviyo SMS if both are running SMS. |
| Nosto | Personalization | 🟡 Medium | ~$1,000–$3,000/mo | Keep | Product recommendations and personalization are high-value for a catalog of this depth. Ensure Nosto is loading only after consent is granted (OneTrust integration confirmed active). |
| Firework | Shoppable Video | 🟡 Medium | ~$500–$2,000/mo | Keep | Shoppable video is a strong differentiator for a celebrity-brand like Kylie. Ensure videos are tagged with product schema for multimodal search indexing. |
| Optimizely | A/B Testing | 🔴 High | ~$1,500–$4,000/mo | Keep | Enterprise A/B testing is appropriate at this scale. However, ensure experiments do not inject inconsistent H1 or schema variations that harm SEO. |
| Algolia | Search | 🟡 Medium | ~$500–$1,500/mo | Keep | Best-in-class search UX for a deep catalog. Consider exposing Algolia search result pages to crawlers for long-tail SEO value. |
| Back In Stock (useamp) | Restock Alerts | 🟢 Low | ~$19–$99/mo | Keep | High-value low-cost app. Recovers demand for out-of-stock limited-edition shades. |
| Forter | Fraud Prevention | 🟢 Low | Enterprise / % of GMV | Keep | Essential for a high-volume brand. Reduces false declines and chargeback losses. |
| OneTrust | Cookie Consent (GDPR) | 🔴 High | ~$200–$500/mo | Keep | Required for EU compliance. However, OneTrust's script itself is render-blocking — ensure it's loading asynchronously and not adding to the initial LCP time. |
| Global-E | International Commerce | 🟡 Medium | Revenue share model | Keep | Enables localized pricing across 30+ markets. Critical for international revenue. Ensure crossborder-integration scripts are loading deferred. |
| Treasure Data | Customer Data Platform | 🟡 Medium | Enterprise | Keep | Enterprise CDP is appropriate for a brand of this scale under Coty ownership. Ensure consent-gating is working correctly with OneTrust. |
| Rakuten Advertising | Affiliate Marketing | 🟡 Medium | % of affiliate sales | Keep | Affiliate programs are high-ROI at scale. Review tag firing frequency — Rakuten script was detected loading 6+ times on the homepage (possible duplicate tag configuration). |
| Recharge | Subscriptions | 🟢 Low | ~$99–$500/mo | Keep | Subscriptions drive LTV for consumables. Ensure the subscription widget is loading on relevant skincare products. |
⚠️ Rakuten Tag Firing Anomaly
The Rakuten tag (rmp.rakuten.com/123214.ct.js) was detected loading 6 times on the homepage alone. This suggests a tag duplication in the GTM container or theme code. Duplicate affiliate pixels can inflate attributed sales metrics and should be investigated immediately.
Theme & Code Findings
Technical debt and code quality observations
Theme Information
Theme Name: SYNC | SUMMER DROP LAUNCH | DO NOT DELETE
Schema Name: KYLIE (custom, not marketplace)
Version: d19e977 (Git commit hash)
Store Handle: kylie-jenner-us.myshopify.com
Fonts: TT Chocolates (custom), UniversLTStd-Bold
Performance Indicators
CSS Files: 22 (target: <5)
Script Tags (product page): 33
Third-party Domains: 40+
Preload Hints: 0 (should be 3–5)
Lazy Loading: ✓ Present on images
Font Display Swap: ✓ Present
Technical Debt Items
-
Critical
Theme name contains "DO NOT DELETE" — suggests temporary/launch theme used as permanent
This theme was likely created for a campaign launch and promoted to main without cleanup. This naming convention creates confusion for developers and may indicate accumulated technical debt across multiple launch cycles.
-
Critical
22 separate CSS files loading per page
A well-optimized Shopify theme should have 3–5 CSS files. 22 files indicates accumulated app-injected stylesheets, per-section CSS files, and theme build fragmentation. This creates multiple render-blocking requests that directly harm LCP.
-
Warning
CSP violations: TrustedHTML and TrustedScript assignments blocked
Multiple app scripts are attempting to dynamically inject HTML and scripts in ways that conflict with the Content Security Policy. This suggests apps are not CSP-compliant and may cause intermittent functionality issues, particularly on stricter browsers.
-
Warning
Obsolete X-Frame-Options: ALLOW-FROM directive
ALLOW-FROM was deprecated in 2016 and is ignored by all modern browsers. Replace with CSP's frame-ancestors directive for actual frame embedding control.
-
Warning
siteNavigationElement schema contains formatting characters (^, ~)
Navigation items "^Fragrance" and "~rewards" are pushed into structured data with these prefix characters. This indicates a theme or app is auto-generating schema from navigation labels without sanitization.
-
Warning
No resource preloading for LCP assets
The hero image and custom web fonts load without preload hints, meaning the browser only discovers them after parsing the full HTML. Adding 3–4 preload links in <head> is a straightforward CWV improvement.
-
Warning
Rakuten affiliate tag loading 6 times on homepage
The same Rakuten script (123214.ct.js) is detected 6 times in the network requests. This is likely a GTM container misconfiguration or theme-level script duplication. Duplicate pixels inflate attribution data and add unnecessary network overhead.
-
Info
Multiple 404 resource errors on page load
Several resources are returning 404 responses in the browser console. These may be leftover asset references from old app configurations or deleted theme sections. Audit and clean up broken references.
-
Info
Findation shade finder script loading per product page HTML
assets.findation.com/javascripts/w-adv-10.min.js detected loading on product pages. Verify this app is actively being used and properly integrated with the current shade finder UX — or remove it to reduce script payload.
Brand Identity
Color palette, typography, and brand consistency analysis
Color Palette
#393939
Primary — Body text, buttons, navigation
#FFFFFF
Background — Clean white canvas
#000000
Accent — Header, dark elements
#F5F0EB
Warm off-white — Secondary backgrounds, skincare line
Brand Assets & Typography
Logo
Primary Font: TT Chocolates (custom, self-hosted)
Secondary Font: UniversLTStd-Bold
Font Loading: WOFF2 + WOFF, font-display: swap ✓
Aesthetic: Minimalist luxury — stark black/white with pink accents in campaign imagery
Brand Consistency Rating: 88/100
The visual identity is highly consistent across pages — the minimalist palette, custom typography, and Kylie's personal brand photography create a coherent luxury-beauty aesthetic. The primary inconsistency is theme naming and section labeling which doesn't affect customer experience but indicates backend fragmentation.
Growth Roadmap
Prioritized actions by implementation horizon
⚡ Quick Wins (1–2 days)
-
1
Add GTIN barcodes to Product schema
Barcode values already exist in the product API JSON. Map them to the Product JSON-LD template in the theme. Unlocks Google Shopping rich results and Merchant Center data quality improvements.
-
2
Enable aggregateRating output in Yotpo
Turn on the Yotpo JSON-LD output setting. This immediately adds star ratings to Google search snippets and increases organic CTR by 15–30%.
-
3
Fix Organization schema logo URL
Change the logo field from "https://kyliecosmetics.com" to the actual logo image URL. A 5-minute Liquid template edit.
-
4
Add LCP preload hints for hero image and fonts
Add 3 <link rel="preload"> tags in the theme layout for the hero image, TT Chocolates regular, and TT Chocolates demibold. Direct Core Web Vitals improvement.
-
5
Fix Rakuten duplicate tag (6 → 1 instance)
Audit GTM container and theme code to find where the Rakuten tag fires 6 times. Remove duplicates. Fixes attribution inflation immediately.
-
6
Clean siteNavigationElement schema (remove ^ and ~ characters)
Find the schema generation code and strip special prefix characters from navigation labels before outputting to JSON-LD.
📅 Medium-Term (1–4 weeks)
-
1
Remove BazaarVoice, standardize on Yotpo
Uninstall BazaarVoice, migrate any unique reviews to Yotpo, and save $1,000–$2,000/month. Run a 2-week comparison to validate review count parity before deactivation.
-
2
Fix homepage H1 hierarchy (8 → 1 H1)
Audit every homepage section that renders an H1 and reclassify to H2/H3/span as appropriate. The logo text especially should not be an H1.
-
3
Batch update image alt text across product catalog
Use Shopify's Bulk Editor or a CSV import to add descriptive alt text to all product images. Target template: "[Product Name] in [Shade] — [key benefit/context]".
-
4
Add FAQPage schema to product pages
Add 3–5 Q&As per product type (lip liner, lipstick, mascara) in JSON-LD. Questions should address vegan status, shade compatibility, wear time, and application tips.
-
5
Add collection descriptions to all major collections
Write 80–150 word descriptions for Lips, Face, Eyes, Skin, and Fragrance collections. Include key product benefits, skin tone/type suitability, and finish descriptions.
-
6
Publish 4 foundational blog articles
Start with: (1) Complete lip liner shade guide, (2) How to layer Kylie lip products for different finishes, (3) Clean beauty ingredients in Kylie Cosmetics, (4) Kylie Cosmetics vs. drugstore dupes — an honest comparison.
🎯 Strategic (1–3 months)
-
1
Relaunch content program at scale
Target 8–12 articles/month covering shade guides, application tutorials, ingredient deep-dives, Kylie's personal looks, and product comparisons. Each article should be optimized for a specific customer question AI systems answer.
-
2
Rewrite top 50 product descriptions with expert depth
Prioritize bestsellers and high-search-volume products. Add: formulation rationale, key active ingredients with function explanations, real wear-test data, application tips from Kylie's own tutorials, and compatibility notes with other products.
-
3
CSS consolidation (22 → 4 files)
Conduct a full CSS audit, remove unused app styles, merge section-level stylesheets, and implement a proper build pipeline. Target <150KB total CSS. This is a significant engineering investment but directly improves CWV scores.
-
4
Rebuild About page with crawlable HTML content
Ensure the full brand story, Kylie's founding narrative, clean beauty credentials, press mentions, and awards are in server-rendered HTML. Add a Person schema for Kylie Jenner linked to the Organization schema.
-
5
Google Merchant Center feed quality audit
Ensure all product feeds include GTIN, accurate inventory, high-quality images (white background shots), and complete attribute data. Feed quality directly affects Shopping ad eligibility and AI product recommendation surfaces.
-
6
Optimize third-party script loading strategy
Implement a consent-first, performance-aware script loading strategy. Group all pixels behind a GTM consent trigger. Defer personalization (Nosto), video (Firework), and affiliate (Rakuten) scripts to after DOMContentLoaded. Target LCP < 2.5 seconds.
Screenshots Gallery
Captured live during this audit session
Homepage — Desktop (1440px)
Homepage — Mobile (390px)
Product Page — Matte Liquid Lipstick (Desktop)
Product Page — Mobile (390px)
Collection Page — Kylie Cosmetics
Cart Page
Search Results — "lip gloss"
Account / Login Page