# 2022–23 Ligue 2

The 2022–23 Ligue 2, commonly known as 2022–23 Ligue 2 BKT for sponsorship reasons, was the 84th season of Ligue 2. It began on 30 July 2022 and ended on 5 June 2023. The league had a break from 12 November to 27 December due to the FIFA World Cup. Two clubs were to be promoted to Ligue 1 at the end of the season as the number of clubs in Ligue 1 was set to be reduced from 20 to 18 for the 2023–24 season. As a result, there were no play-offs held after the end of the regular season.

## Teams
### Team changes

| from Championnat National | to Ligue 1 | from Ligue 1 | to Championnat National |
| Laval Annecy | Toulouse Ajaccio Auxerre | Saint-Étienne Metz Bordeaux | Dunkerque Nancy |

### Stadiums and locations

| Club | Location | Venue | Capacity |
| Amiens | Amiens | Stade de la Licorne | 12,097 |
| Annecy | Annecy | Parc des Sports | 15,660 |
| Bastia | Bastia | Stade Armand Cesari | 16,078 |
| Bordeaux | Bordeaux | Matmut Atlantique | 42,115 |
| Caen | Caen | Stade Michel d'Ornano | 21,215 |
| Dijon | Dijon | Stade Gaston Gérard | 15,995 |
| Grenoble | Grenoble | Stade des Alpes | 20,068 |
| Guingamp | Guingamp | Stade de Roudourou | 18,378 |
| Laval | Laval | Stade Francis Le Basser | 18,607 |
| Le Havre | Le Havre | Stade Océane | 25,178 |
| Metz | Longeville-lès-Metz | Stade Saint-Symphorien | 25,636 |
| Nîmes | Nîmes | Stade des Costières | 18,482 |
| Niort | Niort | Stade René Gaillard | 10,886 |
| Paris | Paris | Stade Charléty | 19,151 |
| Pau | Pau | Nouste Camp | 4,031 |
| Quevilly-Rouen | Rouen | Stade Robert Diochon | 12,018 |
| Rodez | Rodez | Stade Paul-Lignon | 5,955 |
| Saint-Étienne | Saint-Étienne | Stade Geoffroy-Guichard | 42,000 |
| Sochaux | Montbéliard | Stade Auguste Bonal | 20,005 |
| Valenciennes | Valenciennes | Stade du Hainaut | 25,172 |

### Personnel and kits

