Beautiful Curly Me UX Audit
UX & Product Architecture Audit

Beautiful Curly Mehas a storefront problem, not a traffic problem.

GMA, Forbes, TIME, TED, Kelly Clarkson and a nationwide Target launch send people to beautifulcurlyme.com. This is a page-by-page account of what happens to them when they arrive — and the layout and product structure that would convert them instead.

Site beautifulcurlyme.com Theme Impulse 9.2.0 Audited 5 Sep 2026 Viewports 1440×900 · 375×812 Scope 46 products · 55 collections · 12 templates
14.9phone screens
to read one product page
0of 55 collections
have any description
237dead currency links
in the footer, every page
10press logos rendering
at opacity 0
9products per page
across a 40-product grid
1filter on the whole
catalogue: availability
00

The one sentence version

Beautiful Curly Me sells a considered, emotional gift — a doll a parent buys because they want their daughter to see herself. That purchase needs a category to browse, a reason to trust, and a product page that answers questions in the order a parent asks them.

The storefront is built for a different job. It is organised around campaigns rather than categories: 55 collections for 46 products, none of them described, most of them expired promotions no one can navigate to. The homepage opens with a flat sale image instead of a product. The browse grid shows nine items at a time with no filters and no ratings. The product page runs to fifteen phone screens and puts Add to Cart below the fold.

None of this is a traffic problem or a brand problem. Every asset the brand needs to convert — 191 five-star reviews, national press, a founder story, a donation programme with real numbers — is already on the site and structurally hidden. Ten press logos are literally invisible. The 4.9 rating never appears on a single product card. The fix is architecture and layout, not more content.

How to read this document

Every finding is tied to a screenshot or a measured figure taken from the live site on 5 September 2026. Findings are coded by area — IA information architecture, PA product architecture, HP homepage, BR browse, PD product page, SL secondary business lines — and graded critical high medium. Sections 08–10 turn the findings into a proposed information architecture, a product taxonomy, and layout wireframes. Capture notes are at the foot of the page.

01

Information architecture

Five top-level slots, 77 links in the header, 254 in the footer. The menu is a list of everything the business does, arranged by internal department rather than by what a visitor came to do.

Beautiful Curly Me desktop header: logo centred, with Shop, About Us, Connect With Us, Customer Reviews and Find us in Store.
Fig 1.1 · desktop 1440The five top-level slots. Two of them lead away from a purchase — “Customer Reviews” is a testimonial page, and “Find us in Store” sends a ready buyer to Target. Neither Gift-A-Doll, wholesale, nor the schools programme has a top-level home.

Tree scrolls sideways

Shop → /collections/all Dolls → /collections/blackdolls Dolls → /collections/blackdolls ← same URL as parent Doll Bundles → /collections/doll-bundles Doll Clothing & Accessories → /collections/doll-clothing-accessories GIFT-A-DOLL: Donate a Doll… → /products/giftadoll ← a product, inside a category Books & Puzzles → /collections/booksandpuzzles ← 10 items… Books by Zoe → /collections/books ← …but its child has 13 Puzzles → /collections/puzzles Bundles → /collections/giftsets Gift Sets and Bundles → /collections/giftsets ← same URL as parent Curl Care and Accessories → /collections/curlcare Satin Bonnets (Girl, Adult…) → /collections/curlcare ← same URL as parent Tees and Merch → /collections/statement-merch (1 product) Confidence Courses… → /collections/digital-downloads Confidence Courses → /collections/digital-downloads ← same URL as parent Find us in Store → /pages/store-locator ← a page, inside Shop Store Locator → /pages/store-locator ← same URL as parent Sale → /collections/bcmsale About Us → Our Story · Giving Back · Press · Youth Mean Business Connect With Us → /pages/contact-us-2 Book Zoe to Speak · Educators and School Partnerships · Sponsor Dolls for Underserved Girls · Wholesale · Contact Us · Blog ↑ a revenue line, filed under “contact” Customer Reviews Find us in Store ← repeats the Shop child, 3rd instance sitewide
IA-01

Two of five top-level slots point away from buying

high

“Customer Reviews” and “Find us in Store” occupy 40% of the primary navigation. The store locator actively hands a converted visitor to Target, where the brand earns wholesale margin instead of retail margin and loses the customer record, the email, and the repeat purchase.

Evidence Fig 1.1 · header link extraction, 77 anchors

IA-02

“Connect With Us” hides four distinct audiences behind one vague label

high

Speaking bookings, school partnerships, doll sponsorship, wholesale, general contact and the blog all sit in one menu. Each is a different visitor with a different job. Wholesale — a B2B revenue line — is three levels down inside a menu whose label promises a contact form.

Evidence navigation tree above

IA-03

Four of seven Shop branches contain a child that repeats its own parent

medium

Bundles → “Gift Sets and Bundles”, Curl Care → “Satin Bonnets”, Confidence Courses → “Confidence Courses”, and Find us in Store → “Store Locator” all resolve to the identical URL as the item above them. The menu looks deeper than it is, and every extra row costs scanning time.

Evidence navigation tree above · 4 duplicate parent/child hrefs

IA-04

The category hierarchy is inverted

high

“Books & Puzzles” is the parent category in the menu and holds 10 products. Its child “Books by Zoe” holds 13. A shopper who narrows from the parent to the child sees more products, which is the opposite of what narrowing means.

Evidence /collections/booksandpuzzles 10 · /collections/books 13

IA-05

The footer is one ungrouped column with no privacy policy

high

Sixteen links stacked in a single left-aligned list — Shop, Book Zoe to Speak, Join our Email List, Find us in Store, Wholesale, Search, FAQs, Contact, Returns, Shipping, About, Careers, Partner, Reviews, Terms, Blog — with no headings, no logo, no mission line, no social icons, no newsletter, and roughly 75% of the footer width left empty. There is no privacy policy link, which matters more than usual for a brand marketing to children.

