# Shane Duffy

Shane Patrick Michael Duffy (born 1 January 1992) is an Irish professional footballer who plays as a centre-back for EFL Championship club Norwich City and the Republic of Ireland national team.
Duffy came through the youth academy at Everton, where he completed his development after being promoted into the senior squad, spending most of his time at the club out on loan. He joined Blackburn Rovers in 2014 for an undisclosed fee, spending two years with the Lancashire club before moving to Brighton & Hove Albion in 2016, where he earned promotion to the Premier League. He spent the 2020–21 season on loan at Celtic where he won the delayed 2020 Scottish Cup final.
Duffy played for Northern Ireland at youth international level before switching allegiance to the Republic of Ireland. Duffy made his debut for the senior side in 2014, representing the country at UEFA Euro 2016 and has gone on to earn over 60 caps to date.

## Early life

Duffy was born in Derry, Northern Ireland. As a youth, he played Gaelic football for Doire Colmcille CLG and association football for Foyle Harps, both based in Derry. However, Duffy had to make a choice between Gaelic football and association football, so he choose association football. He represented Northern Ireland at under 16 level in the 2007 Victory Shield tournament and impressed Everton manager David Moyes in a performance at Bloomfield Road against England.
Duffy said that he once played for Derry City as a youngster and described it as a "good experience" for him.

## Club career
### Everton

Duffy joined Everton in November 2008 as a first-year scholar and worked his way through the U-18 and reserve teams.
Manager David Moyes named him and several young players in the first team for the pre-season friendlies and Duffy scored his first Everton goal against Rochdale in a 4–0 victory. He was promoted to the first team for the 2009–10 season and appeared on the substitute bench in league matches. At the age of 17, he made his professional debut versus AEK Athens in the UEFA Europa League in December 2009, coming on for the injured Sylvain Distin. In Everton's next European fixture, Duffy made his home debut at Goodison Park, completing the full 90 minutes against BATE Borisov, making his second and last appearances for the side in the 2009–10 season. At the end of the 2009–10 season, he was awarded the club's Reserve Player of the Year.
In May 2010 Duffy was seriously injured after colliding with a goalkeeper during a training match. He had undergone emergency surgery after lacerating his liver, and losing over three litres of blood in what medical staff described as "freak accident". Two months later, he spoke out about his injury, saying: "I can't thank them enough. I've thanked them so many times and I'll thank them again for being so good at their jobs and saving me. I'm so happy. I appreciate everything they've done for me. It's hard to tell people what it feels like because no one else knows I nearly died. So I just have to live life now, and don't take anything for granted." Duffy made his return from injury, starting the whole game for Everton's Reserves Team in a 2–0 defeat against Sligo Rovers on 8 August 2010.
After being recalled from his loan spell at Scunthorpe United, Duffy made his Premier League debut at White Hart Lane on 11 January 2012, coming on as a substitute for the final 30 minutes in a 2–0 defeat to Tottenham Hotspur. With Everton's regular centre-backs, Sylvain Distin and Phil Jagielka, injured for the next game three days later, Duffy made the first Premier League start of his career in a 1–1 draw with Aston Villa. He then made two more starts by the end of the month, coming against Blackburn Rovers and Fulham. His performance was praised by Manager David Moyes, saying: "Duffy has played really well in the games. He has been steady and looked mature in the games he has played. It is not easy for a young centre-half to play in the Premier League and we have tried to keep his game steady and simple and he has done well." Following the return of Jagieka and Distin, Duffy returned to the substitute bench and playing for the reserve side for the rest of the 2011–12 season. He went on to make five appearances in all competitions for the side.
Ahead of the 2012–13 season, Duffy was officially promoted to the senior first team following his involvement in the club's pre–season matches. He made his first appearance of the 2012–13 season, coming on as a second-half substitute, in a 5–0 win against Leyton Orient in the second round of the League Cup on 29 August 2012. It was announced on 12 September 2012 that Duffy signed a contract extension with Everton, keeping him until 2015. However, he found himself behind the pecking order in the first team, being placed on the substitute bench throughout the 2012–13 season. As a result, Duffy played in the reserve team throughout the 2012–13 season, making a contribution for the reserve side, scoring three times. He also captained the side as well. Despite this, Duffy later made two more appearances for the club, both coming on as a late substitute.

#### Loan spells

