Buy online →
See our work → Price your website WhatsApp 07725 541812
Projects £1,000 – £10,000 · Live in 5–10 working days
Upholstery and contract seating · Manchester, Greater Manchester · Projects UK-wide

Web Design for Ashbrook Upholstery — Upholstery and Contract Seating, Greater Manchester

The hardest part of this build was not the design. It was that the business had no phone number, no street address and, at the start, no photographs of…

ClientAshbrook Upholstery
LocationManchester, Greater Manchester
SectorCommercial contract seating and bespoke upholstery
ScopeBrand-led website build, copywriting, photography direction, SEO, DNS and email migration
BuildHand-coded static HTML, CSS and vanilla JavaScript on Cloudflare Pages. No CMS, no plugins
Pages14 pages built, 12 submitted for indexing. Around 5,400 words of body copy
TimescaleRoughly three weeks from first homepage draft to live
Live atashbrookupholstery.co.uk
ashbrookupholstery.co.uk
Ashbrook Upholstery website homepageScroll preview
Ashbrook Upholstery — the page as it is built

The hardest part of this build was not the design. It was that the business had no phone number, no street address and, at the start, no photographs of its own work — and it sells five-figure banquette contracts to architects and main contractors who check everything.

What did we build, in short?

Ashbrook Upholstery is a Manchester workshop making fixed banquette seating, bespoke residential furniture, spray finishes and restoration work. It is the sister company to Ashbrook Joinery. Here is the project at a glance.

What was actually wrong before we started?

There was no website at all. The business was winning contract seating work through the joinery side and word of mouth, with nothing for a designer or contractor to check before specifying them.

That created three concrete problems:

The client supplied brand guidelines, a content document and, later, logo files. The guidelines themselves had a copy-paste error — the brand introduction described the business as delivering "bespoke joinery" rather than upholstery. We flagged it rather than repeating it on the homepage.

  • No proof. A main contractor asked to trust 45 metres of banquette seating to a workshop had nothing to look at.
  • No answer on compliance. Contract seating lives or dies on BS 5852 / Crib 5 fire performance, and there was nowhere that set out how Ashbrook specify to meet it.
  • No separation from the joinery brand. Upholstery was being read as a sideline rather than a specialism.

Why we built it in hand-coded HTML rather than WordPress

Because nothing about this business needs a CMS, and a static site removes an entire category of risk.

  • 14 static HTML pages on Cloudflare Pages. No database, no plugins, no update cycle, no attack surface.
  • Loads fast on site and on a phone in a workshop, which is where contractors actually open it.
  • Hosting and care is £200 a year rather than a maintenance retainer absorbing plugin conflicts.
  • Every image generated at four widths (600, 900, 1200 and 2000 pixels) with width and height set on every tag to stop layout shift. 30 photographs became 120 files at 13.5 MB total, down from 206 MB of originals.

How we made an unproven brand look established

We designed to the supplied guidelines and then spent the budget on motion and layering rather than on more sections.

  • Playfair Display and Inter throughout, with the brand palette used strictly: mahogany #622C00, caramel #C6884F, off-white #F5F5F5 and near-black #0A0A0A. No fifth colour anywhere.
  • A full-height cinematic hero with a slow image zoom, headline revealed word by word from behind a mask, and a mahogany curtain that lifts on load.
  • Overlapping image pairs, staggered card heights and oversized ghost numerals behind the project headings, so the page has depth rather than sitting in flat rows.
  • One consistent treatment applied to every photograph — desaturated slightly, contrast lifted, mahogany wash over the top — so supplied fit-out shots and stock read as a single set.
  • A recurring "stitch rule" device: a hairline with a caramel button at its centre, drawn from the logo mark and the hand-stitching the business sells.

How we handled the photography problem

