Original data

Thirty eight UK local SEO markets, measured on one day.

Every agency claims local SEO is competitive. We measured it. Across 38 UK markets the median keyword difficulty for the plain "seo [place]" term is 1.5 out of 100, 15 of them measure a flat zero, and only 4 sit above 30. The hardest market in the country is not London, and the difficulty score is wrong about the one city where it matters most. Full table, method and caveats below, free to reuse with a link.

38 marketsMeasured 25 July 2026Free to cite

Headline

Four findings, and one of them is a warning.

1.5

Median difficulty

Out of 100, across all 38 markets. Local search in the UK is, on this measure, close to undefended.

15

Markets at zero

The bottom of the scale, meaning the ranking pages carry almost no links of their own. Milton Keynes is the largest of them at 1,100 a month.

4

Above difficulty 30

Only 4 of 38. Cardiff is hardest at 54, on a fraction of London's volume.

70x

Traffic spread

Brighton's top page gets an estimated 2,100 visits, Newcastle's about 30, on similar volumes. Volume does not predict traffic.

The data

Every market, sorted by search volume.

Ahrefs Keywords Explorer, United Kingdom, all pulled on 25 July 2026. KD is keyword difficulty out of 100. TP is traffic potential, the estimated monthly organic traffic the current top ranking page receives from all terms, not just this one.

Keyword difficulty, monthly search volume and traffic potential for the term "seo [place]" across 38 UK markets, measured 25 July 2026
Market Volume KD TP
London 3,200 1 3,600
Manchester 1,900 35 2,000
Birmingham 1,700 24 1,200
Milton Keynes 1,100 0 1,100
Leeds 1,000 2 450
Liverpool 1,000 5 250
Nottingham 900 1 700
Leicester 900 3 350
Glasgow 800 3 1,100
Essex 800 31 250
Hertfordshire 700 0 250
Sheffield 700 0 600
Surrey 700 2 450
Cardiff 700 54 200
Edinburgh 700 9 1,300
Bristol 600 42 1,400
Newcastle 600 1 30
Coventry 600 0 250
Derby 600 11 150
Northampton 600 12 500
Southampton 600 1 300
Belfast 600 6 200
Cambridge 600 0 600
Kent 500 3 100
Plymouth 500 17 300
Norwich 500 3 700
Wolverhampton 450 0 200
Bradford 400 0 200
York 400 0 1,300
Swansea 400 7 150
Oxford 350 0 900
Hull 300 0 90
Brighton 250 0 2,100
Portsmouth 250 0 400
Reading 250 30 300
Luton 150 0 150
Aberdeen 80 0 100
Stoke 40 0 350

38 markets, 26,420 searches a month combined. Gold marks a difficulty of zero, muted red marks above 30.

Finding one

City size does not predict difficulty. At all.

Big and soft

  • London, 3,200 a month, difficulty 1
  • Milton Keynes, 1,100 a month, difficulty 0
  • Leeds, 1,000 a month, difficulty 2
  • Nottingham, 900 a month, difficulty 1
  • Sheffield, 700 a month, difficulty 0

Small and hard

  • Cardiff, 700 a month, difficulty 54
  • Bristol, 600 a month, difficulty 42
  • Essex, 800 a month, difficulty 31
  • Reading, 250 a month, difficulty 30
  • Plymouth, 500 a month, difficulty 17

Cardiff is 54 while London is 1, on a fifth of the volume

That is the single strangest number in the set and it holds up on inspection: a handful of Welsh agencies have genuinely invested in their own city term, while in London the plain phrasing is largely ignored because the money there sits in the commercial variants. Difficulty measures who bothered, not how big the prize is. The practical reading is that you cannot infer your local market from your city's population, which is what most local SEO pitches quietly assume.

Finding two

The plain term and the buying term are different markets.

This is where a single number per city stops being enough, and it is also where we have to correct an ambiguity in our own earlier pages.

London: difficulty 1 on the plain term, 54 on the commercial one

seo london takes 3,200 searches a month at difficulty 1. seo agency london takes 3,700 at difficulty 54. Same city, same week, same tool, and a 53 point gap between two phrasings a buyer might use interchangeably.

The reason is intent. The plain city term collects students, jobseekers, people researching the field and a minority who want to hire. The agency phrasing filters almost all of that out, which is why agencies compete for it and ignore the other. A table of head terms, including this one, therefore understates the difficulty of actually winning commercial local traffic.

Leicester runs the opposite way and is worth noting for the same reason: there the commercial terms are the cheap ones, with seo agency leicester at 0 while the plain seo leicester sits at 3. The lesson is not that one phrasing is always harder. It is that you have to check both for your own city.

A correction to our own pages

Several city pages on this site compare a local difficulty to "54 for the London equivalent". That 54 is seo agency london, not seo london, which measures 1. The comparison is sound but the wording is ambiguous enough that a reader checking it would reasonably conclude we had it wrong. It is being corrected, and it is exactly the kind of unfalsifiable-sounding claim this site tells clients not to make.

Finding three

The difficulty score lies at the top of the range.

The most useful thing in this study is the place where the number is wrong, because it is the number everybody quotes without checking.

Manchester reads 13 on its main commercial term, and the first page says otherwise

seo agency manchester carries 1,700 searches a month at a measured difficulty of 13. In Leeds or Sheffield that would mean an open goal. We pulled the actual first page for it.

