Conversion Rate Optimization

Florika

CRO Audit Report  ·  florika-lab.com  ·  September 2026

Overview of Issues

Florika is, structurally, one of the best-built stores we have audited this quarter. The theme is doing almost everything right: an Ajax cart drawer with a free-shipping progress bar and a working upsell, Quick Buy on every product card with the Add to Cart button visible without scrolling, hover image swaps, sticky Add to Cart on both desktop and mobile, ten well-labelled product accordions, breadcrumbs, a complete policy footer, and zero dark patterns. The mechanics of conversion are already in place. That is unusual, and it means the money here is not in rebuilding the store — it is in three specific gaps that are currently suppressing everything the theme is capable of.

The first and largest is trust. Across a 35-product catalogue, exactly one product has reviews — six of them in total. The flagship bestseller, SALAY Essentials Body Oil, publicly displays "Be the first to write a review" alongside a stray "No items found" error string. Judge.me is installed and wired into every product card, but the rating badges render empty on all 24 cards in the collection grid, and no star rating appears under any product title. For a $28–$79 premium skincare brand asking a first-time visitor to put an unfamiliar oil on their face, social proof is not a nice-to-have — it is the single highest-leverage conversion lever available, and right now it is switched off. Compounding it, every image on the site is studio or rendered imagery: there is not one real customer photo, no UGC block, and no social media links anywhere in the footer.

The second is mobile speed. Measured against Google PageSpeed Insights, the desktop experience scores an excellent 96/100 with a 1.3s LCP — but mobile tells a different story: the homepage scores 73/100 with a Largest Contentful Paint of 7.3 seconds, and the product page scores 62/100 with a 4.6s LCP and 560ms of blocking time. Google's threshold is 2.5s. Since the majority of beauty traffic arrives on mobile from paid social, a large share of ad spend is currently paying for sessions that abandon before the hero image finishes painting.

The third is that the store cannot currently market to anyone. There is no Meta Pixel, no TikTok Pixel, and no email marketing platform — only a passive footer newsletter form offering no incentive. That means no retargeting, no lookalike audiences, no ad optimisation, and no abandoned-cart, abandoned-browse or post-purchase review-request flows. Abandoned cart recovery alone typically returns 5–11% of otherwise lost revenue, and the missing review-request flow is precisely what would solve the trust problem above. These three gaps are self-reinforcing, and they are also the cheapest to close.

Beyond those, a set of smaller frictions add up: the header does not stick on scroll, the hero headline is brand poetry rather than a value proposition, the free-shipping threshold sits at $200 against a $28–$32 average product price (the drawer currently tells shoppers to "Add $172.00 more"), mobile body copy renders at 13–15px against a 16px minimum, quick-buy tap targets measure 55×30px against the 44×44px standard, and the payment icon row renders twice on every product page. None of these are structural — most are hours, not days.

The summary: Florika has already paid for the hard part. The store looks and behaves like a premium brand. What it is missing is the evidence that other people have bought and loved the product, a mobile experience fast enough to survive paid traffic, and the marketing infrastructure to bring visitors back. Closing those three is a 57-hour programme — and it is where essentially all of the available upside sits.

10
Critical Issues
19
Warnings
62
Done Right
15
Blocks Audited
Suggestions — Homepage
Homepage · Desktop 1440×900
1. Header & Navigation
Warning
Florika header and navigation, desktop
Issues to Fix
⚠️ Header Is Not Sticky

The header is set to position: static. Measured at a scroll depth of 900px, the header sits at top: -69px and is fully out of view. Once a visitor scrolls past the first screen, navigation, search and the cart icon all disappear — they must scroll back to the top to move anywhere or to check the cart. On a 6,653px-tall homepage with six scrollable product sections, this is a meaningful amount of friction on every single navigation decision.

⏱ Estimated: 2 dev hours

⚠️ Announcement Bar Omits Returns

The bar rotates "Complimentary shipping over $200 · Vegan & cruelty free · Paraben & phthalate free". Shipping and formulation claims are covered, but there is no returns or satisfaction message. For a skincare purchase from an unfamiliar brand, "what if it doesn't suit my skin?" is the primary hesitation — and the announcement bar is the highest-visibility real estate on the site to answer it.

⏱ Estimated: 1 dev hour

What's Done Right
✅ Predictive Search Enabled

A predictive-search component is present and active, so the search field autocompletes as the shopper types rather than requiring a full results page load.

✅ Mega Menu Is Well Structured

The navigation is deliberately restrained: "Shop all" holds 4 links, "Categories" 10, and "About" 3. There is no category overload, and the grouping maps cleanly onto how customers actually shop (by body area and by concern).