Evidence Fig 1.2

IA-06

237 dead currency links ship in the footer of every page

critical

The country/currency selector renders every option as a real anchor with href="#". That is 237 of the footer’s 254 links, and the bulk of the homepage’s 361 links. A keyboard or screen-reader user reaching the footer must traverse all of them to get to “Terms of Service”, and every crawler spends its budget on them.

Evidence footer anchor extraction — 254 links, 237 currency options, 16 navigation, 1 Shopify

IA-07

Gift-A-Doll — the brand’s signature idea — has no home in the IA

high

The donation programme appears as a product URL nested under Shop → Dolls, as a full-bleed homepage band, as a counter on the product page, and as three bulk SKUs in the catalogue. It has no section, no landing page in the nav, and no consistent name (“GIFT-A-DOLL”, “Sponsor Dolls for Underserved Girls”, “Giving Back”, “GiftADoll”).

Evidence navigation tree · Fig 3.6 · products.json (6 donation SKUs)

Site footer: a single column of sixteen links on the left, three quarters of the width empty, with a country selector and payment icons centred below.
Fig 1.2 · desktop 1440The footer, at full width. Sixteen links in one column, no grouping, no brand presence — and the 237 currency anchors behind the single visible “Philippines (PHP ₱)” control.
02

Product architecture

46 products. 55 collections. 16 product types. Zero collection descriptions. The catalogue has been organised by campaign for several years, and campaigns never get cleaned up.

Collections are the storefront’s skeleton: they are the browse pages, the menu targets, the SEO landing pages and the merchandising surfaces. Here they have become a promotions archive. Only 12 of 55 collections are reachable from the navigation. The other 43 exist, resolve, and are indexable, but no visitor will ever find them from inside the site.

Table scrolls sideways

Collection audit
Collection groupCountWhat it isStatus
Navigable categories12Dolls, Books, Puzzles, Bundles, Curl Care, Merch, Digital, Sale, All…Keep — needs copy
Expired seasonal campaigns77-days-of-christmas-day-1-day-7Archive
Expired sale events13BFCM2024, Cyber Monday, End of Year, St Patty’s Day, Small Biz Weekend, Warehouse Sale, Evana Birthday, Zboss Birthday, CBS Mornings, Holiday Deals…Archive
Event / partner collections6Bryant Park Winter Village (“BCM Pop Up”), Jack and Jill, The LINKS, New Birth Toy Drive…Archive or gate
Empty collections, still live5doll-bundles-1, freebies, not-on-sale, new-birth-toy-drive, zoes-courseDelete
Duplicates of a live category6books-that-inspire-her, all-ind-products, selflove, give-the-gift-of-confidence, hair-care-2023, doll-bundles-1Merge + 301
Useful but unlinked6educator-products (15), gifts-under-25 (14), best-sellers (21), graduation-gifts, back-to-school, plush-dolls…Promote into nav
PA-01

Not one of the 55 collections has a description

critical

Every collection returns an empty body_html. There is no category copy anywhere on the site: nothing to orient a shopper landing from search, nothing for Google to rank, nothing to differentiate “Beautiful Black Dolls” from “Plush Dolls” from “Doll Bundles”. On /collections/all the description slot instead holds an operations note — “All discount codes will be applied at checkout” — which is also what feeds the page’s meta description.

Evidence collections.json — 55/55 with 0 characters of description · Fig 4.1

PA-02

43 of 55 collections are orphaned

critical

They are live URLs with no inbound link from the header, footer, or any menu. Several hold real merchandising value — educator-products (15 SKUs), gifts-under-25 (14), best-sellers (21) — and are simply unreachable. The rest are expired campaigns that dilute the crawl and can be reached from Google.

Evidence 12 collection URLs across header + footer vs 55 in collections.json

PA-03

Five collections are live and empty — including the one named after the course

high

zoes-course, freebies, not-on-sale, new-birth-toy-drive and doll-bundles-1 all return zero products. Anyone reaching them sees an empty grid.

Evidence per-collection product counts, all 55 collections

PA-04

Sale collections overlap so heavily that “sale” has no meaning

high

“Spring Savings” (sale) holds 29 of 46 products. “Give the Gift of Confidence” and “Give the Gift of Self-Love” hold 28 each. The menu’s “Sale” points at a seventh set, bcmsale, with 24. Roughly two thirds of the catalogue is permanently discounted across six competing sale collections, which trains customers to wait and makes the Labor Day banner meaningless.

Evidence product counts — sale 29 · selflove 28 · give-the-gift-of-confidence 28 · bcmsale 24 · evanabirthdaysale 25 · holidaydeals 23

PA-05

16 product types for 46 products, with “Doll” and “Dolls” as separate types

high

Five products are typed Doll and four Dolls. Digital goods are split three ways across Digital, Digital Download and Course. Two products have no type at all, and one is typed warranty — the shipping-protection app’s SKU, sitting in the merchandisable catalogue. Product type is what powers automated collections and filters, so every one of these splits breaks browse.

Evidence products.json — Bundle 9, Book 6, Doll 5, Dolls 4, Accessories 4, Bonnet 3, Puzzles 3, Digital 2, Classroom Bundle 2, (empty) 2, Course 1, Digital Download 1, Donation 1, Gift Card 1, Tees 1, warranty 1

PA-06

Tags mix merchandising with operations, and one is two years stale

medium

bfcm2024-sale is still attached to roughly 20 products. Alongside genuine merchandising tags sit app and ops flags — NOREVIEW, insurancetype-fixed, simplyinsurance, LINKSCOURSE, LINKSSTEMREADY, _For The Classroom, zuridolls — with inconsistent casing throughout. Tag-driven collections and filters inherit all of it.

