# 1991 United Kingdom local elections

The 1991 United Kingdom local elections were held on Thursday 2 May 1991. The results were a setback for the governing Conservative Party, who were left with their lowest number of councillors since 1973, though their popular vote was an improvement from the 1990 local elections.
This was the first electoral test for Prime Minister and Conservative leader John Major, who had taken the helm from Margaret Thatcher in November 1990.
Labour and the Liberal Democrats both benefited from the Conservative losses.
The main opposition Labour Party gained 584 seats, bringing their number of councillors to 9,504, their highest since 1975. Their projected share of the vote was 38%, a decline of 6% from the previous year. They overtook the Conservatives in number of councillors and would remain in that position until 2003.
The governing Conservative Party lost 1,035 seats, leaving them with 7,985 councillors. Their share of the vote was projected to be 35%, an increase of 2% from the previous year.
The Liberal Democrats gained 407 seats and had 3,672 councillors after the elections, a record number and a sign of their improving popularity after a series of disastrous performances in local and European elections after their formation in March 1988. Their projected share of the vote was 22%, up from 17% in 1990.
Despite the Conservatives' heavy losses, the party would go on to win the 1992 general election 11 months later.

## England
### Metropolitan boroughs

All 36 metropolitan borough councils had one third of their seats up for election.
| Council | Previous control | Result | Details |
| Barnsley | Labour | Labour hold | Details |
| Birmingham | Labour | Labour hold | Details |
| Bolton | Labour | Labour hold | Details |
| Bradford | Labour | Labour hold | Details |
| Bury | Labour | Labour hold | Details |
| Calderdale | Labour | Labour hold | Details |
| Coventry | Labour | Labour hold | Details |
| Doncaster | Labour | Labour hold | Details |
| Dudley | Labour | Labour hold | Details |
| Gateshead | Labour | Labour hold | Details |
| Kirklees | Labour | Labour hold | Details |
| Knowsley | Labour | Labour hold | Details |
| Leeds | Labour | Labour hold | Details |
| Liverpool | Labour | Labour hold | Details |
| Manchester | Labour | Labour hold | Details |
| Newcastle upon Tyne | Labour | Labour hold | Details |
| North Tyneside | Labour | Labour hold | Details |
| Oldham | Labour | Labour hold | Details |
| Rochdale | Labour | Labour hold | Details |
| Rotherham | Labour | Labour hold | 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 | No overall control gain | Details |
| South Tyneside | Labour | Labour hold | Details |
| St Helens | Labour | Labour hold | Details |
| Stockport | No overall control | No overall control hold | Details |
| Sunderland | Labour | Labour hold | Details |
| Tameside | Labour | Labour hold | Details |
| Trafford | Conservative | Conservative hold | Details |
| Wakefield | Labour | Labour hold | Details |
| Walsall | Labour | Labour hold | Details |
| Wigan | Labour | Labour hold | Details |
| Wirral | No overall control | Labour gain | Details |
| Wolverhampton | Labour | Labour hold | Details |

### District councils
#### Whole council