✅ Cart & Account Always Reachable

Search, account and cart icons are grouped top-right on every page, and the cart shows a live item-count badge once a product is added.

✅ Strong Contrast Throughout

Dark navigation text on white, white text on the dark announcement bar. All navigation labels and icons are comfortably legible, and the gold logo reads clearly against white.

Homepage · Desktop 1440×900
2. Hero Section & CTA
Warning
Florika homepage hero section
Issues to Fix
⚠️ The Hero Headline Is Brand Poetry, Not a Value Proposition

The H1 reads "The complete ritual, considered in every detail", supported by "Nature never strives for excess. Every ingredient has a purpose." Both lines are beautifully written and both are about mood rather than substance. A first-time visitor arriving from an ad cannot tell from the copy alone what is being sold, who it is for, or why it beats the bottle they already own — the product category is only inferable from the photograph. The 3-second test fails on copy. A benefit-led headline naming the category and the differentiator (clean botanical face & body oils, made in the USA, 20 formulations) would carry the same premium tone while actually qualifying the visitor.

⏱ Estimated: 3 dev hours

What's Done Right
✅ Static Hero — No Auto-Rotating Carousel

Verified: zero slides, no autoplay. A single static hero is the correct choice — it loads faster, holds one focal point, and avoids the well-documented conversion loss of rotating banners.

✅ Two CTAs Above the Fold

"Shop the Collection" (primary, filled) and "Explore the Ranges" (secondary, outlined) both sit above the fold on desktop, with a clear visual hierarchy between them. On mobile the primary CTA remains above the fold.

✅ Premium Visual Hierarchy

The art direction genuinely reads as a luxury beauty brand — considered typography, generous whitespace, warm product photography. The design is not what is holding this store back.

Homepage · Desktop 1440×900
3. Product Cards & Best Sellers
Critical
Florika bestsellers slider with product cards
Issues to Fix
🔴 Rating Badges Render Empty on Every Product Card

Judge.me badge containers are present on 24 of 24 cards in the collection grid — the integration is wired in correctly — but not one of them displays a star rating or review count, because there is no review data behind them. In the bestsellers slider, only "Shave Oil" shows ★★★★☆ 6 reviews; the other bestsellers show nothing at all. The result is worse than having no rating system: an inconsistent row where one product appears validated and the rest appear untested. Star ratings on product cards are among the highest-impact elements in ecommerce merchandising, and here the infrastructure is already built and simply starved of content.

⏱ Estimated: covered by the review programme (Block 9)

⚠️ No UGC or Instagram Gallery

Every image on the homepage is studio or rendered imagery — the category grid, the hero, the product shots. There is no user-generated content block, no shoppable Instagram feed, and no real customer photographs anywhere on the site. In skincare, "what does this look like on a real person" is a purchase-blocking question, and the homepage is the best-performing location for that block.

⏱ Estimated: 4 dev hours

What's Done Right
✅ Bestsellers Placed High

The "Our bestsellers" slider appears at roughly 37% of page height — immediately after the brand standard and category grid, well before the fold-out sections. Two further merchandising rows ("New arrivals", "Sets & rituals") follow.

✅ Conversion Badges on Cards

"BESTSELLER" and "NEW" badges render on product imagery, giving the grid a clear merchandising hierarchy at a glance.

✅ Hover Image Swap Implemented

Cards carry the has-hover-image class with two images each — hovering reveals the secondary packaging shot without a page load.

✅ Quick Buy With a Fully Visible Add to Cart

Every card offers Quick Buy, and we opened the modal to verify it: product image, title, price, size, Shop Pay instalments, an IN STOCK indicator, a quantity stepper, payment icons and three trust points are all present — and critically, the Add to Cart button is visible without scrolling inside the modal. This is the single most common Quick View defect and Florika avoids it.

✅ Social Proof Section Exists

A "What customers say" testimonial slider is built into the homepage, positioned after the product rows and before the FAQ — the right place for it. It only needs real review content to become effective.

Homepage · Desktop 1440×900
4. Footer & Trust Signals
Good
Florika footer with policies and payment icons
Issues to Fix
⚠️ No Social Media Links Anywhere

We found zero links to Instagram, TikTok, Facebook, YouTube or Pinterest in the footer or anywhere else on the site. For a premium beauty brand this is a notable omission on two fronts: it removes the lowest-friction way for an interested-but-not-ready visitor to stay connected, and it removes an important trust signal — shoppers routinely check a beauty brand's social presence before a first order, and finding no link at all reads as a brand with nothing to show.

