# 2004 United Kingdom local elections

The 2004 United Kingdom local elections were held on Thursday 10 June 2004, along with the European elections and the London mayoral and Assembly elections.
The councils of all the metropolitan boroughs in England and all the principal areas of Wales were all up for re-election, along with many other district and unitary authorities throughout England. No local elections were held in Scotland.

## Overall

These were the first elections since Michael Howard became leader of the Conservative Party. Howard was looking for a good result in the election to confirm that the Conservatives were back on the road to being able to seriously consider winning the next general election.
Early results confirmed that the Labour Party was having a bad time. Deputy Prime Minister John Prescott said that, "Iraq was a cloud, or indeed a shadow, over these elections. I am not saying we haven't had a kicking. It's not a great day for Labour".
However the Conservatives were not making many of the gains that would have indicated a complete change of electoral fortune. The national equivalent share of the vote in the election was found by academics Colin Rallings and Michael Thrasher to be 37% to the Conservatives, 27% to the Liberal Democrats and 26% to Labour. For one of the two major parties to come third in local elections was unheard of in the post-1945 period, let alone for a governing party with such a large majority to come third.
Even in the North, Labour's traditional heartland, Labour did not do too well, losing control of Doncaster, Leeds, Newcastle and St Helens. However, they did pick up several councils, notably Caerphilly and Rhondda Cynon Taff from Plaid Cymru in Wales.
Despite an increase in their vote and number of councillors, the Liberal Democrats saw a net loss of councils to NOC. The loss to the Conservatives of Eastbourne was in a single-seat by-election. This was partially offset by victories in Newcastle upon Tyne and Pendle.
The British National Party made a net gain of four seats, and held 14. This left them with a total 21 councillors in the country, including six in Burnley and four in Bradford. In the wards they contested, they averaged 16.1% of the vote.
It was to prove a false dawn for the Conservatives; when Britain went to the polls for the following year's general election, Labour was re-elected, although its majority was greatly reduced and the Conservatives did make gains.

## England
### Metropolitan boroughs

| Council | Previous control | Result | Details |
| Barnsley ‡ | Labour | Labour hold | Details |
| Birmingham ‡ | No overall control | No overall control hold | Details |
| Bolton ‡ | No overall control | No overall control hold | Details |
| Bradford ‡ | No overall control | No overall control hold | Details |
| Bury ‡ | Labour | Labour hold | Details |
| Calderdale ‡ | No overall control | No overall control hold | Details |
| Coventry ‡ | No overall control | No overall control hold | Details |
| Doncaster ‡ | Labour | No overall control gain | Details |
| Dudley ‡ | No overall control | Conservative gain | Details |
| Gateshead ‡ | Labour | Labour hold | Details |
| Kirklees ‡ | No overall control | No overall control hold | Details |
| Knowsley ‡ | Labour | Labour hold | Details |
| Leeds ‡ | Labour | No overall control gain | Details |
| Liverpool ‡ | Liberal Democrats | Liberal Democrats hold | Details |
| Manchester ‡ | Labour | Labour hold | Details |
| Newcastle upon Tyne ‡ | Labour | Liberal Democrats gain | Details |
| North Tyneside ‡ | No overall control | No overall control hold | Details |
| Oldham ‡ | Labour | Labour hold | Details |
| Rochdale ‡ | No overall control | No overall control hold | Details |
| Rotherham ‡ | Labour | Labour hold | Details |
| St Helens ‡ | Labour | No overall control gain | Details |
| Salford ‡ | Labour | Labour hold | Details |
| Sandwell ‡ | Labour | Labour hold | Details |
| Sefton ‡ | No overall control | No overall control hold | Details |
| Sheffield ‡ | Labour | Labour hold | Details |
| Solihull ‡ | Conservative | Conservative hold | Details |
| South Tyneside ‡ | Labour | Labour hold | Details |
| Stockport ‡ | Liberal Democrats | Liberal Democrats hold | Details |
| Sunderland ‡ | Labour | Labour hold | Details |
| Tameside ‡ | Labour | Labour hold | Details |
| Trafford ‡ | No overall control | Conservative gain | Details |
| Wakefield ‡ | Labour | Labour hold | Details |
| Walsall ‡ | No overall control | Conservative gain | Details |
| Wigan ‡ | Labour | Labour hold | Details |
| Wirral ‡ | No overall control | No overall control hold | Details |
| Wolverhampton ‡ | Labour | Labour hold | Details |
‡ New ward boundaries