In 185 districts the whole council was up for election.
Three of those districts - Oadby and Wigston, Tonbridge and Malling and Torbay - returned to whole councils elections having previously been elected by thirds.
In 9 districts there were new ward boundaries, following further electoral boundary reviews by the Local Government Boundary Commission for England.
These were the last elections to the district councils of Langbaurgh-on-Tees, Middlesbrough, Stockton-on-Tees and Woodspring before they were made unitary authorities by the Local Government Commission for England (1992).
These were also the last elections to the district councils of Beverley, Boothferry, Cleethorpes, East Yorkshire, Glanford, Holderness, Kingswood, Medina, Northavon, South Wight and Wansdyke before they were abolished and replaced by unitary authorities by the Local Government Commission for England (1992).
| Council | Previous control | Result | Details |
| Allerdale | No overall control | Labour gain | Details |
| Alnwick | No overall control | Liberal Democrats gain | Details |
| Arun | Conservative | Conservative hold | Details |
| Ashfield | Labour | Labour hold | Details |
| Ashford | Conservative | Conservative hold | Details |
| Aylesbury Vale | Conservative | No overall control gain | Details |
| Babergh | No overall control | No overall control hold | Details |
| Berwick-upon-Tweed | No overall control | No overall control hold | Details |
| Beverley | Conservative | No overall control gain | Details |
| Blaby | Conservative | Conservative hold | Details |
| Blackpool | No overall control | Labour gain | Details |
| Blyth Valley ‡ | Liberal Democrats | Labour gain | Details |
| Bolsover | Labour | Labour hold | Details |
| Boothferry | No overall control | No overall control hold | Details |
| Boston | No overall control | No overall control hold | Details |
| Bournemouth | Conservative | No overall control gain | Details |
| Bracknell Forest | Conservative | Conservative hold | Details |
| Braintree | No overall control | No overall control hold | Details |
| Breckland | Conservative | Conservative hold | Details |
| Bridgnorth | Independent | Independent hold | Details |
| Bromsgrove | Conservative | Conservative hold | Details |
| Broxtowe | Conservative | Conservative hold | Details |
| Burnley ‡ | Labour | Labour hold | Details |
| Canterbury | Conservative | No overall control gain | Details |
| Caradon | Independent | Independent hold | Details |
| Carrick | No overall control | Liberal Democrats gain | Details |
| Castle Morpeth | No overall control | No overall control hold | Details |
| Castle Point | Conservative | Conservative hold | Details |
| Charnwood | Conservative | Conservative hold | Details |
| Chelmsford | Liberal Democrats | Conservative gain | Details |
| Chesterfield | Labour | Labour hold | Details |
| Chester-le-Street | Labour | Labour hold | Details |
| Chichester | Conservative | Conservative hold | Details |
| Chiltern | Conservative | Conservative hold | Details |
| Christchurch | Conservative | Conservative hold | Details |
| Cleethorpes | No overall control | No overall control hold | Details |
| Copeland | Labour | Labour hold | Details |
| Corby | Labour | Labour hold | Details |
| Cotswold | Independent | Independent hold | Details |
| Dacorum | Conservative | Conservative hold | Details |
| Darlington | No overall control | Labour gain | Details |
| Dartford | Conservative | Conservative hold | Details |
| Derbyshire Dales | Conservative | Conservative hold | Details |
| Derwentside | Labour | Labour hold | Details |
| Dover | Conservative | No overall control gain | Details |
| Durham | Labour | Labour hold | Details |
| Easington | Labour | Labour hold | Details |
| East Cambridgeshire | Independent | Independent hold | Details |
| East Devon | Conservative | Conservative hold | Details |
| East Dorset | Conservative | Conservative hold | Details |
| East Hampshire | Conservative | No overall control gain | Details |
| East Hertfordshire | Conservative | Conservative hold | Details |
| East Lindsey | Independent | Independent hold | Details |
| East Northamptonshire | Conservative | Conservative hold | Details |
| East Staffordshire | No overall control | No overall control hold | Details |
| East Yorkshire | Conservative | No overall control gain | Details |
| Eden | Independent | Independent hold | Details |
| Epsom and Ewell | Independent | Independent hold | Details |
| Erewash | Conservative | Labour gain | Details |
| Fenland | Conservative | Conservative hold | Details |
| Forest Heath | Conservative | No overall control gain | Details |
| Forest of Dean | No overall control | Labour gain | Details |
| Fylde | Conservative | No overall control gain | Details |
| Gedling | Conservative | Conservative hold | Details |
| Glanford | Conservative | No overall control gain | Details |
| Gravesham | No overall control | No overall control hold | Details |
| Guildford | Conservative | No overall control gain | Details |
| Hambleton | No overall control | No overall control hold | Details |
| Harborough | No overall control | No overall control hold | Details |
| High Peak | No overall control | No overall control hold | Details |
| Hinckley and Bosworth | Conservative | Conservative hold | Details |
| Holderness | Independent | Independent hold | Details |
| Horsham | Conservative | Conservative hold | Details |
| Hove | Conservative | Conservative hold | Details |
| Kennet | No overall control | No overall control hold | Details |
| Kerrier | No overall control | No overall control hold | Details |
| Kettering | No overall control | No overall control hold | Details |
| King's Lynn and West Norfolk | Conservative | No overall control gain | Details |
| Kingswood | Conservative | Labour gain | Details |
| Lancaster | No overall control | No overall control hold | Details |
| Langbaurgh-on-Tees ‡ | No overall control | Labour gain | Details |
| Leicester | Labour | Labour hold | Details |
| Lewes | Conservative | Liberal Democrats gain | Details |
| Lichfield | Conservative | Conservative hold | Details |
| Luton | Conservative | Labour gain | Details |
| Maldon | No overall control | No overall control hold | Details |
| Malvern Hills | No overall control | Independent gain | Details |
| Mansfield | Labour | Labour hold | Details |
| Medina | Conservative | No overall control gain | Details |
| Melton | Conservative | Conservative hold | Details |
| Mendip | No overall control | No overall control hold | Details |
| Mid Bedfordshire | Conservative | Conservative hold | Details |
| Mid Devon | Independent | Independent hold | Details |
| Mid Suffolk | No overall control | No overall control hold | Details |
| Mid Sussex | Conservative | Conservative hold | Details |
| Middlesbrough | Labour | Labour hold | Details |
| New Forest | Conservative | No overall control gain | Details |
| Newark and Sherwood | No overall control | Labour gain | Details |
| Newbury | Conservative | Liberal Democrats gain | Details |
| North Cornwall | Independent | Independent hold | Details |
| North Devon | No overall control | Liberal Democrats gain | Details |
| North Dorset | Independent | Independent hold | Details |
| North East Derbyshire | Labour | Labour hold | Details |
| North Kesteven | No overall control | No overall control hold | Details |
| North Norfolk | Independent | No overall control gain | Details |
| North Shropshire | Independent | Independent hold | Details |
| North Warwickshire | Labour | Labour hold | Details |
| North West Leicestershire | No overall control | Labour gain | Details |
| North Wiltshire | Conservative | Liberal Democrats gain | Details |
| Northampton | Conservative | No overall control gain | Details |
| Northavon | Conservative | No overall control gain | Details |
| Nottingham | Conservative | Labour gain | Details |
| Oadby and Wigston | Conservative | Liberal Democrats gain | Details |
| Oswestry | No overall control | Independent gain | Details |
| Plymouth | Conservative | Labour gain | Details |
| Poole | Conservative | Liberal Democrats gain | Details |
| Restormel | No overall control | Liberal Democrats gain | Details |
| Ribble Valley | Conservative | Conservative hold | Details |
| Richmondshire | Independent | Independent hold | Details |
| Rochester-upon-Medway | Conservative | No overall control gain | Details |
| Rother | Conservative | No overall control gain | Details |
| Rushcliffe | Conservative | Conservative hold | Details |
| Rutland | No overall control | No overall control hold | Details |
| Ryedale | No overall control | No overall control hold | Details |
| Salisbury | Conservative | Conservative hold | Details |
| Scarborough | No overall control | No overall control hold | Details |
| Sedgefield | Labour | Labour hold | Details |
| Sedgemoor | Conservative | Conservative hold | Details |
| Selby | Conservative | No overall control gain | Details |
| Sevenoaks | Conservative | Conservative hold | Details |
| Shepway | No overall control | Liberal Democrats gain | Details |
| South Bucks | Conservative | Conservative hold | Details |
| South Derbyshire | Labour | Labour hold | Details |
| South Hams | Conservative | Conservative hold | Details |
| South Herefordshire ‡ | Independent | Independent hold | Details |
| South Holland | No overall control | Independent gain | Details |
| South Kesteven | Conservative | No overall control gain | Details |
| South Norfolk | No overall control | No overall control hold | Details |
| South Northamptonshire | Conservative | Conservative hold | Details |
| South Oxfordshire | Conservative | Conservative hold | Details |
| South Ribble | Conservative | Conservative hold | Details |
| South Shropshire | Independent | Independent hold | Details |
| South Somerset ‡ | Liberal Democrats | Liberal Democrats hold | Details |
| South Staffordshire ‡ | Conservative | Conservative hold | Details |
| South Wight | No overall control | No overall control hold | Details |
| Spelthorne | Conservative | Conservative hold | Details |
| St Edmundsbury | Conservative | No overall control gain | Details |
| Stafford | No overall control | No overall control hold | Details |
| Staffordshire Moorlands | No overall control | Independent gain | Details |
| Stockton-on-Tees | Labour | No overall control gain | Details |
| Suffolk Coastal | Conservative | Conservative hold | Details |
| Surrey Heath | Conservative | Conservative hold | Details |
| Taunton Deane | Conservative | Liberal Democrats gain | Details |
| Teesdale | Independent | Independent hold | Details |
| Teignbridge | No overall control | No overall control hold | Details |
| Tendring | Conservative | No overall control gain | Details |
| Test Valley | Conservative | Conservative hold | Details |
| Tewkesbury | No overall control | Independent gain | Details |
| Thanet | No overall control | Conservative gain | Details |
| The Wrekin | Labour | Labour hold | Details |
| Tonbridge and Malling ‡ | Conservative | Conservative hold | Details |
| Torbay | No overall control | Liberal Democrats gain | Details |
| Torridge | Independent | Independent hold | Details |
| Tynedale | No overall control | No overall control hold | Details |
| Uttlesford | Conservative | Conservative hold | Details |
| Vale of White Horse | Conservative | Conservative hold | Details |
| Vale Royal | No overall control | Labour gain | Details |
| Wansbeck | Labour | Labour hold | Details |
| Wansdyke | Conservative | No overall control gain | Details |
| Warrington ‡ | Labour | Labour hold | Details |
| Warwick | Conservative | Conservative hold | Details |
| Waverley | Conservative | No overall control gain | Details |
| Wealden | Conservative | Conservative hold | Details |
| Wear Valley | Labour | Liberal Democrats gain | Details |
| Wellingborough | Conservative | Conservative hold | Details |
| Welwyn Hatfield ‡ | Labour | Labour hold | Details |
| West Devon | No overall control | Independent gain | Details |
| West Dorset | No overall control | No overall control hold | Details |
| West Somerset | Independent | Independent hold | Details |
| West Wiltshire | Conservative | Liberal Democrats gain | Details |
| Windsor and Maidenhead | Conservative | No overall control gain | Details |
| Woodspring | Conservative | Conservative hold | Details |
| Wychavon | Conservative | No overall control gain | Details |
| Wycombe | Conservative | Conservative hold | Details |
| Wyre | Conservative | Conservative hold | Details |
‡ New ward boundaries

