Kylie Cosmetics
kyliecosmetics.com
Overall Score
64/100
Needs AttentionSEO Score
62/100
GEO Score
54/100
Summary
What's Working Well
- ✓ Premium visual experience: A fully custom-built Shopify theme ("KYLIE") with a sophisticated black-and-white aesthetic, custom TT Chocolates typography, Fireworks shoppable video, and a Virtual Try-On integration that few DTC brands can match.
-
✓
Solid technical SEO foundation: Canonical tags, Open Graph and Twitter Card meta tags, a correct hreflang implementation across 60+ countries and multiple TLDs (kyliejennercosmetics.eu, .co.uk), and a well-structured XML sitemap including an
agentic_discoverysub-sitemap. - ✓ Frictionless checkout with multiple payment options: Express checkout via Shop Pay and PayPal, credit card plus five additional payment methods, Klarna BNPL, email and SMS opt-in — a genuinely competitive checkout experience that reduces abandonment at the payment stage.
Critical Issues
-
⚠
Every image on the site has empty alt text: All 20+ images audited on the homepage carry
alt="". This fails WCAG 2.1 Level AA accessibility requirements, suppresses the store from Google Image Search results, and prevents AI systems from understanding product visuals — a single bulk fix with enormous upside. -
⚠
Organization schema logo URL is broken: The
logofield in the JSON-LD Organization schema points to the homepage URL (https://kyliecosmetics.com) — not the actual logo image. This breaks Google's Knowledge Graph entry for the brand and degrades rich result eligibility. - ⚠ Blog has been dead for over two years: The only blog post in the sitemap is dated March 31, 2023. For a brand with Kylie Jenner's authority and reach, this is the largest missed GEO opportunity — no first-hand content means Kylie Cosmetics cannot be cited as an authority source in AI-generated beauty answers.
Growth Opportunity
Kylie Cosmetics has built world-class brand infrastructure — but the store is leaving substantial organic and AI-driven visibility on the table. The single highest-leverage action is reviving content with Kylie's authentic first-person voice: specific routines, behind-the-scenes formulation stories, and product-use perspectives that no competitor can replicate. Google's AI systems explicitly reward unique, first-hand expertise over generic beauty content. A consistent content output — even monthly — combined with fixing image alt text and the broken Organization schema logo, could meaningfully shift how Kylie Cosmetics appears in AI Overviews, ChatGPT, and Perplexity recommendations within a single quarter.
Screenshots
Per-Page Issues
| Page | Issue | Category | Severity | Recommendation |
|---|---|---|---|---|
| Homepage & Sitewide | All <img> elements have empty alt="" attributes. 20 images audited — 100% failure rate. Product images, nav thumbnails, hero banners all affected. |
Accessibility | 🔴 Critical | Add descriptive alt text to every product and decorative image. For decorative images use alt="" intentionally with role="presentation". Audit theme templates and update image rendering Liquid tags globally. |
| Homepage | Organization JSON-LD schema has "logo": "https://kyliecosmetics.com" — this is the homepage URL, not an image URL. Google requires a valid image URL for logo recognition in Knowledge Graph. |
SEO / GEO | 🔴 Critical | Update the logo property to the actual logo image URL: https://kyliecosmetics.com/cdn/shop/files/kylie-cosmetics-by-kylie-jenner-logo_07a782a4-7a90-4d46-b7a0-31bbafd38552.png |
| Blog | The blog at /blogs/news contains only one post, last published March 31, 2023 — over two years ago. The blog sitemap reflects this total inactivity. |
GEO / SEO | 🔴 Critical | Restart content publishing with at least 2 posts/month featuring Kylie's first-person voice — routines, ingredient reasoning, shade-matching guides. This is the fastest path to AI citation eligibility. |
| Homepage | H1 reads "Kylie Cosmetics Kylie Jenner Homepage" — mechanically assembled from Liquid variables. It is awkward, keyword-stuffed, and not a natural sentence that helps users or AI systems understand the page. | SEO | 🟡 Warning | Change to a human-readable H1 like "Kylie Cosmetics — Clean Beauty by Kylie Jenner" or simply make the H1 visually hidden (for screen readers) and more descriptive while keeping the visual hero headline as a styled div. |
| Product Pages | Some products (e.g. Cosmic Kylie Jenner Intense Eau de Parfum) have an empty body_html field — no product description at all. The product page relies entirely on images and visual content that AI crawlers cannot process. |
GEO / CRO | 🟡 Warning | Add at minimum a 150–300 word first-person description to every product, covering scent/texture/use-case from Kylie's perspective. This directly improves both AI indexability and on-page conversion. |
| Product Images | Product image alt text is formatted as <product-name>|<SKU> (e.g. <lip butter>|<KS498>). The pipe-delimited SKU format is not meaningful to screen readers or AI systems. |
Accessibility | 🟡 Warning | Update the image alt text template in the theme to render descriptive copy: e.g. "Lip Butter in Butter Cake shade — Kylie Skin ultra-hydrating lip balm." Remove SKU codes from alt text. |
| Homepage | Multiple JavaScript 404 errors in the browser console — 6 resource load failures on page load. Indicates broken asset references, likely from old app removals or outdated script URLs. | Technical | 🟡 Warning | Audit theme.liquid for any dead script references from removed apps. Use GTM or a custom script monitor to track ongoing 404s. Each failed request adds unnecessary network overhead. |
| Homepage | An IP geolocation call to pro.ip-api.com is blocked by CORS policy, generating a console error. The ipmodal.js script is failing silently but still loaded on every page view. |
Technical | 🟡 Warning | Either fix the CORS configuration on the IP API endpoint, proxy the request server-side via a Shopify Function, or remove the modal if it's no longer actively used. The failing request slows down page execution. |
| Homepage | html2pdf.bundle.min.js (127KB minified) is loaded from cdnjs.cloudflare.com on every page. This heavy PDF-generation library has no apparent use on the storefront and likely serves one obscure internal workflow. |
Performance | 🟡 Warning | Move to lazy-loading (only load when the PDF trigger is clicked) or remove entirely if the feature is no longer in use. Reducing third-party JavaScript improves LCP and TBT scores. |
| Homepage | Invalid X-Frame-Options: ALLOW-FROM header. This deprecated directive is ignored by all modern browsers, leaving the intended clickjacking protection ineffective. |
Security | 🔵 Info | Replace with the modern Content-Security-Policy: frame-ancestors 'self' header for effective framing protection. Update via Shopify's custom HTTP headers (available in Online Store > Preferences). |
| Robots.txt | No AI-specific bot directives for GPTBot, ClaudeBot, PerplexityBot, or Google-Extended. The store is fully open to all AI crawlers — this is the correct strategy for GEO visibility, but should be a deliberate policy decision, not an oversight. | GEO | 🔵 Info | No action needed if the intent is to remain AI-crawlable. Document this as a deliberate brand choice. Consider adding a comment in robots.txt confirming the open-crawl policy for brand governance purposes. |
| Organization Schema | The Organization JSON-LD is missing key fields: foundingDate, founder, telephone, email, and address. These fields are used by Google to populate Knowledge Graph cards and improve brand entity recognition. |
GEO / SEO | 🔵 Info | Enrich the Organization schema with: foundingDate: "2015", founder: { "@type": "Person", "name": "Kylie Jenner" }, and at minimum a contact email. This strengthens the brand's Knowledge Graph presence and AI entity recognition. |
GEO — Generative Engine Optimization
54
/ 100
Kylie Cosmetics has strong brand entity signals (social profiles, Organization schema, widely-known founder) but is fundamentally underprepared for AI citation because its content output is near-zero. Google's AI systems reward first-hand expertise and original content above all else — and the store's dead blog, sparse product descriptions, and sitewide image alt text failures mean the content layer needed for AI citations simply does not exist today.
9-Dimension GEO Assessment
1. Non-Commodity Content Quality
The about page contains genuine first-person text from Kylie about her motivation for each product line — this is the right instinct. But the blog has been silent for over two years and multiple product pages (including the flagship Cosmic fragrance) have zero description text. AI systems cannot cite what does not exist in text form. This dimension has the highest weight in GEO scoring and is currently the weakest link.
38
2. Entity Clarity & Brand Authority
Kylie Jenner is a globally recognised entity, and the brand's Organization schema lists four verified social profiles. The about page clearly describes the brand's founding motivation and product philosophy. The main gap is the broken logo URL in the schema and the missing founder/founding date fields that would complete the Knowledge Graph entry.
71
3. Technical Crawlability & Indexing
No AI bot directives blocking content. Canonical tags are correct. Hreflang covers 60+ locales. The sitemap includes a dedicated sitemap_agentic_discovery.xml (Shopify's new agentic commerce feature — a positive signal). No nosnippet/noindex directives on key pages. The main concern is the Cloudflare bot protection on product pages which may occasionally delay or block legitimate crawlers.
80
4. Content Structure & Semantic HTML
The homepage uses a logical H1 → H2 heading hierarchy (though the H1 text is awkward). Navigation is semantically tagged. The about page content is well-organised into three brand pillars (Cosmetics, Fragrance, Skin). Product pages that have descriptions show decent structure, but the majority of product copy is too thin to satisfy a customer's questions without going elsewhere.
63
5. Structured Data (Supporting Role)
Organization schema is present but has a critical logo URL bug. WebSite schema with SearchAction is correct. BreadcrumbList is implemented. Missing: Product schema on product pages (no price, availability, or review count in structured data), FAQPage schema, and AggregateRating. GTINs/barcodes ARE present on product variants (good for Merchant Center feeds).
45
6. Multimodal Readiness
The store has excellent video content through Fireworks (shoppable videos, Kylie's look tutorials) which is a strong multimodal signal. However, ALL images audited sitewide carry empty alt text — a near-complete failure for image SEO and AI multimodal understanding. Product images cannot be interpreted by AI systems without descriptive alt text. This is the most fixable high-impact issue in this dimension.
28
7. Query Fan-Out Readiness
No FAQ sections detected on product pages or the about page. The shade finder quiz is a good interactive tool but its content is not indexable by crawlers. There are no buying guides, ingredient glossaries, or comparison content that would answer the "follow-up questions" that AI systems fan out to when building a comprehensive answer about lip products or fragrances.
32
8. Google Merchant Center & Business Profile
Product variants contain GTINs (barcodes confirmed via API), which is critical for Google Merchant Center feed quality. Multiple Google Analytics properties and a Google Tag Manager container (GTM-PZXP34Q6) are active, indicating GA4 + Google Ads setup. Google site verification meta tag is present (9sP_gtSQwZDNIfvhGXa-G3rgNRqaPMVI9luvKbaQCvc). Merchant Center enrollment is highly likely given brand scale.
72
9. Agentic Experience Readiness
The Shopify sitemap includes sitemap_agentic_discovery.xml — an early Shopify feature for AI agent commerce discovery. Checkout flow is programmatically navigable: email, address, and payment fields are properly labeled with id attributes. The Add-to-Cart flow on the homepage works via standard Shopify /cart/add.js API. Interactive elements (carousel, variant selectors) have accessible ARIA labels.
65
Prioritised GEO Actions
| Action | Difficulty | Impact |
|---|---|---|
Fix Organization schema logo URL — change "logo": "https://kyliecosmetics.com" to the actual logo image PNG URL |
Easy | High |
| Bulk-update image alt text across all theme templates using descriptive, product-contextual copy (not SKU codes) | Medium | High |
| Restart blog with Kylie's first-person content: minimum 2 posts/month covering product routines, shade stories, and ingredient reasoning | Medium | High |
Add substantive descriptions (150–300 words, first-person voice) to all products currently missing body_html — starting with the Cosmic fragrance line |
Medium | High |
Enrich Organization schema: add foundingDate, founder (Kylie Jenner Person entity), and contact information |
Easy | Medium |
| Add FAQ sections to top product pages answering common questions (shade matching, ingredient safety, application method, longevity) | Medium | Medium |
| Implement Product JSON-LD schema on product pages (price, availability, AggregateRating) to improve rich result eligibility | Medium | Medium |
GEO Myths to Ignore
- Creating an
llms.txtfile will NOT improve visibility in Google AI features. Google uses standard Googlebot crawling — not special AI files. (Third-party AI surfaces like Perplexity may read it, but Google explicitly says it is unnecessary.) - Chunking content into short snippets for "AI consumption" does not help — Google's systems process full pages and understand context across paragraphs.
- Rewriting product descriptions to target long-tail AI queries (e.g. "best clean vegan lip kit for medium skin tones") is not needed — AI systems understand synonyms and search intent without exact-match phrasing.
- Paying for inauthentic brand "mentions" or press placements to game AI citations will be blocked by Google's spam systems. Focus on earning authentic editorial coverage instead.
CRO Scorecard
Stage 1
Awareness
70
- PassAnnouncement bar with active promotion ("just dropped — hydrating lip essentials") visible immediately above the fold
- PassVirtual Try-On integration directly on the homepage — a meaningful differentiator for a cosmetics brand
- PassThree clear top-level product categories (Cosmetics, Fragrance, Skin) in the primary navigation
- PartialHero value proposition is primarily visual (video/images) — descriptive text explaining what makes Kylie Cosmetics unique vs. competitors is absent above the fold
- FailNo visible trust badges (dermatologist-tested, clean beauty certifications, award logos) in the hero area — these claims appear in meta descriptions but not on the page itself
- FailBlog content is 2+ years old — organic search traffic for discovery keywords ("best clean lip kit", "vegan fragrance") is being left to competitors
Stage 2
Consideration
74
- PassQuick-add to cart directly from product tiles on the homepage — variant selector (shade swatches) visible without clicking through to PDP
- PassShade finder quiz available for complexion products — reduces consideration friction for foundation and skin tint shoppers
- PassWell-organised collection taxonomy: Lips, Face, Eyes & Brows, Best Sellers, Featured, Sale — discoverable from the mega menu
- PassYotpo reviews and BazaarVoice ratings integrated (though duplicated — see App section). Social proof is present on PDP.
- PartialProduct descriptions on several key products (including the Cosmic fragrance) are entirely absent — customers cannot read about ingredients, scent profile, or usage before purchasing
- PartialNo visible "complete the look" bundling on the homepage product tiles — missed cross-sell opportunity on the most-trafficked page
Stage 3
Purchase
73
- PassExpress checkout section: Shop Pay and PayPal visible above the contact form — reduces checkout time for returning customers significantly
- Pass7+ payment methods detected: credit card, Shop Pay, PayPal, Klarna (BNPL), Apple Pay capability (via Shopify), plus 5 additional options shown in checkout
- PassCart page shows a free shipping progress bar — a proven abandonment-reducer that incentivises increasing order value
- PassEmail + SMS marketing opt-in checkboxes present in checkout — active list-building at highest-intent moment
- PartialCheckout form has 9 visible fields (email, first name, last name, address, city, state, zip, phone + marketing opts) — standard but not minimal. Phone collection before shipping may cause minor friction.
- PartialNo cart-page upsell or cross-sell observed with item in cart — the cart appears to show upsells only in the empty state, missing the highest-intent upsell moment
Stage 4
Retention
66
- PassReCharge subscription integration active — customers can subscribe to replenishable products (lip balms, skincare) for recurring revenue
- PassYotpo loyalty program integrated — rewards points, referral system visible in the navigation ("Kylie Rewards")
- PassAttentive SMS and Klaviyo email both active — dual-channel post-purchase retention and win-back capability
- PassBack In Stock notification app (AMP) active — captures demand for sold-out shades and converts to sales on restock
- PartialNosto personalisation engine is loaded but conditioned on cookie consent — customers who decline cookies receive no personalised recommendations
- FailNo active content engagement loop — the dead blog means there is no reason for past customers to return to the site for inspiration, limiting repeat organic visits
App Stack Audit
| App / Script | Purpose | JS Weight | Est. Monthly Cost | Verdict | Savings |
|---|---|---|---|---|---|
| Klaviyo | Email marketing, flows, segmentation | Medium | Enterprise custom | Keep | — |
| Yotpo Reviews & Loyalty | On-site reviews, loyalty points, referrals | Medium | Enterprise custom | Keep | — |
| BazaarVoice | Ratings & reviews — duplicate with Yotpo | High | $3,000–$8,000+/mo | Evaluate | $36k–$96k/yr |
| Attentive | SMS marketing and push notifications | Low | Enterprise custom | Keep | — |
| Nosto | AI-driven personalisation & recommendations | Medium | Enterprise custom | Keep | — |
| Fireworks (Video) | Shoppable video, live shopping | High | Enterprise custom | Keep | — |
| Global-e | International localisation, duties & taxes | Medium | Revenue share | Keep | — |
| ReCharge | Subscription management | Low | $499–$999/mo+ | Keep | — |
| OneTrust | Cookie consent management (GDPR/CCPA) | Medium | $500–$2,000/mo | Keep | — |
| Algolia | Predictive search and filtering | Low | $500+/mo | Keep | — |
| Forter | Fraud prevention and chargeback protection | Low | Enterprise custom | Keep | — |
| AMP Back In Stock | Back-in-stock email/SMS notifications | Low | ~$20–$79/mo | Keep | — |
| FourSixty | Instagram UGC shoppable gallery | Low | $600/mo | Evaluate | — |
| html2pdf.js (CDN) | PDF generation library — unknown use case | Medium | Free (CDN load) | Remove | LCP / TBT gain |
| ip-api.com (ipmodal.js) | IP geolocation for modal — CORS-blocked, broken | Low | Free / broken | Remove | Error elimination |
| Potential Annual Savings | $36k–$96k/yr (BazaarVoice) + performance gains | ||||
BazaarVoice + Yotpo: A Costly Duplication
Both BazaarVoice and Yotpo are active on the site simultaneously — loading independent JavaScript bundles, collecting separate review datasets, and billing independently. The primary reason brands maintain BazaarVoice alongside an on-site review platform is for retailer syndication (pushing reviews to Sephora, Ulta, Target product pages). If that syndication is active and valuable, BazaarVoice may be worth the cost. If not, Yotpo's own syndication network (which covers major beauty retailers) could replace it entirely. This evaluation alone represents potential savings of $36,000–$96,000+ annually depending on the BazaarVoice contract tier.
Theme & Code Findings
Theme
KYLIE (Custom Built)
Schema version: 56a53f8 · Theme ID: 162141241586 · Not from Shopify Theme Store
Code Health Score
62/100
Technical Debt Items
-
Critical
CSS delivered as print-media-swapped deferred files: The theme loads 9+ separate CSS chunk files using the
media="print" onload="this.media='all'"pattern. While this avoids render-blocking, it can cause flash-of-unstyled-content (FOUC) and Cumulative Layout Shift. The CSS chunk count (vendors, 4819, 7085, layout.theme ×2, 1192, 3482, 1701, template.index) indicates significant CSS fragmentation from the build process — an audit of unused CSS per-page would likely reveal substantial bytes that could be eliminated. - Critical 15+ third-party JavaScript bundles loaded on every page: Klaviyo, Yotpo, BazaarVoice, Fireworks (8+ chunk files), Attentive, Forter, Nosto, Global-e, Google Tag Manager, Algolia, FourSixty, Klarna, OneTrust, and html2pdf.js. Each request adds network RTT overhead. The Fireworks video player alone loads 20+ async JavaScript chunks. This volume of third-party JS is the primary risk factor for LCP and TBT scores on mid-range mobile devices.
-
Warning
Custom webfonts (TT Chocolates, Univers LT Std) loaded as WOFF2 + WOFF pairs: Excellent format choice, but both fonts load on every page regardless of whether the page actually uses the secondary Univers font. Subsetting and using
font-display: optionalfor non-critical weights could reduce render-blocking time. -
Warning
Broken IP geolocation modal (
ipmodal.js): The script at/cdn/shop/t/2068/assets/ipmodal.jsmakes a CORS-blocked call topro.ip-api.comand generates a console error on every page load. The modal it powers is non-functional. This dead code should be removed from the theme or replaced with a Shopify-native geolocation approach using the Shopify Storefront API. - Warning 6 unexplained 404 errors on homepage load: Six resource requests return 404 on initial page load, suggesting outdated script references — likely from apps that were previously installed and removed without cleaning up their theme code. Each failed request consumes a network connection slot, slightly delaying other resource loading.
- Info Shopify Storefront API tokens exposed in page source: The checkout API token and shop ID are visible in page HTML (standard Shopify behaviour). These are public-facing tokens with intentionally limited scope, but it is worth confirming via the Shopify Admin that these tokens do not have write access beyond checkout and that rate limiting is enabled.
-
Info
Theme is not from the Shopify Theme Store:
theme_store_id: nullconfirms this is a fully custom-built theme. This means theme updates must be handled by the internal dev team — there is no automatic Shopify theme store version management. The theme version string (SYNC | 5.21.26 BMSM | DO NOT DELETE) suggests an active deployment pipeline tied to merchandising campaigns, which is a sophisticated and healthy practice.
Brand Identity
Logo
Note: The inline SVG logo in the site header is the canonical logo. The image shown above is the OG/logo file used in social sharing and schema markup. The Organization JSON-LD currently points to the wrong URL — see Issues section.
Color Palette — Extracted from Computed CSS
#393939
Body text / CTA primary
#FFFFFF
Page background
#000000
Theme color / dark surfaces
#C4A49C
Brand accent / rose-beige
Brand Consistency Assessment
Typography
ExcellentCustom TT Chocolates webfont is distinctive, consistently applied, and clearly tied to Kylie's personal aesthetic. Univers LT Std used as a supporting sans-serif.
Color Consistency
ExcellentStrict black-and-white palette maintained throughout navigation, buttons, and page layouts. Campaign imagery introduces seasonal colors in a controlled, intentional way.
Imagery Style
ExcellentHigh-production campaign photography and video. Consistent model direction and lighting. Fireworks video integration adds dynamic product storytelling that competitors lack.
Tone of Voice
Needs WorkKylie's authentic first-person voice appears on the about page but is absent from most product descriptions. Many products read generically rather than in her recognisable voice.
Navigation UX
GoodVisual mega menu with product thumbnail images for each category. Three brand lines clearly delineated (Cosmetics / Fragrance / Skin). Discover section includes quiz, rewards, and about page.
Mobile Experience
GoodResponsive layout maintained on 390px viewport. Navigation collapses to a hamburger menu. Announcement bar, hero, and product tiles all render correctly at mobile breakpoints.
Growth Roadmap
Fix Now — Highest ROI for Least Effort
- Fix the Organization JSON-LD logo URL: change
"logo": "https://kyliecosmetics.com"to the actual logo image URL. One line of Liquid code — five-minute fix with immediate Knowledge Graph benefit. - Enrich Organization schema with
foundingDate: "2015"andfounder: { "@type": "Person", "name": "Kylie Jenner" }to complete the brand entity for Google's Knowledge Graph. - Remove
html2pdf.bundle.min.jsfrom the theme if it is not actively needed — instant 127KB+ reduction in third-party JavaScript payload. - Fix or remove the broken
ipmodal.jsCORS call topro.ip-api.com— eliminate a persistent console error and a failed network request on every page load. - Audit
theme.liquidfor 404-generating script references from previously removed apps and delete all dead asset tags.
Build the Content and SEO Foundation
- Bulk-update all image alt attributes across the theme templates. Product images should follow: "[Product Name] in [Shade] — [Key Benefit]". Navigation thumbnail images should use descriptive category labels. Decorative images should use
role="presentation". - Update the H1 tag on the homepage from the current machine-assembled "Kylie Cosmetics Kylie Jenner Homepage" to a human-readable, brand-aligned headline.
- Write substantive first-person product descriptions (150–300 words) for all products currently missing
body_html— prioritise the Cosmic fragrance line which has zero description text despite being a premium SKU. - Implement Product JSON-LD schema on product templates (name, description, price, availability, AggregateRating from Yotpo data). Shopify's native Product schema output may handle this — verify it is enabled in the theme settings.
- Evaluate BazaarVoice vs. Yotpo syndication capabilities. If Yotpo can syndicate reviews to the same retail partners (Sephora, Ulta, Target), consolidating to one platform could save $36k–$96k annually while reducing JavaScript weight.
- Add visible trust signals to the homepage hero: "Dermatologist-Tested", "Award-Winning", "Clean Beauty" badges visible above the fold — these claims exist in the meta description but are invisible on the page itself.
Become the AI-Cited Authority in Clean Beauty
- Restart the blog with a publishing cadence of 2–4 posts per month. Content should centre on Kylie's genuine first-person perspective: her actual morning routine, how she picks shades for different occasions, what she looks for in a fragrance. Avoid generic "beauty tips" articles — AI systems deprioritise commodity content.
- Create comprehensive "hub" pages for each product category (Lips, Face, Fragrance) that answer the top customer questions in a scannable Q&A format — e.g. "How long does the Lip Kit last?", "What's the difference between Skin Tint and Foundation?", "Is Cosmic safe for sensitive skin?"
- Build a press and awards page documenting editorial coverage, beauty award wins, and independent reviews from Allure, WWD, Vogue, etc. This is a key entity authority signal that AI systems use to determine brand credibility.
- Add cart-level upsell recommendations (powered by Nosto) directly on the cart page when a customer has items — not just in the empty cart state. A "Complete Your Look" or "You Might Also Love" section above the checkout button is one of the highest-ROI CRO implementations for beauty brands.
- Implement a structured Performance Core Web Vitals monitoring program. With 15+ third-party scripts, LCP on mid-range mobile is at risk. Set up Lighthouse CI or SpeedCurve to track CWV per deploy and catch regressions from new app installs before they go live.