| Team | Manager | Captain | Kit manufacturer | Sponsors (front) | Sponsors (back) | Sponsors (sleeve) | Sponsors (shorts) | Sponsors (socks) |
| Amiens | Patrice Descamps (interim) | Régis Gurtner | Puma | Intersport, Igol Lubrifiants, Gueudet | Igol Lubrifiants | None | Amiens Métropole, E.Leclerc Rivery | None |
| Annecy | Laurent Guyot | Jean-Jacques Rocchi | Adidas | MSC Cruises, Mediaco Vrac, Sogimm | Annecy, Nissan Groupe Maurin | Tissier Technique | LP Charpente | None |
| Bastia | Régis Brouard | Christophe Vincent | Adidas | Oscaro Power, Corsica Ferries, Madewis, Roncaglia Blanchisserie, Collectivité de Corse, Olivier Bleu, Smart Good Things | Payfoot, ESSE, Madewis | Coviag | Capembal, Centre Auto JW, JW Rent | None |
| Bordeaux | David Guion | Yoann Barbet | Adidas | Crédit Mutuel du Sud-Ouest, Groupe Vital | MAT IN BAT, Bistro Régent | Cupra | Vigier Groupe | None |
| Caen | Stéphane Moulin | Romain Thomas | Kappa | Starwash (H)/Saint James (A), Künkel, Thalazur | Imprimerie NII, Guilloux | Sofrilog | Crédit Agricole Normandie, Printngo Publicité | None |
| Dijon | Pascal Dupraz | Daniel Congré | Lotto | Groupe Roger Martin, Dijonnaise de Voies Ferrées, Suez | Dijon - Cité internationale de la gastronomie et du vin, LCR | Leader Intérim | Chopard Groupe Automobile, Dalkia | Caisse d'Epargne |
| Grenoble | Vincent Hognon | Brice Maubleu | Nike | Vinci Immobilier (H)/Carrefour (A), Smart Good Things | SEMPA, Le Cabanon en Provence | None | Groupe ABC, LCR | None |
| Guingamp | Stéphane Dumont | Jérémy Livolant | Umbro | Celtigel, Creactuel, Breizh Cola, Union d'Experts, Ballay | Jardiman, Vital Concept | Cafés Coïc | Bernard Jarnoux Crêpier, Tibbloc | None |
| Laval | Olivier Frapolli | Jimmy Roye | Kappa | Lactel, La Mayenne Le Département, Laval Agglo | V and B Cave & Bar, Groupe Lucas, Mayenne | Groupe Actual | Laval Agglo, SEPAL, Aropiz | None |
| Le Havre | Luka Elsner | Victor Lekhal | Joma | Siemens Gamesa, SIM Emploi, SOL'S | SOL'S | None | None | None |
| Metz | László Bölöni | Matthieu Udol | Kappa | Car Avenue (H), MOSL Mosselle Sans Limite, Malezieux, Axia Interim | Technitoit, Nacon | Eurométropole de Metz | E.Leclerc Moselle, LCR | None |
| Nîmes | Frédéric Bompard | Benoît Poulain | Kipsta | Bastide Médical, Nîmes | Decathlon Nîmes | Carré Sud | Nîmes Métropole | None |
| Niort | Bernard Simondi | Charles Kaboré | Kappa | Cheminées Poujoulat, Solnet (H)/Open Energie (A) | Niort Agglo | None | None | None |
| Paris | Thierry Laurey | Cyril Mandouki | Adidas | Bahrain Victorious, Lycamobile, Bpifrance | Vinci | None | VBET | None |
| Pau | Didier Tholot | Antoine Batisse | Puma | Mansion Sports, Iroise Bellevie, Pau, Casino de Pau, Intersport | Arobase Intérim, Brico Fenêtre | BulluxServices | Übi Care, Mansion Sports | None |
| Quevilly-Rouen | Olivier Echouafni | Alexandre Bonnet | Kappa | Matmut, SATEB, Métropole Rouen Normandie, TPR, Intersport | Maisons France Confort | None | Volkswagen Blet | None |
| Rodez | Didier Santini | Rémy Boissier | Adidas | Maxoutil, E.Leclerc | JeanStation, Thermatic, Ville de Rodez, Aveyron, Rodez Agglomération, Occitanie | aveyron.fr | Intersport, Maxoutil | None |
| Saint-Étienne | Laurent Batlles | Anthony Briançon | Hummel | Smart Good Things, Loire, BYmyCAR, Atrihome | Saint-Étienne La Métropole, ZEbet | Kelyps Intérim | Aésio Mutuelle, Desjoyaux | None |
| Sochaux | Pierre-Alain Frau (interim) | Gaëtan Weissbeck | Nike | Nedey Automobiles, Région Bourgogne-Franche-Comté, Crédit Agricole Franche-Comté | Pays de Montbéliard Agglomération | Néolia | idverde, Doubs | None |
| Valenciennes | Ahmed Kantari (interim) | Mathieu Debuchy | Acerbis | F&VL (H)/TSR (A & 3), Ford, Groupe Dhollande, Spefinox | TSR (H)/F&VL (A & 3) | Match Worn Shirt | LCR, OCAD | None |

## Managerial changes