⏱ Estimated: 1 dev hour

What's Done Right
✅ Complete Policy Coverage

Shipping Policy, Refund Policy, Privacy Policy and Terms of Service are all present and grouped under a clear "TERMS" heading — everything a shopper or a payment processor expects to find.

✅ FAQ and Contact Easy to Locate

Both sit in a dedicated "ABOUT" column alongside the brand story page, and the homepage additionally carries its own FAQ accordion section.

✅ Nine Payment Icons Displayed

American Express, Apple Pay, Diners, Discover, Google Pay, Mastercard, PayPal, Shop Pay and Visa are all shown above the copyright line — a straightforward and effective trust cue.

✅ Newsletter With GDPR Consent

The email capture form includes an explicit "I have read and agree to the Terms & Conditions and Privacy Policy" checkbox — correctly implemented and compliant.

✅ Full Category Navigation in Footer

All eleven collections plus Gift Sets and Sale are linked from the footer, which both helps shoppers who scrolled to the bottom and distributes internal link equity for SEO.

Suggestions — Collection Page
Collection · Desktop 1440×900
5. Collection Page Layout
Warning
Florika collection page with filters and sorting
Issues to Fix
🔴 No Social Proof on Any Collection Card

Not one of the products in the collection grid displays a star rating or review count. The collection page is where the shopper chooses which product to consider, and ratings are the primary comparison signal people use to make that choice. Without them, the decision falls back to packaging and price alone — which flattens the merchandising and pushes shoppers toward the cheapest option rather than the best-reviewed one. Same root cause as Block 9, and it resolves the moment review content exists.

⏱ Estimated: covered by the review programme (Block 9)

⚠️ Filter Options Show No Product Counts

The filter panel offers Concern, Type, Availability and Price, but the individual options do not display how many products each will return. Shoppers then select a filter, discover it returns two products or none, and have to back out — every dead end is an opportunity to abandon. Showing counts inline lets people choose a productive filter first time.

⏱ Estimated: 2 dev hours

⚠️ Collection Description Truncates Mid-Sentence

The SEO description ends "…for skin that feels soft, smooth, and cared for…." — a visible truncation with four trailing dots and no "read more" control to expand it. It reads as a rendering fault rather than a deliberate summary, which undercuts the premium presentation on an otherwise polished page.

⏱ Estimated: 1 dev hour

What's Done Right
✅ Relevant H1 Plus SEO Description

"Hydrate & Restore" with a genuine, well-written intro paragraph naming the ingredients and the benefit — good for both shoppers and search.

✅ Breadcrumbs Present

"Home / Hydrate & Restore" appears above the title, aiding both navigation and SEO.

✅ Genuinely Useful Filters

Concern, Type, Availability and Price — filtering by concern in particular is exactly right for skincare, where people shop by problem rather than by product category.

✅ Eight Sorting Options

Featured, Most relevant, Best selling, A–Z, Z–A, price ascending/descending and date ascending/descending are all available.

✅ Product Count Displayed

"7 products" is shown beside the sort control, so shoppers immediately understand the size of the set they are browsing. Collections are well-sized — no thin or empty collections were found.

Suggestions — Product Page
Product · Desktop 1440×900
6. Product Page — Images & Pricing
Warning
Florika product page gallery and pricing
Issues to Fix
⚠️ No Product Video or Texture Demonstration

The gallery contains 11 images and 8 thumbnails but no video and no 3D model. For oils and serums specifically, texture is the purchase question — how thick is it, does it absorb or sit greasy, how much comes out of the pump, what does it look like on skin. Still photography of a bottle cannot answer any of that. A short texture/application clip in the gallery is one of the highest-return additions available for this product category, and it doubles as paid-social creative.

⏱ Estimated: 6 dev hours

⚠️ Payment Icon Row Renders Twice

Visible in the screenshot above: the full set of payment icons (Amex, Apple Pay, Diners, Discover, Google Pay, Mastercard, PayPal, Shop Pay, Visa) is rendered twice in succession under the Buy with Shop button — once in one icon style, once in another. It appears on the product page and inside the Quick Buy modal. It is purely cosmetic, but on a brand selling a premium-price ritual, a duplicated UI element is exactly the kind of detail that quietly erodes the impression of care.

⏱ Estimated: 1 dev hour

What's Done Right
✅ Rich Gallery With Zoom

11 images with 8 selectable thumbnails and zoom enabled — shoppers can inspect the packaging and label detail closely.

✅ Breadcrumbs on the Product Page