#### Third of council

In 111 districts one third of the council was up for election.
| Council | Previous control | Result | Details |
| Adur | Liberal Democrats | Liberal Democrats hold | Details |
| Amber Valley | Conservative | Labour gain | Details |
| Barrow-in-Furness | Labour | No overall control gain | Details |
| Basildon | Labour | No overall control gain | Details |
| Basingstoke and Deane | Conservative | Conservative hold | Details |
| Bassetlaw | Labour | Labour hold | Details |
| Bath | No overall control | No overall control hold | Details |
| Blackburn | Labour | Labour hold | Details |
| Brentwood | No overall control | Liberal Democrats gain | Details |
| Brighton | Labour | Labour hold | Details |
| Bristol | Labour | Labour hold | Details |
| Broadland | Conservative | Conservative hold | Details |
| Broxbourne | Conservative | Conservative hold | Details |
| Cambridge | Labour | Labour hold | Details |
| Cannock Chase | Labour | Labour hold | Details |
| Carlisle | Labour | Labour hold | Details |
| Cheltenham | No overall control | Liberal Democrats gain | Details |
| Cherwell | Conservative | Conservative hold | Details |
| Chester | No overall control | No overall control hold | Details |
| Chorley | Labour | No overall control gain | Details |
| Colchester | No overall control | No overall control hold | Details |
| Congleton | No overall control | Liberal Democrats gain | Details |
| Craven | No overall control | No overall control hold | Details |
| Crawley | Labour | Labour hold | Details |
| Crewe and Nantwich | Labour | Labour hold | Details |
| Daventry | Conservative | Conservative hold | Details |
| Derby | Conservative | No overall control gain | Details |
| Eastbourne | No overall control | Liberal Democrats gain | Details |
| Eastleigh | No overall control | No overall control hold | Details |
| Ellesmere Port and Neston | Labour | Labour hold | Details |
| Elmbridge | Conservative | No overall control gain | Details |
| Epping Forest | Conservative | Conservative hold | Details |
| Exeter | No overall control | No overall control hold | Details |
| Fareham | Conservative | Conservative hold | Details |
| Gillingham | No overall control | No overall control hold | Details |
| Gloucester | No overall control | No overall control hold | Details |
| Gosport | No overall control | Liberal Democrats gain | Details |
| Great Grimsby | Labour | Labour hold | Details |
| Great Yarmouth | Labour | Labour hold | Details |
| Harlow | Labour | Labour hold | Details |
| Harrogate | No overall control | No overall control hold | Details |
| Hart | No overall control | No overall control hold | Details |
| Hartlepool | Labour | Labour hold | Details |
| Hastings | No overall control | No overall control hold | Details |
| Havant | No overall control | No overall control hold | Details |
| Hereford | Liberal Democrats | Liberal Democrats hold | Details |
| Hertsmere | Conservative | Conservative hold | Details |
| Huntingdonshire | Conservative | Conservative hold | Details |
| Hyndburn | Labour | Labour hold | Details |
| Ipswich | Labour | Labour hold | Details |
| Kingston upon Hull | Labour | Labour hold | Details |
| Leominster | Independent | Independent hold | Details |
| Lincoln | Labour | Labour hold | Details |
| Macclesfield | Conservative | Conservative hold | Details |
| Maidstone | No overall control | No overall control hold | Details |
| Milton Keynes | No overall control | Labour gain | Details |
| Mole Valley | No overall control | No overall control hold | Details |
| Newcastle-under-Lyme | Labour | Labour hold | Details |
| North Bedfordshire | No overall control | No overall control hold | Details |
| North Hertfordshire | Conservative | Conservative hold | Details |
| Norwich | Labour | Labour hold | Details |
| Nuneaton and Bedworth | Labour | Labour hold | Details |
| Oxford | Labour | Labour hold | Details |
| Pendle | No overall control | Labour gain | Details |
| Penwith | No overall control | No overall control hold | Details |
| Peterborough | No overall control | No overall control hold | Details |
| Portsmouth | No overall control | No overall control hold | Details |
| Preston | Labour | Labour hold | Details |
| Purbeck | No overall control | No overall control hold | Details |
| Reading | Labour | Labour hold | Details |
| Redditch | Labour | Labour hold | Details |
| Reigate and Banstead | Conservative | No overall control gain | Details |
| Rochford | No overall control | No overall control hold | Details |
| Rossendale | Labour | Labour hold | Details |
| Rugby | No overall control | No overall control hold | Details |
| Runnymede | Conservative | Conservative hold | Details |
| Rushmoor | Conservative | Conservative hold | Details |
| Scunthorpe | Labour | Labour hold | Details |
| Shrewsbury and Atcham | No overall control | No overall control hold | Details |
| Slough | Labour | Labour hold | Details |
| South Bedfordshire | Conservative | Conservative hold | Details |
| South Cambridgeshire | Independent | Independent hold | Details |
| South Lakeland | No overall control | No overall control hold | Details |
| Southampton | Labour | Labour hold | Details |
| Southend-on-Sea | Conservative | Conservative hold | Details |
| St Albans | Conservative | No overall control gain | Details |
| Stevenage | Labour | Labour hold | Details |
| Stoke-on-Trent | Labour | Labour hold | Details |
| Stratford-on-Avon | Conservative | No overall control gain | Details |
| Stroud | No overall control | No overall control hold | Details |
| Swale | No overall control | No overall control hold | Details |
| Tamworth | Labour | Labour hold | Details |
| Tandridge | No overall control | No overall control hold | Details |
| Thamesdown | Labour | Labour hold | Details |
| Three Rivers | No overall control | No overall control hold | Details |
| Thurrock | Labour | Labour hold | Details |
| Tunbridge Wells | Conservative | Conservative hold | Details |
| Watford | Labour | Labour hold | Details |
| Waveney | Labour | Labour hold | Details |
| West Lancashire | Conservative | No overall control gain | Details |
| West Lindsey | No overall control | No overall control hold | Details |
| West Oxfordshire | Independent | Independent hold | Details |
| Weymouth and Portland | No overall control | No overall control hold | Details |
| Winchester | No overall control | No overall control hold | Details |
| Woking | No overall control | No overall control hold | Details |
| Wokingham | Conservative | Conservative hold | Details |
| Worcester | Labour | Labour hold | Details |
| Worthing | Conservative | Conservative hold | Details |
| Wyre Forest | No overall control | No overall control hold | Details |
| York | Labour | Labour hold | Details |

