Ligue 1 top scorers 2026/2027
Every Ligue 1 player ranked on the goals he has scored this season, with the minutes he took to score them — and, where the competition carries per-match figures, the chances those goals came from.
Ferran Torres has scored 2.40 more than his chances were worth: 4 goals from 1.60 xG.
Showing 351–394 of 394 players
| # | Player | Club | Apps | Min | G | npG | xG | G − xG | Min/G |
|---|---|---|---|---|---|---|---|---|---|
| 84 | Timothy Weah | Olympique de Marseille | 5 | 437 | 0 | 0 | 0.20 | −0.20 | — |
| 84 | Aleksandr Golovin | AS Monaco | 5 | 438 | 0 | 0 | 0.25 | −0.25 | — |
| 84 | Genesis Antwi | RC Strasbourg | 5 | 439 | 0 | 0 | 0.02 | −0.02 | — |
| 84 | Amir Richardson | Le Havre | 5 | 442 | 0 | 0 | 0.32 | −0.32 | — |
| 84 | Emerson | Olympique de Marseille | 5 | 443 | 0 | 0 | 0.11 | −0.11 | — |
| 84 | Noah Cadiou | Lorient | 5 | 444 | 0 | 0 | 0.45 | −0.45 | — |
| 84 | Yassin Belkhdim | Angers | 5 | 445 | 0 | 0 | 0.08 | −0.08 | — |
| 84 | Xavier Mandza | Nice | 5 | 448 | 0 | 0 | 0.10 | −0.10 | — |
| 84 | Bradley Locko | Stade Brestois | 5 | 448 | 0 | 0 | — | — | — |
| 84 | Raphaël Le Guen | Stade Brestois | 5 | 450 | 0 | 0 | 1.00 | −1.00 | — |
| 84 | Cristian Cásseres Jr. | Toulouse | 5 | 450 | 0 | 0 | 0.90 | −0.90 | — |
| 84 | Adrien Monfray | Troyes | 5 | 450 | 0 | 0 | 0.40 | −0.40 | — |
| 84 | Ayumu Seko | Le Havre | 5 | 450 | 0 | 0 | 0.33 | −0.33 | — |
| 84 | Clement Akpa | Auxerre | 5 | 450 | 0 | 0 | 0.28 | −0.28 | — |
| 84 | Montassar Talbi | Lorient | 5 | 450 | 0 | 0 | 0.26 | −0.26 | — |
| 84 | Ousmane Camara | Angers | 5 | 450 | 0 | 0 | 0.23 | −0.23 | — |
| 84 | Kévin Danois | Auxerre | 5 | 450 | 0 | 0 | 0.21 | −0.21 | — |
| 84 | Charlie Cresswell | Stade Rennais | 5 | 450 | 0 | 0 | 0.16 | −0.16 | — |
| 84 | Alexsandro Ribeiro | Lille | 5 | 450 | 0 | 0 | 0.15 | −0.15 | — |
| 84 | Michel Diaz | Troyes | 5 | 450 | 0 | 0 | 0.13 | −0.13 | — |
| 84 | Adama Camara | Paris FC | 5 | 450 | 0 | 0 | 0.12 | −0.12 | — |
| 84 | Pierre Lees Melou | Paris FC | 5 | 450 | 0 | 0 | 0.12 | −0.12 | — |
| 84 | Lamine Camara | AS Monaco | 5 | 450 | 0 | 0 | 0.11 | −0.11 | — |
| 84 | Willian Pacho | Paris Saint-Germain | 5 | 450 | 0 | 0 | 0.05 | −0.05 | — |
| 84 | Anis Ouzenadji | Troyes | 5 | 450 | 0 | 0 | 0.04 | −0.04 | — |
| 84 | Arsène Kouassi | Lorient | 5 | 450 | 0 | 0 | 0.02 | −0.02 | — |
| 84 | Anthony Lopes | Angers | 5 | 450 | 0 | 0 | — | — | — |
| 84 | Berke Özer | Lille | 5 | 450 | 0 | 0 | — | — | — |
| 84 | Diego Coppola | Paris FC | 5 | 450 | 0 | 0 | — | — | — |
| 84 | Egil Selvik | Stade Brestois | 5 | 450 | 0 | 0 | — | — | — |
| 84 | Filip Jørgensen | RC Strasbourg | 5 | 450 | 0 | 0 | — | — | — |
| 84 | Jeffrey De Lange | Olympique de Marseille | 5 | 450 | 0 | 0 | — | — | — |
| 84 | Jordan Lefort | Angers | 5 | 450 | 0 | 0 | — | — | — |
| 84 | Kevin Trapp | Paris FC | 5 | 450 | 0 | 0 | — | — | — |
| 84 | Lukáš Hrádecký | AS Monaco | 5 | 450 | 0 | 0 | — | — | — |
| 84 | Mamadou Diop | Auxerre | 5 | 450 | 0 | 0 | — | — | — |
| 84 | Mark McKenzie | Toulouse | 5 | 450 | 0 | 0 | — | — | — |
| 84 | Matvey Safonov | Paris Saint-Germain | 5 | 450 | 0 | 0 | — | — | — |
| 84 | Nathan Ngoy | Lille | 5 | 450 | 0 | 0 | — | — | — |
| 84 | Patrick Beach | Troyes | 5 | 450 | 0 | 0 | — | — | — |
| 84 | Robin Risser | RC Lens | 5 | 450 | 0 | 0 | — | — | — |
| 84 | Sadibou Sané | AS Monaco | 5 | 450 | 0 | 0 | — | — | — |
| 84 | Yehvann Diouf | Nice | 5 | 450 | 0 | 0 | — | — | — |
| 84 | Yvon Mvogo | Lorient | 5 | 450 | 0 | 0 | — | — | — |
- goals 2+ above xG
- under 90 minutes
About these figures What each column counts, and which feed it was counted from. Show Hide
- Apps
- Matches he played in this competition this season. A match he was named in and did not play does not count.
- Min
- Minutes played.
- G
- Goals scored, penalties included.
- npG
- Goals with penalties taken out.
- xG
- Expected goals: the quality of the chances he took, summed.
- G − xG
- Goals less expected goals, over the matches with both.
- Min/G
- Minutes played for each goal scored.
Appearances, minutes, goals, assists and shots on this page are summed over the Ligue 1 matches we hold per-player figures for — the same matches the expected figures are summed over, so the two can be read against each other.
Learn how xgEdge calculates these figures →