| Team | Outgoing manager | Manner of departure | Date of vacancy | Position in table | Incoming manager | Date of appointment |
| Dijon | Patrice Garande | Mutual consent | 14 May 2022 | Pre-season | Omar Daf | 17 June 2022 |
| Valenciennes | Christophe Delmotte | Returned to first-team duties | 20 May 2022 | Pre-season | Nicolas Rabuel | 3 June 2022 |
| Quevilly-Rouen | Fabien Mercadal | Resigned | 30 May 2022 | Pre-season | Olivier Echouafni | 8 June 2022 |
| Saint-Étienne | Pascal Dupraz | End of contract | 2 June 2022 | Pre-season | Laurent Batlles | 3 June 2022 |
| FC Metz | Frédéric Antonetti | Mutual consent | 7 June 2022 | Pre-season | László Bölöni | 16 June 2022 |
| Le Havre | Paul Le Guen | Sacked | 16 June 2022 | Pre-season | Luka Elsner | 20 June 2022 |
| Sochaux | Omar Daf | Signed by Dijon FCO | 17 June 2022 | Pre-season | Olivier Guégan | 25 June 2022 |
| Niort | Sébastien Desabre | Signed by DR Congo | 7 August 2022 | 11th | Andé Dona Ndoh (interim) | 5 July 2022 |
| Niort | Andé Dona Ndoh | End of interim spell | 4 September 2022 | 16th | Rui Almeida | 4 September 2022 |
| Rodez | Laurent Peyrelade | Sacked | 8 November 2022 | 18th | Emmerick Darbelet (interim) | 8 November 2022 |
| Nîmes | Nicolas Usaï | Mutual consent | 16 November 2022 | 17th | Frédéric Bompard | 21 November 2022 |
| Rodez | Emmerick Darbelet | End of interim spell | 28 November 2022 | 18th | Didier Santini | 28 November 2022 |
| Niort | Rui Almeida | Mutual consent | 1 February 2023 | 20th | Oumar Tchomogo (interim) | 2 February 2023 |
| Niort | Oumar Tchomogo | End of interim duties | 9 March 2023 | 20th | Bernard Simondi | 9 March 2023 |
| Dijon | Omar Daf | Sacked | 3 April 2023 | 19th | Pascal Dupraz | 3 April 2023 |
| Amiens | Philippe Hinschberger | Sacked | 3 April 2023 | 11th | Patrice Descamps (interim) | 3 April 2023 |
| Valenciennes | Nicolas Rabuel | Sacked | 13 April 2023 | 16th | Ahmed Kantari (interim) | 13 April 2023 |
| Sochaux | Olivier Guégan | Sacked | 17 May 2023 | 6th | Pierre-Alain Frau (interim) | 17 May 2023 |

## League table

| Pos | Team | Pld | W | D | L | GF | GA | GD | Pts | Promotion or Relegation |
| 1 | Le Havre (C, P) | 38 | 20 | 15 | 3 | 46 | 19 | +27 | 75 | Promotion to Ligue 1 |
| 2 | Metz (P) | 38 | 20 | 12 | 6 | 61 | 33 | +28 | 72 | Promotion to Ligue 1 |
| 3 | Bordeaux | 38 | 20 | 9 | 9 | 51 | 28 | +23 | 69 | |
| 4 | Bastia | 38 | 17 | 9 | 12 | 52 | 45 | +7 | 60 | |
| 5 | Caen | 38 | 16 | 11 | 11 | 52 | 43 | +9 | 59 | |
| 6 | Guingamp | 38 | 15 | 10 | 13 | 51 | 46 | +5 | 55 | |
| 7 | Paris FC | 38 | 15 | 10 | 13 | 45 | 43 | +2 | 55 | |
| 8 | Saint-Étienne | 38 | 15 | 11 | 12 | 63 | 57 | +6 | 53 | |
| 9 | Sochaux (D, R) | 38 | 15 | 7 | 16 | 54 | 41 | +13 | 52 | Relegation to Championnat National |
| 10 | Grenoble | 38 | 14 | 9 | 15 | 33 | 36 | −3 | 51 | |
| 11 | Quevilly-Rouen | 38 | 12 | 14 | 12 | 47 | 49 | −2 | 50 | |
| 12 | Amiens | 38 | 13 | 8 | 17 | 40 | 52 | −12 | 47 | |
| 13 | Pau | 38 | 12 | 11 | 15 | 40 | 52 | −12 | 47 | |
| 14 | Rodez | 38 | 11 | 13 | 14 | 39 | 44 | −5 | 46 | |
| 15 | Laval | 38 | 14 | 4 | 20 | 44 | 56 | −12 | 46 | |
| 16 | Valenciennes | 38 | 10 | 15 | 13 | 42 | 49 | −7 | 45 | |
| 17 | Annecy | 38 | 11 | 12 | 15 | 39 | 51 | −12 | 45 | Spared from relegation |
| 18 | Dijon (R) | 38 | 10 | 12 | 16 | 38 | 43 | −5 | 42 | Relegation to Championnat National |
| 19 | Nîmes (R) | 38 | 10 | 6 | 22 | 44 | 62 | −18 | 36 | Relegation to Championnat National |
| 20 | Niort (R) | 38 | 7 | 8 | 23 | 35 | 67 | −32 | 29 | Relegation to Championnat National |
* ↑ Saint-Étienne were deducted three points for a pitch invasion during their relegation play-off the previous season.