"Home / Bestsellers / SALAY Essentials Body Oil" — helps shoppers reorient and step back to the collection, and strengthens internal linking for SEO.

✅ Title and Price Are Clear and Contrasty

Large serif product title, "$28.00 USD" prominently set, with "4 oz / 118 ml" alongside so the shopper can judge value per volume without hunting for it.

✅ Shop Pay Instalments Surfaced

"Pay over time for orders over $35.00 with Shop" appears directly under the price — correctly positioned to catch shoppers considering a multi-product ritual.

✅ Exactly One H1 Per Page

Verified on both homepage and product page — correct heading structure for SEO.

Product · Desktop 1440×900
7. Product Page — Buy Section & Trust
Good
Florika buy section with Add to Cart, payment icons and trust points
Issues to Fix
⚠️ No Explicit Money-Back Guarantee Beside Add to Cart

The three trust points under the buy button cover ingredients, shipping and ethics — "Premium natural ingredients", "Complimentary shipping over $200", "Vegan & cruelty free · Made in USA". What is missing is the risk-reversal line. A Returns accordion does exist, but it is collapsed far below the fold, so at the exact moment of decision the shopper has no visible answer to "what if this doesn't work for my skin?". A short, explicit guarantee statement in that trust cluster is a small change with outsized effect on first-time skincare purchases.

⏱ Estimated: 2 dev hours

⚠️ Notes on Scarcity & Back-in-Stock — N/A for This Store

We found no sold-out products or variants anywhere during the audit, and the catalogue is fully in stock with a clear IN STOCK indicator on each product. A back-in-stock notifier and a low-stock counter are therefore not applicable here — adding stock-count urgency to a fully stocked catalogue would read as manufactured scarcity and is not recommended.

Not counted as a finding — recorded for completeness.

What's Done Right
✅ Sticky Add to Cart on Desktop AND Mobile

Verified on both viewports: a fixed bar with product thumbnail, name, price and an ADD TO CART button follows the shopper down the page. Many stores implement this on mobile only — Florika does both.

✅ Add to Cart Is Visually Dominant

Full-width black button, high contrast, paired with a secondary "Buy with Shop" express option directly beneath.

✅ Clear Stock Indicator

A green "IN STOCK" pill sits above the quantity selector — simple, honest availability messaging without manufactured urgency.

✅ Trust Icons Under the Buy Button

Three icon-led trust statements plus the full payment icon set are positioned immediately below the purchase controls, exactly where reassurance is needed.

✅ BNPL Available

Shop Pay instalments are live. Note that at a $28 price point we would not recommend adding further BNPL providers — instalments only become meaningful above roughly $100, and this is already handled by Shop Pay for larger ritual baskets.

Product · Desktop 1440×900
8. Product Page — Description & Cross-sell
Good
Florika product description accordions
Issues to Fix

No issues found in this block. This is the strongest-executed section of the product page.

What's Done Right
✅ Ten Well-Labelled Accordions

"Why you'll love it", "Results", "The complex", "Packaging", "How to use", "Key ingredients", "Formulated without", "Shipping", "Returns" and "Made in USA". Technical depth is fully available for the shopper who wants it, without overwhelming the shopper who doesn't — this is textbook progressive disclosure, and unusually thorough.

✅ Cross-sell With a Real Bundle Incentive

"Complete the ritual" presents complementary products as tickable add-ons, including a genuine bundle discount — the Body Renewal Trio shown at $84.00 → $79.00. This is a proper AOV mechanism, not a decorative related-products row.

✅ Second Cross-sell Row Below Reviews

"You may also like" gives shoppers a recovery path if the current product isn't right, rather than leaving the page as a dead end.

✅ No Traffic-Leaking External Links

The only external domain linked from the product page is judge.me (the review platform). No blogs, no social redirects, no third-party content pulling shoppers out of the funnel.

✅ Genuinely Good Product Copy

The description is specific and benefit-led — "deeply nourish, soften and replenish the skin without leaving a heavy or greasy feel", with a direct contrast against mineral-oil and silicone-based alternatives. It answers real objections.

Product · Desktop 1440×900
9. Product Page — Reviews & Social Proof
Critical
Florika product page reviews section showing no reviews
Issues to Fix
🔴 One Product in 35 Has Reviews — Six Reviews Store-Wide