Evidence products.json tag extraction, 46 products

PA-07

Nine products have a single image — three of them are bundles

high

inspire-her-book-puzzle-bundle, gift-a-book, curly-confident-gift-card, denim-jumper-set-for-18-dolls, lilac-denim-tutu-dress-bow and four others ship with one photo. A bundle with one photo cannot show what is in the box, which is the only question a bundle buyer has.

Evidence products.json image counts

PA-08

Donations are merchandised as discounted toys

high

Six donation SKUs sit in the shoppable grid typed Dolls and Donation. “Gift A Doll | Support Girls in Underserved Communities” appears between a puzzle and a colouring book with a struck-through ₱5,100 price and a pink “Save 49%” flag. A charitable gift presented as a discounted product undercuts both the gift and the product.

Evidence Fig 4.1, row 2 · products.json (giftadoll, gift-a-book, gift-50-dolls, gift100dolls, gift-200-dolls…, gift-dolls-to-girls-links-campaign)

PA-09

No complementary products are configured anywhere

medium

Shopify’s complementary-product endpoint returns an empty set for Bella, the bestseller. Every cross-sell on the site is algorithmic, which is why the “related” list for an 18-inch doll leads with two bundles that contain the same doll instead of the outfits, bonnets and books that would raise the basket.

Evidence /recommendations/products.json?intent=complementary[]; intent=related → bella-doll-confidence-bundle, bella-doll-and-book-bundle …

PA-10

Handles and titles are inconsistent, and some disagree with each other

medium

Terse legacy handles (belladoll, madamvp, bcmbook, ailab, gift100dolls) sit beside 60-character SEO slugs; six carry a redundant beautiful-curly-me- prefix. Three collections have handles that contradict their titles — hair-care-2023 is titled “Books & Puzzles – 2023”, sale is “Spring Savings”, bryant-park-winter-village is “BCM Pop Up”. Homepage bundle links also use collection-scoped product URLs (/collections/giftsets/products/…), creating a second address for the same product.

Evidence products.json + collections.json handles · homepage anchor extraction

03

Homepage

8,998px on desktop, 6,278px on mobile. A quarter of the desktop page is third-party iframe, and the single strongest trust asset on it is invisible.

Homepage hero: a flat pink image reading Labor Day Weekend Sale, Buy One Get One 50% Off Books and Puzzles, No code needed.Savings at checkout, with a Shop Now button drawn into the image.
Fig 3.1 · desktop 1440The entire hero is one JPG. The headline, the subhead and the “Shop Now” button are pixels — the section contains no text at all, and its only link has no accessible name. The typo “No code needed.Savings at checkout” is baked into the file, so fixing it means re-exporting the artwork.
The As Seen On section: a heading followed by a large empty white band where ten press logos should be.
Fig 3.2 · desktop 1440 · reproduced liveThis is what visitors actually see. Ten press logos — GMA, Forbes, People, TIME, TED, The Kelly Clarkson Show, The Jennifer Hudson Show and three more — are in the markup and compute to opacity: 0 in every scroll position we tested. 335px of desktop and 453px of mobile homepage says only “AS SEEN ON”.
Why HP-03 is the most expensive line in this document

National press is the single hardest asset a DTC brand can acquire, and this brand has more of it than almost any peer. It is on the page, it is paid for, and it is rendering at zero opacity. Every visitor since the reveal animation broke has evaluated the store without it. This is a one-line CSS fix.

Category tiles reading Beautiful Black Dolls, Empowering Books, Inspiring Puzzles, Gift Sets and Bundles, in white text over photographs.
Fig 3.3 · desktop 1440Category row one. White labels sit directly on photographs with no scrim.
A second row of category tiles reading Beautiful Black Dolls, Bundles and Sets, Empowering Books and Puzzles, Confidence-Building Digital Products, Gifts Under $25.
Fig 3.4 · desktop 1440Category row two, roughly 1,900px further down, doing the same job with different names and a duplicate of the first tile’s photograph. “Beautiful Black Dolls” appears in both rows; “Gift Sets & Bundles” and “Bundles & Sets” are the same collection.

Table scrolls sideways

Tile label (white text, no scrim)RowMeasured contrastWCAG AA (4.5:1)
BEAUTIFUL BLACK DOLLS16.86 : 1Pass
EMPOWERING BOOKS13.67 : 1Fail
INSPIRING PUZZLES12.40 : 1Fail
GIFT SETS & BUNDLES11.78 : 1Fail
BEAUTIFUL BLACK DOLLS23.64 : 1Fail
BUNDLES & SETS21.71 : 1Fail
EMPOWERING BOOKS & PUZZLES21.96 : 1Fail
CONFIDENCE-BUILDING DIGITAL21.88 : 1Fail
GIFTS UNDER $2522.24 : 1Fail
Homepage product row: four doll cards with title, price, quantity stepper and Add to Cart, and no star ratings.
Fig 3.5 · desktop 1440“Give the gift of confidence!” — the first product row a visitor meets. No ratings, no review counts, no ages. Four different photographic treatments in four cards: a cut-out doll on white, two boxed packshots, and one with “available at ⊙ Target” baked into the photograph. Prices show ₱ because captures were taken from Asia-Pacific (see capture notes).
Homepage — desktop8,998px · 10.0 screens
Announcement bar32
Header231
Hero — flat JPG, no text810
Product row — “Gift of confidence”770
“As Seen On” — renders empty335
Founder line100
YouTube iframe765
Category tiles (row 1)416
Loox review carousel iframe1,586
Gift-A-Doll band650
Bundles row655
Category tiles (row 2)346
Blog posts480
Newsletter294
Footer733
Product page — mobile 37512,122px · 14.9 screens
Header102
Gallery + buy zone + 450-word wall2,388
Spacer section89
Zipify content block1,108
“This doll makes a difference”638
“Representation matters”337
“Her new best friend”399
“Build her self-esteem”416
Loox reviews iframe2,598
Recently viewed112
Recommendations745
Newsletter294
Footer733
Sells product Third-party iframe Dead or broken Chrome Bars are proportional to measured section height
HP-01