### Unitary authorities
#### Whole council

| Council | Previous control | Result | Details |
| Blackburn with Darwen ‡ | Labour | Labour hold | Details |
| Halton ‡ | Labour | Labour hold | Details |
| Hartlepool ‡ | No overall control | Labour gain | Details |
| Peterborough ‡ | No overall control | Conservative gain | Details |
| Reading ‡ | Labour | Labour hold | Details |
| Slough ‡ | Labour | No overall control gain | Details |
| Thurrock ‡ | Labour | Conservative gain | Details |
| Warrington ‡ | Labour | Labour hold | Details |
| Wokingham ‡ | Conservative | Conservative hold | Details |
‡ New ward boundaries

#### Third of council

| Council | Previous control | Result | Details |
| Derby | No overall control | No overall control hold | Details |
| Kingston upon Hull | No overall control | No overall control hold | Details |
| Milton Keynes | Liberal Democrats | Liberal Democrats hold | Details |
| North East Lincolnshire | No overall control | No overall control hold | Details |
| Plymouth | Labour | Labour hold | Details |
| Portsmouth | No overall control | No overall control hold | Details |
| Southampton | No overall control | No overall control hold | Details |
| Southend-on-Sea | Conservative | Conservative hold | Details |
| Stoke-on-Trent | No overall control | Labour gain | Details |
| Swindon | No overall control | Conservative gain | Details |

### District councils
#### Whole council

| Council | Previous control | Result | Details |
| Adur ‡ | Conservative | Conservative hold | Details |
| Broadland ‡ | Conservative | Conservative hold | Details |
| Cambridge ‡ | Liberal Democrats | Liberal Democrats hold | Details |
| Crawley ‡ | Labour | Labour hold | Details |
| Great Yarmouth ‡ | Conservative | Conservative hold | Details |
| Huntingdonshire ‡ | Conservative | Conservative hold | Details |
| Norwich ‡ | Liberal Democrats | No overall control gain | Details |
| Penwith ‡ | No overall control | No overall control hold | Details |
| Redditch ‡ | No overall control | Labour gain | Details |
| South Cambridgeshire ‡ | No overall control | No overall control hold | Details |
| Weymouth & Portland ‡ | No overall control | No overall control hold | Details |
| Worcester ‡ | Conservative | Conservative hold | Details |
| Worthing ‡ | No overall control | Conservative gain | Details |
| Wyre Forest ‡ | No overall control | No overall control hold | Details |
‡ New ward boundaries

#### Half of council

| Council | Previous control | Result | Details |
| Cheltenham | Liberal Democrats | No overall control gain | Details |
| Fareham | Conservative | Conservative hold | Details |
| Gosport | No overall control | No overall control hold | Details |
| Hastings | Labour | No overall control gain | Details |
| Nuneaton & Bedworth | Labour | Labour hold | Details |
| Oxford | Labour | No overall control gain | Details |

#### Third of council