Four established Manchester agencies with purpose built location pages, at domain ratings of 72, 52, 47 and 37. Clutch at 91 and Semrush at 92 taking a slot each with directory listings. A further domain rated 71 below them. These are not placeholders, they are pages built to hold position by firms who intend to keep them.

Difficulty scores estimate the links pointing at ranking pages. They undercount a market where the incumbents are strong on brand, content and internal linking but have never needed many links to that one page. So the number is not broken, it is answering a narrower question than people use it for.

The honest counterweight: positions six and seven on that page belong to domains rated 30 and 26, with no measurable links to those specific URLs. The mid table is genuinely reachable on page quality. Both things are true, and only one of them is in the score.

Finding four

Search volume does not predict traffic.

Brighton over delivers

250 → 2,100

250 searches a month, and the top ranking page is estimated to receive around 2,100 visits. Roughly eight times the term's own volume, because the city generates an unusually rich tail of related search: courses, jobs, meetups, freelancer listings, agency comparisons.

Newcastle under delivers

600 → 30

600 searches a month, and the top page gets about 30 visits. The likeliest cause is that Newcastle is not one place: Newcastle upon Tyne, Newcastle under Lyme and Newcastle in New South Wales split the intent, so no page consolidates it.

A seventy fold difference between two similar looking rows

Both cities look comparable in a volume column. One is worth roughly seventy times the other to whoever ranks first. Anyone budgeting from search volume alone, which is most keyword research, would get both of these badly wrong. Traffic potential is the column to read, and it is the one usually left out of tables like this.

Method

How this was measured, and what it cannot tell you.

Source and date. Ahrefs Keywords Explorer, United Kingdom database, every figure pulled on 25 July 2026. These numbers move, so a re-pull will differ. The date is on the page so a reader can judge how stale it has become rather than guess.

One phrasing only. The plain "seo [place]" term throughout. Mixing phrasings would make rows incomparable, since "seo agency leeds" and "seo leeds" are different terms with different competitors. The cost of that consistency is finding two above: the plain term is not always the commercially important one.

What the columns mean. Volume is estimated monthly searches. KD is Ahrefs keyword difficulty, a 0 to 100 estimate derived from the referring domains of currently ranking pages. TP is traffic potential, the estimated monthly organic traffic the current top ranking page receives from every term it ranks for, not just this one.

What this does not measure. Not the map pack, which is decided by proximity to the searcher rather than by links, and which is where a lot of genuinely local businesses actually compete. Not commercial value, since a difficulty zero market with nobody in it may simply be a market with no buyers. Not your own chances, which depend on a domain that this table knows nothing about.

One row we do not trust. Ahrefs reports a traffic potential of 29,000 for "seo company sheffield" on 500 searches a month, which is wildly out of line with every neighbouring figure and almost certainly an artefact of how the parent topic was assigned. It is excluded from the table and mentioned here rather than quietly dropped, because a study that hides its bad data is not worth citing.

The obvious caveat about who published this. We sell SEO, and a table showing most UK local markets are winnable is convenient for us. Every figure is reproducible in any Ahrefs account in about twenty minutes, which is the only reason it is worth anything. Check it.

Reuse

Free to cite.

Published under a Creative Commons Attribution licence. Use the figures, the chart or the findings in your own work, with a link back so a reader can check the method and the date.

The raw data is on GitHub as a CSV, with the column definitions, the licence and instructions for pulling the numbers again yourself. The CSV is generated from the same array this table is built from rather than retyped, which is the only way a data file and the study quoting it stay in agreement.

UK SEO Difficulty Index, Alin Boatca, 25 July 2026.
https://alinboatca.com/uk-seo-difficulty-index/

Writing something that needs a figure we have not published, or a market not in the table? Ask and we will pull it, on the same terms.

FAQ

Questions about the data

What is keyword difficulty, exactly?

Ahrefs keyword difficulty is a 0 to 100 estimate of how many referring domains the pages currently ranking have, and therefore roughly how much link authority you would need to join them. It is a link based measure and nothing more.

That is worth holding onto, because it means a low score says the incumbents are weak on links. It does not say the market is easy in every sense, and the Manchester section above is the clearest example of the difference.

Why only the plain "seo [place]" phrasing?

Because mixing phrasings would make the comparison meaningless. "seo agency leeds" and "seo leeds" are different terms with different competitors and different scores, so a table combining them would be measuring inconsistently from row to row.

One phrasing, one country, one date. The trade is that the plain term is not always the most commercially valuable one in a given city, which is itself a finding rather than a flaw.

Does a difficulty of zero mean I can rank tomorrow?

No, and this is the most important caveat here. Zero means the pages currently ranking have almost no links pointing at them specifically. You still need a page that deserves the position, a domain Google is willing to trust, and enough time in the index for any of it to register.

A brand new domain with no referring domains will not rank for a difficulty zero term either, which is a limit worth stating plainly given who publishes tables like this. This domain is the worked example: it ranks for nothing, and the only links it has are the 130 junk domains that turned up uninvited.

Can I reuse this data?

Yes, with a link back to this page. There is a citation line below you can copy. We would rather people used it than paraphrased it inaccurately.

If you re-pull the figures and get something different, that is expected: these move. The date is on the page for exactly that reason, and we would be glad to hear about a discrepancy that looks like an error rather than drift.

Book me

Want your own market pulled?

Send the town or city and the phrasing your customers actually use. You get the difficulty, the volume and an honest read on whether the number is telling you the truth, at no cost and with no pitch attached.

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. See the privacy notice.