Duffy joined Burnley on loan on 24 March 2011 on an initial 28-day loan with the possibility of an extension until the end of the 2010–11 season. Duffy made his debut for Burnley on 2 April 2011 in the 2–1 defeat to Ipswich Town, playing the full 90 minutes. This turns out to be his only appearances for the club, as he returned to his parent club on 20 April 2011.
Duffy stated on his Twitter account that he wanted to be loaned out to get first team football. As a result, Duffy joined Scunthorpe United on loan on 31 August 2011. He made his debut on 10 September 2011, starting the whole game, in a 1–1 draw against Sheffield United, winning the Man of the Match award. Duffy's appearance in the first team led to Scunthorpe United extending his loan spells on three occasions. It wasn't until on 29 October 2011 when he scored his first goal for the club, in a 2–1 win against Tranmere Rovers. Two months later on 26 December 2011, Duffy scored his second goal for the club, in a 3–1 loss against Bury. He made a total of 19 appearances for the Iron before his parent club recalled him on 5 January 2012, due to an injury to Phil Jagielka, Everton's regular centre-back.
On 26 September 2013, Duffy joined Championship club Yeovil Town on an initial month loan. He made his Yeovil Town's debut, starting the whole game, in a 1–1 draw against Bolton Wanderers two days later. Duffy then helped the side two consecutive clean sheets in two matches between 30 November 2013 and 3 December 2013 against Watford and Blackpool. Duffy's loan was eventually extended for a further two months and he made a total of 14 appearances for Yeovil before returning to Everton on 27 December 2013. He rejoined Yeovil on 1 January 2014 when the transfer window re-opened, joining on loan until the end of the season. After keeping two consecutive clean sheets once again, Duffy scored his first goal for the club in a 1–1 draw against Reading on 1 March 2014. Having become a first team regular for Yeovil Town throughout the 2013–14 season, he made 39 appearances and scored once in all competitions.

### Blackburn Rovers

On 1 September 2014, Duffy joined Blackburn Rovers, on a three-year deal for an undisclosed fee. The initial payment was understood to be in the region of £400,000.
Duffy made his Blackburn Rovers debut, coming on as a late substitute, in a 3–2 loss against Derby County on 17 September 2014. Since making his debut for the club, he quickly became a first team regular for the side, playing in the centre–back position, partnering with Grant Hanley. On 4 November 2014, Duffy scored his first goal for Blackburn Rovers, in a 2–2 draw against Millwall. However, he lost his first team place as the 2014–15 season progressed and never played for the side again after suffering a knee injury in training. Duffy acknowledged by saying: "I know by my own standards I haven't been good enough. I've been disappointed with myself and I fully deserved not to be in the team last week. But I'm pleased by the way I've reacted and I'm determined to get back in there." He went on to finish the season by making twenty–two appearances and scoring once in all competitions.
Ahead of the 2015–16 season, Duffy managed to recover from his knee injury and expect to fight his way to the first team for Blackburn Rovers. He made his first appearance of the season, starting the game, in a 2–1 loss against Wolverhampton Wanderers in the opening game of the season. Since returning from injury, Duffy continued to be a first team regular for the side, playing in the centre–back position. On 16 September 2015 he scored his first goal of the season, in a 2–2 draw against Queens Park Rangers. This was followed up by setting up the club's first goal of the game, in a 3–0 win against Charlton Athletic. His early season performances were praised in the local press, while his manager Paul Lambert publicly complimented the partnership of Hanley and Duffy. Duffy lost out to Sam Byram after making it to the final 3-man shortlist for the December 2015 Championship Player of the Month. After the absence of Hanley, Duffy captained Blackburn Rovers for the first time, in a 2–0 loss against Hull City on 12 February 2016. This was followed up by scoring his second goal of the season, in a 3–0 win against Fulham.
On 21 February 2016, he captained the side for the second time this season, as Blackburn Rovers lost 5–1 against West Ham United. A month later on 19 March 2016, Duffy scored his third goal of the season, in a 1–0 win against Brentford. In a follow–up match against Preston North End, he captained the side, only to be sent–off in the 24th minute for handball, as they lost 2–1. After serving a one match suspension, Duffy then scored his fourth goal of the season, in a 1–0 win against Rotherham United on 30 April 2016. Despite missing five matches later in the 2015–16 season, he went on to make forty–two appearances and scoring four times in all competitions.
At the start of the 2016–17 season, Duffy started the first five matches of the season, including scoring two goals in the League Cup against Mansfield Town and Crewe Alexandra. However, during a league match against Cardiff City, Duffy conceded two own goals and was later sent off in the final minutes of the game.