## Wales
### District councils

These were the last elections to the district councils before they were abolished by the Local Government (Wales) Act 1994.
| Council | Previous control | Result | Details |
| Aberconwy | No overall control | No overall control hold | Details |
| Alyn and Deeside | Labour | Labour hold | Details |
| Anglesey - Ynys Môn | Independent | Independent hold | Details |
| Arfon | No overall control | No overall control hold | Details |
| Blaenau Gwent | Labour | Labour hold | Details |
| Brecknock | Independent | Independent hold | Details |
| Cardiff | No overall control | Labour gain | Details |
| Carmarthen | Independent | Independent hold | Details |
| Ceredigion | Independent | Independent hold | Details |
| Colwyn | No overall control | No overall control hold | Details |
| Cynon Valley | Labour | Labour hold | Details |
| Delyn | No overall control | Independent gain | Details |
| Dinefwr | Labour | No overall control gain | Details |
| Dwyfor | Independent | Independent hold | Details |
| Glyndŵr | Independent | Independent hold | Details |
| Islwyn | Labour | Labour hold | Details |
| Llanelli | Labour | Labour hold | Details |
| Lliw Valley | Labour | Labour hold | Details |
| Meirionnydd | Independent | Independent hold | Details |
| Merthyr Tydfil | Labour | Labour hold | Details |
| Monmouth | Conservative | No overall control gain | Details |
| Montgomeryshire | Independent | Independent hold | Details |
| Neath | Labour | Labour hold | Details |
| Newport | Labour | Labour hold | Details |
| Ogwr | Labour | Labour hold | Details |
| Port Talbot | Labour | Labour hold | Details |
| Preseli Pembrokeshire | Independent | Independent hold | Details |
| Radnorshire | Independent | Independent hold | Details |
| Rhondda | Labour | Labour hold | Details |
| Rhuddlan | Independent | Independent hold | Details |
| Rhymney Valley | Labour | Labour hold | Details |
| South Pembrokeshire | Independent | Independent hold | Details |
| Swansea | Labour | Labour hold | Details |
| Taff-Ely | Labour | No overall control gain | Details |
| Torfaen | Labour | Labour hold | Details |
| Vale of Glamorgan | Conservative | No overall control gain | Details |
| Wrexham Maelor | Labour | Labour hold | Details |