The hero is a flat image with a fake button

critical

The slideshow section contains zero characters of text. Headline, offer, terms and the “Shop Now” pill are all rasterised into a single JPG, wrapped in an anchor with no accessible name. Nothing is selectable, translatable, indexable or readable by assistive technology, the text cannot reflow on any viewport, and updating the offer requires a design tool. Desktop and mobile use two different creatives, in two different brand colours (pink and blue), with two different wordings of the same promotion.

Evidence Fig 3.1 (desktop) · Fig 5.1 (mobile) · section innerText = "" · 1 anchor, no accessible name

HP-02

The “As Seen On” press bar renders invisible

critical

All ten .logo-bar__item wrappers compute to opacity: 0, and none of the inner image-element nodes ever receive the aos-animate class that would reveal them. We confirmed this after direct scroll-to, after incremental scroll past, and after scrolling down and back. The images themselves are at full opacity; the parent is what hides them.

Evidence Fig 3.2 · computed opacity 0/10 items in three scroll states · aos-animate 0/10

HP-03

The homepage has no descriptive H1 and no alt text on 71% of images

high

The only h1 on the page is the logo, “BEAUTIFUL CURLY ME”. The document outline then jumps to “GIVE THE GIFT OF CONFIDENCE!”, with “CURRENCY” — the footer selector — appearing as a peer heading. 29 of 41 images carry no alt attribute, and 29 of 361 links have no accessible name at all.

Evidence heading + image + anchor extraction, homepage

HP-04

Two category rows compete, with duplicate artwork and unreadable labels

high

Nine tiles across two sections point at seven collections under five different names, sharing at least one identical photograph. Seven of the nine white labels fall below the 3:1 minimum for large text; eight of nine fall below the 4.5:1 required for text at their actual size.

Evidence Figs 3.3–3.4 · contrast table above

HP-05

2,351px of the desktop homepage is third-party iframe

medium

A 765px YouTube embed and a 1,586px Loox review carousel account for 26% of the page. Neither contributes a single crawlable word, neither is styled to the brand, and the Loox carousel is the only place on the homepage where the brand’s 191 reviews appear.

Evidence iframe measurement — YouTube zvtsK8_Q0SY 1360×765 · Loox carousel 1360×1586

HP-06

The free-shipping threshold rotates in and out of view

medium

The announcement bar is a two-slide carousel: “BOGO50 SALE FOR LABOR DAY WKND! NO CODE NEEDED” and “FREE DOMESTIC SHIPPING for orders $60+”. A visitor may never see the shipping threshold, which is the single most reliable average-order-value lever a store this size has.

Evidence announcement section slide extraction

HP-07

Product cards carry checkout controls but no decision information

medium

Every card on the homepage and in every grid has a quantity stepper and an Add to Cart button, and none has a rating, a review count, an age range, or a doll size. The card is optimised for a shopper who has already decided, on a site whose whole job is helping them decide.

Evidence Fig 3.5 · Fig 4.1 · 0 rating elements across 40 collection cards

HP-08

Small copy defects across the page

medium

“No code needed.Savings at checkout” (missing space, baked into the hero image). The newsletter block renders its button label twice — “SUBSCRIBE SUBSCRIBE”. The founder’s age is given as 7 here (“Founded by a 7-year-old girl”) and differently elsewhere on the site. The Gift-A-Doll band opens on a negative — “DON’T WANT/NEED A DOLL?”.

Evidence Fig 3.1 · Fig 3.6 · section text extraction

Full-bleed photograph of a crowd of girls holding dolls in front of a Beautiful Curly Me banner.
Fig 3.6 · desktop 1440The Gift-A-Doll band — 650px of full-bleed photography carrying the brand’s most emotionally powerful story, headed “DON’T WANT/NEED A DOLL? YOU CAN GIFT A DOLL!” and linking to a page that is not in the navigation.
04

Browse & collection pages

The page where a gift-buyer decides. It offers nine products at a time, one filter, and no evidence that anyone has ever bought anything.

The All collection page: a three-column product grid with nine items, an Availability filter, a Featured sort, and pagination showing five pages.
Fig 4.1 · desktop 1440 · /collections/all (scroll within frame)The full grid. Nine products, then pagination. The H1 is “All”. The only filter is Availability. Not one card shows a rating. Card heights are ragged because variant selectors on two products push their Add to Cart buttons out of alignment with the rest of the row.
BR-01

Nine products per page across five pages

critical

A 40-product catalogue is split into five paginated screens. Seeing everything the brand sells requires four extra page loads, and nothing carries the shopper from one page to the next — no infinite scroll, no “load more”, no per-page control.

Evidence Fig 4.1 · “40 products” · pagination 1 2 3 … 5

BR-02

The catalogue’s only filter is “Availability”

critical

Across a catalogue that spans 18-inch dolls, plush dolls, picture books, journals, jigsaw puzzles, satin bonnets, doll clothing, tees, digital downloads, courses and classroom bundles, the shopper can filter by in-stock or out-of-stock. There is no filter for age, price, product type, doll size, or format — and no way to answer “what do you have for a six-year-old under $30?”, which is the single most common question a gift-buyer has.

Evidence Fig 4.1 · filter group extraction, /collections/all and /search

BR-03

191 five-star reviews never appear where the choice is made

high

Bella carries a 4.9 rating from 191 reviews. Zero rating elements render on the collection grid, on the homepage rows, or on search results. The brand’s strongest conversion asset exists only on the product page and inside an iframe carousel.