### Positions by round

The table lists the positions of teams after each week of matches. In order to preserve chronological evolvements, any postponed matches are not included to the round at which they were originally scheduled, but added to the full round they were played immediately afterwards.
| Team ╲ Round | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 |
| Le Havre | 7 | 15 | 15 | 10 | 10 | 8 | 4 | 2 | 2 | 4 | 3 | 2 | 2 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
| Metz | 2 | 8 | 5 | 5 | 7 | 5 | 7 | 8 | 10 | 9 | 10 | 11 | 12 | 11 | 8 | 10 | 6 | 4 | 3 | 4 | 5 | 4 | 4 | 4 | 4 | 4 | 4 | 4 | 3 | 4 | 3 | 3 | 3 | 3 | 3 | 3 | 2 | 2 |
| Bordeaux | 12 | 3 | 2 | 3 | 5 | 2 | 1 | 4 | 3 | 1 | 1 | 1 | 1 | 2 | 2 | 3 | 2 | 2 | 2 | 2 | 3 | 3 | 3 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 3 | 3 |
| Bastia | 17 | 9 | 4 | 8 | 11 | 15 | 11 | 11 | 8 | 7 | 9 | 9 | 9 | 12 | 14 | 13 | 11 | 11 | 7 | 5 | 4 | 6 | 7 | 8 | 8 | 5 | 5 | 5 | 5 | 5 | 5 | 6 | 4 | 4 | 4 | 4 | 4 | 4 |
| Caen | 6 | 2 | 3 | 1 | 1 | 1 | 5 | 3 | 6 | 8 | 6 | 8 | 7 | 7 | 5 | 7 | 7 | 8 | 9 | 8 | 8 | 8 | 8 | 6 | 5 | 6 | 7 | 6 | 6 | 7 | 6 | 5 | 6 | 6 | 5 | 5 | 5 | 5 |
| Sochaux | 9 | 16 | 17 | 14 | 6 | 6 | 3 | 1 | 1 | 3 | 4 | 3 | 3 | 4 | 3 | 2 | 3 | 3 | 4 | 3 | 2 | 2 | 2 | 3 | 3 | 3 | 3 | 3 | 4 | 3 | 4 | 4 | 5 | 5 | 6 | 6 | 6 | 9 |
| Guingamp | 1 | 1 | 1 | 7 | 3 | 7 | 9 | 6 | 5 | 5 | 7 | 7 | 8 | 8 | 11 | 8 | 12 | 12 | 13 | 10 | 11 | 13 | 11 | 11 | 12 | 11 | 10 | 9 | 10 | 12 | 10 | 11 | 9 | 11 | 9 | 10 | 7 | 6 |
| Paris FC | 14 | 5 | 9 | 11 | 13 | 11 | 13 | 10 | 12 | 10 | 11 | 10 | 10 | 9 | 12 | 9 | 10 | 7 | 8 | 11 | 13 | 12 | 10 | 12 | 9 | 10 | 9 | 10 | 8 | 9 | 11 | 9 | 10 | 9 | 10 | 7 | 8 | 7 |
| Grenoble | 13 | 7 | 12 | 13 | 15 | 10 | 10 | 13 | 9 | 11 | 8 | 6 | 5 | 3 | 4 | 4 | 5 | 6 | 5 | 7 | 7 | 5 | 5 | 5 | 7 | 8 | 6 | 7 | 7 | 6 | 7 | 7 | 7 | 7 | 7 | 8 | 9 | 10 |
| Saint-Étienne | 20 | 20 | 20 | 20 | 20 | 19 | 19 | 15 | 18 | 18 | 18 | 19 | 18 | 19 | 20 | 20 | 20 | 20 | 20 | 19 | 19 | 18 | 16 | 15 | 15 | 14 | 13 | 12 | 12 | 11 | 9 | 10 | 11 | 10 | 11 | 9 | 10 | 8 |
| Quevilly-Rouen | 10 | 14 | 14 | 16 | 12 | 14 | 15 | 17 | 19 | 15 | 12 | 12 | 13 | 15 | 13 | 11 | 8 | 9 | 10 | 9 | 10 | 9 | 6 | 7 | 6 | 7 | 8 | 8 | 9 | 8 | 8 | 8 | 8 | 8 | 8 | 11 | 11 | 11 |
| Amiens | 18 | 12 | 7 | 2 | 4 | 4 | 2 | 5 | 4 | 2 | 2 | 4 | 4 | 6 | 7 | 6 | 4 | 5 | 6 | 6 | 6 | 7 | 9 | 9 | 10 | 9 | 11 | 11 | 11 | 10 | 12 | 14 | 13 | 12 | 12 | 12 | 12 | 12 |
| Valenciennes | 8 | 6 | 11 | 12 | 14 | 9 | 6 | 7 | 7 | 6 | 5 | 5 | 6 | 5 | 6 | 5 | 9 | 10 | 11 | 12 | 15 | 10 | 13 | 14 | 13 | 13 | 12 | 14 | 14 | 16 | 16 | 15 | 15 | 15 | 17 | 14 | 13 | 16 |
| Annecy | 15 | 19 | 19 | 19 | 18 | 17 | 17 | 12 | 15 | 17 | 13 | 16 | 16 | 14 | 15 | 15 | 14 | 14 | 12 | 13 | 9 | 11 | 12 | 10 | 11 | 12 | 14 | 13 | 15 | 13 | 15 | 16 | 16 | 16 | 15 | 15 | 14 | 17 |
| Pau | 19 | 18 | 16 | 18 | 19 | 20 | 20 | 19 | 14 | 16 | 16 | 13 | 11 | 10 | 9 | 12 | 13 | 13 | 15 | 15 | 14 | 15 | 15 | 16 | 16 | 16 | 16 | 15 | 16 | 15 | 14 | 13 | 14 | 14 | 14 | 17 | 15 | 13 |
| Rodez | 11 | 17 | 18 | 17 | 17 | 18 | 18 | 20 | 16 | 14 | 15 | 17 | 17 | 18 | 18 | 18 | 17 | 16 | 17 | 17 | 18 | 19 | 20 | 20 | 20 | 18 | 17 | 16 | 13 | 14 | 13 | 12 | 12 | 13 | 13 | 13 | 16 | 15 |
| Laval | 3 | 10 | 6 | 6 | 8 | 12 | 14 | 16 | 13 | 13 | 17 | 14 | 14 | 13 | 10 | 14 | 15 | 15 | 14 | 14 | 12 | 14 | 14 | 13 | 14 | 15 | 15 | 17 | 17 | 17 | 17 | 17 | 18 | 17 | 16 | 18 | 17 | 14 |
| Dijon | 5 | 4 | 8 | 4 | 2 | 3 | 8 | 9 | 11 | 12 | 14 | 15 | 15 | 17 | 17 | 16 | 16 | 17 | 16 | 16 | 17 | 17 | 19 | 19 | 17 | 17 | 18 | 18 | 19 | 18 | 18 | 18 | 17 | 18 | 18 | 16 | 18 | 18 |
| Nîmes | 16 | 13 | 10 | 15 | 9 | 13 | 12 | 14 | 17 | 19 | 19 | 18 | 19 | 16 | 16 | 17 | 18 | 19 | 19 | 18 | 16 | 16 | 17 | 17 | 18 | 19 | 19 | 19 | 18 | 19 | 19 | 19 | 19 | 19 | 19 | 19 | 19 | 19 |
| Niort | 4 | 11 | 13 | 9 | 16 | 16 | 16 | 18 | 20 | 20 | 20 | 20 | 20 | 20 | 19 | 19 | 19 | 18 | 18 | 20 | 20 | 20 | 18 | 18 | 19 | 20 | 20 | 20 | 20 | 20 | 20 | 20 | 20 | 20 | 20 | 20 | 20 | 20 |
* Leader and promotion to Ligue 1
* Promotion to Ligue 1
* Relegation to Championnat National