### Brighton & Hove Albion

On 26 August 2016, Duffy signed a four-year deal with fellow Championship side Brighton & Hove Albion for an undisclosed fee. Earlier the same day, it had been reported by The Mirror that the transfer cost the Seagulls a club record fee of £4 million, after turning down an extension to his contract at Blackburn Rovers.

#### 2016–20: Established starter

Duffy made his debut for Brighton & Hove Albion, playing the whole game in a 2–0 loss against Newcastle United on 27 August 2016. He helped the side keep four consecutive clean sheets between 13 September 2016 and 27 September 2016 against Huddersfield Town, Burton Albion, Barnsley and Ipswich Town. His performance earned him a nomination for September's Player of the Month but lost out to Scott Hogan. A month later, Duffy, once again, kept four consecutive clean sheets between 18 October 2016 and 5 November 2016 against Wolverhampton Wanderers, Wigan Athletic, Norwich City and Bristol City. On 13 December 2016 he scored his first goal for the club, in a 3–2 win against Blackburn Rovers. Duffy's second goal then came on 5 February 2017, in a 3–3 draw against Brentford. Duffy was an ever-present in Brighton's backline in his first season at the club, forming a partnership with Lewis Dunk. This lasted until he suffered a metatarsal fracture that kept him out for the rest of the 2016–17 season. Despite this, Duffy's contribution has helped Brighton gain promotion to the Premier League in 2016–17 by making over 30 league appearances for the club. In the summer following Brighton's promotion, Duffy signed a new contract with the club, extending his stay on the south coast to June 2021.
Duffy was named in the starting 11 for Brighton in their first ever Premier League fixture on 12 August 2017 where they lost at home to Manchester City 2–0. He played in Brighton's first ever Premier League victory, a 3–1 home win over West Brom on 9 September. Since the start of the 2017–18 season, Duffy continued to regain his first team place, partnering with Dunk once again. By December, he made 128 clearances - more than any other player, and then 173 a month later. Duffy's only FA Cup appearance in the 2017–18 season came in a 2–0 quarter final defeat away to Manchester United on 17 March 2018. In a 1–1 draw against Huddersfield Town on 7 April 2018, he was at fault for a terrible back pass to allow Steve Mounié to slot in the equaliser. After the match, Manager Chris Hughton said: "It was one of those things. When you get a player who has been as good as he has been this season, he will be the first one – and he has been – to hold his hand up. You just hope that any mistake you make doesn't lead to a goal. Unfortunately for us it did." On 4 May 2018, Duffy helped Brighton keep a clean sheet and beat Manchester United 1–0 at home to secure their Premier League status. Duffy played in all but one league game as the Sussex club finished 15th in the league.
Brighton played against Manchester United in their second match of the 2018–19 season and won 3-2. Duffy scored in that game, helping the Seagulls to a second consecutive win over United at Falmer Stadium on 19 August 2018. He scored again on 17 September 2018, sparking Brighton's come back in their eventual 2–2 away draw at Southampton. Duffy helped the side keep three consecutive clean sheets between 5 October 2018 and 27 October 2018 against West Ham United, Newcastle United and Wolverhampton Wanderers. In a match against Huddersfield Town on 1 December 2018, he scored his third goal of the season in a 1–2 away win. In the next league game against rivals Crystal Palace, Duffy was shown a straight red card for head butting Patrick van Aanholt. Brighton went on to win the match 3–1 at home. Until his sending off versus Palace, Duffy had started in every match for the side since the start of the season.
After serving a three match suspension, Duffy returned to the starting line–up against Arsenal, as they drew 1–1 on 26 December 2018. A week later on 2 January 2019, he scored his fourth goal of the season, in a 2–2 draw against West Ham United. His fifth goal of the season then came on 9 February 2019, in a 3–1 loss against Burnley. Duffy played in 5 FA Cup games, as Brighton made it to the semi-final at Wembley, where they were knocked out by the eventual champions, Manchester City. After returning from suspension, he regained his first team place for the rest of the season. On 27 April 2019, Duffy featured in the 1–1 home draw against Newcastle, helping the Seagulls secure a vital point in Brighton's relegation battle against Cardiff. Brighton's Premier league safety was secured on 4 May as a result of Cardiff losing at home to Brighton's bitter rivals, Crystal Palace. This confirmation came exactly a year after The Seagulls secured their safety in the 2017–18 season. However, after narrowly avoiding relegation, Chris Hughton was dismissed on 13 May, a day after the 2018–19 season ended. At the end of the 2018–19 season, Duffy made forty appearances and scored five times in all competitions. He was named Brighton's player of the year for the 2018–19 season.
Hughton was replaced by Swansea City and former Östersunds boss, Graham Potter on 20 May. Duffy played in Potter's first ever game in charge of a Premier League club, a 3–0 away win over Watford on the opening day of the 2019–20 season. Duffy made his first EFL Cup appearance for the Sussex club on 25 September 2019, captaining the heavily rotated side — with an average age of just over 21 — to a 3–1 home loss to Aston Villa. Duffy netted his first goal of the season in a 2–0 home victory over Norwich on 2 November 2019. Throughout Graham Potter's first season, Duffy's playing time fell due to extra competition in defense in the form of new signing Adam Webster, who consistently kept him out of the starting 11. Despite this, he went on to make twenty–one appearances, scoring once in all competitions.