Evidence Fig 4.1 · 0 rating nodes across 40 cards · Loox rating widget present on PDP only

BR-04

The H1 is “All” and the description is a discount-code note

high

The page a shopper lands on from “Shop” is titled “All”, and the copy beneath it reads “All discount codes will be applied at checkout. Bundles are already discounted as reflected.” That text also feeds the page’s meta description and its structured data, so it is what appears in search results.

Evidence Fig 4.1 · <h1>All</h1> · collection body_html

BR-05

Search returns two thirds of the catalogue for the brand’s main noun

medium

Searching “doll” returns 31 of 46 products, because the word appears in nearly every description. The results page is headed “SEARCH”, offers the same single Availability filter, and provides no type or category grouping to recover from the flood.

Evidence /search?q=doll — “31 results found” of 46 products

BR-06

There is no photography system, and it shows most in the grid

medium

One row of the grid contains a cut-out doll floating on white, a 3D book mockup with a drop shadow, a flat cover scan, a lifestyle photograph with the words “GIFT-A-DOLL” set into the image, a packshot with an award seal composited on, and a boxed product with a retailer logo burned in. Crops, scales, backgrounds, lighting and baked-in graphics all differ, so the grid reads as a marketplace rather than a brand.

Evidence Fig 4.1 · Fig 3.5 · Fig 5.2

05

The product page

Bella, the bestseller. 10,172px on desktop, 12,122px on mobile — and on a phone, the button that takes the money sits below the fold.

Bella product page buy zone: thumbnail rail, large doll photograph, title, rating, price, quantity, Add to Cart, a donation counter, then a long block of bulleted text.
Fig 5.1 · desktop 1440 · scroll within frameThe buy zone. Breadcrumb reads “Home /” and stops. Under Add to Cart sits an orphan “GiftADoll” label and a donation counter (3,599 / 5,000) with no explanation and no call to action. Below that, 450 words of unstructured text; the accordions that should have absorbed it — Doll FAQs, Shipping, Ask a question — appear after the wall, not instead of it. The rating’s star glyphs are vector sprites the capture tool cannot rasterise; live, five pink stars render before “(191)”.
Close-up of the product description: every bullet line begins with a literal asterisk character, with inconsistent indentation and bold headings inline.
Fig 5.2 · detail of Fig 5.1The list markup is broken. Every line renders a literal * instead of a bullet, indentation is inconsistent, and specification content (“Care Instructions”, “Materials”) is mixed in with benefit copy and mission copy in one undifferentiated block.
Bella product page on a 375 pixel phone: a doll photograph filling the screen, then gallery dots, a dangling Home breadcrumb, the title, a five-star rating with 191 reviews, the price, quantity and Add to Cart.
Fig 5.3
375 wide
The mobile product page from just below the header. Exact scroll offsets were measured separately from the live DOM and are listed opposite.

Table scrolls sideways

ElementY positionAbove the 812px fold?
Header0 – 102Yes
Product photograph102 – 660Yes
Gallery dots (12 images)672Yes
Breadcrumb “Home /”690Yes
Product title712Just
Rating & price790Just
812px — bottom of the first screen
Quantity880No
Add to Cart956No — 144px below
“In stock, ready to ship”~2,050No
Shipping accordion~2,180No
First customer review~6,000No
The mobile arithmetic

12,122px of page ÷ 812px of screen = 14.9 screens. A parent who taps through from Instagram sees a photograph, scrolls, sees a title and a price, scrolls again to reach the button — and the reassurance they need to press it (“in stock, ready to ship”, shipping terms, returns) is another screen and a half further down, after 450 words of bullets.

PD-01

Add to Cart sits below the fold on mobile

critical

On a 375×812 viewport the button is at 956px — 144px past the first screen — and there is no sticky add-to-cart bar to compensate. The entire first screen is a single product photograph with no title, price, rating or price context.

Evidence Fig 5.3 · measured offsets, clean page load

PD-02

The page is fifteen phone screens long

critical

12,122px on mobile, 10,172px on desktop. A 2,598px Loox review iframe is 21% of it; four separate brand-story sections between the buy zone and the reviews add another 1,790px. Nothing is collapsed, and the sections are not ordered by what a buyer needs next.

Evidence section stack (§03) · 18 sections measured

PD-03

450 words of broken-markup bullets where a spec panel should be

high

Benefits, mission copy, care instructions and materials run together in one block with literal asterisks for bullets. There is no specification panel — no doll height, age range, materials, what’s in the box, or wash instructions in a scannable form — even though every one of those facts is buried in the paragraph.

Evidence Figs 5.1–5.2

PD-04

The breadcrumb is a dead end: “Home /”

high

The product has no category path because it was not reached through a collection. There is no way back up to “18-inch dolls” or “Dolls”, no sideways move to a sibling, and no signal to search engines about where this product sits.

Evidence Fig 5.1 · Fig 5.3

PD-05

The 4.9 score is never shown as a number

high

The rating widget renders five small stars and “(191)”. The score itself — 4.9, which is in the page’s structured data — is never displayed, is not repeated near Add to Cart, and does not appear anywhere else on the site.

Evidence Fig 5.3 · Loox widget data-rating="4.9" data-raters="191"

PD-06

The buy zone is occupied by a cause metric and an orphan label

medium

Directly beneath Add to Cart — the most valuable strip on the page — sit the word “GiftADoll” with no styling or link, and a two-column counter reading 3,599 “Dolls Donated” against a 5,000 “Quarter Goal”. The donation story deserves that prominence; presented without a sentence of context or a call to action, it reads as an unexplained dashboard.

Evidence Fig 5.1

PD-07

“Shipping calculated at checkout” runs beneath the price while free shipping is being promoted

medium

