Illustrative case study

A fictional business. The figures are a modelled scenario, not a client result.

Case file BP-1400 · Ecommerce SEO

Bistritsa Parquet — Hardwood flooring retailer · Sofia

How a parquet showroom turned 1,400 SKUs into Sofia's most-searched flooring catalogue

+€186k

organic revenue · modelled over 14 months

SKU 1199 · OAK 18/3SKU 1130 · OAK 16/3SKU 1065 · OAK 14/3SKU 1000 · OAK 12/3SKU 1331 · OAK 18/3SKU 1266 · OAK 16/3SKU 1197 · OAK 14/3SKU 1132 · OAK 12/3SKU 1398 · OAK 16/3SKU 1264 · OAK 12/3SKU 1333 · OAK 14/3

1,390 boards laid · 14 months

Organic revenue (12 mo)
€41k → €227k
Indexed product pages
380 → 1,390
Free-listing clicks / month
0 → 5.2k
Avg. category position
24 → 6

01 · The challenge

Most products were hidden behind filter URLs Google never indexed, and there was no product feed at all.

Bistritsa Parquet stocks around 1,400 flooring SKUs in its Sofia showroom: oak in a dozen grades, herringbone and chevron blocks, SPC vinyl, laminate, and the oils and underlays that go with them. Online, shoppers found them by filtering, and that was the problem.

Every filter produced a parameter URL that robots.txt kept out of Google. Products that lived only behind those filters simply did not exist to search. With no product feed, the free Shopping tab, where flooring buyers compare price per square metre, was closed to them too.

Underside of the catalogue · one square per SKU

Indexed at kick-off · 380 / 1,400
At kick-off Google held 380 product pages. The other 1,020 squares were boards still in the box.

02 · Diagnosis

Eight defects, stamped on the underside of the boards

  1. 01FacetsCritical

    1,020 product URLs were reachable only through ?filter= parameters, which robots.txt blocked.

    FixStatic facet landing pages for combinations with demand; products linked from them.

  2. 02FeedCritical

    No Merchant Center account and no product feed, so zero eligibility for free listings.

    FixERP-driven feed, nightly, with GTIN, price per m² and stock.

  3. 03SchemaHigh

    Product pages carried no Product or Offer markup; price and stock were invisible to Google.

    FixProduct + Offer JSON-LD generated from the same feed fields.

  4. 04CanonicalsHigh

    Every variant page set its canonical to the category root, collapsing 600 SKUs into 38 URLs.

    FixSelf-referencing canonicals; variants consolidated only where content was identical.

  5. 05PaginationHigh

    Infinite scroll with no paginated fallback: page two onwards was never crawled.

    FixCrawlable ?page= links behind the scroll, in the HTML.

  6. 06ContentMedium

    38 category pages shared one 40-word template description.

    FixUnique copy per category answering the questions buyers search.

  7. 07LocalMedium

    Showroom address only inside an image; Business Profile categorised as a generic Store.

    FixAddress in text, Store schema, Flooring store as primary category.

  8. 08SpeedMedium

    Category LCP of 5.8 s on mobile from uncompressed 4 MB swatch photographs.

    FixResponsive AVIF swatches and lazy loading below the fold: LCP 1.9 s.

03 · Strategy

Four boards, laid in order

Built on our Commerce SEO plan. Herringbone only holds if every board locks into the last: the feed feeds the schema, the schema feeds Merchant Center, and the facet pages give all of it somewhere to land.

  1. Board 01

    Product feeds

    One feed, built nightly from the ERP, becomes the single source of truth for Merchant Center, on-page schema and the catalogue itself, so price and stock never disagree.

  2. Board 02

    Faceted navigation

    Filters stay for shoppers, but only the 112 combinations people actually search ("oak herringbone 14 mm", "grey SPC click") get a static, indexable URL with its own copy.

  3. Board 03

    Product schema

    Product, Offer and AggregateOffer markup carries price per m², pack coverage and availability, which makes the pages eligible for rich results and merchant listings.

  4. Board 04

    Merchant Center

    Verified account, shipping and returns policy and enriched attributes put 1,312 SKUs into the free Shopping tab and product knowledge panels.

Before · month 01

паркет рибена кост

flooring-marketplace.bg

Паркет рибена кост — каталог

parket-world.bg

Паркет рибена кост — каталог

homedepot-bg.com

Паркет рибена кост — каталог

