Lacunelle Pelletteria · Artisan leather goods workshop · Florence
Hand-stitched bags, machine-perfect feeds: a Florentine workshop goes global
Product feedsHreflangVariant handlingProduct schema
I · The challenge
Beautiful bags. A catalogue search could not read.
Colour and size variants generated thousands of thin URLs and the feed was rejected in three of five target markets.
Lacunelle cuts and saddle-stitches every piece by hand in a workshop off the Oltrarno. The online shop had grown faster than its foundations: a theme that turned each colour and size into a separate page, a product feed copied between countries, and a single set of English pages trying to sell in euros, pounds and dollars at once.
Search engines saw thousands of near-identical pages and few strong ones. Merchant Center saw prices, identifiers and stock that did not match. The craft that justifies the price was invisible to both.
II · On the bench: the audit
- 01 · Variants4,300
Every colour × size was its own URL
38 models × 9 leathers/colours × up to 3 sizes, each crawlable with parameters and no canonical. Google indexed 4,300 near-identical pages and ignored the parents.
- 02 · Feed58%
Three of five markets rejected
Germany, France and the US were suspended for price mismatch, missing identifiers and availability; Italy and the UK passed with warnings.
- 03 · Hreflang0 / 1,140
Languages pointed at each other wrong
Hreflang lived only on the homepage; product pages had no return tags, and en-GB and en-US served the same URL with a USD price.
- 04 · Schema0%
Product markup without an offer
Theme JSON-LD declared name and image only: no Offer, priceCurrency, availability, brand or ProductGroup, so no rich results in any market.
- 05 · Content40 words
Craft hidden behind thin copy
Forty-word descriptions copied across variants. The vegetable-tanned leather, the stitch count and the workshop itself were nowhere on the page.
- 06 · Crawl61%
Crawl budget spent on filters
Faceted filters (?colore=&taglia=&ordine=) produced 61% of Googlebot hits; new collections took three weeks to be discovered.
III · Five markets, five editions
Three feeds rejected. Each for a different reason.
Choose a market to see what Merchant Center objected to, how it was repaired, and the query that now leads in that language.
Deutsch · EUR
Germany
<link rel="alternate" hreflang="de-DE" href="/de-de/…" />- Diagnosis
- Rejected: price on landing page (incl. VAT) did not match the feed (ex. VAT).
- Repair
- One price source per market; feed and page both render tax-inclusive prices.
- Lead query
- “ledertasche handgemacht italien”not ranking → #3
IV · The strategy
Four tools on the workbench
Built on our Commerce SEO plan (ecommerce seo): fix the structure first, then let the feed, the markup and the language editions all describe the same piece in the same way.
- IThe awl
Variant handling
One strong URL per model, variants as selectable states rather than pages.
- 4,300 variant URLs canonicalised or 301-redirected to 142 parent product pages
- Colour and size moved to on-page selectors with ?variant= kept out of the index
- Only variants with distinct demand (e.g. “black leather tote”) kept as landing pages
- IIThe pattern
Product feeds
A single source of truth per market, built from the catalogue, not hand-edited.
- Supplemental feeds per country with local currency, tax and shipping
- identifier_exists, brand and MPN for handmade SKUs without GTINs
- Made-to-order lead times mapped to backorder + availability_date
- IIIThe thread
Hreflang
Five language-market editions, stitched together with reciprocal tags.
- it-IT, en-GB, en-US, de-DE, fr-FR plus x-default on every indexable page
- Return tags validated nightly; mismatches raised before deploy
- en-GB and en-US split with native currency and spelling
- IVThe stamp
Product schema
Markup that tells search exactly what each piece is and what it costs.
- ProductGroup with variesBy colour and size; each Product with its own Offer
- OfferShippingDetails and MerchantReturnPolicy per market
- Material, countryOfOrigin and craft details surfaced as properties
V · 11 months at the bench
Cut, stitch, finish
Cut
Measure twice, cut once: remove what should never have been indexed.
Month 01
Audit and crawl map
Full crawl, log analysis, feed diagnostics in all five Merchant Center accounts.
Month 02
Variant consolidation
Canonicals and 301s for 4,300 variant URLs; filter parameters blocked from the index.
Month 03
Feed rebuild
Supplemental feeds per market; DE, FR and US resubmitted and reinstated.
Stitch
Join the editions and the markup so every market reads the same piece.
Month 04
Hreflang clusters
Five editions with return tags on 1,140 pages; en-GB and en-US separated.
Month 05
Product schema
ProductGroup, Offer, shipping and returns markup shipped across the catalogue.
Month 06
Craft copy
Parent pages rewritten in five languages with leather, stitching and lead times.
Month 07
Collection pages
Category pages for tote, crossbody and travel, built on demand data per market.
Finish
Burnish, stamp and hand over a catalogue that stays clean.
Month 08
Free listings scale
Shopping clicks pass 3× baseline; image and title tests on the top 40 products.
Month 09
Seasonal launch
Autumn collection indexed in two days instead of three weeks.
Month 10
Bundle and AOV
Matching wallets and straps linked from parent pages; order value climbs.
Month 11
Hand-over
Feed monitoring, hreflang checks and a variant playbook handed to the workshop.
VI · The results, hot-stamped
+231% organic ecommerce revenue
Modelled scenario for a fictional business — not a client result. Rankings and traffic are never guaranteed; see our Terms.
58% → 99%
Feed approval rate
Share of submitted products approved across all five Merchant Center accounts.
4,300
Variant URLs consolidated
Colour and size URLs folded into 142 parent product pages.
+347%
Shopping clicks
Free listings and Shopping clicks, month 11 against the baseline month.
+18%
Average order value
Matching wallets and straps linked from consolidated parent pages.
Revenue and Shopping clicks
Feed approval by month
Oxblood: below 90%. Gold: at or above.
Positions for lead queries, by market
| Query | Market | Monthly searches | Before | Month 11 |
|---|---|---|---|---|
| borsa in cuoio fatta a mano firenze | IT | 1.9k | #14 | #2 |
| pelletteria artigianale firenze | IT | 2.4k | #9 | #1 |
| handmade italian leather bag | UK | 6.6k | #31 | #4 |
| florence leather tote handmade | US | 3.1k | #48 | #3 |
| italian leather crossbody bag women | US | 12k | — | #7 |
| ledertasche handgemacht italien | DE | 2.2k | — | #3 |
| sac en cuir artisanal italien | FR | 1.6k | — | #5 |
| vegetable tanned leather wallet | UK | 4.0k | #62 | #6 |
Your catalogue, on the bench
Get a plan like this
Variants, feeds, hreflang and product schema, put right for every market you sell in.