#### 2020–21: Loan to Celtic

On 2 September 2020, Duffy joined Celtic on a season-long loan. Duffy scored on his Celtic debut in a 5–0 win over Ross County on 12 September. He scored in the next game four days later away at St Mirren, scoring a header from a free kick to make it two goals in as many games. He made his first UEFA Europa League appearance in over 10 years, helping keep in a clean sheet in a 1–0 away victory over Riga of Latvia in the third qualifying round to progress into the play-off round. He started in the 2020 Scottish Cup Final on 20 December, a game that was delayed until the 2020–21 season due to the Coronavirus pandemic. He was replaced at the start of extra time in an eventual penalty shootout win for The Bhoys to claim their 40th title.
Duffy scored his first goal at Celtic Park on 13 December adding Celtic's second in a 2–0 win over Kilmarnock in front of the empty stadium. Duffy's last game for Celtic on 14 February 2021 in a 2–1 away win at St Johnstone with 10 league games remaining. On 7 May, Duffy returned to Brighton with two games of the season remaining after picking up an injury after what he called a "tough year" on and off the pitch. He made 27 appearances overall, scoring three goals in a season where Celtic finished as league runners-up, missing out on 10 titles in a row.

#### 2021–22: Final season

With speculation about Duffy's future with The Seagulls during pre-season ahead of the 2021–22 campaign, Graham Potter told The Argus that he had done "really well" since his return from Celtic. Duffy made an appearance in all three friendlies, wearing the number 24 shirt. On 14 August, he made his first competitive Albion appearance since the 2019–20 season, helping Brighton fight back to take all three points in a 2–1 away win at Burnley in the opening game of the season. Duffy scored on his first Albion appearance at The Amex since his return, opening the scoring in the 2–0 home victory over Watford on 21 August in the second game of the season.

### Fulham

On 5 August 2022, Duffy joined newly promoted Premier League club Fulham on a season-long loan deal from Brighton. He made his debut the following day, replacing Bobby Decordova-Reid after 94 minutes in a 2–2 home draw against Liverpool. On 1 February 2023, Duffy's move to Fulham was made permanent.

### Norwich City

On 9 June 2023, Duffy signed for Championship club Norwich City, as a free transfer on a three-year deal, effective 1 July 2023.

## International career
### Northern Ireland

Duffy was part of the Northern Ireland youth set-up from the U16 level upward. In July 2008, he was called up to the Northern Ireland U20 squad for the Milk Cup. An U17 regular, he was in the squad for their unsuccessful 2009 European Championship qualifying campaign and scored the only goal of the match, a penalty, in the opening game against Liechtenstein.
Aged 17, Duffy was called up to the senior team in June 2009 for a friendly against Italy but was an unused substitute. Despite not playing, he was praised by Manager Nigel Worthington, saying: "I would have liked to have given him a little bit. It's unfortunate because he was first class. I had a word with him and, even though he did not play, he has had a great season." In August 2009, he made his Northern Ireland U21 debut, playing the whole match and scoring in the 2–1 away loss to Portugal.
Duffy played several games in the 2010 UEFA Under-19 Championship qualifiers, scoring twice in a 4–0 victory over Bosnia-Herzegovina, Northern Ireland's first win of the qualifying campaign.

