Clubs
| Club | Seasons | Apps | Goals | Assists |
|---|---|---|---|---|
| Seoul E-Land FC | 2024/25 – 2025/26 | 49 | 8 | 0 |
| FC Seoul | 2014/15 – 2023/24 | 339 | 25 | 5 |
| Cerezo Osaka U23 | 2018/19 | 1 | 0 | — |
| Cerezo Osaka | 2018/19 | 20 | 2 | — |
| Buriram United | 2013/14 | 40 | 9 | — |
| Racing | 2009/10 – 2011/12 | 17 | 0 | — |
Transfers
| Date | From | To | Type |
|---|---|---|---|
| 9 Feb 2024 | FC Seoul | Seoul E-Land FC | Free |
| 1 Jan 2019 | Cerezo Osaka | FC Seoul | — |
| 21 Feb 2018 | FC Seoul | Cerezo Osaka | Loan |
| 25 Jul 2012 | Racing Santander | Buriram United | Free |
Season by season
| Season | Competition | Club | Apps | Starts | Min | Goals | Assists | Yellow | Red | Rating |
|---|---|---|---|---|---|---|---|---|---|---|
| 2025/26 | K League 2 | Seoul E-Land FC | 20 | 14 | 1311 | 1 | 0 | 2 | 0 | 7.26 |
| 2024/25 | K League 2 | Seoul E-Land FC | 29 | 27 | 2449 | 7 | 0 | 2 | 1 | — |
| 2023/24 | K League 1 | FC Seoul | 35 | 33 | 2977 | 2 | 2 | 4 | 1 | 6.97 |
| 2022/23 | K League 1 | FC Seoul | 24 | 22 | 1995 | 1 | — | 5 | 0 | 7.09 |
| 2022/23 | FA Cup | FC Seoul | 4 | 4 | 390 | 0 | — | 2 | 0 | — |
| 2021/22 | K League 1 | FC Seoul | 35 | 34 | 3058 | 1 | 1 | 3 | 0 | 7.19 |
| 2020/21 | K League 1 | FC Seoul | 15 | 14 | 1216 | 1 | 1 | 4 | 0 | 7.29 |
| 2020/21 | FA Cup | FC Seoul | 1 | 1 | 120 | 0 | — | 0 | 0 | — |
| 2020/21 | AFC Champions League | FC Seoul | 6 | 6 | 540 | 1 | — | 1 | 0 | 7.18 |
| 2019/20 | K League 1 | FC Seoul | 31 | 30 | 2700 | 4 | — | 3 | 0 | — |
| 2018/19 | J3 League | Cerezo Osaka U23 | 1 | 1 | 90 | 0 | — | 0 | 0 | — |
| 2018/19 | J1 League | Cerezo Osaka | 17 | 16 | 1438 | 2 | — | 1 | 0 | 7.26 |
| 2018/19 | J-League Cup | Cerezo Osaka | 2 | 2 | 180 | 0 | — | 0 | 0 | — |
| 2018/19 | Emperor Cup | Cerezo Osaka | 1 | 1 | 120 | 0 | — | 1 | 0 | — |
| 2017/18 | K League 1 | FC Seoul | 33 | 33 | 2926 | 4 | — | 3 | 0 | — |
| 2017/18 | Korea Cup | FC Seoul | 1 | 1 | 120 | 0 | — | 0 | 0 | — |
| 2017/18 | AFC Champions League | FC Seoul | 4 | 4 | 360 | 0 | — | 2 | 0 | 7.13 |
| 2016/17 | K League 1 | FC Seoul | 37 | 36 | 3256 | 4 | — | 6 | 0 | — |
| 2016/17 | Korea Cup | FC Seoul | 5 | 5 | 509 | 0 | — | 1 | 0 | — |
| 2016/17 | AFC Champions League | FC Seoul | 11 | 11 | 1020 | 0 | 1 | 0 | 0 | 7.33 |
| 2015/16 | K League 1 | FC Seoul | 38 | 38 | 3420 | 3 | — | 2 | 0 | — |
| 2015/16 | Korea Cup | FC Seoul | 3 | 3 | 270 | 0 | — | 0 | 0 | — |
| 2015/16 | AFC Champions League Elite | FC Seoul | 7 | 7 | 630 | 1 | — | 2 | 0 | — |
| 2014/15 | K League 1 | FC Seoul | 34 | 33 | 2913 | 2 | — | 5 | 0 | — |
| 2014/15 | Korea Cup | FC Seoul | 4 | 4 | 450 | 0 | — | 1 | 0 | — |
| 2014/15 | AFC Champions League Elite | FC Seoul | 11 | 11 | 1020 | 1 | — | 2 | 0 | — |
| 2013/14 | Thai League 1 | Buriram United | 30 | 30 | 2680 | 6 | — | 4 | 0 | — |
| 2013/14 | AFC Champions League Elite | Buriram United | 10 | 10 | 930 | 3 | — | 3 | 0 | — |
| 2011/12 | La Liga | Racing | 8 | 5 | 554 | 0 | — | 4 | 0 | — |
| 2011/12 | Copa del Rey | Racing | 3 | 3 | 270 | 0 | — | 1 | 0 | — |
| 2010/11 | La Liga | Racing | 4 | 2 | 256 | 0 | — | 0 | 0 | — |
| 2009/10 | La Liga | Racing | 1 | 1 | 90 | 0 | — | 0 | 0 | — |
| 2009/10 | Copa del Rey | Racing | 1 | 1 | 90 | 0 | — | 0 | 0 | — |
Availability history
No injuries or suspensions recorded.
Trophies
No trophies recorded.