This is the single most valuable finding in the audit. We checked the full catalogue: of 35 products, only "SALAY Essentials Shave Oil" has any reviews, and it has 6. Every other product — including the flagship bestseller, Body Oil — displays "Be the first to write a review". A visitor arriving from an ad, landing on the store's best-selling product, sees a premium $28 oil with zero evidence that a single human being has ever bought it. In beauty, where the product goes on the customer's face and the brand is unfamiliar, this is the dominant conversion blocker. Everything else in this report is secondary to it. The fix is a review-seeding programme: import any existing reviews, configure Judge.me's automated post-delivery request flow, and run a review-generation campaign against the existing customer base.

⏱ Estimated: 16 dev hours

🔴 No Star Rating Under the Product Title

Even on Shave Oil — the one product that does have 6 reviews — no star rating or review count appears beneath the product name in the buy box. The rating exists only far down the page in the Judge.me widget. Best practice is a clickable star rating directly under the title that anchors to the reviews section, so that social proof is part of the first impression rather than a discovery the shopper has to scroll for. Worth implementing alongside the review programme so the content has somewhere prominent to surface.

⏱ Estimated: 5 dev hours

⚠️ "No items found" Error String Visible to Shoppers

Directly beneath "Be the first to write a review" and the WRITE A REVIEW button, the product page publicly renders the string "No items found" (visible in the screenshot above). It is an un-styled empty-state message leaking into the storefront, and it makes the page look broken rather than merely new. Quick fix, disproportionate impact on perceived quality.

⏱ Estimated: 1 dev hour

What's Done Right
✅ Judge.me Is Already Installed and Wired In

The review platform is live, the WRITE A REVIEW flow works, badge containers are correctly rendered on all 24 collection cards, and the submission form captures product context. The infrastructure is finished — it needs content, not development. That materially lowers the cost of fixing the critical issue above.

✅ Homepage Testimonial Slider Built

A "What customers say" section already exists on the homepage with the correct placement and framing ("Real words from people who use Florika every day"), ready to populate.

Suggestions — Shopping Cart
Cart · Desktop 1440×900 · Product added before testing
10. Shopping Cart
Warning
Florika cart drawer with shipping progress bar and upsell
Issues to Fix
⚠️ Free Shipping Threshold Is Unreachable — $200 Against a $28 Product

With one Body Oil in the cart, the drawer reads "Add $172.00 more for complimentary shipping" and the progress bar sits at roughly 14%. Products are priced $28–$32, with gift trios at $79 — so reaching $200 means buying six or seven items. A threshold that far above the natural basket size inverts the mechanic: instead of nudging a shopper to add one more product, it tells them free shipping is not realistically available, and the progress bar becomes a reminder of how far away it is. The standard calibration is roughly 1.3–1.8× average order value; for this catalogue that suggests somewhere in the $75–$95 range, which is genuinely reachable by adding a second oil or a serum — precisely the behaviour worth incentivising.

⏱ Estimated: 2 dev hours

⚠️ No Trust Badges Inside the Cart Drawer

The /cart page carries the full nine payment icons, but the Ajax drawer — which is what shoppers actually see, since adding to cart opens the drawer rather than navigating — carries none. There are no payment icons, no secure-checkout marker and no guarantee line anywhere between the cart total and the CHECK OUT button. The drawer is the final step before handing over card details and is the highest-anxiety moment in the funnel; it should carry at least the same reassurance as the page it replaced.

⏱ Estimated: 2 dev hours

What's Done Right
✅ Ajax Cart Drawer

Adding to cart slides open a drawer rather than forcing a page navigation — the shopper never loses their place in the catalogue.

✅ Free Shipping Progress Bar Present

The mechanic itself is correctly built with a live remaining-amount message and a visual progress bar. Only the threshold value needs recalibrating.

✅ Cart Upsell That Actually Works

"COMPLETE THE RITUAL" presents three relevant complementary products with prices and one-click ADD buttons directly inside the drawer — a genuine AOV driver in exactly the right place.

✅ Large Thumbnails and One-Click Quantity Control

Generous product imagery, a clear +/− quantity stepper, and a dedicated trash icon to remove an item outright — no fiddly quantity-to-zero workaround.

✅ Total Clearly Shown Before Checkout

"Estimated total $28.00 USD" sits directly above the CHECK OUT button, with an honest "Taxes, discounts and shipping calculated at checkout" note beneath it.

✅ Promo Field Correctly Deferred to Checkout

There is no discount-code box in the drawer — the right call, since an empty promo field prompts shoppers to leave and hunt for a coupon.

✅ Prominent Checkout Button

Full-width, high-contrast CHECK OUT anchored at the bottom of the drawer and always visible.

Suggestions — Mobile Experience
Homepage · Mobile 390×844
11. Mobile — Homepage & Navigation
Warning
Florika mobile homepage
Issues to Fix
⚠️ Body Text Renders Below the 16px Minimum