### Republic of Ireland

Duffy opted to play for the Republic of Ireland, for which he was eligible through his Irish nationality. Duffy later reflected on his decision, saying: "It was what I wanted to do. It was difficult for me to leave because of what they've done for me in Northern Ireland since I was young. They brought me through the ranks which gave me the chance to come to Everton. So it was hard to leave all the coaches and all the players, but it was always a case of wanting to come to my own country. I spoke to a couple of people about it because I didn't want to disrespect Northern Ireland, but I just had to do what was best for me and I thought it would be best for me to switch."
Following a discussion with former international Liam Brady, Duffy was called up to the Republic of Ireland training camp in May 2010. Everton formally informed the IFA of Duffy's change in allegiance, and the player was called up for a training camp squad for the Republic of Ireland squad to take place in May 2010. At the camp Duffy suffered a 'freak' injury, during a match between the Republic of Ireland development squad and the Ireland amateur side, when he collided with goalkeeper Adrian Walsh and had to undergo lifesaving surgery at the Mater Hospital after damaging his liver and was discharged six days later after making a full recovery. Although it was expected to take a number of months for him to recuperate and regain his fitness, Duffy returned to action in little over ten weeks after his injury and has appeared for Republic of Ireland under-19 and under-21 squads throughout 2010. He was called up for the U21 friendly versus Portugal in March 2011. Duffy then scored his first Republic of Ireland U21 goal, in a 4–1 win against Liechtenstein U21 on 11 October 2011. Two years later, he was given the armband for the U21 side, leading the side for the rest of 2013. Duffy went on to make twenty appearances and scoring once for the Republic of Ireland U21 side.
Players such as Duffy, James McClean, Daniel Kearns, Darron Gibson and Marc Wilson had represented Northern Ireland at youth level but later opted to play for Republic of Ireland. The IFA disputed the players' right to do so under FIFA rules and felt the current rules were a "clear disadvantage over all other 206 Associations". The Irish Football Association took a case to the Court of Arbitration for Sport with the hope of getting FIFA to 'uphold' the rules. Although Duffy's name is often linked with this dispute and the IFA appeal to the Court of Arbitration for Sport, his situation differs from that of players such as Darron Gibson because of his close family ties to County Donegal. This means he would have been eligible to play for the Republic of Ireland wherever he was born.
On 13 February 2012, less than two years after sustaining a life-threatening injury, Duffy received a call-up to the Republic of Ireland senior squad, replacing the injured Richard Dunne. At the same month, he expressed his desire to earn a place for the national team for the UEFA Euro 2012. Duffy, however, failed to make the final cut, which left him "disappointed". On 1 November 2012, Duffy was named in the provisional 26-man Republic of Ireland squad for the friendly fixture against Greece on 14 November 2012. Duffy received his next call-up on 9 May 2014 when he was included in the 32-man provisional squad ahead of friendlies against Turkey, Italy, Costa Rica and Portugal.
Duffy had his international debut in June 2014 lining up against Costa Rica in a friendly in Philadelphia. Two years later, he made his second appearance for Ireland against Switzerland, winning the Man of the Match award, setting up Ciaran Clark for the only goal of the game. He was called up for Euro 2016, but was an unused sub for the first two matches against Sweden and Belgium. In the final group game of the tournament Duffy came into the team and a heroic performance helped secure an historic victory against Italy to propel the Republic of Ireland into the last sixteen. He was sent off for a professional foul on Antoine Griezmann as the Republic of Ireland were knocked out Euro 2016, losing 2–1 to France.
A year later, on 2 September 2017, Duffy scored his first Republic of Ireland goal, in a 1–1 draw against Georgia. Two months later, Duffy played in both legs of the World Cup Play–Offs for a place in the World Cup against Denmark, which he scored the opening goal in the second leg, as Republic of Ireland lost 5–1 on aggregate and Denmark qualified for the 2018 FIFA World Cup. On 7 June 2019, Duffy scored an 85th minute headed equalizer for the Republic of Ireland against Denmark in a Euro 2020 qualifier, securing a 1–1 draw and preserving Ireland's unbeaten start to the campaign. On 18 November 2019, he captained Republic of Ireland for the first time, as they drew 1–1 against Denmark. He retained the captaincy in Stephen Kenny's first game in charge of Ireland on 3 September 2020, scoring with an injury time header in the 1–1 draw with Bulgaria in the UEFA Nations League.
Duffy made his 50th appearance for the Republic of Ireland on 11 November 2021, helping keep a clean sheet in the goalless 2022 World Cup qualifier tie at home against Portugal. Three days and one cap later, Duffy scored the opening goal, a header from a free kick, in an eventual 3–0 away win over Luxembourg, coming in the dead rubber World Cup qualifier.

