K. McLean · career
Kenneth McLean
Defensive · Norwich · season-by-season, by competition, and every match.
Career report
McLean is operating at his career peak — the 2025/26 level is the level.
Peak: 2025/26Holding levelRemarkably consistentStepped up 2021/22
The record covers 6 seasons (2020/21–2025/26) across 1 club — 228 appearances, 8 goals and 21 assists.
His best campaign on record is 2025/26 at Norwich — Season rating 44, 3 goals and 3 assists in 42 games. Output has held steady across his last 3 full seasons (43 → 44).
Season-to-season output barely moves — his form has stayed within a tight band (±5 points) across 6 campaigns. Made the jump to a higher division in 2021/22 (Premier League) and kept playing — 31 games that season.
By season
| Season | Club | Apps | G | A | Rating | Season |
|---|---|---|---|---|---|---|
| 2025/26 | Norwich | 42 | 3 | 3 | 28 | 44 |
| 2024/25 | Norwich | 34 | 0 | 4 | 32 | 34 |
| 2023/24 | Norwich | 48 | 1 | 5 | 41 | 43 |
| 2022/23 | Norwich | 35 | 1 | 3 | 39 | 32 |
| 2021/22 | Norwich | 31 | 1 | 0 | 54 | 29 |
| 2020/21 | Norwich | 38 | 2 | 6 | 53 | 38 |
| 2019/20 | Norwich | 37 | 1 | 1 | — | — |
| 2018/19 | Norwich | 20 | 3 | 6 | — | — |
| 2018/19 | Norwich City U23 | 1 | 0 | 0 | — | — |
| 2017/18 | AberdeenLoan | 22 | 3 | 0 | — | — |
| 2016/17 | Aberdeen | 38 | 4 | 0 | — | — |
| 2015/16 | Aberdeen | 38 | 6 | 0 | — | — |
| 2014/15 | Aberdeen | 13 | 0 | 0 | — | — |
| 2014/15 | ST Mirren | 25 | 7 | 0 | — | — |
| 2013/14 | ST Mirren | 30 | 6 | 0 | — | — |
| 2012/13 | ST Mirren | 29 | 3 | 0 | — | — |
| 2011/12 | ST Mirren | 28 | 4 | 0 | — | — |
| 2010/11 | ST Mirren | 19 | 0 | 0 | — | — |
| 2009/10 | Arbroath | 20 | 1 | 0 | — | — |
International
| Side | Season | Competition | Apps | G |
|---|---|---|---|---|
| Scotland | 2026/27 | Friendlies | 4 | 0 |
| 2026/27 | World Cup | 3 | 0 | |
| 2025/26 | Friendlies | 8 | 0 | |
| 2024/25 | Friendlies | 3 | 0 | |
| 2024/25 | Euro Championship | 3 | 0 | |
| 2024/25 | UEFA Nations League | 8 | 0 | |
| 2024/25 | World Cup - Qualification Europe | 4 | 1 | |
| 2023/24 | Euro Championship - Qualification | 7 | 1 | |
| 2023/24 | Friendlies | 1 | 0 | |
| 2022/23 | UEFA Nations League | 3 | 0 | |
| 2022/23 | Friendlies | 1 | 0 | |
| 2020/21 | World Cup - Qualification Europe | 7 | 0 | |
| 2020/21 | UEFA Nations League | 5 | 0 | |
| 2020/21 | Euro Championship | 7 | 1 | |
| 2018/19 | Friendlies | 3 | 0 | |
| 2017/18 | Friendlies | 1 | 0 | |
| 2016/17 | Friendlies | 1 | 0 | |
| Scotland U21 | 2015/16 | UEFA U21 Championship | 3 | 0 |
| 2013/14 | UEFA U21 Championship | 1 | 0 | |
| Scotland U19 | 2011/12 | UEFA U19 Championship | 3 | 0 |
Honours
Championship×3League Cup×2Premiership×5League Cup×2Scottish Cup×2
By competition
| Competition | Apps | Min | G | A | Rating |
|---|---|---|---|---|---|
| Friendliesat Scotland | 4 | 220 | 0 | 1 | 7.0 |
| World Cupat Scotland | 3 | 124 | 0 | 0 | 6.5 |
Schedule · 2025/26
45 played3 injured9 not in squad· 3745 min, 3g 3a
| Date | Competition | Opponent | Res | Status | Min | G | A | Rating |
|---|---|---|---|---|---|---|---|---|
| Jul 12 | Friendlies Clubs | H Northampton | 3-1 | Not in squad | — | |||
| Jul 19 | Friendlies Clubs | H FC Volendam | 1-1 | Not in squad | — | |||
| Jul 19 | Friendlies Clubs | A Zulte Waregem | 1-1 | Not in squad | — | |||
| Jul 25 | Friendlies Clubs | H Olympiakos Piraeus | 0-3 | Not in squad | — | |||
| Jul 25 | Friendlies Clubs | A ADO Den Haag | 0-0 | Not in squad | — | |||
| Aug 2 | Friendlies Clubs | H NAC Breda | 0-1 | Not in squad | — | |||
| Aug 9 | Championship | H Millwall | 1-2 | injured | — | |||
| Aug 12 | League Cup | A Watford | 2-1 | Not in squad | — | |||
| Aug 16 | Championship | A Portsmouth | 2-1 | injured | — | |||
| Aug 23 | Championship | H Middlesbrough | 1-2 | Played | 24 | 1 | 7.0 | |
| Aug 26 | League Cup | H Southampton | 0-3 | Played | 26 | 6.9 | ||
| Aug 30 | Championship | A Blackburn | 2-0 | Played | 77 | 7.2 | ||
| Sep 13 | Championship | A Coventry | 1-1 | Played | 90 | 6.9 | ||
| Sep 20 | Championship | H Wrexham | 2-3 | Not in squad | — | |||
| Sep 27 | Championship | A Stoke City | 1-1 | Played | 90 | 7.3 | ||
| Oct 1 | Championship | H West Brom | 0-1 | Played | 61 | 6.6 | ||
| Oct 5 | Championship | A Ipswich | 1-3 | Played | 90 | 6.7 | ||
| Oct 18 | Championship | H Bristol City | 0-1 | Played | 90 | 7.3 | ||
| Oct 21 | Championship | A Derby | 0-1 | Played | 90 | 8.3 | ||
| Oct 25 | Championship | A Swansea | 1-2 | Played | 90 | 7.3 | ||
| Nov 1 | Championship | H Hull City | 0-2 | Played | 90 | 8.3 | ||
| Nov 5 | Championship | A Sheffield Wednesday | 1-1 | Played | 90 | 7.2 | ||
| Nov 8 | Championship | H Leicester | 1-2 | Played | 90 | 6.9 | ||
| Nov 22 | Championship | A Birmingham | 1-4 | Played | 90 | 6.2 | ||
| Nov 25 | Championship | H Oxford United | 1-1 | Played | 90 | 7.3 | ||
| Nov 29 | Championship | H QPR | 3-1 | Played | 90 | 6.9 | ||
| Dec 6 | Championship | A Watford | 2-3 | Played | 90 | 7.7 | ||
| Dec 9 | Championship | A Sheffield Utd | 1-1 | Played | 45 | 6.7 | ||
| Dec 13 | Championship | H Southampton | 2-1 | Played | 90 | 7.2 | ||
| Dec 20 | Championship | A Preston | 1-1 | Played | 90 | 7.2 | ||
| Dec 26 | Championship | H Charlton | 1-0 | Played | 90 | 7.5 | ||
| Dec 29 | Championship | H Watford | 0-1 | Played | 90 | 6.9 | ||
| Jan 1 | Championship | A QPR | 2-1 | Played | 90 | 7.0 | ||
| Jan 4 | Championship | H Stoke City | 0-2 | Played | 90 | 7.0 | ||
| Jan 11 | FA Cup | H Walsall | 5-1 | Not in squad | — | |||
| Jan 17 | Championship | A Wrexham | 2-1 | Played | 90 | 1 | 7.7 | |
| Jan 20 | Championship | A West Brom | 5-0 | Played | 90 | 6.9 | ||
| Jan 26 | Championship | H Coventry | 2-1 | Played | 90 | 7.7 | ||
| Jan 31 | Championship | A Middlesbrough | 0-1 | Played | 90 | 7.2 | ||
| Feb 7 | Championship | H Blackburn | 2-0 | Played | 90 | 7.3 | ||
| Feb 10 | Championship | A Oxford United | 3-0 | Played | 84 | 6.6 | ||
| Feb 14 | FA Cup | H West Brom | 3-1 | Played | 9 | 6.7 | ||
| Feb 21 | Championship | H Birmingham | 1-2 | Played | 90 | 1 | 8.5 | |
| Feb 25 | Championship | H Sheffield Wednesday | 2-0 | Played | 90 | 7.6 | ||
| Feb 28 | Championship | A Leicester | 2-0 | Played | 90 | 6.9 | ||
| Mar 8 | FA Cup | A Leeds | 0-3 | Played | 90 | 6.7 | ||
| Mar 11 | Championship | H Sheffield Utd | 2-1 | Played | 90 | 6.7 | ||
| Mar 14 | Championship | H Preston | 2-0 | Played | 90 | 1 | 8.5 | |
| Mar 18 | Championship | A Southampton | 0-1 | Played | 90 | 7.2 | ||
| Mar 21 | Championship | A Charlton | 1-0 | Played | 90 | 6.7 | ||
| Apr 3 | Championship | H Portsmouth | 1-1 | Played | 90 | 8.0 | ||
| Apr 6 | Championship | A Millwall | 2-1 | Played | 90 | 6.9 | ||
| Apr 11 | Championship | H Ipswich | 0-2 | Played | 90 | 6.7 | ||
| Apr 18 | Championship | A Bristol City | 4-2 | Played | 89 | 1 | 7.5 | |
| Apr 21 | Championship | H Derby | 2-1 | Played | 90 | 6.7 | ||
| Apr 25 | Championship | H Swansea | 1-1 | Played | 90 | 1 | 7.7 | |
| May 2 | Championship | A Hull City | 1-2 | Inactive | — |