Career snapshot
Position rank · 24/25
Among 3,260 Goalkeepers · ≥200 mins
Career highs
Born the same day
Shares 1996-02-02 · 6 players total
| Full name | João Costa |
|---|---|
| Name in home country | João Paulo Santos da Costa |
| Date of birth | 1996-02-02 (30 yrs) |
| Place of birth | Barcelos, Portugal |
| Citizenship | Portugal |
| Position | Goalkeeper |
| Foot | right |
| Height | 186.00 m |
| Current club | FC Porto |
| Joined | 2025-07-09 |
| Contract expires | 2030-06-30 |
| Agent | SoccerSoul |
Percentile rank vs 2731 other Goalkeepers with ≥500 minutes in 24/25. Higher = better (except cards, where lower = better — inverted automatically).
| Club | Seasons | First | Last | Matches | Goals | Assists | Minutes |
|---|---|---|---|---|---|---|---|
| CF Estrela Amadora | 1 | 24/25 | 24/25 | 14 | 0 | 0 | 1,260 |
| CD Feirense | 2 | 23/24 | 24/25 | 32 | 0 | 0 | 2,880 |
| Real Murcia CF | 1 | 22/23 | 22/23 | 21 | 0 | 0 | 1,890 |
| Granada CF | 2 | 19/20 | 20/21 | 0 | 0 | 0 | 0 |
| Recreativo Granada | 2 | 19/20 | 20/21 | 27 | 0 | 0 | 2,430 |
| CD Mirandés | 1 | 19/20 | 19/20 | 3 | 0 | 0 | 330 |
| FC Cartagena | 1 | 18/19 | 18/19 | 35 | 0 | 0 | 3,109 |
| Gil Vicente FC | 1 | 17/18 | 17/18 | 13 | 0 | 0 | 1,170 |
| FC Porto | 1 | 16/17 | 16/17 | 0 | 0 | 0 | 0 |
| FC Porto B | 2 | 15/16 | 16/17 | 22 | 0 | 0 | 1,980 |
| FC Porto Youth League | 2 | 13/14 | 14/15 | 10 | 0 | 0 | 900 |
Career trajectory — goals, assists & market value
Goals by season
Assists by season
| Season | Competition | Club | Matches | Goals | Assists | YC | RC | Minutes |
|---|---|---|---|---|---|---|---|---|
| 24/25 | Liga Portugal | CF Estrela Amadora | 14 | 0 | 0 | 0 | 0 | 1,260 |
| 24/25 | Liga Portugal 2 | CD Feirense | 18 | 0 | 0 | 0 | 0 | 1,620 |
| 24/25 | Taça de Portugal | CD Feirense | 0 | 0 | 0 | 0 | 0 | 0 |
| 23/24 | Liga Portugal 2 | CD Feirense | 11 | 0 | 0 | 0 | 0 | 990 |
| 23/24 | Play-Off Liga Portugal 2 | CD Feirense | 2 | 0 | 0 | 1 | 0 | 180 |
| 23/24 | Taça de Portugal | CD Feirense | 1 | 0 | 0 | 0 | 0 | 90 |
| 22/23 | Copa del Rey | Real Murcia CF | 0 | 0 | 0 | 0 | 0 | 0 |
| 22/23 | Primera Federación - Gr. II | Real Murcia CF | 21 | 0 | 0 | 1 | 0 | 1,890 |
| 20/21 | 2ª B - Fase de descenso | Recreativo Granada | 7 | 0 | 0 | 0 | 0 | 630 |
| 20/21 | 2ª B - Grupo IV | Recreativo Granada | 14 | 0 | 0 | 0 | 0 | 1,260 |
| 20/21 | Copa del Rey | Granada CF | 0 | 0 | 0 | 0 | 0 | 0 |
| 20/21 | LaLiga | Granada CF | 0 | 0 | 0 | 0 | 0 | 0 |
| 19/20 | 2ª B - Grupo IV | Recreativo Granada | 6 | 0 | 0 | 1 | 0 | 540 |
| 19/20 | 2ª División | CD Mirandés | 1 | 0 | 0 | 0 | 0 | 90 |
| 19/20 | Copa del Rey | CD Mirandés | 2 | 0 | 0 | 1 | 0 | 240 |
| 19/20 | LaLiga | Granada CF | 0 | 0 | 0 | 0 | 0 | 0 |
| 18/19 | 2ª B - Grupo IV | FC Cartagena | 29 | 0 | 0 | 2 | 0 | 2,539 |
| 18/19 | Ascenso a 2ª | FC Cartagena | 4 | 0 | 0 | 0 | 0 | 360 |
| 18/19 | Copa del Rey | FC Cartagena | 2 | 0 | 0 | 0 | 0 | 210 |
| 17/18 | Ledman LigaPro | Gil Vicente FC | 13 | 0 | 0 | 2 | 0 | 1,170 |
| 16/17 | Allianz Cup | FC Porto | 0 | 0 | 0 | 0 | 0 | 0 |
| 16/17 | Ledman LigaPro | FC Porto B | 16 | 0 | 0 | 0 | 0 | 1,440 |
| 15/16 | Ledman LigaPro | FC Porto B | 6 | 0 | 0 | 0 | 0 | 540 |
| 14/15 | UEFA Youth League | FC Porto Youth League | 4 | 0 | 0 | 0 | 0 | 360 |
| 13/14 | UEFA Youth League | FC Porto Youth League | 6 | 0 | 0 | 0 | 0 | 540 |
| Season | Date | From | To | Type | Market value | Fee |
|---|---|---|---|---|---|---|
| 09/10 | 2009-07-01 | FC Porto Youth | FC Porto U15 | Transfer | 0 | — |
| 11/12 | 2011-07-01 | FC Porto U15 | FC Porto U17 | Transfer | 0 | — |
| 13/14 | 2013-07-01 | FC Porto U17 | FC Porto U19 | Transfer | 0 | — |
| 15/16 | 2015-07-01 | FC Porto U19 | FC Porto B | Transfer | 0 | — |
| 17/18 | 2017-07-01 | FC Porto B | FC Porto | Transfer | 500000 | — |
| 17/18 | 2018-01-22 | FC Porto | Gil Vicente | Loan | 500000 | — |
| 17/18 | 2018-06-30 | Gil Vicente | FC Porto | Return from loan | 300000 | — |
| 18/19 | 2018-08-04 | FC Porto | FC Cartagena | Loan | 300000 | — |
| 18/19 | 2019-06-30 | FC Cartagena | FC Porto | Return from loan | 300000 | — |
| 19/20 | 2019-08-14 | FC Porto | CD Mirandés | Transfer | 300000 | — |
| 19/20 | 2020-01-27 | CD Mirandés | Recre Granada | Transfer | 300000 | — |
| 21/22 | 2021-07-01 | Recre Granada | Granada CF | Transfer | 250000 | — |
| 22/23 | 2022-08-30 | Granada CF | Real Murcia | Transfer | 200000 | — |
| 23/24 | 2023-08-16 | Real Murcia | Feirense | Transfer | 200000 | — |
| 24/25 | 2025-01-23 | Feirense | Estrela Amadora | Transfer | 450000 | €300k |
| 25/26 | 2025-07-09 | Estrela Amadora | FC Porto | Transfer | 800000 | — |
| Season | Injury | From | To | Days missed | Games missed |
|---|---|---|---|---|---|
| 16/17 | Meniscus damage | 2017-02-10 | 2017-07-01 | 142 | 17 |
| 23/24 | Knee injury | 2024-01-03 | 2024-05-06 | 125 | 17 |
| Date | Value |
|---|---|
| Jan 1, 1970 | €800k |
| Jan 1, 1970 | €800k |
| Jan 1, 1970 | €250k |
| Jan 1, 1970 | €450k |
| Jan 1, 1970 | €275k |
| Jan 1, 1970 | €200k |
| Jan 1, 1970 | €200k |
| Jan 1, 1970 | €200k |
| Jan 1, 1970 | €200k |
| Jan 1, 1970 | €200k |
| Jan 1, 1970 | €250k |
| Jan 1, 1970 | €250k |
| Jan 1, 1970 | €250k |
| Jan 1, 1970 | €300k |
| Jan 1, 1970 | €300k |
| Jan 1, 1970 | €300k |
| Jan 1, 1970 | €500k |
| Jan 1, 1970 | €300k |
| Jan 1, 1970 | €500k |
| Jan 1, 1970 | €50k |
| Jan 1, 1970 | €50k |
| Jan 1, 1970 | €100k |
| Team | Shirt | Matches | Goals | Debut | Age at debut | Status |
|---|---|---|---|---|---|---|
| Team #31372 | #1 | 8 | 0 | — | — | former national player |
| Team #30503 | #1 | 1 | 0 | — | — | former national player |
| Team #23137 | #1 | 11 | 0 | — | — | former national player |
| Team #16373 | #12 | 3 | 0 | — | — | former national player |
| Team #16372 | #12 | 1 | 0 | — | — | former national player |
| Team #16371 | #1 | 2 | 0 | — | — | former national player |
| Teammate | PPG played with | Joint goals | Minutes |
|---|---|---|---|
| Elady Zorrilla | 2 | 0 | 0 |
| Jorge Pereira | 1 | 0 | 0 |
| Nuha Marong | 1 | 0 | 0 |
| Antonio Montoro | 2 | 0 | 0 |
| Washington | 1 | 0 | 0 |
| Sergio Moyita | 2 | 0 | 0 |
| Zidane Banjaqui | 1 | 0 | 0 |
| Filipe Almeida | 1 | 0 | 0 |
| Sergio Ayala | 2 | 0 | 0 |
| Rúben Macedo | 2 | 0 | 0 |
| Alberto López | 1 | 0 | 0 |
| Rui Moreira | 2 | 0 | 0 |
| Rúben Alves | 1 | 0 | 0 |
| Diogo Verdasca | 2 | 0 | 0 |
| Sérgio Ribeiro | 2 | 0 | 0 |
| Luís Mata | 2 | 0 | 0 |
| Julio Gracia | 2 | 0 | 0 |
Every loan spell across this player's career.
| Season | Date | From | To | Type | Fee | Value at transfer |
|---|---|---|---|---|---|---|
| 18/19 | 2019-06-30 | FC Cartagena | FC Porto | Return from loan | — | €300k |
| 18/19 | 2018-08-04 | FC Porto | FC Cartagena | Loan | — | €300k |
| 17/18 | 2018-06-30 | Gil Vicente | FC Porto | Return from loan | — | €300k |
| 17/18 | 2018-01-22 | FC Porto | Gil Vicente | Loan | — | €500k |
Last 38 matches for FC Porto while João Costa was at the club (joined 2025-07-09). The Availability column cross-references our injury database — matches inside a known injury window are flagged INJURED. Per-match goal attribution requires a paid feed (FBref/Sofascore) and isn't wired up yet.
| Date | Comp | Home | Score | Away | Availability |
|---|---|---|---|---|---|
| 2026-05-16 | PO1 |
FC Porto | 1–0 | CD Santa Clara | Available |
| 2026-05-10 | PO1 |
AVS | 3–1 | FC Porto | Available |
| 2026-05-10 | PO1 |
AVS | 3–1 | FC Porto | Available |
| 2026-05-02 | PO1 |
FC Porto | 1–0 | FC Alverca | Available |
| 2026-05-02 | PO1 |
FC Porto | 1–0 | FC Alverca | Available |
| 2026-04-26 | PO1 |
CF Estrela da Amadora | 1–2 | FC Porto | Available |
| 2026-04-26 | PO1 |
CF Estrela da Amadora | 1–2 | FC Porto | Available |
| 2026-04-19 | PO1 |
FC Porto | 2–0 | CD Tondela | Available |
| 2026-04-19 | PO1 |
FC Porto | 2–0 | CD Tondela | Available |
| 2026-04-12 | PO1 |
GD Estoril Praia | 1–3 | FC Porto | Available |
| 2026-04-04 | PO1 |
FC Porto | 2–2 | FC Famalicão | Available |
| 2026-03-22 | PO1 |
Sporting Clube de Braga | 1–2 | FC Porto | Available |
| 2026-03-15 | PO1 |
FC Porto | 3–0 | Moreirense FC | Available |
| 2026-03-08 | PO1 |
Sport Lisboa e Benfica | 2–2 | FC Porto | Available |
| 2026-02-27 | PO1 |
FC Porto | 3–1 | FC Arouca | Available |
| 2026-02-22 | PO1 |
FC Porto | 1–0 | Rio Ave FC | Available |
| 2026-02-15 | PO1 |
CD Nacional | 0–1 | FC Porto | Available |
| 2026-02-09 | PO1 |
FC Porto | 1–1 | Sporting Clube de Portugal | Available |
| 2026-02-02 | PO1 |
Casa Pia AC | 2–1 | FC Porto | Available |
| 2026-01-26 | PO1 |
FC Porto | 3–0 | Gil Vicente FC | Available |
| 2026-01-18 | PO1 |
Vitória Guimarães | 0–1 | FC Porto | Available |
| 2026-01-04 | PO1 |
CD Santa Clara | 0–1 | FC Porto | Available |
| 2025-12-29 | PO1 |
FC Porto | 2–0 | AVS | Available |
| 2025-12-22 | PO1 |
FC Alverca | 0–3 | FC Porto | Available |
| 2025-12-15 | PO1 |
FC Porto | 3–1 | CF Estrela da Amadora | Available |
| 2025-12-07 | PO1 |
CD Tondela | 0–2 | FC Porto | Available |
| 2025-11-30 | PO1 |
FC Porto | 1–0 | GD Estoril Praia | Available |
| 2025-11-09 | PO1 |
FC Famalicão | 0–1 | FC Porto | Available |
| 2025-11-02 | PO1 |
FC Porto | 2–1 | Sporting Clube de Braga | Available |
| 2025-10-27 | PO1 |
Moreirense FC | 1–2 | FC Porto | Available |
| 2025-10-05 | PO1 |
FC Porto | 0–0 | Sport Lisboa e Benfica | Available |
| 2025-09-29 | PO1 |
FC Arouca | 0–4 | FC Porto | Available |
| 2025-09-19 | PO1 |
Rio Ave FC | 0–3 | FC Porto | Available |
| 2025-09-13 | PO1 |
FC Porto | 1–0 | CD Nacional | Available |
| 2025-08-30 | PO1 |
Sporting Clube de Portugal | 1–2 | FC Porto | Available |
| 2025-08-24 | PO1 |
FC Porto | 4–0 | Casa Pia AC | Available |
| 2025-08-18 | PO1 |
Gil Vicente FC | 0–2 | FC Porto | Available |
| 2025-08-11 | PO1 |
FC Porto | 3–0 | Vitória Guimarães | Available |
Teams faced most often by João Costa's clubs during seasons he played in those competitions (team-level results, not personal head-to-head goals — see disclaimer above).
| Opponent | P | W | D | L | GF | GA | GD | Win % |
|---|---|---|---|---|---|---|---|---|
| Real Zaragoza | 26 | 8 | 9 | 9 | 20 | 23 | -3 | 31% |
| CD Tenerife | 26 | 7 | 8 | 11 | 20 | 30 | -10 | 27% |
| Sporting Gijón | 22 | 6 | 7 | 9 | 23 | 33 | -10 | 27% |
| Albacete | 22 | 7 | 9 | 6 | 30 | 28 | +2 | 32% |
| Real Oviedo | 22 | 8 | 6 | 8 | 22 | 24 | -2 | 36% |
| AD Alcorcón | 18 | 6 | 6 | 6 | 22 | 20 | +2 | 33% |
| SD Huesca | 18 | 7 | 3 | 8 | 15 | 26 | -11 | 39% |
| CD Lugo | 18 | 5 | 8 | 5 | 22 | 17 | +5 | 28% |
| CD Leganés | 16 | 3 | 5 | 8 | 10 | 24 | -14 | 19% |
| Académico de Viseu | 16 | 5 | 3 | 8 | 21 | 24 | -3 | 31% |
| Racing Santander | 16 | 7 | 3 | 6 | 16 | 21 | -5 | 44% |
| SD Ponferradina | 16 | 6 | 4 | 6 | 18 | 16 | +2 | 38% |
Auto-detected milestones based on cumulative career totals.
| Season / Year | Milestone | Date |
|---|---|---|
| 13/14 | Senior debut season |
Yellow / second-yellow / red cards per season. Only seasons with at least one card are shown.
| Season | Matches | Mins | YC | 2nd YC | RC | Cards / 90′ |
|---|---|---|---|---|---|---|
| 23/24 | 14 | 1,260 | 1 | 0 | 0 | 0.07 |
| 22/23 | 21 | 1,890 | 1 | 0 | 0 | 0.05 |
| 19/20 | 9 | 870 | 2 | 0 | 0 | 0.21 |
| 18/19 | 35 | 3,109 | 2 | 0 | 0 | 0.06 |
| 17/18 | 13 | 1,170 | 2 | 0 | 0 | 0.15 |
Goalkeeper-specific aggregates: clean sheets and goals conceded by season.
| Season | Matches | Mins | Clean sheets | CS % | Goals conceded | GC / 90′ |
|---|---|---|---|---|---|---|
| 24/25 | 32 | 2,880 | 14 | 44% | 28 | 0.88 |
| 23/24 | 14 | 1,260 | 5 | 36% | 14 | 1 |
| 22/23 | 21 | 1,890 | 8 | 38% | 16 | 0.76 |
| 20/21 | 21 | 1,890 | 8 | 38% | 18 | 0.86 |
| 19/20 | 9 | 870 | 4 | 44% | 12 | 1.24 |
| 18/19 | 35 | 3,109 | 17 | 49% | 23 | 0.67 |
| 17/18 | 13 | 1,170 | 1 | 8% | 18 | 1.38 |
| 16/17 | 16 | 1,440 | 3 | 19% | 19 | 1.19 |
| 15/16 | 6 | 540 | 1 | 17% | 12 | 2 |
| 14/15 | 4 | 360 | 2 | 50% | 2 | 0.5 |
| 13/14 | 6 | 540 | 1 | 17% | 10 | 1.67 |
Output by competition
Career goals and assists broken down by tournament.
More on João Costa
Explore this player's career through different angles.
Similar players
Same position, similar age, sorted by market value.
Frequently asked about João Costa
Who is João Costa?
João Costa is a Portugal professional footballer who plays as a goalkeeper for FC Porto.
How old is João Costa?
João Costa is 30 years old. He was born on February 2, 1996 in Barcelos.
What position does João Costa play?
João Costa plays as a goalkeeper (Goalkeeper).
What club does João Costa play for?
João Costa currently plays for FC Porto.
What is João Costa's market value?
João Costa's most recent reported market value is €800k.
Portugal