Skip to content

Beauty & skincare · ecommerce growth

Cosmetics marketing agency

Makeup is sold one shade at a time. A foundation in thirty-six shades is thirty-five ways to be wrong and one way to be right, and the shopper knows it, which is why they hunt for a swatch on skin like theirs long before they look at the price. We build the shade architecture that search and Shopping can actually read, the matching experience that turns a browse into a confident order, and the launch rhythm a colour catalogue needs to keep working after the drop.

The buyer, in brief

Consideration
Minutes to repurchase a known shade, days for a first foundation or concealer while swatches are hunted down
Purchase frequency
Mascara every three to four months on hygiene grounds, complexion products every three to six, colour when a season or a mood changes
Seasonality
Launch-led more than calendar-led, with lifts at back to school, party season and every shade extension
Price band
Accessible to prestige, with a first order that is usually one hero item rather than a set
Return risk
The highest in beauty and almost entirely about shade, so match accuracy and honest swatches control the rate
Various cosmetic accessories for makeup and manicure on trendy pastel pink background with red flowers., cosmetics & makeup ecommerce
Cosmetics & makeupShoppers who know their undertone and the shade number they wear in one or two other lines, and who want a swatch photographed on skin close to their own, a matching tool that admits when it is unsure, and a stated route back if the shade is wrong.

How cosmetics & makeup makes money

Four levers, and what limits each one here

Revenue is traffic times conversion rate times order value times purchase frequency. In this niche each lever has its own ceiling.

Traffic

Traffic: depth, undertone, finish and the shade someone already wears

Colour demand is described in four dimensions that most catalogues flatten into one collection called Face. Shoppers search by depth and undertone (foundation for fair cool skin, concealer for olive undertone), by finish and coverage (matte full coverage foundation), by product type crossed with skin type (foundation for dry mature skin), and by the shade name or number they already wear when they are looking for the nearest equivalent. The traffic work is to build those dimensions as indexable collections with their own writing and a filtered grid behind them, and to publish a shade guide for each complexion franchise that lists every shade with its depth, undertone and description in text. That guide is the page that catches the long tail no product page can reach.

Conversion

Conversion: matching is the whole job, persuasion is not

A makeup shopper is rarely unconvinced about the product. They are unsure which version of it is theirs, and every extra second of that uncertainty costs the order. The tools that resolve it are practical: a matcher that asks which shade the customer wears in lines they already own rather than asking them to describe their own skin in adjectives, swatches photographed in daylight on several skin tones with the arm and the neck both shown, and a written description of each shade that says depth and undertone rather than only a poetic name. A visible exchange path for a wrong shade removes the last hesitation, because the shopper stops treating the order as a gamble.

Order value

Order value: once you know the shade, everything else can be matched

The most powerful basket lever in makeup is data the store already holds. When a customer's complexion shade is known, every other complexion item can be presented pre-matched, so the concealer, the powder and the bronzer are one tap rather than three more matching decisions. Beyond that, baskets grow through looks rather than products: three items presented as a finished face, with the order to apply them, sells better than a discount on any one of them. Palette and compact refills raise margin on repeat purchases while lowering the price the customer sees, and minis at the cart convert the shopper who wants to test a second shade without committing to a full size.

Frequency

Frequency: mascara runs on a clock, colour runs on a calendar

Two different repeat cycles operate in one catalogue. Complexion and eye products have a real replacement cadence driven by use and by hygiene, and mascara is the clearest of them, which makes a straightforward reminder both useful and welcome. Colour products almost never run out; they are replaced because a season changed, a shade was discontinued or a new drop appeared. Frequency work therefore runs on two tracks: replacement reminders sized to the product and its usual life, and a drop calendar that gives lapsed customers a reason to return that has nothing to do with an empty tube. Storing the shade profile makes both tracks land, because the message can name the exact shade the customer wears.

Search visibility

Shade architecture: making a colour catalogue findable

