Service

Search engine optimisation

Getting found for the things people actually search — technical foundations first, then structure, then content that deserves the position.

SEO is three jobs that get sold as one. The technical job is making sure search engines can crawl, render and index what you publish. The structural job is organising a site so that authority flows to the pages that can earn money. The content job is producing pages that genuinely answer a query better than the ones currently ranking. Skipping the first two and going straight to content is the most common way SEO budgets are wasted.

We start with measurement and verification rather than recommendations. Audit tools sample, cache and mislabel; we reproduce every finding against the live site before acting on it.

Why this is worth doing properly

Search results have changed shape. AI Overviews and answer engines now sit above the traditional links for a growing share of informational queries, which compresses click-through on exactly the top-of-funnel content most agencies sell. The queries that still reliably produce clicks are those with commercial or navigational intent, and content strategy should follow that reality rather than chasing volume.

This does not make SEO less valuable — it changes where the value sits. AI Overviews are generated from the same index Googlebot builds, so being crawlable, structured and factually citable is the prerequisite for appearing in them. Blocking Google-Extended does not affect this at all; that setting governs Gemini model training, not Search or AI Overviews, and it is regularly misrepresented.

The other durable shift is that indexation is no longer automatic. Google crawls far more than it indexes, and "Discovered — currently not indexed" is the normal state for thin or poorly linked pages. Publishing volume without internal linking and without something genuinely specific on each page now produces pages that are crawled and ignored.

Where this work usually goes wrong

Acting on tool output without verification

Crawlers report problems that do not exist and miss ones that do. Every finding should be reproduced against the live URL with the status code, canonical and headers you measured yourself before anyone spends time fixing it.

Publishing pages nobody links to

A page with one internal link reads as unimportant and frequently sits unindexed indefinitely. Internal linking is not an afterthought to content production; it is the mechanism by which content gets indexed at all.

The service-by-location cross product

Generating every combination of service and city produces near-duplicate pages at scale. This is the doorway-page pattern, it carries manual action risk, and it is sold routinely as programmatic SEO. Multiply one axis and give each page something that could not be templated.

Chasing head terms you cannot win

Ranking sixtieth for a high-volume term earns nothing. A specific term in a less contested market that you can reach page one for is worth more than a theoretical audience you will never see.

Treating lastmod and schema as decoration

A sitemap that stamps every URL with the build date is discounted entirely once the pattern is detected. Structured data with invented values to satisfy a validator is worse than none.

What this covers

Technical SEO
Crawlability, indexability, status codes, canonicals, robots directives, rendering and Core Web Vitals, each verified against the live site.
On-page SEO
Titles, headings, internal links and content structure aligned to the query a page is genuinely trying to serve.
Keyword research
Terms selected on winnability and commercial intent, not on search volume alone.
Competitor SEO analysis
What competitors actually rank for, which pages earn it, and where the gaps are reachable.
Website structure optimisation
Information architecture and internal linking so authority reaches the pages that convert.
Local SEO
Proximity-driven visibility for businesses with a service area or a physical location.
Google Business Profile optimisation
Categories, services, attributes, posts and review handling on the profile that drives map results.
Blog and content SEO
Editorial planned against intent and gaps, produced to be worth reading rather than to hit a word count.
Metadata optimisation
Titles and descriptions written as click decisions, unique across the site and enforced at build time.
Search-performance tracking
Ranking, impression and click tracking read from Search Console rather than from third-party estimates.
SEO reporting
What moved, what we changed, and what we could not verify — including the checks we were unable to run.
AI-search and answer-engine optimisation
Structure, citability and crawler access for AI Overviews, ChatGPT search, Perplexity and Copilot.

How the work runs

Delivery sequence The delivery sequence for search engine optimisation, in order. Each phase is described below. 01 Baseline beforechanging anything 02 Fix crawl andindexability 03 Fix structure andinternal linking 04 Structured data,validated atdocument level 05 Then content 06 Make itenforceable
The delivery sequence for search engine optimisation, in order. Each phase is described below.
  1. Baseline before changing anything

    A full crawl with a Googlebot user agent recording status, canonical, robots directives, titles, headings, word count and internal link counts per URL. Nothing is changed until the baseline is written down, because without it no later claim of improvement can be checked.

  2. Fix crawl and indexability

    Status codes, canonical form, trailing-slash convention, robots directives, redirect chains and internal links that cost a hop. These are unglamorous and they gate everything else.

  3. Fix structure and internal linking

    Orphans and near-orphans linked from pages that genuinely relate, in both directions. Then the link graph is re-run and the new minimum inbound link count reported.

  4. Structured data, validated at document level

    JSON-LD validated across the whole document with nested nodes walked, since consumers merge every block on a page. Nodes missing required properties are removed rather than filled with plausible values.

  5. Then content

    Only once the foundations hold. Pages built around intent we can realistically win, each with something specific enough that it could not have been templated.

  6. Make it enforceable

    The checks move into the build: one h1 per page, unique titles and descriptions, self-referencing canonicals, no internal link to a non-canonical URL, no orphans, no JSON-LD node missing a required property. The build fails on regression.

What you receive

You probably need this if

What we build and work with

Tooling is for finding candidates. Every candidate is verified by hand against the live URL before it becomes a finding.