The announcement bar offers free domestic shipping over $60. The product page, on a ₱4,200 / $75-class item, tells the shopper shipping is an unknown to be revealed at checkout. Nothing on the page connects the two.

Evidence Fig 5.1 · announcement slide 2

PD-08

Twelve gallery images, no thumbnails on mobile, and baked-in text that clips

medium

Mobile paginates twelve images with dots only, so there is no way to see what is in the set or jump to the packaging shot. Several images carry composited callouts (“18" Tall”) positioned so they are cut off at the viewport edge.

Evidence Fig 5.3 · 12 gallery nodes · products.json (9 images) vs 12 rendered

PD-09

The chat launcher covers the buy controls on mobile

medium

The Gorgias “Chat with us” pill floats over the quantity stepper in the buy zone, and over the first row of products on the mobile homepage. It is one of four Gorgias iframes mounted on every page.

Evidence live mobile capture, 375×812 · 4 Gorgias iframes in DOM

PD-10

Cross-sell recommends the product already in view

medium

Bella’s related products lead with “Bella Doll Confidence Bundle” and “Bella Doll and Book Bundle” — two bundles containing the doll being viewed. With no complementary products configured (PA-09), the outfits, bonnets and matching books that would lift the basket never surface.

Evidence /recommendations/products.json?intent=related

06

Mobile

Where most of a toy brand’s traffic lands, and where every desktop compromise gets worse.

Mobile homepage hero: a square blue image reading Labor Day Wknd Sale, Buy One Get One 50% off, All Books and Puzzles, with a Shop Now button drawn into the artwork.
Fig 6.1The mobile hero is a different creative in a different brand colour with different wording — blue here, pink on desktop. A square 1:1 crop, so a promotion fills 46% of the first screen.
Mobile product grid: two columns, titles wrapping to four lines, large empty gaps between price and Add to Cart, buttons wrapping onto two lines.
Fig 6.2Two-column grid. Titles wrap to four lines, rows are height-matched to the tallest card so roughly 90px of dead space opens between each price and its button, and “ADD TO CART” wraps onto two lines beside a cramped stepper.
MB-01

Desktop and mobile run different hero artwork with different copy and colour

high

Desktop: pink ground, “LABOR DAY WEEKEND SALE! / BUY ONE GET ONE 50% OFF Books & Puzzles / No code needed.Savings at checkout”. Mobile: blue ground, script lettering, “Labor Day Wknd Sale / BUY ONE GET ONE 50% off / ALL BOOKS AND PUZZLES / no code needed”. Two files, two colour systems, two wordings of one offer — and both must be re-exported to change anything.

Evidence Fig 3.1 vs Fig 6.1

MB-02

Height-matched rows create dead space in the mobile grid

medium

Because cards are stretched to the tallest in the row, a two-line title leaves a large gap above its Add to Cart button while a four-line title has none. Scanning the column means reading past inconsistent gaps, and fewer products fit per screen.

Evidence Fig 6.2

MB-03

The announcement bar clips its own call to action

medium

When the longer promotional slide is showing, the message wraps to two lines and the “Shop Now” link is cut off mid-character by the bar’s fixed height.

Evidence live mobile capture, 375×812

07

Wholesale, schools & courses

Three revenue lines that the storefront treats as afterthoughts — one of which has been handed to a marketplace.

The wholesale page: a Faire-branded embed in serif type with dark buttons, clipped product titles, a broken numbered restrictions list, and a separate contact form.
Fig 7.1 · desktop 1440 · /pages/wholesale (scroll within frame)The wholesale page is a Faire embed. Faire’s serif typography and dark buttons replace the brand’s; Faire’s offer (“GET 50% OFF YOUR FIRST ORDER”) is the page’s loudest message; product and collection titles clip mid-word; and the restrictions list renders with its numbers detached from the text. Beneath it, a second, unrelated contact form.
SL-01

Wholesale runs on a third party, in a third party’s design language

high

The B2B channel is a Faire widget with two identical “Start buying wholesale” CTAs. It routes retail buyers off-site, gives away commission and the customer relationship, and presents a completely different visual identity on a beautifulcurlyme.com URL. Shopify B2B would keep the buyer, the catalogue and the brand in one place.

Evidence Fig 7.1

SL-02

The educator catalogue exists and is unreachable

medium

/collections/educator-products holds 15 products, including two purpose-built classroom bundles with teacher resources. It appears in no menu. Schools and districts are a natural, high-value, repeat-purchase audience for this brand, and the products for them are already built.

Evidence collections.json · navigation extraction

SL-03

Courses point at an empty collection and an off-site platform

medium

The menu’s “Confidence Courses and Resources” resolves to /collections/digital-downloads (4 products) while the collection actually named zoes-course is empty. Course delivery runs on Thinkific, outside the store, so course buyers never enter the customer record that drives repeat doll sales.

Evidence per-collection counts · products.json (confidence-course, tag Thinkific)

08

Proposed information architecture

Five top-level slots, each one a job a visitor came to do. Every audience the business serves gets a front door instead of a submenu.

Tree scrolls sideways

SHOP — mega-menu, three columns + a featured panel BY PRODUCT BY WHO IT'S FOR BY OCCASION ───────────────── ───────────────── ───────────────── 18-inch Dolls Ages 3–5 Gifts under $25 Plush Dolls Ages 6–8 Gift Sets & Bundles Books & Journals Ages 9+ Birthday Puzzles & STEAM Grown-ups (bonnets, Holiday Bonnets & Curl Care tees, matching sets) Back to School Doll Clothing Courses & Downloads FEATURED PANEL Bella · 4.9★ (191) Sale — one collection, seasonal, time-boxed Shop the bestseller → GIFT A DOLL — the cause gets its own front door How it works · Gift one doll · Bulk & corporate gifting · 3,599 of 5,000 this quarter · Partner with us FOR SCHOOLS — 15 products already exist for this audience Classroom bundles · Teacher resources · Book Zoe to speak · Purchase orders & W-9 · District enquiries WHOLESALE — on-site B2B catalogue, not a Faire embed Apply for an account · Minimums & tiers · Line sheet · Stockist map (replaces “Find us in Store” in the top nav) OUR STORY Zoe's story · Press (the logos, visible) · Giving back · Youth Mean Business · Blog · Careers

What moved, and why. “Customer Reviews” leaves the top nav — reviews belong on the cards and the product page, where the decision happens, not on a page nobody visits. “Find us in Store” becomes a stockist map inside Wholesale, so it serves retailers rather than intercepting buyers. Gift-A-Doll, Schools and Wholesale each get a top-level slot because each is a distinct audience with a distinct budget, and all three currently sit under a menu labelled “Connect With Us”.

Mega-menu — Shopdesktop, on hover/focus
By product7 canonical categories, each with a product count
By who it’s forAge bands from metafields
By occasionGift-led entry points
FeaturedBella · 4.9★ (191) · image + CTA
Sale — one time-boxed collection, styled distinctly
Footerfour grouped columns
ShopCategories, gift guides, sale
PartnersWholesale · Schools · Stockists · Speaking
HelpShipping · Returns · FAQs · Contact · Track
BrandOur story · Press · Giving back · Blog · Careers
Newsletter + mission lineOne sentence on what the brand is for, then the email capture
Logo · social · payment · legalPrivacy policy added · currency selector as a button, not 237 anchors
09

Proposed product architecture

One canonical type per product, structured attributes in metafields, tags reserved for merchandising, and collections that earn their existence.

Table scrolls sideways

LayerTodayProposedWhat it unlocks
Product type 16 values, incl. Doll+Dolls, Digital+Digital Download+Course, 2 empty, 1 warranty 11 canonical: Doll · Plush Doll · Book · Journal · Puzzle · Bonnet · Doll Clothing · Apparel · Course · Bundle · Donation Automated collections and type filters that actually resolve
Metafields none in use for merchandising age_min / age_max · doll_height_in · character · format · whats_in_the_box · care · materials Age and size filters; a real spec panel on the PDP (fixes PD-03)
Tags Ops flags mixed with merchandising; bfcm2024-sale on ~20 SKUs Merchandising only: bestseller, new, gift-under-25, bundle. Ops flags move to metafields or app-private Tag-driven collections stop inheriting two-year-old campaign state
Collections 55 live, 0 described, 43 orphaned, 5 empty 12 evergreen + max 4 seasonal, each with 120–200 words of category copy and a hero image Twelve real landing pages; the rest 301 to their nearest evergreen home
Donations 6 SKUs in the shoppable grid, priced and discounted like toys Excluded from browse collections; surfaced through the Gift-A-Doll section and a cart-level add-on The cause reads as a cause; the grid reads as a shop
Cross-sell Complementary set empty; “related” returns bundles of the same doll Curated complements per doll: outfit · matching bonnet · her book · her puzzle A basket-building path that exists today only as separate SKUs
The twelve evergreen collections

18-inch Dolls · Plush Dolls · Doll Clothing & Accessories · Bonnets & Curl Care · Books & Journals · Puzzles & STEAM · Tees & Merch · Courses & Downloads · Gift Sets & Bundles · Gifts Under $25 · Classroom & Educators · Sale. Every one of these already has products; nine of them already exist as collections and simply need copy, a canonical name, and a place in the menu.

10

Recommended layouts

Block-level wireframes for the four templates that carry the business. Order is the argument: each block earns its position by what a visitor needs to know next.

Homepagetarget ≈ 4,500px · from 8,998px
Announcement — static, one messageFree shipping over $60. Promotions live in the hero, not in a rotator that hides the threshold.
Header — Shop · Gift a Doll · Schools · Wholesale · Our StorySearch, account, cart. Mega-menu on Shop.
Hero — real HTML, product-ledBella photographed on a brand ground · H1 “Dolls that look like her” · 4.9★ (191) · one primary CTA to 18-inch Dolls, one secondary to Gift-A-Doll. Promotion appears as a badge over live text, so copy changes without a design tool.
Press bar — visible, no scroll animationGMA · Forbes · TIME · TED · People · Kelly Clarkson · Jennifer Hudson. Greyscale logos, real <img> with alt text, one row, 120px.
Shop by age3–5 · 6–8 · 9+
Shop by productDolls · Books · Puzzles · Curl Care
Shop by budgetUnder $25 · Bundles · Sale
Bestsellers — 4 cardsImage, title, rating + count, age badge, price. No quantity stepper.
The founder, in 60 words + one portraitOne canonical age, one link to Our Story.
Gift-A-Doll — counter as a story, not a metric“3,599 dolls gifted this quarter, 1,401 to go.” Progress bar, one sentence, one CTA. Links to the Gift a Doll section.
Reviews — native, not iframedThree quotes rendered in brand type, with the aggregate score. Loox data via its theme app block rather than a 1,586px frame.
Blog / classroom / wholesale — three cards, one row
Footer — four grouped columns + newsletterCurrency as a button. Privacy policy present.
Collectionfilters first, 24 per page
Breadcrumb — Home / Dolls / 18-inch DollsReal hierarchy, matching the menu
Category headerH1 “18-inch Dolls” · 120–200 words of category copy that answers “which one is right for my child” · product count
Filter rail — stickyAge · Price · Doll size · Character · Format · Availability. Counts on every option.
Sort + active filter chipsBestselling default, not “Featured”
CardFixed-ratio image on a consistent ground · title · 4.9★ (191) · age badge · price · one “View” CTA
CardEqual height by design, not by stretch
CardVariant choice happens on the PDP, not in the grid
24 products, then “Load more” — 40 SKUs reachable in two interactions, not five page loads
Category FAQ + internal links“What age is an 18-inch doll for?” · links to sibling categories and the gift guides
Product pagetarget ≈ 5,000px · from 10,172px
Breadcrumb — Home / Dolls / 18-inch Dolls / Bella
GalleryThumbnail rail on desktop, dots + counter on mobile. Consistent crops; packaging and scale shots labelled.
Buy zoneTitle · 4.9 ★★★★★ (191 reviews) · price + saving · age & size badges · Add to Cart · delivery estimate · returns line · “Ships free over $60”
What’s in the boxfrom metafield
Specs18" · ages 3+ · vinyl & modacrylic
Carewash & style instructions
Complete her set — curated complementsOutfit · matching bonnet · her book · her puzzle. Add-all option. (Replaces bundles-of-the-same-doll.)
Why Bella — 80 words + one lifestyle imageThe mission copy, once, in one place
Gift-A-Doll lineOne sentence + progress, linking out. Not a bare counter under the button.
Reviews — native, 5 shown, filterableAggregate score at the top, photo reviews first
FAQ accordionsSizing · shipping · returns · hair care
Mobile PDP — first screen375 × 812
Header 56pxMenu · logo · search · cart
Gallery — 4:5 crop, 300pxDots + “1 / 12” counter
Bella 18-Inch DollBreadcrumb above · 2 lines max
4.9 ★★★★★ (191) · $42 $51Ages 3+ · 18" tall · in stock
ADD TO CARTFits above 812px. Becomes a sticky bar on scroll.
Ships free over $60 · 30-day returns
↓ Specs · What’s in the box · Care · Reviews
Net effect

Title, rating, price, stock, age, size and Add to Cart all land inside the first 812px — replacing a screen that today shows one photograph and nothing else.

11

Sequence

Ordered by return per hour of work, not by section. The first phase needs no design and no rebuild.

Phase 0days, not weeks

Stop the bleeding

  • Fix the press-bar opacity so ten national logos become visible again
  • Delete the 5 empty collections; 301 the 26 expired campaign collections to their evergreen equivalents
  • Replace the 237 currency anchors with a single button-triggered selector
  • Merge Doll/Dolls and the three digital types; remove warranty and bfcm2024-sale from the merchandisable catalogue
  • Add a privacy policy link; fix “SUBSCRIBE SUBSCRIBE”; settle one founder age across every page
  • Turn on ratings in the theme’s product-card block, and raise the grid to 24 per page

Resolves HP-02 · PA-01 (partial) · PA-03 · PA-05 · IA-05 · IA-06 · BR-01 · BR-03 · HP-08

Phase 12–3 weeks

Rebuild the spine

  • Implement the proposed IA: five top-level slots, mega-menu, grouped footer
  • Collapse 55 collections to 12 evergreen + 4 seasonal, and write 120–200 words of category copy for each
  • Add the merchandising metafields (age, size, character, format, box contents, care) and back-fill all 46 products
  • Build the filter set — age, price, size, type, character — on collection and search
  • Curate complementary products for every doll

Resolves IA-01 → IA-07 · PA-01 · PA-02 · PA-04 · PA-06 · PA-09 · BR-02 · BR-04 · BR-05 · PD-04

Phase 24–6 weeks

Rebuild the templates

  • Homepage as real sections: HTML hero with live text, visible press bar, three shop-by rows, native reviews
  • Product page restructured to the wireframe — buy zone above the fold on mobile, spec panel from metafields, “complete her set”, native reviews, accordions
  • Collection template with the filter rail, consistent cards, and load-more
  • Bring Loox in through its theme app block instead of 1,586px and 2,598px iframes; retire the duplicate review app
  • Performance budget on the third-party stack

Resolves HP-01 · HP-03 → HP-07 · BR-06 · PD-01 → PD-03 · PD-05 → PD-10 · MB-01 → MB-03

Phase 3ongoing

Grow the lines the store already has

  • Photography system and re-shoot: one ground, one crop ratio, one badge treatment, packaging and scale shots for every SKU — and a second image for the nine products that have one
  • Gift-A-Doll as a destination: how it works, bulk and corporate gifting, live counter, partner stories
  • Schools section built on the 15 educator products that already exist
  • Move wholesale from Faire to Shopify B2B; add the stockist map
  • Bring the course on-site so course buyers enter the customer record

Resolves PA-07 · PA-08 · PA-10 · SL-01 → SL-03 · BR-06

Capture notes & limitations

All screenshots were rendered from the live site on 5 September 2026 at 1440×900 and 375×812, from an Asia-Pacific connection. Three consequences are worth stating plainly, because they affect how the images should be read.

Currency. Shopify Markets served prices in Philippine pesos (₱) to this location. US visitors see USD. No finding in this document depends on the currency shown.

Cross-origin frames. The YouTube embed, the Loox review widgets and the Gorgias chat launcher render inside iframes and cannot be rasterised by the capture tool. Where those appear in a screenshot they are blank; their real dimensions and behaviour were measured directly from the DOM and are reported as figures rather than shown as images. The “As Seen On” band in Fig 3.2 is not one of these — it is ordinary markup, and its emptiness was confirmed against a live browser screenshot and against computed styles in three separate scroll states.

Icon sprites. The Loox star glyphs are SVG sprite references, which the capture tool cannot rasterise. In Fig 5.1 they appear as a blank rule before “(191)”; live, five pink stars render there — verified against a browser screenshot. In Fig 5.3 they were substituted with equivalent star characters so the buy zone reads as a visitor sees it.

Measurements — section heights, scroll offsets, link and image counts, collection and product counts, contrast ratios — were taken programmatically from the live DOM and from the store’s public products.json, collections.json and recommendation endpoints, and are reproducible.