The search problem in cosmetics is that the thing people search for, a shade, is usually not a page. Depth and undertone collections, finish and coverage collections, and product type crossed with skin type all need to exist as real pages with copy that explains who each group suits. Behind them sits the shade guide per franchise, a page that lists every shade with its depth, undertone and a written description, plus swatches. That page answers the queries a product page cannot carry and gives you somewhere to send both ads and assistants when a shopper asks which shade is which.

The supporting layer is instructional and it earns links: how to identify an undertone at home, how to match a shade without a store counter, how to fix a foundation that is half a shade off, how long a mascara should be kept. Each of those articles ends in products rather than in a newsletter box, and each feeds the collections through internal links.

The technical work is variant handling of a specific kind. Shades are variants of one product on one canonical URL, so reviews, links and ranking history stay together, but each shade must still be addressable, because ads, emails and social posts all need to land on a specific one with its own image and stock state showing. A sold-out shade stays in the selector with a back-in-stock option rather than disappearing, since removing it makes the page look discontinued to a shopper who wears it. Structured data carries colour and per-variant offers so the shade a searcher wants is the one shown.

Queries that matter

  • foundation for neutral undertone medium skin
  • how to find your undertone at home
  • full coverage matte foundation for oily skin
  • concealer for dark circles deep shade
  • cream blush for deep skin tones
  • long wear lipstick that does not dry lips
  • shade guide foundation numbers
  • tinted moisturiser for mature skin

Shade guides with every shade written out, undertone and finish collections with real explanation, and matching how-tos that end in products are what rank in cosmetics. A single Makeup collection with a filter bar, and shade names presented only as coloured dots, do not.

AI answers

Assistant answers about shade, finish and fit

Assistants are asked how to work out an undertone, what to do when a shade sits between two numbers, which finish suits skin that gets oily by midday, and how a shade in one line compares with the number someone already wears. Being quoted here depends on having shade information as text: a table or a written list with depth, undertone and description per shade, not a row of swatch images with no words behind them. It also depends on stock and price agreeing between the page, the structured data and the feed, since an assistant that surfaces a discontinued shade will not surface the brand twice. We write the shade guides and matching articles to answer in the first line and keep the descriptions consistent everywhere they appear.

How do I tell if I have a warm, cool or neutral undertone?
What should I do if I am between two foundation shades?
Which foundation finish lasts on oily skin through a workday?
How do I match a shade online without testing it in person?
How often should mascara be replaced?

Questions shoppers put to assistants. A store gets named when its pages answer them in plain text.

Google Shopping and Merchant Center

Colour in the feed: item groups, shade images and the SPF trap

Every shade is its own item in the feed, tied to its siblings by item_group_id. The colour attribute needs the shade name together with a recognisable colour word, because the shade name alone tells the system nothing about what the product looks like. Each item's image_link must show that specific shade rather than the parent product photo, since a listing whose image does not match what the shopper lands on is the fastest route to a mismatch review. Barcoded lines carry a GTIN per shade, and size in millilitres or grams keeps a mini from being priced against a full size.

Two policy areas catch makeup brands out. Swatch and product images cannot carry promotional text, badges or borders, and a shade image with a sale flash burned into it will be rejected while the identical clean image passes. More seriously, a complexion product that carries an SPF claim is regulated as a sunscreen drug in the United States and in Canada, which changes what the label must show and what the listing may say. That claim has to be handled deliberately in the feed and the ads rather than inherited from the packaging copy.

Campaigns are organised by role rather than by product line. Hero complexion items are bid to margin with the shade-level data intact. Colour SKUs are grouped by franchise so a large range does not drown a single bestseller. Minis and sets go into an acquisition campaign judged on new customers. Custom labels separate core shades from limited drops so seasonal stock can be pushed hard and switched off cleanly.

Feed attributes that decide eligibility

  • item_group_id across every shade in a range
  • color carrying the shade name and a recognisable colour word
  • image_link showing that exact shade
  • gtin per shade on barcoded lines
  • size in ml or g for minis and full sizes
  • custom_label for core versus limited shades

