[ Case Study · Astro 7 · SEO / GEO ]

Panolux

Wood panels, kitchens and dressings from Casablanca: a dark-first, 28-page French catalogue on Astro 7 that maps and audits its own SEO on every build.

Client
PANOLUX® (Casablanca)
Engagement
Site rebuild + SEO/GEO architecture
Disciplines
Web design · Astro · SEO · Motion
Year
2027
Live
panolux.ma
Panolux homepage with a wood-panel kitchen hero and the headline Panneaux Bois Modernes — light modePanolux homepage with a wood-panel kitchen hero and the headline Panneaux Bois Modernes — dark mode
01 · Overview

Two catalogues, one showroom, one site that audits itself.

PANOLUX® sells two very different things from one showroom in Dar Bouazza, Casablanca. Architects, joiners and designers come for a technical range of decorative wood panels: MDF and moisture-resistant MDF, HDF, melamine and Egger decors, blockboard, plywood, High Gloss and Super Mat, HPL and compact laminate, acoustic and slatted wall panels, and exterior cladding, with cutting and machining to size. Homeowners come for made-to-measure kitchens, dressings, wardrobes and bathroom fittings built from those same panels. The brief was a French-language site that covers the real search demand on both sides (MDF prices, moisture-resistant boards, Egger, HPL, fitted kitchens, dressings, cladding) and turns visits into quote requests, without thin copies and without publishing a price list.

The starting point was measurable. A site audit of panolux.ma exported on 9 July 2026 crawled 13 pages and flagged 26 redirecting URLs, 12 pages reachable through a single internal link, no sitemap.xml, no llms.txt, missing HSTS, duplicate H1s and broken internal images. RAIN rebuilt the site on Astro 7 and more than doubled it: 28 indexable pages grouped into 4 SEO silos, 11 of them generated from one shared landing-page template, with FAQPage and BreadcrumbList structured data, a generated sitemap, an llms.txt file and HSTS on every response.

The part we are proudest of is that the site checks itself. A build-time inventory reads every page source and feeds both the sitemap and an internal /seo map. The map draws the silo tree and the internal link mesh, and audits titles, descriptions, H1s, word counts, image alt text, orphan pages and broken links on every build. Today it reports 189 contextual internal links, 0 orphan pages, an average of 675 words per page and a clean status on all 28 pages. The look is dark-first, with oversized Inter headlines, a lavender accent and a light mode. Motion is a small bundled layer (Lenis smooth scroll and Motion reveals) built to work with Astro's client-side router. CSS is inlined, images are optimised WebP, and analytics run in a web worker.

By the numbers
13 → 28

Indexable pages, July crawl to rebuild

189

Contextual internal links across 4 silos

0

Orphan pages in the build-time audit

64

FAQ answers in FAQPage schema on 14 pages

02 · Architecture & Design

Six decisions that make the site grow without decaying.

A catalogue site rots when every new page is a one-off. We made the structure do the work: one inventory, one template, one map, and a motion layer that cleans up after itself.

01

One template for every keyword page

A shared SeoLanding component renders the hero, alternating image-and-text sections, spec cards, an optional spec table, FAQs, related links and a quote CTA. Eleven pages, from Egger and plywood to wardrobes and sanitary cubicles, are pure data on top of it, so a new page arrives with its schema, links and CTA already in place.

02

A site that audits itself at build time

One inventory reads every page source and extracts its title, description, H1, word count, images and links. The same list generates sitemap.xml, with lastmod taken from each file, and the internal /seo map, so the sitemap and the audit can never disagree with the pages.

03

Four silos and a measured link mesh

Pages are grouped into Panels & Materials (13), Kitchens (6), Fit-out (7) and Showroom & Quote. A related-links block on every template feeds the mesh, and the map counts it: 189 contextual internal links and no page without a contextual inbound link.

04

Structured data where the answers live

The FAQ accordion and its FAQPage JSON-LD are generated from the same array, so what a visitor reads and what a search or answer engine quotes stay identical. That covers 64 questions on 14 pages, plus BreadcrumbList on every template page.

05

Motion that survives page swaps

Lenis and Motion are bundled once and re-initialised on every Astro page load. Observers and scroll timelines are torn down before each swap, the theme is re-applied after it, and the intermediate scroll events Lenis fires every frame are filtered out so the router does not hit Chrome's history-update limit.

06

A dark-first showroom with a light mode

Black surfaces let the panel and kitchen photography carry the page. Inter at weight 800 with tight tracking sets the display type, and a single lavender accent marks eyebrows, CTAs and open states. The light mode swaps every token through one class on <html>, set before first paint so there is no flash.

03 · Everything inside

A full panel catalogue, an SEO lab and a motion layer.

Every page, tool and interaction shipped in the rebuild, grouped the way the site itself is organised. Hover any item for what it does.

Panels & materials13
  • Panneau MDF
  • MDF hydrofuge
  • Prix panneau MDF
  • Panneau mélaminé
  • Egger Maroc
  • Panneau latté
  • Contreplaqué
  • High Gloss & Super Mat
  • Stratifié HPL & compact
  • Panneaux acoustiques
  • Découpe sur mesure
  • Fournisseur Casablanca
  • Hub MDF & mélaminés
Kitchens06
  • Cuisines équipées
  • Prix cuisine équipée
  • Cuisine MDF
  • Meuble sur mesure
  • Façades & portes
  • Plan de travail & crédence