Bistritsa Parquet: position 48 · page 5

After · M14 (mock-up)

паркет рибена кост

Products · free listings

Oak 14/3 natural

€38/m²

Oak smoked 15/4

€44/m²

Oak white oil

€41/m²

bistritsa-parquet.bg › herringbone

Herringbone parquet in Sofia — 46 oak patterns

★ 4.8 · From €38/m² · In stock · Showroom in Lozenets

04 · Timeline

14 months, board by board

Survey

Measure the room · M01–M02

  1. M01€3.4k/mo

    Crawl & log-file audit

    30 days of server logs: Googlebot spent 71% of hits on filter URLs it was then told not to index.

  2. M02€3.6k/mo

    Facet demand map

    Every wood × finish × width combination scored against Bulgarian search demand; 112 earned a page.

Subfloor

Level the subfloor · M03–M05

  1. M03€5.1k/mo

    Indexable facet pages

    Static, self-canonical URLs for the 112 combinations; the long tail stays noindex, follow.

  2. M04€7.4k/mo

    Product feed from the ERP

    Nightly export of 1,400 SKUs with GTINs, m² pricing, stock and colour attributes.

  3. M05€10.2k/mo

    Merchant Center live

    Account verified, shipping and returns set, free listings approved for 1,312 SKUs.

Laying

Lay the boards · M06–M09

  1. M06€13.3k/mo

    Product & Offer schema

    Product, Offer and AggregateOffer markup with price per m² and pack coverage.

  2. M07€16.4k/mo

    Canonicals & pagination

    Variant canonicals pointed at themselves; infinite scroll got a crawlable ?page= fallback.

  3. M08€19k/mo

    Category copy rewrite

    38 categories rewritten with installation, underfloor-heating and room-fit guidance.

  4. M09€21.2k/mo

    Showroom signals

    Store schema, address in text, Business Profile recategorised as Flooring store.

Finish

Oil and buff · M10–M14

  1. M10€22.9k/mo

    Feed enrichment

    Material, pattern, thickness and wear-layer attributes added; disapprovals down to 0.6%.

  2. M11€24.6k/mo

    Supplemental promotions feed

    Seasonal pricing pushed without touching the core feed or the ERP.

  3. M12€26.8k/mo

    Guides link to categories

    Twelve installation guides now pass internal links to the category they explain.

  4. M13€29.1k/mo

    Herringbone & chevron hub

    A pattern hub with layout calculator, linked from every herringbone SKU.

  5. M14€31k/mo

    Consolidation & handover

    Feed monitoring, facet rules and schema tests documented for the in-house team.

05 · Results

The floor, by category: each board’s grain is its revenue

Pick a category to read its board; switch periods to watch the grain grow. Herringbone and chevron, the category with the most hidden facet pages, moved furthest.

Modelled scenario for a fictional business — not a client result. Rankings and traffic are never guaranteed; see our Terms.

Board 01 · Oak engineered · €12.4k → €58.6k · ×4.7

TOTAL · 8 CATEGORIES€227k

Organic revenue (12 mo)

€41k€227k

€0k€10k€20k€30kM01€3.4kM02M03M04M05M06M07€16.4kM08M09M10M11M12M13M14€31k€K / MONTH · MONTHS 3–14 SUM TO €227K

Indexed product pages

3801,390

Before · 380 / 1,400
After · 1,390 / 1,400

Free-listing clicks / month

05.2k

M01M14FEED LIVE M04 →

Avg. category position

246

#1#10#20#30PAGE ONE

Ranking ledger · Google.bg, Sofia

QueryVol / moBeforeAfterLanding page
паркет Софияparquet Sofia2,90031#2Category
дъбов паркетoak parquet1,60027#3Category
винилов паркет SPCvinyl SPC flooring1,30022#5Category
паркет рибена костherringbone parquet88048#1Pattern hub
трислоен паркет ценаengineered parquet price720>100#4Facet page
ламиниран паркет 8 ммlaminate 8 mm59035#6Facet page
масло за паркетparquet oil48041#3Category
подложка за паркетparquet underlay39029#4Category
орехов паркетwalnut parquet320>100#2Facet page
паркет шевронchevron parquet260>100#1Pattern hub

Commerce SEO · Ecommerce SEO

Get a plan like this

A catalogue Google can see, a feed it trusts, and listings shoppers can compare. We start with the audit.

← All case studies