Google Search Console
The only source of truth for impressions, clicks and index coverage. Third-party rank estimates are treated as directional at best.
Crawling with a Googlebot user agent
Direct crawls recording status, canonical, headers, headings and word count per URL, so findings are reproducible rather than reported.
Structured data validation
Document-level JSON-LD validation walking nested nodes, because block-by-block validation manufactures false dangling-reference errors.
Real page-load measurement
Core Web Vitals measured from actual page loads in a browser, repeated, with variance reported. Not inferred from file sizes.
Build-time audit script
The whole checklist as a script that runs on every build and exits non-zero on regression, so fixes stay fixed.
Log and index monitoring
Where server logs are available, what Googlebot actually requested, which is frequently different from what anyone assumed.
IndexNow and sitemap submission
Prompt notification to Bing and participating engines, with sitemaps carrying a lastmod derived from real content change dates.

What changes once this is in place

Every indexable page actually indexable
Verified status codes, canonicals and robots directives, measured against the live site rather than asserted.
No orphan pages
Internal linking that makes each page reachable and demonstrably important, with the link graph re-measured afterwards.
Structured data that validates honestly
Required properties present or the node removed. Nothing invented to satisfy a validator.
Regressions caught at build time
The audit runs on every deploy, so an accidental noindex or a duplicate title fails the build instead of reaching production.
Reporting that states its limits
Every report ends with the checks we could not run and the access they would need.

How this differs by market

The work is the same craft everywhere. What changes is the law, the language and the buying culture — and those change enough to matter.

European Union

Multilingual sites need hreflang declared only for pages that genuinely exist — an alternate pointing at a 404 is worse than none — with self-references and reciprocation on both sides. A language switcher that prefixes a locale to the current path will 404 on every untranslated page, and crawlers follow those links.

Nordics

Search volumes are small enough that keyword tools frequently report zero for terms that carry real commercial traffic. Local-language content genuinely outranks English for commercial queries in Sweden, Denmark, Norway and Finland even where the audience reads English comfortably, so translation is not optional at the bottom of the funnel.

United States and Canada

The most contested search markets in the world, where head terms are frequently unwinnable for a new domain regardless of budget. Realistic strategy targets specific, lower-competition terms and geography. In Canada, French-language search in Quebec is a distinct market with materially less competition.

United Arab Emirates

Bilingual Arabic and English search behaviour, with Arabic queries facing far less competition for the same commercial intent. Correct hreflang between ar and en versions, plus right-to-left rendering that does not break indexing, are the technical prerequisites most sites get wrong.

Not legal advice. Regulatory summaries on this site describe how we scope and build, and are current to our latest review. Verify the operative text with qualified counsel in the relevant jurisdiction before relying on it.

How we know it worked

We report impressions, clicks, average position and index coverage from Search Console, alongside the technical facts we verified ourselves. We do not report third-party "visibility scores", which are estimates presented with a precision they do not have.

Where a ranking change is claimed to result from our work, we state what changed, when, and what else changed in the same window. Search results move for reasons outside anyone’s control, and attributing every improvement to the most recent invoice is not analysis.

Indexed is not ranking, and ranking is not revenue. We track through to enquiries where the CRM allows it, because a page at position four that produces nothing is a problem, not a success.

Estimates are labelled as estimates. Any figure on this site that describes a range is a planning estimate with its assumptions stated, not a measured client outcome. We do not publish client results without the client's permission and a date.

Questions

How long does SEO take?

Technical fixes can show up in weeks. Content and authority in a competitive market are six to twelve months to a meaningful position, and sometimes longer. Anyone promising first-page rankings in ninety days for a competitive term is either lucky or not being straight with you.

Can you guarantee rankings?

No. Nobody can, because the results are ranked by a system none of us controls and the competition is actively working too. We commit to a verified technical standard, a content plan built on winnability, and reporting that states its own limits.

What does it cost?

We quote against scope — an audit and fix pass is a defined project; ongoing content and link work is a retainer. We do not publish rates, and we would rather scope honestly after a crawl than guess before one.

Should we block AI crawlers?

Separate the two kinds. Blocking training crawlers such as GPTBot, ClaudeBot and CCBot has no effect on search ranking or indexing; it is a licensing decision. Blocking answer-engine crawlers such as OAI-SearchBot and PerplexityBot removes your ability to be cited in AI answers, which is a real visibility loss. Never block Googlebot or Bingbot.

Do we need to publish blog posts every week?

Almost certainly not. Publishing cadence is a poor proxy for results, and volume without internal linking produces unindexed pages. We would rather publish fewer pages that each have something specific and are properly linked.

Is programmatic SEO worth doing?

It can be, and it is frequently done in a way that carries manual-action risk. The line is whether each generated page has something true and specific to it. Generating every service-by-city combination does not clear that line; multiplying a single axis with real per-page substance can.

Related services

Sectors where this is usually the lead engagement

These are the industries where this discipline is typically the first thing a client buys rather than something added later. The link goes to a page written for that sector specifically, with a paragraph on this service and on every other one.

It appears on all thirty sector pages, because every one of them carries a paragraph on all twenty-two services. This list names only the sectors where it tends to lead.

Where we deliver this

This service is delivered across the European Union, the Nordic countries, North America and the United Arab Emirates. The craft does not change; the law, the language and the buying culture do. Consent regimes, invoicing mandates and payment conventions differ enough between markets that a campaign or a system built for one frequently cannot be used unchanged in another.

Each country page sets out what actually differs there and what it means for scope — all 32 countries and 10 cities are listed here. A few of the markets we work in most:

Start a conversation

Tell us what you are trying to change and we will tell you whether this is the right service for it — including when it is not.

Get in touch

Tell us what you are trying to change

Describe the problem rather than the service — the two frequently differ, and working out which is which is the useful part of a first conversation. We reply within one working day, and if it is outside what we do well you will hear that in the reply rather than after a call.

We use what you send to reply to you. Nothing else, and no list.

WhatsApp