We started with stock, wrote a shot list, and replaced it as real work arrived.

  • Phase one used tasteful stock plus a handful of fit-out photographs from the joinery side, all cropped to fixed ratios so the grid stayed disciplined.
  • We produced a 26-shot brief grouped by category, with search terms the client could paste straight into a stock library or hand to a photographer.
  • The client then sent genuine workshop photography — a green leather banquette in build and installed, and a fluted tan bench. We put those in the highest-value slots: the contract seating hero, the commercial card on the homepage, the fine dining project block and the first three gallery tiles.
  • Spraying and restoration remain stock. We have told the client plainly that those two pages are the weakest and that real photographs would do more than any copy change.

How we structured the search work for Manchester and Greater Manchester

We built the site around five service pages rather than one services page, because that is where the buying language sits.

An honest note on location pages: we have not built dedicated town pages yet. Greater Manchester coverage is currently handled through schema, the footer block and copy, which is enough to establish where the business sits but not enough to compete for "upholstery Stockport" as a standalone term. Location pages are the obvious next phase.

We make no ranking promises. The site is technically clean, the structure is right and the content answers real questions. What it ranks for depends on competition, links and time, none of which we control.

  • Five individual service pages: commercial contract seating, bespoke residential upholstery, professional spraying and finishing, furniture restoration and reupholstery, and fabric and leather specification.
  • 22 FAQ entries across those pages, answering what contractors actually ask — Crib 5 compliance, whether Ashbrook install or only deliver, lead times, supplying your own fabric.
  • LocalBusiness and HomeAndConstructionBusiness schema with Manchester as locality and Greater Manchester, Cheshire and the United Kingdom as areas served. Ashbrook Joinery is declared as the parent organisation, which is what tells Google the two brands are related.
  • Service, FAQPage and BreadcrumbList schema on each service page. WebSite schema sitewide. All of it validated as parsing cleanly.
  • One H1 per page, every title under 60 characters, every meta description between 145 and 160.
  • A "where we work" block in the footer naming Salford, Stockport, Altrincham, Bolton, Wilmslow, Chester, Liverpool and Leeds, plus nationwide contract work.

What nearly went wrong, and how we caught it

Two things, both found after the design was signed off.

The first was cosmetic but embarrassing. The word-by-word headline animation puts each word in a box with overflow hidden. Those boxes were sized to the line height, which sits above the font’s descender line — so every p, g and y in an animated heading had its tail sliced off. "Upholstery", "Spraying" and "programme" were all affected. The client spotted it on a phone. We fixed it by giving each mask extra room below the baseline and pulling it back with a matching negative margin, then wrote a check that measures every masked element after it reveals and reports anything clipped. Zero across seven pages.

The second mattered more. A week after go-live, the homepage was indexed but not appearing. Two faults in the code were slowing the crawl. Every canonical tag declared a URL with a trailing slash, which Cloudflare Pages redirects — so each page was pointing at a redirect of itself, and all twelve sitemap URLs redirected too. On top of that, every internal link ended in .html, which Pages also strips with a 301, meaning roughly 150 redirect hops on a full crawl of a brand-new domain with barely any crawl budget. We rewrote every canonical, og:url and sitemap entry to match exactly what the server returns, converted all internal links to clean paths, and added 301s for the old ones. Caught in Search Console, not by guesswork.

How do enquiries actually reach Ashbrook?

By email only, through a form that opens as an overlay from every page. There is no phone number anywhere on the site, at the client’s request.

Email-only suits this trade. Contract work starts with drawings, fabric schedules and programme dates, not with a phone call, and a written enquiry gives the workshop something to quote from.

  • An enquiry modal on all 14 pages, triggered from the header, the hero, every call to action and the contact page.
  • Fields for name, company, email, phone, the service needed and project details — so the workshop can triage before replying.
  • Web3Forms posts straight to info@ashbrookupholstery.co.uk. A reply-to field is mapped to the sender, so hitting Reply in Outlook goes back to the customer rather than to the form service.
  • A GDPR consent checkbox that blocks submission until ticked, and two hidden honeypot fields — if either is filled the submission is dropped silently, so bots get no feedback to learn from.
  • On success the browser lands on a /thank-you page, which is noindexed and kept out of the sitemap, so it works as a clean GA4 and Google Ads conversion trigger without ranking or polluting landing page data.
  • If Web3Forms is ever unreachable the user is shown the email address instead, so an enquiry is never silently lost.