## Personal life

Duffy said he is close friends with former teammate, Darron Gibson. Duffy attended a St. Anne's school in Ireland, and supported Celtic growing up. Duffy has two children.
Duffy once ranked Wigan Athletic's supporters as "the worst fans in England" and compared the atmosphere at the DW Stadium to a "library". In December 2017, he was fined £811 after being convicted of speeding by breaking a 30 mph limit in his Mercedes. In May 2020, Duffy's father, Brian, died aged 53. He previously suffered a family bereavement that saw him miss a match during his playing career.
In 2017, Duffy tweeted a tribute to Provisional Irish Republican Army (IRA) leader Martin McGuinness upon his death. He faced online criticism and his club, Brighton, requested he remove the tribute. He had previously been criticised over tweets from his account in support of the IRA, although he claimed not to be responsible.
In 2024, prior to Norwich City's play-off semi-final fixture against Leeds United, Duffy was arrested and subsequently charged with "driving while unfit through drink" after an alleged incident in Hethersett, Norfolk, close to his home. After pleading guilty to the charge he was banned from driving for three years.

## Career statistics
### Club

    As of match played 22 February 2025
Appearances and goals by club, season and competition :
| Club | Season | League | League | League | National cup | National cup | League cup | League cup | Other | Other | Total | Total |
| Club | Season | Division | Apps | Goals | Apps | Goals | Apps | Goals | Apps | Goals | Apps | Goals |
| Everton | 2009–10 | Premier League | 0 | 0 | 0 | 0 | 0 | 0 | 2 | 0 | 2 | 0 |
| Everton | 2010–11 | Premier League | 0 | 0 | 0 | 0 | 0 | 0 | — | — | 0 | 0 |
| Everton | 2011–12 | Premier League | 4 | 0 | 1 | 0 | 0 | 0 | — | — | 5 | 0 |
| Everton | 2012–13 | Premier League | 1 | 0 | 1 | 0 | 1 | 0 | — | — | 3 | 0 |
| Everton | 2013–14 | Premier League | 0 | 0 | 0 | 0 | — | — | — | — | 0 | 0 |
| Everton | 2014–15 | Premier League | 0 | 0 | — | — | — | — | — | — | 0 | 0 |
| Everton | Total | Total | 5 | 0 | 2 | 0 | 1 | 0 | 2 | 0 | 10 | 0 |
| Burnley (loan) | 2010–11 | Championship | 1 | 0 | — | — | — | — | — | — | 1 | 0 |
| Scunthorpe United (loan) | 2011–12 | League One | 18 | 1 | 0 | 0 | 0 | 0 | 1 | 0 | 19 | 1 |
| Yeovil Town (loan) | 2013–14 | Championship | 37 | 1 | 2 | 0 | 0 | 0 | — | — | 39 | 1 |
| Blackburn Rovers | 2014–15 | Championship | 19 | 1 | 3 | 0 | 0 | 0 | — | — | 22 | 1 |
| Blackburn Rovers | 2015–16 | Championship | 41 | 4 | 1 | 0 | 0 | 0 | — | — | 42 | 4 |
| Blackburn Rovers | 2016–17 | Championship | 3 | 0 | — | — | 2 | 2 | — | — | 5 | 2 |
| Blackburn Rovers | Total | Total | 63 | 5 | 4 | 0 | 2 | 2 | — | — | 69 | 7 |
| Brighton & Hove Albion | 2016–17 | Championship | 31 | 2 | 0 | 0 | — | — | — | — | 31 | 2 |
| Brighton & Hove Albion | 2017–18 | Premier League | 37 | 0 | 1 | 0 | 0 | 0 | — | — | 38 | 0 |
| Brighton & Hove Albion | 2018–19 | Premier League | 35 | 5 | 5 | 0 | 0 | 0 | — | — | 40 | 5 |
| Brighton & Hove Albion | 2019–20 | Premier League | 19 | 1 | 1 | 0 | 1 | 0 | — | — | 21 | 1 |
| Brighton & Hove Albion | 2021–22 | Premier League | 18 | 1 | 1 | 0 | 1 | 0 | — | — | 20 | 1 |
| Brighton & Hove Albion | Total | Total | 140 | 9 | 8 | 0 | 2 | 0 | — | — | 150 | 9 |
| Celtic (loan) | 2020–21 | Scottish Premiership | 18 | 3 | 2 | 0 | 1 | 0 | 6 | 0 | 27 | 3 |
| Fulham (loan) | 2022–23 | Premier League | 4 | 0 | 1 | 0 | 1 | 0 | — | — | 6 | 0 |
| Fulham | 2022–23 | Premier League | 1 | 0 | 0 | 0 | 0 | 0 | — | — | 1 | 0 |
| Norwich City | 2023–24 | Championship | 36 | 1 | 0 | 0 | 2 | 0 | 2 | 0 | 40 | 1 |
| Norwich City | 2024–25 | Championship | 34 | 2 | 1 | 0 | 1 | 0 | — | — | 36 | 2 |
| Norwich City | Norwich City total | Norwich City total | 70 | 3 | 1 | 0 | 3 | 0 | 2 | 0 | 76 | 3 |
| Career total | Career total | Career total | 357 | 22 | 20 | 0 | 10 | 2 | 11 | 0 | 398 | 24 |
* ↑ Includes FA Cup and Scottish Cup
* ↑ Includes League/EFL Cup and Scottish League Cup
* 1 2 Appearances in UEFA Europa League
* ↑ Appearance in Football League Trophy
* ↑ Includes appearances in semi-finals and final of 2019–20 Scottish Cup, which were delayed due to COVID-19 pandemic
* ↑ Part of season spent on loan from Brighton
* ↑ Part of season spent on loan from Brighton
* ↑ Appearances in Championship play-offs

