Ligue 1 top scorers 2025/2026
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.
Esteban Lepaul leads the scoring on 21 goals, from 2702 minutes. That is 5 clear of Joaquin Panichelli. Esteban Lepaul has scored 4.99 more than his chances were worth: 21 goals from 16.01 xG. Issa Soumaré has scored 7.82 fewer than his chances were worth: 8 goals from 15.82 xG.
Showing 101–150 of 600 players
| # | Player | Club | Apps | Min | G | npG | xG | G − xG | Min/G |
|---|---|---|---|---|---|---|---|---|---|
| 73 | Mamadou Sangare | RC Lens | 29 | 2,328 | 3 | 3 | 3.34 | −0.34 | 776 |
| 73 | Warren Zaïre-Emery | Paris Saint-Germain | 32 | 2,454 | 3 | 3 | 1.21 | +1.79 | 818 |
| 73 | Giorgi Tsitaishvili | Metz | 33 | 2,457 | 3 | 3 | 1.49 | +1.51 | 819 |
| 73 | Danny Namaso | Auxerre | 30 | 2,526 | 3 | 3 | 5.18 | −2.18 | 842 |
| 73 | Charlie Cresswell | Toulouse | 29 | 2,533 | 3 | 3 | 3.30 | −0.30 | 844 |
| 73 | Mahdi Camara | Stade Rennais | 32 | 2,661 | 3 | 3 | 3.14 | −0.14 | 887 |
| 73 | Adrien Thomasson | RC Lens | 32 | 2,690 | 3 | 3 | 6.92 | −3.92 | 897 |
| 73 | Kévin Danois | Auxerre | 33 | 2,835 | 3 | 3 | 1.79 | +1.21 | 945 |
| 109 | Julian Vignolo | Toulouse | 13 | 207 | 2 | 2 | 1.79 | +0.21 | 104 |
| 109 | Ethan Nwaneri | Olympique de Marseille | 9 | 322 | 2 | 2 | 0.57 | +1.43 | 161 |
| 109 | Harouna Djibirin | Angers | 15 | 323 | 2 | 2 | 1.12 | +0.88 | 162 |
| 109 | George Ilenikhena | AS Monaco | 15 | 387 | 2 | 2 | 1.24 | +0.76 | 194 |
| 109 | Nathan Mbala | Metz | 13 | 448 | 2 | 2 | 0.97 | +1.03 | 224 |
| 109 | Terem Moffi | Nice | 10 | 489 | 2 | 2 | 3.31 | −1.31 | 245 |
| 109 | Giorgi Kvilitaia | Metz | 10 | 502 | 2 | 2 | 1.01 | +0.99 | 251 |
| 109 | Noah Nartey | Olympique Lyonnais | 11 | 547 | 2 | 2 | 1.03 | +0.97 | 274 |
| 109 | Rémy Cabella | Nantes | 11 | 574 | 2 | 1 | 3.21 | −1.21 | 287 |
| 109 | Kaïl Boudache | Nice | 14 | 580 | 2 | 2 | 2.70 | −0.70 | 290 |
| 109 | Hamed Junior Traorè | Olympique de Marseille | 13 | 619 | 2 | 2 | 2.30 | −0.30 | 310 |
| 109 | Jérémie Boga | Nice | 14 | 645 | 2 | 2 | 1.62 | +0.38 | 323 |
| 109 | Goduine Koyalipou | Angers | 13 | 675 | 2 | 1 | 2.69 | −0.69 | 338 |
| 109 | Giorgi Abuashvili | Metz | 23 | 700 | 2 | 2 | 0.94 | +1.06 | 350 |
| 109 | Martín Satriano | Olympique Lyonnais | 11 | 703 | 2 | 2 | 1.81 | +0.19 | 352 |
| 109 | Ciro Immobile | Paris FC | 12 | 711 | 2 | 2 | 1.84 | +0.16 | 356 |
| 109 | Abdallah Sima | RC Lens | 21 | 718 | 2 | 2 | 3.18 | −1.18 | 359 |
| 109 | Mama Baldé | Stade Brestois | 18 | 724 | 2 | 2 | 3.00 | −1.00 | 362 |
| 109 | Abdoulaye Touré | Le Havre | 11 | 742 | 2 | 2 | 1.67 | +0.33 | 371 |
| 109 | Malick Fofana | Olympique Lyonnais | 12 | 767 | 2 | 2 | 2.74 | −0.74 | 384 |
| 109 | Bahereba Guirassy | Nantes | 20 | 827 | 2 | 2 | 1.80 | +0.20 | 414 |
| 109 | Vincent Marchetti | Paris FC | 23 | 840 | 2 | 2 | 2.37 | −0.37 | 420 |
| 109 | Amir Murillo | Olympique de Marseille | 16 | 988 | 2 | 2 | 1.01 | +0.99 | 494 |
| 109 | Samuel Amo-Ameyaw | RC Strasbourg | 25 | 1,050 | 2 | 2 | 0.87 | +1.13 | 525 |
| 109 | Himad Abdelli | Olympique de Marseille | 21 | 1,096 | 2 | 0 | 2.21 | −0.21 | 548 |
| 109 | Jean-Philippe Krasso | Paris FC | 25 | 1,100 | 2 | 1 | 3.36 | −1.36 | 550 |
| 109 | Mika Biereth | AS Monaco | 32 | 1,109 | 2 | 2 | 3.40 | −1.40 | 555 |
| 109 | Nabil Bentaleb | Lille | 26 | 1,288 | 2 | 1 | 1.33 | +0.67 | 644 |
| 109 | Yassine Kechta | Le Havre | 30 | 1,348 | 2 | 2 | 1.66 | +0.34 | 674 |
| 109 | Saud Abdulhamid | RC Lens | 25 | 1,356 | 2 | 2 | 0.80 | +1.20 | 678 |
| 109 | Rudy Matondo | Paris FC | 27 | 1,360 | 2 | 2 | 0.96 | +1.04 | 680 |
| 109 | Achraf Hakimi | Paris Saint-Germain | 18 | 1,375 | 2 | 2 | 2.31 | −0.31 | 688 |
| 109 | Abdelhamid Ait Boudlal | Stade Rennais | 20 | 1,415 | 2 | 2 | 1.65 | +0.35 | 708 |
| 109 | Ally Samatta | Le Havre | 27 | 1,551 | 2 | 2 | 4.01 | −2.01 | 776 |
| 109 | Lucas Beraldo | Paris Saint-Germain | 20 | 1,570 | 2 | 2 | 1.55 | +0.45 | 785 |
| 109 | Ruben Aguilar | RC Lens | 26 | 1,736 | 2 | 2 | 0.89 | +1.11 | 868 |
| 109 | Abdoul Ouattara | RC Strasbourg | 28 | 1,775 | 2 | 2 | 2.53 | −0.53 | 888 |
| 109 | Samson Baidoo | RC Lens | 23 | 1,832 | 2 | 2 | 1.69 | +0.31 | 916 |
| 109 | Dayann Methalie | Toulouse | 27 | 1,882 | 2 | 2 | 0.98 | +1.02 | 941 |
| 109 | Théo Le Bris | Lorient | 28 | 1,899 | 2 | 2 | 1.79 | +0.21 | 950 |
| 109 | Louis Mouton | Angers | 32 | 1,911 | 2 | 2 | 3.12 | −1.12 | 956 |
| 109 | Sadibou Sané | Metz | 23 | 1,943 | 2 | 2 | 0.32 | +1.68 | 972 |
- 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 →