Disapprovals we see in this niche

  • Shade variants sharing the parent image, read as a mismatch with the landing page
  • Promotional text or badges burned into swatch imagery
  • Availability mismatch when one shade sells out but the group stays listed as in stock
  • Drug policy issues on complexion products carrying an SPF claim

Meta and social ads

Meta and creator work: application at real speed

The creative that sells makeup shows the product going on, in ordinary light, at the speed a person actually applies it. Slow, uncut application beats a montage because the viewer is judging texture, coverage and finish rather than a result. Swatch reels across several skin tones do the matching job the product page cannot do in a scroll. Creator content is the default in this category, and it works when the brief is specific about the shade being shown and the rights cover paid usage from your own account as well as the creator's, with partnership tags set correctly.

The binding policy rules are about how the viewer is addressed and what the ad appears to promise. Ads must not imply the viewer has a flaw such as acne, dark circles or ageing skin, which rules out a large share of conventional makeup copy. Filters and post-production that change the apparent result of the product make an ad misleading and put the account at risk, so beauty filters come off in ad footage. Audiences start from buyers and site visitors segmented by shade family where the data allows it, then broad prospecting behind the strongest swatch creative.

  • One shade applied in real time with no cuts and no filter
  • The same product swatched across several skin tones in daylight
  • A finished look built from three items, with the order shown
  • Founder or artist explaining why a shade range was built the way it was
  • How to fix a foundation that is half a shade off, demonstrated

Policy line

No personal attributes implying the viewer has acne, dark circles or ageing skin, no filters or retouching that change the visible result of the product, and creator content used in ads only with paid usage rights and partnership tags in place.

Conversion and the store

The colour product page: shade first, everything else after

The page has to resolve the shade question before it does anything else. That means the selector near the top with real swatch images and shade names written out, the matcher one tap away, the depth and undertone of the selected shade stated in words, and the stock state of that shade rather than of the product. Under it sit the things that decide the second question: finish, coverage, wear time, what it feels like on the skin, and whether it shifts colour during the day, which is the concern behind a large share of complexion returns.

The exchange path belongs on the page, not in the policy footer. A shopper who can see that a wrong shade can be swapped without an argument will order a shade they are unsure about, which is exactly the order the store wants. Reviews should be filterable by skin tone and shade, so the customer can read someone who bought what they are about to buy. On mobile, the swatch selector needs to be large enough to tap accurately and the selected shade name must stay visible in the sticky bar, since adding the wrong shade at the last step is a return the store pays for twice.

Objections the page must answer

  • “Which shade in this line is mine”
  • “What does it look like on skin like mine, in daylight”
  • “Will it oxidise or shift colour over the day”
  • “Is my shade in stock or has it been discontinued”
  • “What happens if the shade is wrong when it arrives”
  • “Does it feel heavy or like nothing at all”

Email, SMS and retention

Email and SMS around the shade profile and the drop calendar

The first flow to build is the shade profile. After a complexion order, a short message asks the customer to confirm the shade worked, which does two things: it captures the profile that makes every future recommendation matched, and it catches a wrong shade while an exchange is still easy. That rescue message, sent a few days after delivery rather than after the return window has closed, converts refunds into swaps and keeps the customer.

After that the calendar runs on drops and on replacement. Launch previews go to the segment most likely to care, usually people who bought from the same franchise, with the shade nearest their profile shown first. Back-in-stock alerts are per shade, not per product, because a general restock email to someone whose shade is still unavailable does more harm than silence. Mascara and complexion replacement reminders are sized to the product and framed around hygiene and performance rather than urgency. SMS is limited to shade restocks and drop-day access for customers who asked for it.

  1. Shade profile confirmation

    Three to five days after a complexion order is delivered

  2. Wrong shade rescue

    Inside the first week, before the return window pressure starts

  3. Shade-level back in stock

    The moment that specific shade is available again

  4. Drop preview by franchise

    Two to three days before a launch, matched to the stored shade

  5. Replacement reminder

    Three to four months for mascara, by product life for complexion

