Web design and development

Websites built by people who have to make them rank afterwards.

Most sites are designed first and handed to an SEO later, once the structure is already set and every useful change has become expensive. We build the site and do the technical SEO, so those decisions get made while they are still cheap.

Custom themes, no page builder bloatFixed scope before any workBuilt to be handed over

The difference

Design decisions are SEO decisions.

Not a slogan. These are the specific choices that get made during a build and are painful to reverse afterwards.

URL structure

Decided in week one, expensive to change in year two because by then every change needs a redirect and every redirect leaks a little equity. Getting this right at the start costs nothing.

Template hierarchy

Which templates exist, what each one outputs, and whether an archive can ever rank. Retrofitting a template that was never meant to be a landing page is most of the work in a typical SEO project.

Internal linking

Built into the templates deliberately rather than bolted on later as a 25 link block in the footer. We cut exactly that block down to five chosen links on one site, which is work that should never have been needed.

Rendering

Whether your content exists for a crawler that does not wait around. We server render by default, including interactive features. A geolocation search tool we built stays fully crawlable for that reason.

Schema

An entity graph designed once, properly, with @id relationships that resolve instead of colliding. Cheaper than untangling a graph that three plugins have been fighting over for four years.

Performance

A custom theme outputs the markup the page needs and nothing else. That is why it is fast, rather than being fast because six optimisation plugins are holding it together.

What gets built

What a build actually includes.

Always

  • A custom theme, written rather than assembled from a page builder
  • Responsive and mobile first, tested on real viewport sizes
  • Custom post types, taxonomies and templates where the content needs them
  • Accessible markup, proper labelling, ARIA roles and keyboard behaviour
  • Structured data designed as one coherent graph
  • Image pipeline with modern formats and correct sizing
  • Caching set up, and more importantly set up to invalidate correctly
  • A written handover, so you are never stuck with us

Where it varies

  • Visual design. We can design the pages, work to your designer's files, or build around brand assets you already have
  • Copy. We write SEO copy that reads human, or we build around yours
  • Bespoke tools. Comparison tools, search features and calculators are built from scratch when a plugin will not do it properly
  • Ecommerce. WooCommerce yes, Shopify to a point, and we will say if another developer suits it better
  • Migrations. If there is an existing site, the redirect map and parity checks are their own piece of work

Recently built

A selection, measured on the live sites.

Part of the portfolio rather than all of it, and every figure below was taken from the running site rather than a case study written afterwards. Two are linked so you can check them yourself. The rest are in sectors where clients prefer not to be listed publicly, so those are described without naming them and we will introduce you on request. Several are recent, and a new site takes months to rank, so treat this as proof of how they are built rather than of what they have earned yet.

Flagship, DR 88

The site we own end to end

Nine hundred and eighty images on the landing view, every one carrying alt text, and it still paints in 260ms with not a single third party request on the page. This is where the case studies on this site come from: the brute force mitigation, the four root causes behind one cache failure and the bespoke tools were all built here.

Images on view
980
With alt text
980 of 980
First paint
260ms
Domain rating
88
Built with WordPressCustom Sage theme PHPCloudflare RedisOPcache srcset0 third party requests

Named on request

Editorial guide site

Lamplit London

Considered guides to London after dark. A saved list feature, a full guide taxonomy, and sponsored link compliance handled properly with rel="sponsored".

First paint
636ms
Requests
15
Images with alt text
40 of 40
Built with WordPressCustom theme PHPEWWW image pipeline System fonts0 third party requests

lamplitlondon.com →

Content site at scale

London Guide UK

An independent London publication running 309 guides across 386 venues and 72 neighbourhoods, with the taxonomy and internal linking built to carry that many pages without going thin.

First paint
784ms
Guides live
309
Neighbourhoods
72
Built with WordPressCustom templates PHPCustom taxonomies Schema graph

londonguideuk.co.uk →

Listings directory

A large lifestyle listings directory

Sixty seven listing images on the landing view alone, every one lazy loaded and carrying alt text, plus a CollectionPage and BreadcrumbList graph and canonicals that resolve correctly across the filtered listing views.