Measured on a 390px viewport: body font-size is 15px and paragraph text renders at 13px. The accepted mobile minimum is 16px — below it, readability drops sharply, and on iOS sub-16px inputs additionally trigger an automatic zoom on focus. For a brand whose product descriptions carry real persuasive weight (ingredients, benefits, how-to-use), 13px body copy means much of that carefully written argument goes unread on the device where most of the traffic arrives.

⏱ Estimated: 3 dev hours

⚠️ Quick-Buy Tap Targets Measure 55×30px

The "Add to cart" controls on mobile product cards measure 55×30px against the 44×44px accessibility and usability standard — 30px of height is roughly two thirds of a comfortable thumb target. Several other interactive elements also fell below the threshold in testing. Undersized tap targets on the primary purchase action produce mis-taps and silent abandonment.

⏱ Estimated: 2 dev hours

What's Done Right
✅ Clean Hamburger Navigation

A standard hamburger menu with the logo centred and search/cart icons right-aligned — conventional, uncluttered and immediately understood.

✅ No Horizontal Overflow

Measured body scroll width is exactly 390px against a 390px viewport — nothing bleeds off-screen and there is no accidental sideways scrolling.

✅ No Screen-Blocking Popups

No full-screen interstitial fires on mobile arrival. The cookie notice is a slim bottom bar that does not obscure content.

✅ Primary CTA Above the Fold

"SHOP THE COLLECTION" remains visible within the first screen on a 390×844 viewport, below the hero image and headline.

Product · Mobile 390×844
12. Mobile — Product Page
Good
Florika mobile product page with sticky add to cart bar
Issues to Fix

No issues found in this block — the mobile product page is well executed. (Mobile typography and tap-target sizing are covered in Block 11, and mobile page speed in Block 13.)

What's Done Right
✅ Sticky Add to Cart Bar on Mobile

Verified at scroll depth: a fixed bottom bar carries the product thumbnail, name, "$28.00 USD" and an ADD TO CART button. The purchase action is never more than one tap away regardless of how far the shopper has scrolled — this is the highest-impact mobile PDP feature and it is correctly implemented.

✅ Swipeable Product Gallery

The media gallery supports native swipe navigation rather than requiring precise thumbnail taps.

✅ Numeric Keyboard for Quantity

The quantity field is type="number", so mobile devices present the numeric keypad instead of the full QWERTY keyboard.

✅ Cross-sell and Description Adapt Cleanly

The "Complete the ritual" bundle selector — including the $84 → $79 trio discount — and the full description accordions reflow correctly to a single column with no layout breakage.

Suggestions — Technical & Marketing
Homepage & Product · Google PageSpeed Insights (Lighthouse)
13. Speed & Technical
Critical
Home · Mobile
73/100
Home · Mobile LCP
7.3s
Product · Mobile
62/100
Product · Mobile LCP
4.6s
Home · Desktop
96/100
Desktop LCP
1.3s
Issues to Fix
🔴 Homepage Mobile LCP Is 7.3 Seconds

Measured via Google PageSpeed Insights: mobile Performance 73/100, First Contentful Paint 2.1s, Largest Contentful Paint 7.3s, Speed Index 3.1s. Google's "good" threshold for LCP is 2.5s — this is nearly three times over. Notably, Total Blocking Time is 0ms, which tells us the cause is not JavaScript execution: it is the large hero image being fetched and painted, unoptimised for mobile bandwidth. That makes it a tractable fix — responsive srcset sizing so phones receive a phone-sized asset, a preload hint on the hero, modern format delivery (WebP/AVIF) and explicit priority hints. Since paid social traffic lands on mobile, this delay is currently being paid for with ad budget.

⏱ Estimated: 8 dev hours

🔴 Product Page Mobile Scores 62/100 With 560ms Blocking Time

The product page measures mobile Performance 62/100, FCP 2.7s, LCP 4.6s, Total Blocking Time 560ms and Speed Index 4.6s. Unlike the homepage, here JavaScript is a factor — 560ms of blocking time means the page is visibly unresponsive to taps while scripts execute, on the exact page where the Add to Cart decision is made. Deferring non-critical scripts, lazy-loading the review widget and the cross-sell sliders until they approach the viewport, and trimming unused JS should bring this comfortably into the 80s.

⏱ Estimated: 6 dev hours

⚠️ 264 Requests and 142 JavaScript Files on the Homepage