### International

    As of match played 4 June 2024
Appearances and goals by national team and year :
| National team | Year | Apps | Goals |
| Republic of Ireland | 2014 | 1 | 0 |
| Republic of Ireland | 2016 | 7 | 0 |
| Republic of Ireland | 2017 | 9 | 2 |
| Republic of Ireland | 2018 | 8 | 0 |
| Republic of Ireland | 2019 | 8 | 1 |
| Republic of Ireland | 2020 | 8 | 1 |
| Republic of Ireland | 2021 | 10 | 3 |
| Republic of Ireland | 2022 | 4 | 0 |
| Republic of Ireland | 2023 | 5 | 0 |
| Republic of Ireland | 2024 | 1 | 0 |
| Total | Total | 61 | 7 |
    As of match played on 4 June 2024. Republic of Ireland score listed first, score column indicates score after each Duffy goal.
List of international goals scored by Shane Duffy :
| No. | Date | Venue | Cap | Opponent | Score | Result | Competition |
| 1 | 2 September 2017 | Boris Paichadze Dinamo Arena, Tbilisi, Georgia | 12 | Georgia | 1–0 | 1–1 | 2018 FIFA World Cup qualification |
| 2 | 14 November 2017 | Aviva Stadium, Dublin, Ireland | 17 | Denmark | 1–0 | 1–5 | 2018 FIFA World Cup qualification play-offs |
| 3 | 7 June 2019 | Parken Stadium, Copenhagen, Denmark | 28 | Denmark | 1–1 | 1–1 | UEFA Euro 2020 qualification |
| 4 | 3 September 2020 | Vasil Levski National Stadium, Sofia, Bulgaria | 34 | Bulgaria | 1–1 | 1–1 | 2020–21 UEFA Nations League B |
| 5 | 4 September 2021 | Aviva Stadium, Dublin, Ireland | 46 | Azerbaijan | 1–1 | 1–1 | 2022 FIFA World Cup qualification |
| 6 | 12 October 2021 | Aviva Stadium, Dublin, Ireland | 49 | Qatar | 4–0 | 4–0 | Friendly |
| 7 | 14 November 2021 | Stade de Luxembourg, Luxembourg City, Luxembourg | 51 | Luxembourg | 1–0 | 3–0 | 2022 FIFA World Cup qualification |

## Honours

Brighton & Hove Albion
* EFL Championship runner-up: 2016–17
Celtic
* Scottish Cup: 2019–20
Individual
* FAI Senior International Player of the Year: 2017, 2018
* Brighton & Hove Albion Player of the Season: 2018–19