Images lazy loaded
67 of 67
Images with alt text
67 of 67
First paint
1.4s
Built with WordPressCustom child theme PHPAVIFWebP CollectionPage schema

Named on request

Community platform

A community and listings platform

Served from cache at the edge, which is why the server answers in single digit milliseconds and the whole page moves a fraction of the weight most directories ship. Every image carries alt text.

Time to first byte
11ms
Page transfer
214KB
Images with alt text
35 of 35
Built with WordPressPHP Edge cached HTMLSVG assets Organization schema

Named on request

Image heavy gallery

A gallery carrying a hundred images

The gallery view is the hardest page on any listings site, because the honest version means shipping a hundred images at once. Most sites either paginate it into uselessness or let it take five seconds to settle. This one carries 102 images and still paints in 656ms, with ItemList schema so Google reads it as a collection rather than a wall of unlabelled pictures.

Images on view
102
Responsive variants
99 of 102
First paint
656ms
Page transfer
615KB
Built with WordPressChild theme PHPsrcset + sizes Native lazy loadingItemList schema BreadcrumbList0 third party requests

Named on request

Custom build, no CMS

An agency site built without WordPress

The only one here that is not WordPress. Assets are split across dedicated CDN and media subdomains rather than served from the application, so images and the site itself scale independently and neither slows the other down.

Images with alt text
25 of 25
First paint
1.0s
Asset domains
Split CDN
Built with Custom stackNo CMS Dedicated CDNSeparate media domain Organization schema

Named on request

Image heavy, no CMS

Two hundred images, half a second

Another custom build with no CMS behind it. Two hundred and forty four images on the landing view, every one carrying alt text and all but three lazy loaded, and it still reaches first paint in under half a second.

Images on view
244
With alt text
244 of 244
Lazy loaded
241 of 244
First paint
496ms
Built with Custom stackNo CMS Native lazy loadingVideo integration Canonicals

Named on request

Most recent build

The newest one, and the cleanest set of numbers so far

A custom build with no CMS, finished most recently, and it is the best example of what the image pipeline should look like. Fifty three of its sixty two images are served as AVIF or WebP rather than JPEG, every one carries alt text, and the server answers in 53 milliseconds. First paint lands at 308ms.

The structured data is a single consolidated graph of six nodes rather than the pile of competing blocks most sites end up with. That is the same consolidation described in the schema case study, applied from the start instead of retrofitted.

First paint
308ms
Time to first byte
53ms
Modern formats
53 of 62
With alt text
62 of 62
Built with Custom stackNo CMS AVIFWebP Single schema graphBreadcrumbList Canonicals

Named on request

Evidence

What we have built inside those sites.

The bespoke parts, rather than the homepages. Our documented work is build and technical, not brand identity.

Bespoke tool

A location search that maintains itself

Built from scratch for a term with 33k searches a month. Geolocation API, distance sorting, radius filtering and reverse geocoded labels. The geocoding layer falls back from a static map to a cached lookup to a one off external call, so new locations work with no code change at all. Server rendered, so it is fully crawlable.

Bespoke tool

A three way comparison feature

Real relationship data derived from post meta and made bidirectional, with SVG connector graphics, location aware combined pricing, localStorage persistence and undo and redo. DOM safe rendering throughout, which matters when you are injecting user selected content.

Theme

A custom Sage theme, owned end to end

Full technical ownership of a DR 88 site. Custom theme, the caching architecture, structured data, edge security and the SEO. Around 151 hours logged and documented, so the next developer can pick it up.

Infrastructure

Caching that clears when it should

Most builds treat caching as a plugin you switch on. On one site content was up to a day stale, from four separate causes at once. Building the invalidation properly at the start is why we treat it as part of the build rather than an afterthought.

How a build runs

Four stages, and you approve the scope first.

STEP 01

What it needs to do

Before anything visual. What the site is for, who has to use it, what has to rank, and what the content actually is. Most bad builds are bad because this part got skipped.

Free first call
STEP 02

Structure