In-browser measurement recorded 264 network requests, 142 JavaScript files and 85 <script src> tags on the homepage. Third-party domains are minimal (only cdn.shopify.com and shop.app), so this is theme and app weight rather than external trackers — which makes it auditable and reducible. Consolidating bundles and removing scripts belonging to uninstalled or unused apps is the usual path to a meaningful reduction.

⏱ Estimated: 4 dev hours

What's Done Right
✅ Desktop Performance Is Excellent

96/100 with FCP 0.6s, LCP 1.3s, TBT 0ms and Speed Index 0.7s. The underlying build is fast — the problem is specifically mobile asset delivery, not the theme's architecture.

✅ Layout Stability Is Near-Perfect

Cumulative Layout Shift measures 0.022 on mobile and 0.001 on desktop, both far inside Google's 0.1 "good" threshold. Nothing jumps as the page loads — image dimensions are correctly reserved.

✅ Lazy Loading Correctly Applied

47 of 50 homepage images carry loading="lazy", with the above-the-fold images correctly excluded.

✅ Clean Heading Structure

Exactly one H1 per page with a sensible H2 hierarchy beneath it across homepage, collection and product templates.

✅ Minimal Third-Party Script Load

Only two external script domains were detected. The store is not weighed down by accumulated tracking and app scripts — a common and much harder problem that Florika does not have.

Homepage · Desktop 1440×900
14. Marketing — Popups & Email Capture
Critical
Florika footer newsletter signup form
Issues to Fix
🔴 No Email Capture Popup and No Welcome Offer

We tested for both a timed/scroll popup and an exit-intent trigger — neither fires. The only email capture on the entire site is the passive footer form, and it offers no incentive: "Subscribe to our emails — New formulations, restocks and quiet notes on skin." Beautifully written, but it asks the visitor to give something and offers nothing in return. Since roughly 97–98% of first-time visitors leave without buying, and this store has no retargeting pixels either (see Block 15), that traffic is currently unrecoverable — once they leave, there is no way to reach them again. A welcome offer popup with a genuine incentive plus an exit-intent fallback is the cheapest recovery mechanism available and directly feeds the email flows in Block 15.

⏱ Estimated: 5 dev hours

⚠️ No Live Chat or AI Assistant

Verified two ways — no chat widget matched in the DOM, and no chat bubble is visible in the bottom-right corner of any screenshot taken during the audit. Skincare generates a consistent stream of pre-purchase questions (suitability for sensitive skin, pregnancy safety, ingredient interactions, which oil for which concern). With no chat and no visible support path beyond a contact form, those questions convert into abandonment rather than into sales.

⏱ Estimated: 3 dev hours

⚠️ No Loyalty or Rewards Programme

Skincare is a genuinely consumable category — a 4oz body oil is finished and rebought on a predictable cycle — which makes it one of the best-suited categories for points-based loyalty. No loyalty mechanism is present, so there is currently no structural incentive for a second order.

⏱ Estimated: 6 dev hours

⚠️ No Refer-a-Friend Mechanism

No referral widget or programme was found. Beauty is one of the most word-of-mouth-driven categories there is, and referral is the natural companion to the review programme in Block 9 — both convert existing satisfied customers into new-customer acquisition.

⏱ Estimated: 4 dev hours

What's Done Right
✅ Zero Dark Patterns

No countdown timers, no fake stock counters, no manufactured urgency of any kind was found anywhere on the site. Many stores in this category lean heavily on artificial scarcity; Florika's restraint is consistent with its premium positioning and builds rather than erodes trust.

✅ Newsletter Form With Proper Consent

The footer capture form is correctly built with an explicit GDPR consent checkbox linking to Terms and Privacy Policy. The mechanism is compliant and functional — it needs an incentive and a popup surface, not a rebuild.

Sitewide · Tracking & automation audit
15. Marketing — Email Automations & Pixels
Critical
Issues to Fix
🔴 No Meta Pixel Installed

We scanned the rendered page source for fbevents.js and connect.facebook.net — neither is present. Without the Meta Pixel the store cannot retarget visitors on Facebook or Instagram, cannot build lookalike audiences from purchasers, and cannot give Meta's algorithm the conversion signal it needs to optimise delivery. For a visually-driven beauty brand, Instagram is the primary paid channel, and running it without a pixel means paying full price for traffic that can never be re-reached. Install the pixel together with the Conversions API for iOS-resilient tracking.

⏱ Estimated: 3 dev hours

🔴 No TikTok Pixel Installed

No analytics.tiktok.com or ttq.load reference was found. TikTok is currently the single largest discovery channel in skincare, and the store carries no measurement or retargeting capability there at all. Even if TikTok advertising is not yet active, installing the pixel now begins accumulating audience data for when it is.

