# List of West Ham United F.C. seasons

These are the seasons of Thames Ironworks (1895–1900) and West Ham United from their year of formation to their most recent season. The club first competed in The Football League in 1919.

## League seasons

| Season | League | League | League | League | League | League | League | League | League | FA Cup | EFL Cup | Europe / Other | Europe / Other | Top goalscorer(s) | Top goalscorer(s) |
| Season | Division | Pld | W | D | L | GF | GA | Pts | Pos | FA Cup | EFL Cup | Europe / Other | Europe / Other | Player(s) | Goals |
| 1895–96 | | | | | | | | | | 1Q | | West Ham Charity Cup | W | George Gresham | 10 |
| 1896–97 | LL | 12 | 7 | 2 | 3 | 17 | 17 | 16 | 2nd | 1Q | | West Ham Charity Cup | RU | George Gresham | 2 |
| 1897–98 | LL | 16 | 12 | 3 | 1 | 47 | 15 | 27 | 1st | 2Q | | | | George Gresham | 12 |
| 1898–99 | SL Div 2 | 22 | 19 | 1 | 2 | 64 | 16 | 39 | 1st | 2Q | | | | David Lloyd | 14 |
| 1899–1900 | SL Div 1 | 28 | 8 | 5 | 15 | 30 | 45 | 21 | 14th | 5Q | | | | Bill Joyce | 18 |
| 1900–01 | SL Div 1 | 28 | 14 | 5 | 9 | 40 | 28 | 33 | 6th | R1 | | | | Billy Grassam | 15 |
| 1901–02 | SL Div 1 | 30 | 17 | 6 | 7 | 45 | 28 | 40 | 4th | 4Q | | | | Billy GrassamGeorge Ratcliffe | 10 |
| 1902–03 | SL Div 1 | 30 | 9 | 10 | 11 | 35 | 49 | 28 | 10th | R1 | | | | Billy Grassam | 19 |
| 1903–04 | SL Div 1 | 34 | 10 | 7 | 17 | 38 | 43 | 27 | 12th | R1 | | | | Charlie Satterthwaite | 18 |
| 1904–05 | SL Div 1 | 34 | 12 | 8 | 14 | 48 | 42 | 32 | 10th | 6Q | | | | Billy Bridgeman | 11 |
| 1905–06 | SL Div 1 | 34 | 14 | 5 | 15 | 42 | 39 | 33 | 11th | R1 | | | | Harry Stapley | 9 |
| 1906–07 | SL Div 1 | 38 | 15 | 14 | 9 | 60 | 41 | 44 | 5th | R2 | | | | Harry Stapley | 22 |
| 1907–08 | SL Div 1 | 38 | 15 | 10 | 13 | 47 | 48 | 40 | 10th | R2 | | | | Harry Stapley | 10 |
| 1908–09 | SL Div 1 | 40 | 16 | 4 | 20 | 56 | 60 | 36 | 18th | R3 | | | | Danny Shea | 20 |
| 1909–10 | SL Div 1 | 42 | 15 | 15 | 12 | 69 | 56 | 45 | 9th | R3 | | | | Danny Shea | 31 |
| 1910–11 | SL Div 1 | 38 | 17 | 11 | 10 | 63 | 46 | 45 | 5th | R4 | | | | Danny Shea | 28 |
| 1911–12 | SL Div 1 | 38 | 13 | 7 | 18 | 64 | 69 | 33 | 13th | R3 | | | | Danny Shea | 24 |
| 1912–13 | SL Div 1 | 38 | 18 | 12 | 8 | 66 | 46 | 48 | 3rd | R2 | | | | George Hilsdon | 17 |
| 1913–14 | SL Div 1 | 38 | 15 | 12 | 11 | 61 | 60 | 42 | 6th | R3 | | | | Dick Leafe | 21 |
| 1914–15 | SL Div 1 | 38 | 18 | 9 | 11 | 58 | 47 | 45 | 4th | R1 | | | | Syd Puddefoot | 18 |
| No competitive football was played between 1915 and 1919 due to World War I ||||||||||||||||
| 1919–20 | Div 2 | 42 | 19 | 9 | 14 | 47 | 40 | 47 | 7th | R5 | | | | Syd Puddefoot | 26 |
| 1920–21 | Div 2 | 42 | 19 | 10 | 13 | 51 | 30 | 48 | 5th | R1 | | | | Syd Puddefoot | 29 |
| 1921–22 | Div 2 | 42 | 20 | 8 | 14 | 52 | 39 | 48 | 4th | R2 | | | | Syd Puddefoot | 14 |
| 1922–23 | Div 2 | 42 | 20 | 11 | 11 | 63 | 38 | 51 | 2nd | RU | | | | Vic Watson | 27 |
| 1923–24 | Div 1 | 42 | 13 | 15 | 14 | 40 | 43 | 41 | 13th | R2 | | | | Billy Moore | 10 |
| 1924–25 | Div 1 | 42 | 15 | 12 | 15 | 62 | 60 | 42 | 13th | R5 | | | | Vic Watson | 23 |
| 1925–26 | Div 1 | 42 | 15 | 7 | 20 | 63 | 76 | 37 | 18th | R3 | | | | Vic Watson | 20 |
| 1926–27 | Div 1 | 42 | 19 | 8 | 15 | 86 | 70 | 46 | 6th | R4 | | | | Vic Watson | 14 |
| 1927–28 | Div 1 | 42 | 14 | 11 | 17 | 81 | 88 | 39 | 17th | R4 | | | | Jimmy Ruffell | 19 |
| 1928–29 | Div 1 | 42 | 15 | 9 | 18 | 86 | 96 | 39 | 17th | QF | | | | Vic Watson | 30 |
| 1929–30 | Div 1 | 42 | 19 | 5 | 18 | 86 | 79 | 43 | 7th | QF | | | | Vic Watson | 50 |
| 1930–31 | Div 1 | 42 | 14 | 8 | 20 | 79 | 94 | 36 | 18th | R3 | | | | Vivian Gibbins | 19 |
| 1931–32 | Div 1 | 42 | 12 | 7 | 23 | 62 | 107 | 31 | 22nd | R4 | | | | Vic Watson | 25 |
| 1932–33 | Div 2 | 42 | 13 | 9 | 20 | 75 | 93 | 35 | 20th | SF | | | | Vic Watson | 28 |
| 1933–34 | Div 2 | 42 | 17 | 11 | 14 | 78 | 70 | 45 | 7th | R4 | | | | Vic Watson | 29 |
| 1934–35 | Div 2 | 42 | 26 | 4 | 12 | 80 | 51 | 56 | 3rd | R3 | | | | Jimmy Ruffell | 20 |
| 1935–36 | Div 2 | 42 | 22 | 8 | 12 | 90 | 68 | 52 | 4th | R3 | | | | Dave Mangnall | 24 |
| 1936–37 | Div 2 | 42 | 19 | 11 | 12 | 73 | 55 | 49 | 6th | R3 | | | | Len Goulden | 15 |
| 1937–38 | Div 2 | 42 | 14 | 14 | 14 | 53 | 52 | 42 | 9th | R3 | | | | Stan FoxallArchie Macaulay | 10 |
| 1938–39 | Div 2 | 42 | 17 | 10 | 15 | 70 | 52 | 44 | 11th | R5 | | | | Stan Foxall | 19 |
| No competitive football was played between 1939 and 1946 due to World War II |||||||||||||||
| 1945–46 | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | R4 | | | | Almer Hall | 19 |
| 1946–47 | Div 2 | 42 | 16 | 8 | 18 | 70 | 76 | 40 | 12th | R3 | | | | Frank Neary | 15 |
| 1947–48 | Div 2 | 42 | 16 | 14 | 12 | 55 | 53 | 44 | 6th | R3 | | | | Eric Parsons | 12 |
| 1948–49 | Div 2 | 42 | 18 | 10 | 14 | 56 | 58 | 46 | 7th | R3 | | | | Ken Wright | 11 |
| 1949–50 | Div 2 | 42 | 12 | 12 | 18 | 53 | 61 | 36 | 19th | R4 | | | | Bill Robinson | 24 |
| 1950–51 | Div 2 | 42 | 16 | 10 | 16 | 68 | 69 | 42 | 13th | R4 | | | | Bill Robinson | 29 |
| 1951–52 | Div 2 | 42 | 15 | 11 | 16 | 67 | 78 | 41 | 12th | R4 | | | | Bert Hawkins | 15 |
| 1952–53 | Div 2 | 42 | 13 | 13 | 16 | 58 | 60 | 39 | 14th | R3 | | | | Fred Kearns | 12 |
| 1953–54 | Div 2 | 42 | 15 | 9 | 18 | 67 | 69 | 39 | 13th | R4 | | | | Tommy Dixon | 19 |
| 1954–55 | Div 2 | 42 | 18 | 10 | 14 | 74 | 70 | 46 | 8th | R3 | | | | John Dick | 26 |
| 1955–56 | Div 2 | 42 | 14 | 11 | 17 | 74 | 69 | 39 | 16th | QF | | | | Billy Dare | 25 |
| 1956–57 | Div 2 | 42 | 19 | 8 | 15 | 59 | 63 | 46 | 8th | R4 | | | | John Dick | 13 |
| 1957–58 | Div 2 | 42 | 23 | 11 | 8 | 101 | 54 | 57 | 1st | R5 | | | | John Dick | 26 |
| 1958–59 | Div 1 | 42 | 21 | 6 | 15 | 85 | 70 | 48 | 6th | R3 | | | | John Dick | 30 |
| 1959–60 | Div 1 | 42 | 16 | 6 | 20 | 75 | 91 | 38 | 14th | R3 | | | | Malcolm Musgrove | 20 |
| 1960–61 | Div 1 | 42 | 13 | 10 | 19 | 77 | 88 | 36 | 16th | R3 | R2 | | | John Dick | 19 |
| 1961–62 | Div 1 | 42 | 17 | 10 | 15 | 76 | 82 | 44 | 8th | R3 | R2 | | | John Dick | 23 |
| 1962–63 | Div 1 | 42 | 14 | 12 | 16 | 73 | 69 | 40 | 12th | QF | R2 | | | Geoff Hurst | 15 |
| 1963–64 | Div 1 | 42 | 14 | 12 | 16 | 69 | 74 | 40 | 14th | W | SF | | | Johnny Byrne | 33 |
| 1964–65 | Div 1 | 42 | 19 | 4 | 19 | 82 | 71 | 42 | 9th | R4 | R2 | Charity Shield | Shared | Johnny Byrne | 30 |
| 1964–65 | Div 1 | 42 | 19 | 4 | 19 | 82 | 71 | 42 | 9th | R4 | R2 | Cup Winners' Cup | W | Johnny Byrne | 30 |
| 1965–66 | Div 1 | 42 | 15 | 9 | 18 | 70 | 83 | 39 | 12th | R4 | RU | Cup Winners' Cup | SF | Geoff Hurst | 40 |
| 1966–67 | Div 1 | 42 | 14 | 8 | 20 | 80 | 84 | 36 | 16th | R3 | SF | | | Geoff Hurst | 41 |
| 1967–68 | Div 1 | 42 | 14 | 10 | 18 | 73 | 69 | 38 | 12th | R5 | R4 | | | Geoff Hurst | 25 |
| 1968–69 | Div 1 | 42 | 13 | 18 | 11 | 66 | 50 | 44 | 8th | R5 | R3 | | | Geoff Hurst | 31 |
| 1969–70 | Div 1 | 42 | 12 | 12 | 18 | 51 | 60 | 36 | 17th | R3 | R3 | | | Geoff Hurst | 18 |
| 1970–71 | Div 1 | 42 | 10 | 14 | 18 | 47 | 60 | 34 | 20th | R3 | R3 | | | Geoff Hurst | 16 |
| 1971–72 | Div 1 | 42 | 12 | 12 | 18 | 47 | 51 | 36 | 14th | R5 | SF | | | Clyde Best | 23 |
| 1972–73 | Div 1 | 42 | 17 | 12 | 13 | 67 | 53 | 46 | 6th | R4 | R3 | | | Pop Robson | 28 |
| 1973–74 | Div 1 | 42 | 11 | 15 | 16 | 55 | 60 | 37 | 18th | R3 | R2 | | | Clyde BestBilly Bonds | 13 |
| 1974–75 | Div 1 | 42 | 13 | 13 | 16 | 58 | 59 | 39 | 13th | W | R3 | Texaco Cup | GS | Billy Jennings | 14 |
| 1975–76 | Div 1 | 42 | 13 | 10 | 19 | 48 | 61 | 36 | 18th | R3 | R4 | Charity Shield | RU | Alan Taylor | 17 |
| 1975–76 | Div 1 | 42 | 13 | 10 | 19 | 48 | 61 | 36 | 18th | R3 | R4 | Cup Winners' Cup | RU | Alan Taylor | 17 |
| 1976–77 | Div 1 | 42 | 11 | 14 | 17 | 46 | 65 | 36 | 17th | R4 | R4 | | | Pop Robson | 14 |
| 1977–78 | Div 1 | 42 | 12 | 8 | 22 | 52 | 69 | 32 | 20th | R4 | R2 | | | Pop Robson | 11 |
| 1978–79 | Div 2 | 42 | 18 | 14 | 10 | 70 | 39 | 50 | 5th | R3 | R2 | | | Pop Robson | 26 |
| 1979–80 | Div 2 | 42 | 20 | 7 | 15 | 54 | 43 | 47 | 7th | W | QF | | | David Cross | 18 |
| 1980–81 | Div 2 | 42 | 28 | 10 | 4 | 79 | 29 | 66 | 1st | R3 | RU | Charity Shield | R/lU | David Cross | 32 |
| 1980–81 | Div 2 | 42 | 28 | 10 | 4 | 79 | 29 | 66 | 1st | R3 | RU | Cup Winners' Cup | QF | David Cross | 32 |
| 1981–82 | Div 1 | 42 | 14 | 16 | 12 | 66 | 57 | 58 | 9th | R4 | R3 | | | David Cross | 19 |
| 1982–83 | Div 1 | 42 | 20 | 4 | 18 | 68 | 62 | 64 | 8th | R3 | QF | | | Paul GoddardFrançois Van der Elst | 12 |
| 1983–84 | Div 1 | 42 | 17 | 9 | 16 | 60 | 55 | 60 | 9th | R5 | R4 | | | Tony Cottee | 19 |
| 1984–85 | Div 1 | 42 | 13 | 12 | 17 | 51 | 68 | 51 | 16th | QF | R3 | | | Tony Cottee | 24 |
| 1985–86 | Div 1 | 42 | 26 | 6 | 10 | 74 | 40 | 84 | 3rd | QF | R3 | | | Frank McAvennie | 28 |
| 1986–87 | Div 1 | 42 | 14 | 10 | 18 | 52 | 67 | 52 | 15th | QF | R5 | Full Members' Cup | R3 | Tony Cottee | 29 |
| 1987–88 | Div 1 | 40 | 9 | 15 | 16 | 40 | 52 | 42 | 16th | R4 | R3 | Full Members' Cup | R1 | Tony Cottee | 15 |
| 1988–89 | Div 1 | 38 | 10 | 8 | 20 | 37 | 62 | 38 | 19th | QF | SF | Full Members' Cup | R2 | Leroy Rosenior | 15 |
| 1989–90 | Div 2 | 46 | 20 | 12 | 14 | 80 | 57 | 72 | 7th | R3 | SF | Full Members' Cup | R3 | Julian Dicks | 14 |
| 1990–91 | Div 2 | 46 | 24 | 15 | 7 | 60 | 34 | 87 | 2nd | SF | R3 | Full Members' Cup | R1 | Trevor Morley | 17 |
| 1991–92 | Div 1 | 42 | 9 | 11 | 22 | 37 | 59 | 38 | 22nd | R5 | R4 | Full Members' Cup | QF | Mike Small | 18 |
| 1992–93 | Div 1 | 46 | 26 | 10 | 10 | 81 | 41 | 88 | 2nd | R4 | R2 | Anglo-Italian Cup | GS | Trevor Morley | 22 |
| 1993–94 | Prem | 42 | 13 | 13 | 16 | 47 | 58 | 52 | 13th | QF | R3 | | | Trevor Morley | 16 |
| 1994–95 | Prem | 42 | 13 | 11 | 18 | 44 | 48 | 50 | 14th | R4 | R4 | | | Tony Cottee | 15 |
| 1995–96 | Prem | 38 | 14 | 9 | 15 | 43 | 52 | 51 | 10th | R4 | R3 | | | Tony Cottee | 12 |
| 1996–97 | Prem | 38 | 10 | 12 | 16 | 39 | 48 | 42 | 14th | R3 | R4 | | | Julian DicksPaul Kitson | 8 |
| 1997–98 | Prem | 38 | 16 | 8 | 14 | 56 | 57 | 56 | 8th | QF | QF | | | John Hartson | 24 |
| 1998–99 | Prem | 38 | 16 | 9 | 13 | 46 | 53 | 57 | 5th | R3 | R2 | | | Ian Wright | 9 |
| 1999–2000 | Prem | 38 | 15 | 10 | 13 | 52 | 53 | 55 | 9th | R3 | QF | Intertoto Cup | W | Paolo Di Canio | 17 |
| 1999–2000 | Prem | 38 | 15 | 10 | 13 | 52 | 53 | 55 | 9th | R3 | QF | UEFA Cup | R2 | Paolo Di Canio | 17 |
| 2000–01 | Prem | 38 | 10 | 12 | 16 | 45 | 50 | 42 | 15th | QF | R4 | | | Frédéric Kanouté | 14 |
| 2001–02 | Prem | 38 | 15 | 8 | 15 | 48 | 57 | 53 | 7th | R4 | R2 | | | Jermain Defoe | 14 |
| 2002–03 | Prem | 38 | 10 | 12 | 16 | 42 | 59 | 42 | 18th | R4 | R3 | | | Jermain Defoe | 11 |
| 2003–04 | Div 1 | 46 | 19 | 17 | 10 | 67 | 45 | 74 | 4th | R5 | R3 | | | Jermain Defoe | 15 |
| 2004–05 | Champ | 46 | 21 | 10 | 15 | 66 | 56 | 73 | 6th | R4 | R3 | | | Marlon Harewood | 22 |
| 2005–06 | Prem | 38 | 16 | 7 | 15 | 52 | 55 | 55 | 9th | RU | R3 | | | Marlon Harewood | 16 |
| 2006–07 | Prem | 38 | 12 | 5 | 21 | 35 | 59 | 41 | 15th | R4 | R3 | UEFA Cup | R1 | Bobby Zamora | 11 |
| 2007–08 | Prem | 38 | 13 | 10 | 15 | 42 | 50 | 49 | 10th | R3 | QF | | | Dean Ashton | 11 |
| 2008–09 | Prem | 38 | 14 | 9 | 15 | 42 | 45 | 51 | 9th | R5 | R3 | | | Carlton Cole | 11 |
| 2009–10 | Prem | 38 | 8 | 11 | 19 | 47 | 66 | 35 | 17th | R3 | R4 | | | Carlton Cole | 10 |
| 2010–11 | Prem | 38 | 7 | 12 | 19 | 43 | 70 | 33 | 20th | QF | SF | | | Carlton Cole | 11 |
| 2011–12 | Champ | 46 | 24 | 14 | 8 | 81 | 48 | 86 | 3rd | R3 | R1 | | | Carlton Cole | 15 |
| 2012–13 | Prem | 38 | 12 | 10 | 16 | 45 | 53 | 46 | 10th | R3 | R3 | | | Kevin Nolan | 10 |
| 2013–14 | Prem | 38 | 11 | 7 | 20 | 40 | 51 | 40 | 13th | R3 | SF | | | Kevin Nolan | 7 |
| 2014–15 | Prem | 38 | 12 | 11 | 15 | 44 | 47 | 47 | 12th | R5 | R2 | | | Diafra Sakho | 11 |
| 2015–16 | Prem | 38 | 16 | 14 | 8 | 65 | 51 | 62 | 7th | QF | R3 | Europa League | 3Q | Dimitri Payet | 12 |
| 2016–17 | Prem | 38 | 12 | 9 | 17 | 47 | 64 | 45 | 11th | R3 | QF | Europa League | PO | Michail Antonio | 9 |
| 2017–18 | Prem | 38 | 10 | 12 | 16 | 48 | 68 | 42 | 13th | R4 | QF | | | Marko Arnautović | 11 |
| 2018–19 | Prem | 38 | 15 | 7 | 16 | 52 | 55 | 52 | 10th | R4 | R4 | | | Marko Arnautović | 11 |
| 2019–20 | Prem | 38 | 10 | 9 | 19 | 41 | 62 | 39 | 16th | R4 | R3 | | | Michail Antonio | 10 |
| 2020–21 | Prem | 38 | 19 | 8 | 11 | 62 | 47 | 65 | 6th | R5 | R4 | | | Michail AntonioTomáš Souček | 10 |
| 2021–22 | Prem | 38 | 16 | 8 | 14 | 60 | 51 | 56 | 7th | R5 | QF | Europa League | SF | Jarrod Bowen | 18 |
| 2022–23 | Prem | 38 | 11 | 7 | 20 | 42 | 55 | 40 | 14th | R5 | R3 | Europa Conference League | W | Michail Antonio | 14 |
| 2023–24 | Prem | 38 | 14 | 10 | 14 | 60 | 74 | 52 | 9th | QF | R3 | Europa League | QF | Jarrod Bowen | 20 |

## Key

| Winners | Runners-up | Third place | Play-offs | Promoted | Relegated |

## Footnotes

* ↑ The EFL Cup was first contested in the 1960–61 season.
* ↑ Goals in all competitions (English Football League or Premier League, FA Cup, EFL Cup, European and FA Charity Shield/Community Shield) are counted.
* ↑ The 1981–82 season saw the introduction of three points for a win.
* ↑ Seasons prior to 1992–93 are the old league format, with Division 1 as the top flight. From 1992–93 onward is the present system with the Premier League as the highest level.
* 1 2 Promoted via the play-offs.