Clubs
| Club | Seasons | Apps | Goals | Assists |
|---|---|---|---|---|
| Suwon City FC | 2025/26 – 2026/27 | 17 | 10 | 1 |
| FC Seoul | 2023/24 – 2025/26 | 21 | 6 | 2 |
| Gyeongnam FC | 2021/22 – 2022/23 | 38 | 16 | 6 |
| Daejeon Citizen | 2022/23 | 17 | 8 | 1 |
| Gwangju FC | 2019/20 – 2020/21 | 42 | 13 | 3 |
| Panetolikos | 2017/18 – 2018/19 | 31 | 4 | 2 |
| Vitoria Setubal | 2017/18 | 16 | 1 | — |
| Nacional | 2014/15 – 2016/17 | 62 | 5 | 0 |
| Beira-Mar | 2013/14 | 35 | 7 | 0 |
| Torino | 2012/13 | 0 | 0 | — |
Transfers
| Date | From | To | Type |
|---|---|---|---|
| 8 Jan 2023 | Daejeon Citizen | FC Seoul | Loan |
| 24 Jun 2022 | Gyeongnam FC | Daejeon Citizen | — |
| 24 Jan 2021 | Gwangju FC | Gyeongnam FC | — |
| 18 Mar 2019 | Panetolikos | Gwangju FC | — |
| 31 Jan 2018 | Vitoria Setubal | Panetolikos | Free |
| 1 Jul 2017 | Nacional | Vitoria Setubal | — |
| 12 Jul 2014 | Torino | Nacional | Free |
| 1 Jul 2014 | Beira-Mar | Torino | — |
| 1 Jul 2013 | Torino | Beira-Mar | Loan |
| 9 Jul 2025 | FC Seoul | Suwon City FC | Transfer |
| 7 Aug 2026 | Suwon City FC | Cheonan City | Loan |
Season by season
| Season | Competition | Club | Apps | Starts | Min | Goals | Assists | Yellow | Red | Rating |
|---|---|---|---|---|---|---|---|---|---|---|
| 2026/27 | K League 2 | Suwon City FC | 9 | — | — | 5 | 0 | 0 | 0 | — |
| 2025/26 | K League 1 | Suwon City FC | 8 | 8 | 532 | 5 | 1 | 2 | 0 | 7.13 |
| 2025/26 | K League 1 | FC Seoul | 1 | 0 | 11 | — | 1 | 0 | 0 | 6.90 |
| 2024/25 | K League 1 | FC Seoul | 7 | 4 | 312 | 1 | 0 | 1 | 0 | 6.64 |
| 2024/25 | FA Cup | FC Seoul | 1 | — | — | 0 | 0 | 1 | 0 | — |
| 2023/24 | K League 1 | FC Seoul | 12 | 8 | 511 | 5 | 1 | 3 | 0 | 6.90 |
| 2022/23 | K League 2 | Daejeon Citizen | 17 | — | — | 8 | 1 | 3 | 0 | — |
| 2022/23 | K League 2 | Gyeongnam FC | 10 | — | — | 5 | 5 | 1 | 0 | — |
| 2021/22 | FA Cup | Gyeongnam FC | 1 | 0 | 44 | 0 | — | 0 | 0 | — |
| 2021/22 | K League 2 | Gyeongnam FC | 27 | — | — | 11 | 1 | 5 | 0 | — |
| 2020/21 | K League 1 | Gwangju FC | 17 | 17 | 1315 | 5 | 3 | 6 | 1 | 6.84 |
| 2019/20 | K League 2 | Gwangju FC | 25 | — | — | 8 | 0 | 6 | 0 | — |
| 2018/19 | Cup | Panetolikos | 3 | 2 | 186 | 0 | — | 1 | 0 | — |
| 2018/19 | Super League 1 | Panetolikos | 22 | — | — | 3 | 2 | 7 | 0 | — |
| 2017/18 | Primeira Liga | Vitoria Setubal | 14 | 7 | 606 | 0 | — | 0 | 0 | 6.55 |
| 2017/18 | Taça da Liga | Vitoria Setubal | 2 | 2 | 104 | 1 | — | 0 | 0 | — |
| 2017/18 | Super League 1 | Panetolikos | 6 | — | — | 1 | 0 | 2 | 0 | — |
| 2016/17 | Taça da Liga | Nacional | 1 | 0 | 44 | 0 | — | 0 | 0 | — |
| 2016/17 | Primeira Liga | Nacional | 22 | 14 | 1304 | 1 | — | 3 | 0 | 6.64 |
| 2015/16 | Primeira Liga | Nacional | 10 | 9 | 757 | 3 | — | 3 | 0 | 6.81 |
| 2015/16 | League Cup | Nacional | 1 | — | — | 0 | 0 | 0 | 0 | — |
| 2015/16 | Taça de Portugal | Nacional | 2 | — | — | 0 | 0 | 1 | 0 | — |
| 2014/15 | Primeira Liga | Nacional | 22 | — | — | 1 | 0 | 2 | 1 | — |
| 2014/15 | League Cup | Nacional | 2 | — | — | 0 | 0 | 0 | 0 | — |
| 2014/15 | Taça de Portugal | Nacional | 2 | — | — | 0 | 0 | 0 | 0 | — |
| 2013/14 | Segunda Liga | Beira-Mar | 30 | 16 | 1568 | 5 | — | 7 | 0 | — |
| 2013/14 | League Cup | Beira-Mar | 3 | — | — | 0 | 0 | 1 | 0 | — |
| 2013/14 | Taça de Portugal | Beira-Mar | 2 | — | — | 2 | 0 | 0 | 0 | — |
Availability history
No injuries or suspensions recorded.
Trophies
| Competition | Season | Place |
|---|---|---|
| Taça da Liga (Portugal) | 2017/2018 | 2nd Place |
| K League 2 (Korea Republic) | 2019 | Winner |
| K League 2 (Korea Republic) | 2022 | 2nd Place |
