Dormeo USA
Audit Overview
Your store's untapped revenue potential — and how to unlock it
Why We Created This Audit
We analyzed https://dormeousa.com the same way we've audited 350+ e-commerce stores — looking for the specific gaps between your current experience and what top-performing Home & Living stores deliver. Every finding in this report is a revenue opportunity backed by industry data and competitive benchmarks.
What We Analyzed
- UX & Conversion Design8 findings
- Performance & Speedvs 4 competitors
- Technology & App StackPlatform + 13 apps
- Industry BenchmarksHome & Living
Pages Analyzed
- Homepage1 findings
- Collection Pages2 findings
- Product Pages (PDP)3 findings
- Cart & Checkout2 findings
This audit was prepared by Growisto — a CRO-led Website development team behind 167% conversion growth for Atomberg, 46% CR lift for TyresNmore, and 350+ e-commerce projects.
Performance & Technology
Speed benchmarks, Core Web Vitals, and technology assessment for Dormeo USA
Mobile PageSpeed Score
Mobile lab performance is the weakest in the peer set (28/100). Lab LCP of 21.9s and 3,437ms of main-thread blocking point to heavy third-party JavaScript rather than image weight — layout stability is already perfect (CLS 0).
Competitive Comparison
Benchmarked against 4 leading Home & Living stores in your market
| Store | Mobile Score | Desktop Score | Mobile LCP | Mobile CLS | Mobile TBT |
|---|---|---|---|---|---|
| Dormeo USA (Client) | 28 | 36 | 21.9s | 0 | 3,437ms |
| Casper | 51 | 43 | 5.5s | 0 | 762ms |
| Purple | 40 | 45 | 5.6s | 0.004 | 2,594ms |
| Tempur-Pedic | 38 | 42 | 10.9s | 0 | 1,274ms |
| Saatva | 32 | 53 | 20.9s | 0.012 | 1,694ms |
Core Web Vitals — Google's UX Quality Signals
Sites failing Core Web Vitals may rank lower in Google mobile search results
LCP How fast content appears
FCP First visual response
TBT Main thread blocking
CLS Visual stability
INP Tap/click responsiveness
What This Means for Revenue
Dormeo USA scores 28/100 on mobile and 36/100 on desktop in Lighthouse lab tests — last in a peer set where Casper leads at 51, Purple 40, Tempur-Pedic 38 and Saatva 32. The silver lining: CrUX field data from real Chrome users tells a much softer story than the lab test — mobile LCP is 3.9s and FCP 2.5s (both 'needs improvement' rather than failing), CLS is a perfect 0, and TTFB is fast at 526ms, which suggests the lab run hits a worst-case cold-cache scenario while returning visitors benefit from caching. Two things still deserve attention: interaction responsiveness (INP 262ms in the field, above the 200ms bar) and 3,437ms of main-thread blocking time, both of which point at third-party script weight rather than page design. And because every competitor in this set also sits under 51 on mobile, this is an industry-wide mobile performance gap — which makes it an opportunity to leapfrog rather than a race to catch up.
Technology Stack
Platform
Shopify
Shopify-hosted storefront (dormeo-na.myshopify.com behind the www.dormeousa.com custom domain) — auto-scaling, PCI-compliant, 99.99% uptime SLA, running the OS 2.0 theme architecture.
Theme
Impact
- Type: Shopify Theme Store premium theme, OS 2.0 (internal build handle '216-a11y', schema v6.2.0)
- Impact theme v6.2.0 (Shopify Theme Store, theme_store_id 1190)
- Uses a single embedded 'featured-product' section as the homepage buy-box instead of a multi-product tile grid (see HP-05 finding).
Checkout & Payments
Native Shopify Checkout via Shopify Payments (inferred from footer card logos; not confirmed via admin access)
- Guest checkout is available via the native Shopify checkout — no checkout-override app (e.g. Shopflo/GoKwik) was detected in the script payload.
- No Shop Pay / Apple Pay / Google Pay dynamic checkout button was found on the tested PDP or cart, despite Apple Pay and Google Pay icons being listed in the footer's 'We accept' row (see PDP-06 finding).
- Visa, Mastercard, Amex, Discover, Diners, PayPal, Shop Pay, Apple Pay, Google Pay, Amazon Pay — all listed in the site footer 'We accept' row.
Technology Assessment
Dormeo USA runs on a modern Shopify storefront using the Impact premium theme (OS 2.0). The platform and checkout foundation are solid — native Shopify checkout, no risky checkout-override app, responsive image delivery. The technical debt is concentrated in third-party integrations: a Rebuy cross-sell script that throws 'ReferenceError: Rebuy is not defined' on both the PDP and cart, a PayTomorrow financing widget blocked by a CORS policy and a certificate mismatch, and a Fenix Commerce delivery-estimate call blocked by CORS — three separately-purchased apps that are installed but not functioning, each silently failing with no error shown to the shopper. The storefront also sits behind a Cloudflare WAF tuned aggressively enough to rate-limit rapid automated browsing, which is worth a look independent of this audit's findings.
UX & Conversion Findings
Page-by-page analysis with visual comparisons against top Home & Living stores
- The homepage's only shoppable element is a single embedded 'featured-product' widget for The Premium Mattress Topper (image carousel, price, size selector, Add To Cart) — confirmed via DOM inspection (a Shopify featured-product section, not a repeating product-tile grid).
- Below that widget, the other 5 product lines (S+ Mattress, Recovery 11" and Recovery Firm 11" Mattress, Revive 13" Mattress, Curve 15" Mattress, The Essentials Topper, Topper Accessories) appear only as plain text links in the footer nav — no image, no price, no Add to Cart.
- The screenshot shows the homepage's 3 category cards (Octaspring Mattresses / Mattress Toppers / Accessories) that sit above the single buy-box widget — these are category-level links, not product tiles, and carry no price or cart action either.
- A shopper who wants anything other than the one featured topper must tap through to a collection or PDP before they can buy — the homepage does not merchandise the rest of the catalog as purchasable tiles.
- The theme already ships the exact component this needs: collection-page product cards carry a circular quick-add cart icon (visible on both Mattress Topper cards), so a homepage bestseller grid with Add to Cart is a re-use of an existing card component, not new development.
- The proposed grid is drawn with live catalog figures, not placeholders: The Premium Mattress Topper $299.00 (was $427.99), The Essentials Mattress Topper $183.99 (was $282.99), The Dormeo Dark Pillow $89.99 (was $129.99) and the S+ Mattress $1,599.00 (was $2,285.99) — the four products a bestseller row would most plausibly carry.
- Re-use the collection-page product card (which already has the quick-add cart icon) in a 3-4 tile bestseller grid on the homepage, rather than building a new component.
- Add a 'Shop Our Bestsellers' tile row below the hero showing 4 products (Dark Pillow, Essentials Topper, S+ Mattress, an accessory) each with image, price, and a quick-add button — mirroring the same quick-buy pattern already used on the collection page cards.
- Reuse the existing 'product-card__quick-buy' component from the collection template so no new UI pattern needs to be built.
- Keep the current single-product featured widget as the hero, but position the new tile row directly beneath it so first-time visitors see the full range, not just the topper.
- The screenshot shows the '2 products' heading dropping straight into the product grid — there is no sort dropdown or filter UI anywhere on the page (confirmed via DOM query: zero elements matching filter/facet/sort selectors).
- With the collection actually holding only 2 merchandised SKUs today, a filter bar's near-term value is lower, but the underlying product feed contains 18+ topper listings/variants at different promo prices — the collection page has no mechanism to expose or filter that broader range even if it were merchandised.
- Both product-card price displays include a compare-at price and rating, so the theme already renders the data a filter would sort by (price, rating) — the missing piece is purely the filter control itself.
- Add a lightweight filter/sort bar above the grid with at minimum a price-range and a 'Best Rated' sort, using the theme's existing facet component (already installed on other collections per the theme's Impact/OS2.0 filter block).
- If the topper catalog stays at 2 SKUs, repurpose the filter bar space for a 'Compare Premium vs Essentials' toggle instead — but as soon as a 3rd topper or bundle is added, ship the standard filter bar first.
- Surface a Sort control (Price, Rating, Newest) at minimum, since that requires no new facet data — it can ship independently of full filtering.
- The collection frame shows both product cards (The Premium Mattress Topper at From $299.00, was $427.99; The Essentials at From $197.99, was $282.99) and then the grid simply stops — the next thing on the page is a '$20 Off' promo badge, a BIG INNOVATION 2019 award seal and a 'Discover the Best Mattress Toppers' editorial heading, with no further products, no category cards and no recommendation module.
- The public product feed carries 18+ topper listings — including Premium and Essentials variants at a range of price points — so the catalog breadth exists; it simply is not exposed anywhere a shopper can browse it.
- The two cards already carry star ratings (4.8 and 4.9) and a quick-add cart icon, so the card component is doing its job — the gap is how few of them there are and what follows them.
- Casper's mattress collection does the opposite: a category nav bar (Foams / Hybrids / Maxes / Take the Quiz / Compare) sits above stacked collection cards, each with From-pricing, a savings badge and its own sub-products — so there is always a next step to browse.
- Merchandise the existing topper variants as visible cards in this collection instead of leaving them reachable only by direct URL — the products, imagery and pricing already exist in the catalog.
- Add a 'Complete Your Sleep Set' strip directly below the grid, cross-selling the Dark Pillow and a mattress model to topper shoppers, so the page ends on a shopping step rather than an award badge.
- Introduce a light category/browse layer (by thickness, by feel, by size) once more than a handful of products are exposed — this is what Casper's Foams / Hybrids / Maxes nav does.
- Live DOM check at scrollY=1600 on the Dark Pillow PDP (390x844 mobile viewport) found zero fixed-position elements anchored to the bottom of the screen — confirmed by querying every element for computed position:fixed with a bottom edge at the viewport floor.
- The screenshot at that same scroll depth shows the 'Smart Zoning' content section with no purchase CTA anywhere in frame — the inline Add to Cart button (captured higher up the page) is completely out of reach.
- This is a $89.99–$99.99 product (Queen/King) reviewed favorably (Junip: 5.0★, 19 reviews) — the page has strong purchase intent signals but no persistent way to act on them once scrolled.
- Add a fixed bottom bar (product thumbnail, price, one Add to Cart button) that appears once the shopper scrolls past the inline buy box, matching the 'PDP-04' toggle behavior (hide the sticky bar again when the inline button is back in view).
- Carry the currently-selected size into the sticky bar so tapping it doesn't require re-selecting a variant.
- Reuse the existing 'safe-sticky' custom element already present in this theme's product-info markup — it may already support this behavior and only need enabling.
- The screenshot shows the quantity selector and a single 'Add To Cart' button — no second CTA (Buy Now / Shop Pay / accelerated checkout) is present beside or below it.
- Live DOM query for buttons/links matching 'add to cart', 'buy now', or 'buy it now' across the full PDP returned exactly one match: the Add To Cart button.
- No Shop Pay, Apple Pay, or Google Pay express button was found either, despite payment icons for Apple Pay and Google Pay appearing in the site's footer 'We accept' row — those express rails are not wired into the PDP purchase flow.
- The proposed buy box uses this PDP's own live figures — The Dormeo Dark Pillow, Queen, $89.99 (was $129.99), carrying its Junip rating of 5.0 from 19 reviews — with the express button added beneath the existing Add To Cart, not replacing it.
- Add a Shopify-native dynamic checkout button (Shop Pay/Apple Pay/Google Pay) directly beneath the Add to Cart button — this is a native Shopify theme setting in most OS 2.0 themes and does not require custom development.
- For shoppers who prefer card checkout, keep a single-item 'Buy It Now' link as a secondary, lower-emphasis action rather than a second same-weight button, to avoid CTA competition.
- Test placement so the second CTA doesn't add another few hundred pixels above the fold — stack it directly under Add to Cart, not in a separate section.
- The screenshot shows the trust-badge row directly under Add to Cart: 'Free Shipping from Atlanta, GA', 'Free Returns', 'Try Before You Buy!' — none of the three states an actual delivery window ('arrives in X days', 'order by Y for weekend delivery', etc.).
- Console inspection during this audit found the site loads a Fenix Commerce delivery-estimate widget (api-002.delest.fenixcommerce.com) — but its API call is blocked by a CORS policy error, so even the infrastructure meant to answer 'when will this arrive' never renders on the page.
- This is the same Fenix Commerce integration that also powers the site's geo-location cookie, so the delivery-estimate failure is a configuration issue on an already-installed app, not a missing feature that needs to be built from scratch.
- Fix the CORS configuration on the Fenix Commerce delivery-estimate endpoint (api-002.delest.fenixcommerce.com) so the widget that is already integrated actually renders — this is a bug fix, not new development.
- Once working, place the estimated delivery date directly in the trust-badge row (e.g. replace or augment 'Free Shipping from Atlanta, GA' with 'Arrives by [date]') so it sits within the existing above-the-fold trust strip.
- Add a static fallback estimate ('Ships within 1-2 business days') for the window while the dynamic widget is being fixed, so shoppers aren't left with zero delivery information in the meantime.
- The screenshot shows the Subtotal/Total/Checkout block flowing directly into payment-method icons and generic trust cards ('Free shipping + Free Returns', 'Outstanding Service') — no product recommendations anywhere on the /cart page.
- DOM inspection found a 'cart-drawer__recommendations' module with a 'Trending this month' carousel already built into the theme — but it lives inside the hidden
overlay (visibility:hidden), not on the standalone /cart page. The header cart icon on this theme links straight to /cart (not the drawer), so most cart visits never see that carousel. - The site also has Rebuy (a dedicated upsell/cross-sell app) loaded on this page, but its script throws 'ReferenceError: Rebuy is not defined' in the browser console — the cross-sell engine that could power this module is already installed and paid for, but not functioning.
- Port the existing 'Trending this month' cart-drawer recommendation module onto the standalone /cart page template — the component and its content already exist, it just isn't rendered there.
- Fix the Rebuy integration ('Rebuy is not defined' console error) so its recommendation engine can drive that module with real cross-sell logic instead of a static carousel.
- Prioritize pillow and topper cross-sells for mattress-only carts, and vice versa, since these are natural attach-rate pairs for this catalog.
- The screenshot shows both line items (Dark Pillow, Premium Mattress Topper) with a bare editable number field next to a 'Remove' link — no visible + or - buttons on either item.
- DOM inspection confirms the field is a plain '' with no adjacent stepper controls in the markup — the only other action available per line item is 'Remove', which deletes it entirely rather than decrementing.
- On a touch device, editing a bare text field to change quantity requires tapping in, clearing the value, and typing a new number — meaningfully more friction than tapping a + button, especially for a two-handed mobile checkout flow.
- Add + and - buttons flanking the existing quantity input on each line item, matching the standard Shopify 'quantity selector' component already used elsewhere in the theme (the PDP itself has one).
- Keep the text input editable for shoppers who want to jump straight to a specific quantity, but make the steppers the primary, most discoverable control.
- Ensure the steppers trigger the same live subtotal recalculation the current text-field input already does, so no new AJAX logic is needed — only the UI control changes.
App Ecosystem
What's installed vs what's missing from best-in-class Home & Living stores
Detected
Missing
Present (13)
Missing (3)
App Stack Assessment
Dormeo USA has a wide app footprint covering reviews (Junip, Trustpilot, BBB), email/SMS (Klaviyo), chat (Gorgias), popups (Poptin), A/B testing (Shoplift), and two separate financing paths (Affirm, PayTomorrow) — on paper, a mature stack for its size. In practice, three of the highest-leverage integrations are silently broken: Rebuy (cross-sell) throws a console error on every page it loads, PayTomorrow (financing) fails its eligibility check due to a CORS/certificate misconfiguration, and Fenix Commerce (delivery estimates) fails the same way. None of these show an error to the shopper — they simply don't render, which is why they surface in this audit as 'missing' features (PDP-07, CART-01) even though the underlying apps are already paid for and installed. Fixing the three broken integrations would likely close several of this audit's findings without any new app spend.
Confidential — Prepared for Dormeo USA by Growisto | August 2026