Fit-out07
  • Dressing sur mesure
  • Placard sur mesure
  • Dressing & salle de bain
  • Habillage mural
  • Tasseaux bois
  • Bardage extérieur
  • Cabines sanitaires HPL
SEO & GEO08
  • FAQPage JSON-LD
  • BreadcrumbList
  • Generated sitemap
  • Legacy sitemap index
  • llms.txt
  • Canonical URLs
  • Open Graph & Twitter
  • Price-intent pages
The /seo map08
  • Silo view
  • Mesh view
  • Silo filters
  • Page search
  • Sortable audit table
  • On-page checks
  • Orphan detection
  • Broken-link check
Motion & interaction10
  • Lenis smooth scroll
  • Staggered reveals
  • Image wipe
  • Hero parallax
  • Count-up stats
  • Reading progress
  • Magnetic buttons
  • Card spotlight
  • Smart nav
  • Animated FAQ
Performance07
  • Inlined CSS
  • Optimised WebP
  • LCP preload
  • Non-blocking fonts
  • Partytown analytics
  • Immutable caching
  • HSTS preload
Conversion07
  • Quote CTA everywhere
  • WhatsApp widget
  • Click-to-call
  • Mailto contact form
  • Maps, Apple Maps, Waze
  • Opening hours
  • Free samples
Design system07
  • Dark-first palette
  • Light mode
  • Lavender accent
  • Inter 400–900
  • Mesh gradients
  • Glass nav
  • Wave eyebrows

73 pages, tools and interactions in one static build, all owned.

04 · How it competes

A catalogue that measures its own SEO.

The usual alternative for a showroom business is a page builder. Panolux owns its code, its structure and its audit trail.

vs. its own July 2026 site
The July audit found 13 pages, no sitemap, no llms.txt, missing HSTS and 12 pages with a single internal link. The rebuild has 28 indexable pages, a generated sitemap, llms.txt, HSTS and no orphan pages in its own audit.
vs. WordPress + page builder
No plugin stack to patch and no database behind the pages. FAQ schema, breadcrumbs and the sitemap come from the same source as the content instead of from three separate plugins.
vs. Wix
Full control over headings, URLs and structured data, plus a link-mesh audit that a hosted builder does not expose. Analytics run off the main thread instead of adding to it.
vs. Webflow
Comparable motion polish with no per-site subscription. Keyword pages are data on a typed template, and every page is checked on every build.
Feature-by-feature
PanoluxWP + builderWixWebflow
Static HTML, no plugin surface✓—✓✓
FAQ schema generated with the content✓○○○
Silo and link-mesh map✓○——
On-page audit on every build✓○○○
llms.txt✓○○○
No render-blocking stylesheet✓———
Analytics off the main thread✓○——
Smooth scroll and scroll-linked motion✓○○✓
Dark and light theme, no flash✓○—○
Fully owned code, no subscription✓○——
✓ included  ·  ○ partial / plugin / manual  ·  — not available
05 · Outcome

From 13 pages to a 28-page catalogue that checks itself.

The rebuilt site is live at panolux.ma. The indexable catalogue grew from the 13 pages in the July crawl to 28, written in French and totalling about 18,900 words by the site's own counter. The main issues that audit flagged now have fixes in the code: a generated sitemap referenced in robots.txt, an llms.txt file, HSTS on every response, trailing-slash canonical URLs that match the production redirects, and build-time checks for H1s, orphan pages and broken links. FAQPage markup covers 64 answers on 14 pages, and the internal map reports 189 contextual links with no orphans and a clean status on all 28 pages.

We have not re-crawled the site since the rebuild and claim no ranking, traffic or lead figures. Next on the list: LocalBusiness schema for the showroom, rendering the FAQ schema on the kitchen-price page, removing an unused animation dependency and self-hosting the icon script. Because every page is data on a shared template and checked by the /seo map, each new material or service page lands linked, marked up and audited from day one.

Panolux — FAQ

RAIN Design Studio rebuilt panolux.ma as a static Astro 7 site with 28 indexable French pages in 4 silos: 13 panel and material pages, 6 kitchen pages, 7 fit-out pages, a showroom and quote page, and the homepage. It includes FAQ and breadcrumb structured data, smooth motion, a light and dark theme, and an internal SEO map.

It is an internal, non-indexed page generated at every build from the same page inventory as the sitemap. It draws the silo tree and the internal link mesh, and audits each page's title, description, H1, word count, image alt text, inbound links and broken links. It currently reports 189 contextual internal links and no orphan pages.

FAQPage JSON-LD covers 64 answers on 14 pages and is generated from the same data as the visible accordion. Template pages also carry BreadcrumbList schema. The site publishes a generated sitemap, an llms.txt file and one canonical URL per page.

A site audit exported in July 2026 crawled 13 pages and flagged a missing sitemap and llms.txt, missing HSTS, redirecting URLs and 12 pages with a single internal link. The rebuild has 28 indexable pages and fixes for those issues. The site has not been re-crawled since, and RAIN claims no ranking or traffic results.

Panel, kitchen and dressing projects are quoted individually. Price-intent pages such as the MDF and fitted-kitchen price guides explain what drives cost and lead to a free quote request instead of a price list.

Want a product like this?

Custom projects from $10,000, monthly plans from $7,500. Kickoff within 3–5 business days.