How we moved the domain without losing email

The domain and Microsoft 365 mailboxes were on GoDaddy. We moved DNS to Cloudflare while the mail kept flowing.

  • Audited the existing zone line by line before touching anything — MX to Microsoft, SPF, the Microsoft verification TXT record and the autodiscover CNAME.
  • Rebuilt each record in Cloudflare, with autodiscover and MX explicitly set to DNS-only. A proxied autodiscover record stops Outlook auto-configuring accounts, which is a support call waiting to happen.
  • Added a DMARC record on monitoring only. Flagged that DKIM was never set up at all and that the values can only come from the client’s own Microsoft admin panel.
  • Checked Cloudflare Email Routing was disabled — it inserts its own MX records and silently overrides Microsoft, which is the most common way email dies during a Cloudflare migration.

What does the business have now?

Roughly three weeks from first homepage draft to live, including the DNS and email migration.

  • A 14-page website with around 5,400 words of original copy written for contractors and designers, not for search engines.
  • Five service pages that each answer a specific buying question, backed by 22 FAQs.
  • Structured data that ties Ashbrook Upholstery to Ashbrook Joinery, so the two brands read as one group.
  • An enquiry route with consent, spam protection and conversion tracking already wired in.
  • DNS and email on Cloudflare, with a documented record of what was moved and what still needs adding.
  • A static site with no CMS to maintain, no plugins to patch and hosting at £200 a year.
  • A photography brief the client can work through at their own pace, with every image slot already sized and cropped for the swap.

Want something similar for your business?

See our pricing, or tell us about your project. We will tell you honestly whether you need a new site or just a tidy-up.

Message us on WhatsApp — 07725 541812.

Web design for trades and manufacturers: whiteskidigital.com/web-design-for-trades/

See our pricing, or tell us about your project. We will tell you honestly whether you need a new site or just a tidy-up.

Message us on WhatsApp — 07725 541812.

£100 gets you a homepage preview before you commit. Refundable against the build.

Frequently asked questions

What does a website like this cost?

Our packages are £1,000 for a complete site and £1,500 for everything. A build of this scale — 14 pages, five service pages, full SEO structure and a DNS migration — sits at the £1,500 tier. Hosting and care is £200 a year.

How long does it take?

Ashbrook went from first homepage draft to live in about three weeks, and that included moving DNS and email. The usual hold-up is not the build. It is waiting on logo files, photographs and sign-off, all three of which slowed this project at some point.

Do you work with businesses in Greater Manchester?

Yes. Ashbrook Upholstery is in Manchester and installs across Salford, Stockport, Altrincham, Bolton and Wilmslow, out into Cheshire and as far as Liverpool and Leeds. We work remotely with clients across the UK and from Cyprus, so location has never been the constraint.

Why build a static site instead of WordPress?

Because this business does not publish. It has no blog, no shop and no login, so a database and a plugin stack would add maintenance and security risk for no benefit. Static HTML on Cloudflare Pages loads faster, cannot be hacked through an out-of-date plugin, and costs less to keep running. If a client genuinely needs to publish regularly, we build in WordPress instead.

Can a site with no phone number really generate enquiries?

For this trade, yes. Contract seating enquiries arrive with drawings, fabric schedules and programme dates attached, and a written enquiry gives the workshop something to quote from. We made the form work hard instead: it captures company, service type and project detail, confirms consent, and lands the sender on a thank-you page so enquiries can be tracked as conversions.

Can you move our domain and email without downtime?

Yes, and it is the part of a launch worth being careful about. We audit the existing DNS zone first, rebuild every mail record in the new provider before touching nameservers, and switch nameservers last. On Ashbrook we also added DMARC and identified that DKIM had never been configured. Nothing was lost.

Other builds worth a look

Yours could be the next case study on here.

Tell us what you do and where you work. Straight price, straight timescale, from the person who would build it. If you want to see it before you commit, the £100 preview is refunded in full when you go ahead.