At a glance
- Full name
- João Ribeiro Oliveira
- Born
- 03 Jan 1992
- Age today
- 34
- Nationality
- Portugal
Career by season
194 recorded appearances| Season | Competition | Team | Apps | Starts | Goals | Assists | Minutes | Cards |
|---|---|---|---|---|---|---|---|---|
| 26/27 | Taça de Portugal | Académica Coimbra | 1 | 0 | 0 | 0 | 17 | 1 |
| 26/27 | Liga Portugal 2 | Académica Coimbra | 5 | 0 | 0 | 0 | 111 | 1 |
| 25/26 | Taça de Portugal | AD Fafe | 7 | 7 | 3 | 0 | 613 | 2 |
| 25/26 | Liga 3 | AD Fafe | 27 | 24 | 3 | 0 | 1,983 | 5 |
| 24/25 | Liga 3 | AD Fafe | 14 | 7 | 0 | 0 | 753 | 1 |
| 23/24 | Taça de Portugal | FC Penafiel | 2 | 0 | 0 | 0 | 56 | 0 |
| 23/24 | Taça da Liga | FC Penafiel | 1 | 0 | 0 | 0 | 10 | 0 |
| 2023/2024 | Liga Portugal 2 | FC Penafiel | 20 | 16 | 3 | 0 | 1,329 | 5 / 1 red |
| 2024 | Kazakhstan Premier League | Zhenis Astana | 10 | 8 | 0 | 0 | 693 | 2 |
| 22/23 | Taça de Portugal | FC Penafiel | 1 | 1 | 1 | 0 | 120 | 0 |
| 22/23 | Taça da Liga | FC Penafiel | 2 | 1 | 0 | 0 | 135 | 1 |
| 2022/2023 | Liga Portugal 2 | FC Penafiel | 28 | 17 | 1 | 0 | 1,526 | 8 |
| 21/22 | Puchar Polski | Zagłębie Sosnowiec | 2 | 1 | 0 | 0 | 105 | 1 |
| 2021/2022 | Betclic 1. Liga | Zagłębie Sosnowiec | 28 | 22 | 1 | 4 | 1,945 | 10 / 1 red |
| 20/21 | Puchar Polski | Zagłębie Sosnowiec | 1 | 1 | 0 | 0 | 90 | 1 |
| 2020/2021 | Betclic 1. Liga | Zagłębie Sosnowiec | 27 | 27 | 8 | 1 | 2,160 | 6 / 1 red |
| 2019/2020 | Liga Portugal 2 | Académico Viseu FC | 18 | 15 | 1 | 1 | 1,349 | 6 |
Appearances in our supported competitions. Goals, assists and minutes come from match reports where we have them.
Match log
Newest first| Date | Competition | Match | Score | Minutes | Goals |
|---|---|---|---|---|---|
| 10 Jan 2026 | Liga 3 | SC São João de Ver v AD Fafe | 0 – 4 | 90 | 1 |
| 04 Jan 2026 | Liga 3 | AD Fafe v Varzim SC | 1 – 0 | 90 | |
| 27 Dec 2025 | Taça de Portugal | Lusitano GC v AD Fafe | 0 – 1 | 90 | |
| 21 Dec 2025 | Liga 3 | Amarante FC v AD Fafe | 3 – 2 | 90 | |
| 14 Dec 2025 | Liga 3 | AD Fafe v CD Trofense | 1 – 2 | 75 | |
| 07 Dec 2025 | Liga 3 | AD Marco 09 v AD Fafe | 1 – 1 | 62 | |
| 29 Nov 2025 | Liga 3 | AD Fafe v USC Paredes | 2 – 1 | 90 | |
| 23 Nov 2025 | Taça de Portugal | AD Fafe v FC Arouca | 2 – 1 | 90 | 2 |
| 09 Nov 2025 | Liga 3 | AD Sanjoanense v AD Fafe | 1 – 1 | 90 | |
| 01 Nov 2025 | Liga 3 | SC Braga B v AD Fafe | 1 – 0 | 80 | |
| 25 Oct 2025 | Liga 3 | AD Fafe v Vitória Guimarães SC B | 1 – 0 | 90 | |
| 19 Oct 2025 | Taça de Portugal | AD Fafe v Moreirense FC | 1 – 0 | 90 | |
| 10 Oct 2025 | Liga 3 | AD Fafe v Amarante FC | 3 – 0 | 69 | |
| 05 Oct 2025 | Liga 3 | AD Fafe v SC São João de Ver | 2 – 0 | 88 | 1 |
| 28 Sep 2025 | Liga 3 | Varzim SC v AD Fafe | 1 – 1 | 90 | |
| 21 Sep 2025 | Taça de Portugal | Clube Oriental Lissabon v AD Fafe | 0 – 1 | 90 | |
| 13 Sep 2025 | Liga 3 | CD Trofense v AD Fafe | 5 – 1 | 90 | |
| 24 Aug 2025 | Liga 3 | AD Fafe v AD Marco 09 | 0 – 0 | 90 | |
| 17 Aug 2025 | Liga 3 | USC Paredes v AD FafeSubstitute, on 58′ | 1 – 1 | 32 | |
| 10 Aug 2025 | Liga 3 | AD Fafe v AD SanjoanenseSubstitute, on 85′ | 0 – 2 | 5 |
Career transfers
13 recorded movesAll recorded career moves, newest first.
| Date | From | To | Move | Fee |
|---|---|---|---|---|
| 16 Jul 2026 | AD Fafe | Académica Coimbra | Transfer | Free |
| 22 Jan 2025 | Zhenis Astana | AD Fafe | Transfer | Free |
| 11 Jul 2024 | FC Penafiel | Zhenis Astana | Transfer | Free |
| 01 Jul 2022 | Zagłębie Sosnowiec | FC Penafiel | Transfer | Free |
| 01 Aug 2020 | Académico Viseu FC | Zagłębie Sosnowiec | Transfer | Free |
| 08 Jul 2019 | FC Vizela | Académico Viseu FC | Transfer | Free |
| 01 Jul 2017 | SC Olhanense | FC Vizela | Transfer | Free |
| 05 Jul 2015 | Vilaverdense FC | SC Olhanense | Transfer | Free |
| 30 Jun 2014 | SC Salgueiros | Vilaverdense FC | Loan return | |
| 01 Jul 2013 | Vilaverdense FC | SC Salgueiros | Loan | — |
| 01 Jul 2011 | SC Braga U19 | Vilaverdense FC | Transfer | Free |
| 01 Jul 2010 | Sporting CP U19 | SC Braga U19 | Transfer | — |
| 01 Jul 2005 | SC Braga Youth | SC Braga U15 | Internal move | — |
Contracts and market values are not available yet.