URL structure, templates, post types and the internal linking plan. This is the part that decides whether the site can rank, and it happens before a single pixel is placed.

Agreed in writing
STEP 03

Build

Custom theme, templates, any bespoke features, schema, caching and the image pipeline. On staging, with indexing blocked, which sounds obvious and is skipped constantly.

Logged as it is spent
STEP 04

Launch and hand over

Redirects if there was an old site, a parity check, then monitoring for the first weeks. Plus written documentation of how it all works, so you are not dependent on us.

Rollback path ready

Cost

What it costs.

Development runs at £90 to £100 an hour, or £95 blended where the build and the SEO are genuinely the same work. Projects are quoted as a fixed scope after we have seen what you need.

Small site

Quoted

A handful of pages on a clean custom theme. If a good template would genuinely do the job we will tell you, because paying developer rates for that is a waste.

Custom build

Scoped

Custom post types, bespoke templates, real content architecture, schema and caching. The common case, and where having the build and the SEO on one team pays for itself.

Build plus tooling

Scoped

Where the site needs something no plugin does properly. A search feature, a comparison tool, a calculator. Built from scratch, server rendered and crawlable.

Fixed scope and cost agreed in writing before work starts, so the number does not move once it is underway. Time is logged as it is spent and the ledger is open to you. Full breakdown on the rates page.

FAQ

Questions before you enquire

Are you designers or developers?

Developers, and it is worth being straight about that before you enquire. We build custom themes from scratch, write the PHP and CSS, and we care a great deal about typography, spacing, accessibility and how a page behaves on a slow phone. What we do not do is brand identity, logo work or a visual concept phase with mood boards.

In practice that means one of three things. You bring a designer and we build what they draw. You bring existing brand assets and we design the pages around them. Or you want something clean, fast and structural rather than art directed, which is most business sites, and we do that directly.

If what you actually want is a striking brand led visual identity, hire a designer for that part. We will happily build it afterwards.

Do you use page builders like Elementor or Divi?

Not by choice. They are fine for getting something live quickly, and if you already have one we will work with it rather than insisting on a rebuild. But they add a lot of weight, they generate markup you do not control, and they make Core Web Vitals harder than it needs to be.

Given the choice we build a custom theme. You get markup that is exactly what the page needs and nothing else, which is why the sites we build tend to be fast without a stack of optimisation plugins holding them together.

How much does a website cost?

It is quoted per project after we have seen what you need, because the honest range is too wide to be useful. A handful of pages on a clean custom theme is a very different job from a site with custom post types, a bespoke tool and a migration.

The underlying rate is £90 to £100 an hour for development, or £95 blended when the work mixes build and SEO. We give you a fixed scope and cost in writing before anything starts, so the number does not move once work begins. Full detail on the rates page.

Will the site be built so it can rank?

Yes, and this is the main reason to have one team do both. Most sites are designed first and handed to an SEO afterwards, at which point the structure is already fixed and the advice becomes a list of things that are expensive to change.

Building it ourselves means the URL structure, template hierarchy, internal linking, heading structure and schema are decided while they are still cheap to decide. That is not an upsell, it is just the order the work should happen in.

Do you do ongoing support after launch?

Yes, and we would rather you took it than not, because a site nobody maintains slowly falls apart. Tested updates, security, monitoring and small changes. Detail on the maintenance page.

It is not compulsory. Everything we build is documented, so another developer can pick it up without needing us.

When should I not hire you for this?

If you need a five page brochure site as cheaply as possible, a template and a competent generalist will serve you better and cost a lot less. Paying developer rates for something a theme already does is a poor use of money.

If you need it in a fortnight and it is complicated, we are probably not free at that notice, and rushing a build is how you end up paying for it twice.

Book me

Tell us what the site needs to do.

Not what it should look like, that comes later. What it is for, who uses it and what has to rank. That is enough for us to tell you roughly what it takes.

Reply within one working day No obligation Your details stay with us

Takes about 60 seconds. No newsletter and no CRM sequence. Your details are used to reply to this enquiry and nothing else.