Where revenue leaks

The leaks we find in cosmetics & makeup stores

The Growth Analysis ranks these against your own numbers and says which to close first.

Get a Growth Analysis for your makeup brand
  • One sold-out shade that empties the whole page

    The customer's shade shows as unavailable with no waitlist and no date, so the page reads as discontinued and the shopper goes to a retailer that has it.

  • Every swatch photographed on the same arm

    Most of the range cannot be judged by most of the audience, so shoppers guess, and the guesses arrive back as returns the brand pays shipping on twice.

  • Shades split across separate product pages

    Reviews, links and ranking history divide by thirty, no page has enough proof to convert, and the range competes with itself in Shopping.

  • A wrong shade handled as a refund

    With no exchange path offered before the return is started, the store loses the revenue, the shipping and the customer, all over half a shade.

  • SPF wording inherited from the packaging

    A tinted moisturiser described with its SPF claim becomes a regulated drug listing in two markets, and the account waits in review while the range keeps selling elsewhere.

Platform notes

Where the platform changes the work

Shopify

Depth, undertone and finish live as variant metafields so they can drive both the matcher and the feed, variant images and per-variant inventory keep shade-level ads landing correctly, back-in-stock is configured per variant, and the theme must show the selected shade name in the sticky bar as well as the swatch.

WooCommerce

Variations carry their own image, stock state and GTIN, global attributes for undertone and finish drive indexable archives, and the feed plugin has to export one row per variation with the colour attribute filled rather than a single parent row.

BigCommerce

Option sets with swatch images and variant-level pricing handle a wide range, and rules must be checked so that a sold-out shade remains selectable with a waitlist rather than being hidden from the picker.

Questions

Cosmetics & makeup owners ask us

By CartKernel · Last reviewed

Should each foundation shade have its own product page?

No. One product page with shade variants keeps reviews, links and ranking history in one place, which is what makes the page competitive at all. What matters is that each shade stays addressable, with its own image, its own stock state and a URL that ads and emails can land on, so a shopper who clicked a specific shade sees that shade selected when the page opens.

Foundation returns are our worst line. Where do we start?

With swatches before tools. Photograph every shade on a range of skin tones in daylight, on the arm and near the jaw, and write depth and undertone into the description of each. Then add a matcher that asks what the customer wears elsewhere, and put a visible exchange route on the page. Match confidence, not persuasion, is what brings this number down.

Can we advertise a tinted moisturiser with SPF the way the packaging describes it?

Not without care. Once a complexion product makes an SPF claim it is treated as a sunscreen drug in both the United States and Canada, with its own labelling and testing obligations, and the listing and ad copy fall under stricter policy. The claim can be made where the product genuinely supports it, but the wording has to be deliberate and consistent across the page, the feed and the ads.

How many shades should a new complexion line launch with?

Enough to cover the depth range without visible gaps, because a range that thins out at either end is judged on what is missing rather than on what is there. Adding shades later is normal and worth doing, but the extension needs its own launch, its own swatches and its own guide entries, or the new shades sit unfound at the bottom of a selector.

Do we need creators for a colour launch, or can we run studio creative?

Both, for different jobs. Studio work handles the hero image, the swatch grid and the feed. Creator content handles the part a brand cannot do credibly, which is showing the product on many different faces at real speed. The requirement is that the brief names the shade, the rights cover paid use from your own account, and partnership tagging is set up before anything runs.

What should we do with a shade that barely sells?

Look at where it sits in the range before you cut it. A slow shade at the end of the depth spread is often doing reputational work for the whole line, and removing it is noticed. If it does go, the shade guide entry stays with a note and a nearest alternative, and any ad or email linking to it is repointed, so the demand it still attracts lands somewhere useful.

Grow your cosmetics & makeup store.

A free Growth Analysis ranks what your store should fix first, by revenue at stake, in about a week.