## Results

| Home \ Away | AMI | ANN | BAS | BOR | CAE | DIJ | GRE | GUI | LAV | HAC | MET | NIM | NIO | QUE | PFC | PAU | ROD | STE | SOC | VAL |
| Amiens | — | 1–0 | 3–1 | 1–2 | 1–3 | 2–1 | 1–0 | 1–1 | 1–2 | 1–1 | 0–2 | 1–0 | 3–0 | 0–2 | 1–1 | 1–0 | 1–3 | 0–1 | 1–0 | 0–2 |
| Annecy | 2–0 | — | 0–2 | 1–0 | 2–0 | 1–1 | 0–0 | 1–1 | 0–1 | 1–0 | 0–3 | 0–0 | 1–2 | 1–0 | 2–0 | 0–2 | 0–3 | 2–1 | 2–1 | 2–1 |
| Bastia | 1–1 | 3–0 | — | 1–1 | 1–0 | 1–0 | 3–0 | 1–1 | 0–2 | 1–1 | 1–0 | 4–2 | 2–1 | 0–1 | 0–1 | 1–0 | 0–2 | 2–0 | 3–2 | 1–0 |
| Bordeaux | 1–1 | 1–0 | 2–0 | — | 1–0 | 2–1 | 3–0 | 0–1 | 3–0 | 1–2 | 2–0 | 1–0 | 1–0 | 4–0 | 2–1 | 1–1 | 0–1 | 1–1 | 2–1 | 0–0 |
| Caen | 3–1 | 0–0 | 3–1 | 2–2 | — | 2–1 | 2–1 | 4–1 | 0–0 | 1–2 | 1–0 | 4–2 | 1–0 | 0–1 | 3–1 | 1–1 | 2–0 | 2–2 | 0–0 | 2–1 |
| Dijon | 3–0 | 0–2 | 1–1 | 0–3 | 2–2 | — | 1–0 | 1–1 | 5–0 | 0–0 | 0–0 | 2–1 | 0–1 | 0–0 | 1–1 | 0–1 | 1–0 | 2–1 | 0–2 | 2–1 |
| Grenoble | 2–1 | 2–1 | 0–1 | 0–0 | 1–0 | 0–0 | — | 0–2 | 3–2 | 0–0 | 0–1 | 3–2 | 2–0 | 1–0 | 1–2 | 1–1 | 1–1 | 0–2 | 1–0 | 1–0 |
| Guingamp | 3–1 | 0–4 | 1–1 | 0–1 | 1–2 | 2–0 | 2–4 | — | 3–1 | 0–1 | 1–1 | 1–2 | 2–0 | 0–2 | 0–0 | 4–0 | 0–0 | 2–1 | 1–2 | 3–1 |
| Laval | 0–3 | 1–1 | 2–1 | 1–2 | 4–0 | 1–0 | 0–1 | 1–2 | — | 1–3 | 3–3 | 2–0 | 2–1 | 0–1 | 1–2 | 0–1 | 3–1 | 2–1 | 2–1 | 1–0 |
| Le Havre | 1–1 | 2–0 | 3–0 | 1–0 | 2–1 | 1–0 | 0–0 | 0–0 | 2–1 | — | 2–0 | 3–1 | 1–0 | 0–0 | 0–0 | 1–1 | 1–0 | 2–2 | 1–0 | 0–2 |
| Metz | 3–0 | 0–0 | 3–2 | 3–0 | 0–0 | 1–2 | 1–0 | 3–6 | 1–0 | 1–1 | — | 2–0 | 0–0 | 2–0 | 1–1 | 1–0 | 1–1 | 3–2 | 0–0 | 2–0 |
| Nîmes | 2–0 | 4–0 | 0–0 | 1–0 | 0–1 | 1–2 | 0–2 | 1–2 | 1–0 | 0–1 | 1–4 | — | 3–2 | 2–0 | 0–1 | 3–2 | 1–0 | 1–2 | 3–1 | 3–3 |
| Niort | 1–3 | 2–2 | 1–4 | 3–1 | 1–2 | 2–1 | 0–3 | 0–0 | 3–2 | 0–1 | 1–3 | 1–1 | — | 3–3 | 2–1 | 2–1 | 2–3 | 0–1 | 0–3 | 0–1 |
| Quevilly-Rouen | 1–3 | 2–2 | 1–1 | 0–0 | 2–1 | 2–2 | 2–0 | 2–0 | 1–3 | 0–1 | 1–2 | 3–1 | 3–3 | — | 3–1 | 2–1 | 0–0 | 2–2 | 0–0 | 1–1 |
| Paris FC | 3–0 | 1–0 | 0–1 | 1–3 | 1–1 | 2–1 | 1–0 | 1–2 | 0–0 | 0–0 | 1–4 | 3–0 | 3–0 | 2–1 | — | 0–1 | 1–2 | 2–4 | 2–1 | 0–1 |
| Pau | 2–1 | 2–2 | 2–6 | 0–2 | 1–0 | 0–0 | 0–0 | 2–1 | 0–1 | 0–1 | 1–1 | 1–0 | 1–0 | 3–4 | 0–1 | — | 2–2 | 2–2 | 0–3 | 1–0 |
| Rodez | 0–1 | 2–2 | 0–2 | 0–3 | 3–2 | 2–1 | 0–1 | 0–1 | 1–0 | 1–1 | 1–4 | 1–1 | 1–1 | 1–0 | 0–0 | 2–3 | — | 1–1 | 1–2 | 1–1 |
| Saint-Étienne | 1–1 | 3–2 | 5–0 | 2–0 | 1–1 | 2–0 | 2–2 | 3–2 | 1–0 | 0–6 | 1–3 | 1–1 | 2–0 | 4–2 | 0–2 | 2–0 | 0–2 | — | 2–3 | 2–0 |
| Sochaux | 0–1 | 5–1 | 1–0 | 1–1 | 1–2 | 0–2 | 1–0 | 0–1 | 4–1 | 1–1 | 0–1 | 3–1 | 3–0 | 2–2 | 0–0 | 2–3 | 1–0 | 2–1 | — | 4–0 |
| Valenciennes | 1–1 | 2–2 | 2–2 | 0–2 | 1–1 | 2–2 | 1–0 | 1–0 | 3–1 | 1–0 | 1–1 | 3–2 | 0–0 | 0–0 | 4–5 | 1–1 | 0–0 | 2–2 | 2–1 | — |
* ↑ The Bordeaux v Rodez match was abandoned in the first half after a Bordeaux supporter entered the pitch and shoved Rodez player Lucas Buádes, who fell to the ground. On 12 June, following an investigation, the LFP ruled the result before the match was suspended to stand and gave a one-point deduction for Bordeaux at the beginning of the 2023–24 season.

