Case Study · Web & Local SEO

N9 Tattoo Studio swaps its 2010 template for a 93/100 SEO score

A full rebuild of Edmonton Green's longest-running tattoo studio — turning a static, image-heavy relic into a fast, keyword-mapped site that Google, and the AI engines sitting alongside it, can actually read. Visit the live site →

100

Google PageSpeed performance, mobile — the old site's speed was only ever guessed at, never measured

Client
N9 Tattoo Studio, N9
Artist
Ivan Todorov, since 1994
Scope
Rebuild + Local SEO
Stack
Next.js on Cloudflare
The Brief

A trusted studio, invisible to the searches that should find it

N9 Tattoo has been tattooing Edmonton Green since 2010 — a licensed studio, one artist with three decades in the chair, a wall of real work and real reviews to match. None of that was reaching Google, though. The old site wasn't built to be found. It was built to be looked at.

n9tattoo.co.uk — beforecirca 2010

N9 Tattoo Studio
Edmonton Green

The name of the artist is Ivan Todorov, who's from Bulgaria. He is in the industry from 1994 and loves styles such as OLD SCHOOL, JAPANESE, TRADITIONAL…

MORE >>
  • One dense page trying to cover every style, artist and studio fact
  • A fixed-width graphic template that was never going to work on a phone
  • No title or meta strategy, so every page fought for the same terms
  • No structured data at all, so Google's local panels had nothing to go on
n9tattoo.co.uk — afterlaunched Jul 2026

Tattoo studio in Edmonton,
North London

Custom work, cover-ups and walk-ins from Ivan Todorov, tattooing since 1994. Licensed, spotless, and right in the heart of Edmonton.

Book a tattoo →
  • 11 keyword-mapped pages, one style per URL
  • Fully responsive and hosted at the edge, so it's quick everywhere
  • A unique title and meta description per page, local terms built right in
  • A full JSON-LD schema suite covering the business, reviews and FAQs
The Approach

Six moves, in build order

Rather than reskin the old template, we rebuilt the whole site around how people actually search for a tattoo studio in N9 — then made sure Google and the AI answer engines could both read it properly.

Mapped pages to real searches

Swapped the old one-page-does-everything setup for dedicated URLs — cover-ups, Japanese, black & grey, traditional and new-school work, plus About Ivan, The Studio, Gallery, Reviews and Aftercare — each one built around a real local search rather than a general list.

Rebuilt on the edge

A static export built with Next.js and deployed to Cloudflare's edge network, so there's no server round-trip and nothing render-blocking to slow down that first paint.

Structured data suite

Added a TattooParlor/LocalBusiness schema with location, hours and the aggregate rating, a Person entry for Ivan, plus FAQ and breadcrumb markup — basically the vocabulary Google and AI assistants need to understand a local business.

Zero-shift imagery

Every gallery photo now ships as WebP with its real dimensions set and proper alt text, so pages load fast and nothing jumps around while it's loading.

NAP clean-up

One address, one phone number, one set of hours — matched exactly across the site, the schema, Google Business Profile and every directory listing, so there's no conflicting signal for Google to untangle.

Domain cut-over

Connected n9tattoo.co.uk straight to the new build and retired the old site in the same move, rather than leaving the new one stuck on a staging URL.

The Results

100 / 93 / 100 / 100

Google PageSpeed Insights, mobile, run live against n9tattoo.co.uk — the production domain, not a staging preview.

100
Performance
was ~85 (est.) pre-launch
93
Accessibility
semantic HTML, alt text
100
Best Practices
HTTPS, modern build
100
SEO
title/meta, schema, sitemap

Source: PageSpeed Insights report, 8 Jul 2026, 22:17 — https://n9tattoo.co.uk/, mobile.

Our own audit — technical, on-page, schema, images, GEO

93 / 100
Technical SEO
100
Content & E-E-A-T
88
On-page SEO
92
Schema / structured data
92
Performance
100
Image optimisation
92
AI search readiness (GEO)
75
↳ dipped to 35 mid-week after a same-day regression, then recovered — more on that below

Source: our own audit tooling (robots/llms.txt parse, security headers, HTML, schema and sitemap checks), re-run against the live production domain, 8 Jul 2026 — a launch checklist, not a third-party review. Was 85/100 pre-launch.

Caught Same-Day

The one time the score dropped

Closed Out

Every item on the launch list, cleared

Nothing left half-finished. The code-side fixes from the launch audit, the off-site profile work and the crawler regression above — all closed out.

What's Next

Watch the funnel, not just the score

A 100 on PageSpeed is an engineering win, not a booking. The site already tracks the moments that actually turn a visitor into an enquiry — phone taps, WhatsApp clicks, form submissions, all through GA4 — so the next job is watching that data every month and fixing whichever step of Home → style page → Book is losing people. No point re-running an audit that's already passed.