| Council | Previous control | Result | Details |
| Amber Valley | Conservative | Conservative hold | Details |
| Barrow-in-Furness | Labour | Labour hold | Details |
| Basildon | Conservative | Conservative hold | Details |
| Basingstoke & Deane | No overall control | No overall control hold | Details |
| Bassetlaw | Labour | No overall control gain | Details |
| Bedford | No overall control | No overall control hold | Details |
| Brentwood | No overall control | Conservative gain | Details |
| Broxbourne | Conservative | Conservative hold | Details |
| Burnley | Labour | No overall control gain | Details |
| Cannock Chase | No overall control | No overall control hold | Details |
| Carlisle | No overall control | No overall control hold | Details |
| Castle Point | Conservative | Conservative hold | Details |
| Cherwell | Conservative | Conservative hold | Details |
| Chester | No overall control | No overall control hold | Details |
| Chorley | No overall control | No overall control hold | Details |
| Colchester | No overall control | No overall control hold | Details |
| Congleton | Conservative | Conservative hold | Details |
| Craven | No overall control | No overall control hold | Details |
| Crewe & Nantwich | No overall control | No overall control hold | Details |
| Daventry | Conservative | Conservative hold | Details |
| Eastbourne | Liberal Democrats | Conservative gain | Details |
| Eastleigh | Liberal Democrats | Liberal Democrats hold | Details |
| Ellesmere Port & Neston | Labour | Labour hold | Details |
| Elmbridge | RA | RA hold | Details |
| Epping Forest | No overall control | No overall control hold | Details |
| Exeter | No overall control | No overall control hold | Details |
| Gloucester | No overall control | No overall control hold | Details |
| Harlow | No overall control | No overall control hold | Details |
| Harrogate | Conservative | Conservative hold | Details |
| Hart | Conservative | Conservative hold | Details |
| Havant | Conservative | Conservative hold | Details |
| Hertsmere | Conservative | Conservative hold | Details |
| Hyndburn | Conservative | Conservative hold | Details |
| Ipswich | Labour | No overall control gain | Details |
| Lincoln | Labour | Labour hold | Details |
| Macclesfield | Conservative | Conservative hold | Details |
| Maidstone | No overall control | No overall control hold | Details |
| Mole Valley | No overall control | No overall control hold | Details |
| Newcastle-under-Lyme | No overall control | Labour gain | Details |
| North Hertfordshire | Conservative | Conservative hold | Details |
| Pendle | No overall control | Liberal Democrats gain | Details |
| Preston | No overall control | No overall control hold | Details |
| Purbeck | Conservative | Conservative hold | Details |
| Reigate and Banstead | Conservative | Conservative hold | Details |
| Rochford | Conservative | Conservative hold | Details |
| Rossendale | No overall control | Conservative gain | Details |
| Rugby | No overall control | No overall control hold | Details |
| Runnymede | Conservative | Conservative hold | Details |
| Rushmoor | Conservative | Conservative hold | Details |
| St Albans | No overall control | No overall control hold | Details |
| Shrewsbury & Atcham | Conservative | Conservative hold | Details |
| South Bedfordshire | Conservative | Conservative hold | Details |
| South Lakeland | No overall control | No overall control hold | Details |
| Stevenage | Labour | Labour hold | Details |
| Stratford-on-Avon | Conservative | Conservative hold | Details |
| Stroud | Conservative | Conservative hold | Details |
| Swale | Conservative | Conservative hold | Details |
| Tamworth | Labour | Conservative gain | Details |
| Tandridge | Conservative | Conservative hold | Details |
| Three Rivers | Liberal Democrats | Liberal Democrats hold | Details |
| Tunbridge Wells | Conservative | Conservative hold | Details |
| Watford | Liberal Democrats | Liberal Democrats hold | Details |
| Waveney | No overall control | No overall control hold | Details |
| Welwyn Hatfield | Conservative | Conservative hold | Details |
| West Lancashire | Conservative | Conservative hold | Details |
| West Lindsey | No overall control | Conservative gain | Details |
| West Oxfordshire | Conservative | Conservative hold | Details |
| Winchester | Liberal Democrats | No overall control gain | Details |
| Woking | No overall control | No overall control hold | Details |

### Mayoral elections

| Local Authority | Previous Mayor | Previous Mayor | Mayor-elect | Mayor-elect | Details |
| London | | Ken Livingstone (Labour) | | Ken Livingstone (Labour) hold | Details |

## Wales

| Council | Previous control | Result | Details |
| Anglesey | Independent | Independent hold | Details |
| Blaenau Gwent | Labour | Labour hold | Details |
| Bridgend | Labour | No overall control gain | Details |
| Caerphilly | Plaid Cymru | Labour gain | Details |
| Cardiff | Labour | No overall control gain | Details |
| Carmarthenshire | No overall control | No overall control hold | Details |
| Ceredigion | No overall control | No overall control hold | Details |
| Conwy | No overall control | No overall control hold | Details |
| Denbighshire | No overall control | No overall control hold | Details |
| Flintshire | Labour | Labour hold | Details |
| Gwynedd | Plaid Cymru | Plaid Cymru | Details |
| Merthyr Tydfil | No overall control | Labour gain | Details |
| Monmouthshire | No overall control | Conservative gain | Details |
| Neath Port Talbot | Labour | Labour hold | Details |
| Newport | Labour | Labour hold | Details |
| Pembrokeshire | Independent | Independent hold | Details |
| Powys | Independent | Independent hold | Details |
| Rhondda Cynon Taff | Plaid Cymru | Labour gain | Details |
| Swansea | Labour | No overall control gain | Details |
| Torfaen | Labour | Labour hold | Details |
| Vale of Glamorgan | No overall control | No overall control hold | Details |
| Wrexham | No overall control | No overall control hold | Details |