## Season statistics
### Top goalscorers

| Rank | Player | Club | Goals |
| 1 | Georges Mikautadze | Metz | 23 |
| 2 | Alexandre Mendy | Caen | 19 |
| 3 | Jean-Philippe Krasso | Saint-Étienne | 17 |
| 4 | Josh Maja | Bordeaux | 16 |
| 5 | Morgan Guilavogui | Paris FC | 15 |
| 5 | Moïse Sahi | Annecy | 15 |
| 7 | Frank Magri | Bastia | 13 |
| 7 | Ibrahim Sissoko | Sochaux | 13 |
| 7 | Malik Tchokounté | Nîmes | 13 |
| 10 | Mickaël Le Bihan | Dijon | 12 |
| 10 | Ibrahima Wadji | Saint-Étienne | 12 |

## Attendances

| # | Football club | Home games | Average attendance |
| 1 | Girondins de Bordeaux | 19 | 21,810 |
| 2 | AS Saint-Étienne | 19 | 17,436 |
| 3 | FC Metz | 19 | 14,970 |
| 4 | SM Caen | 19 | 13,799 |
| 5 | Havre AC | 19 | 12,501 |
| 6 | FC Sochaux | 19 | 11,969 |
| 7 | SC Bastia | 19 | 9,941 |
| 8 | EA Guingamp | 19 | 8,838 |
| 9 | Valenciennes FC | 19 | 7,928 |
| 10 | Amiens SC | 19 | 7,561 |
| 11 | Dijon FCO | 19 | 7,540 |
| 12 | Stade lavallois | 19 | 7,123 |
| 13 | FC Annecy | 19 | 6,832 |
| 14 | Grenoble Foot 38 | 19 | 5,640 |
| 15 | Paris FC | 19 | 4,030 |
| 16 | US Quevilly-Rouen | 19 | 3,786 |
| 17 | Pau FC | 19 | 3,104 |
| 18 | Nîmes Olympique | 19 | 2,774 |
| 19 | Chamois niortais | 19 | 2,576 |
| 20 | Rodez AF | 19 | 2,218 |