⏱ Estimated: 2 dev hours

🔴 No Email Platform — No Abandoned Cart, Browse or Review Flows

No Klaviyo, Omnisend or comparable platform was detected; email capture terminates in Shopify's basic list with no automation layer behind it. That means three revenue mechanisms are entirely absent: abandoned cart recovery (typically recovers 5–11% of otherwise lost orders, and this store has a working cart drawer generating exactly those abandonment events), abandoned browse (re-engaging shoppers who viewed a product but never added it), and automated post-delivery review requests — which is the mechanism that would solve the critical review shortage in Block 9. Judge.me is already installed and supports this, but without an email platform driving the sequence it stays dormant. This one item quietly unlocks several others.

⏱ Estimated: 12 dev hours

What's Done Right
✅ GA4 Is Installed

Google Analytics 4 is present and loading, so baseline traffic, behaviour and funnel reporting is being captured — the measurement foundation exists to evaluate every change in this report against real data.

✅ Shopify Native Analytics Active

Shopify's own analytics layer is running, providing order, product and conversion reporting out of the box.

✅ Judge.me Already in Place for Review Automation

The review platform needed for automated post-purchase review requests is installed and configured on the storefront. When the email platform is added, the review-request flow can be switched on immediately rather than requiring a separate integration — a meaningful head start on the largest issue in this audit.

Implementation Estimate — Time & Fixed Price

Average dev hours and a fixed price at $40/hour. Suggested order: Critical → Medium → Low.

🔴 Critical Priority — Must Fix
Direct revenue impact. Start here for the biggest wins.
BlockTaskHours (avg)Fixed Price
9Review seeding programme — import existing reviews, configure Judge.me request flow, run review campaign across catalogue16$640
9Star rating + review count under product title, on cards and collection grid5$200
15Email platform setup (Klaviyo) + abandoned cart, abandoned browse & post-purchase review flows12$480
13Homepage mobile LCP fix — hero srcset, preload, WebP/AVIF delivery, priority hints8$320
13Product page mobile speed — defer non-critical JS, lazy-load review & cross-sell widgets (560ms TBT)6$240
14Email capture popup — welcome offer + exit-intent fallback5$200
15Meta Pixel + Conversions API installation3$120
15TikTok Pixel installation2$80
Subtotal — Critical57 hrs$2,280
⚠️ Medium Priority — Should Fix
UX friction. Tackle after Critical to compound the gains.
BlockTaskHours (avg)Fixed Price
6Product video / texture demonstration in PDP gallery6$240
13Script audit — consolidate 142 JS files / 85 script tags4$160
2Hero UVP rewrite — benefit-led headline & subhead3$120
11Mobile typography — body to 16px, paragraph scale correction3$120
14Live chat / AI assistant setup3$120
1Sticky header on scroll2$80
7Money-back guarantee badge in trust cluster under Add to Cart2$80
10Free shipping threshold recalibration ($200 → ~$85) + drawer messaging2$80
10Trust badges & secure-checkout markers in cart drawer2$80
11Mobile tap targets raised to 44×44px minimum2$80
Subtotal — Medium29 hrs$1,160
🟢 Low Priority — Nice to Have
Polish & long-term wins. Optional, no direct revenue gate.
BlockTaskHours (avg)Fixed Price
14Loyalty / rewards programme setup6$240
3UGC / Instagram gallery block on homepage4$160
14Refer-a-friend widget4$160
5Product counts displayed in filter options2$80
4Social media links in footer1$40
1Returns / guarantee message added to announcement bar rotation1$40
5Collection description read-more (fix mid-sentence truncation)1$40
6Fix duplicated payment icon row on PDP & Quick Buy modal1$40
9Remove "No items found" empty-state string from reviews block1$40
Subtotal — Low21 hrs$840
Total Estimated
107 hrs · $4,280 fixed

* Hours are averages and the price is fixed at $40/hour, for development implementation only. Content creation (product videos, photography, review copy) and third-party subscription costs (Klaviyo, loyalty apps, live chat) are not included. Suggested order: Critical → Medium → Low.

Proven Results — Our Approach in Action

Stores on our CRO approach grew Total Sales +19%

The fixes in this report aren't theory — they're the same conversion levers we implement for the stores we work with. Here's the Total Sales curve from a store running our approach versus the previous period:

Total Sales over time — up 19% with our CRO approach

Total Sales over the period: $168,636+19% vs the prior period. Solid line = current (our approach), dotted = before.