Zarya doesn’t have hard counters, but only soft ones - apart from a few exceptions. Zenyatta’s Transcendence nullifies Graviton Surge and Reaper melts her barrier.
Bastion, Pharah, Reaper, Zenyatta
I consider Zarya a great tank to main because of the versatility, damage, and extra protection she brings to the team.
Generally, the supports are happy when there is a Zarya in their team because they can count on her barrier when the flankers try to kill them.
Heroes countered by Zarya
Zarya is a solid pick versus Roadhog because she counters even the best Chain Hook by applying a barrier at the right time, saving herself and her teammates from several deaths. Roadhog is also a huge hero with lots of HP, so he is a perfect target to charge your ultimate faster.
Torbjorn and Junkrat are a source of unlimited energy due to the constant damage of the turret and the splash damage of the Frag Launcher. I warmly recommend swapping Junkrat because a high-energy Zarya is a real pain to deal with as she can easily destroy even your best tank.
Mei’s freezing skills have no effect on Zarya as her barriers can free herself and a teammate from Blizzard and the primary fire of Endothermic Blaster. Note that a competent Mei is still very painful to face, and in the end this matchup is determined by the skills of the players.
If you are playing D.Va, just ignore Zarya
There are many D.Va players out there as she has been a meta hero for a very long time, so I decided to talk more about this matchup.
Zarya is a great pick against D.Va mainly because Defense Matrix can’t block the beam of Particle Cannon, so you are immune to her core defensive tool.
A high-energy Zarya can literally melt D.Va in seconds, and Particle Barrier blocks easily a volley of Micro Missiles, boosting her damage even more. Similarly, Projected Barrier is used to protect a teammate from a long distance, nullifying D.Va’s offensive actions.
D.Va is a sort of big energy battery for Zarya, so you should never try to 1vs1 her. D.Va can exploit her mobility to harass and then fly outside Zarya‘s attack range, but why should you waste time against her? You are a lot more helpful elsewhere during a flank or team fight, and dedicating too many resources to Zarya will just charge her energy and ultimate faster.
D.Va has one positive perk against Zarya: Defense Matrix can absorb Graviton Surge. This is a game-changing move, but it happens rarely unless you are fighting against a newbie.
You can somehow predict when Zarya is going to drop the Graviton by paying attention to her movements and the placement of her team. If Zarya is at the very front line leading the charge, they probably have something in mind.
Heroes who counter Zarya
Many players believe that Sombra is a great pick versus Zarya because Hack blocks her bubbles, but honestly she is one of the worst tanks you can Hack. In a 1vs1 situation, she will just fight back and destroy you with her beam.
Pharah must exploit her long-range attacks and fight Zarya from outside the range of her beam. If she is able to kill you, that’s just your own fault.
Most likely, Zarya will ignore you completely because she doesn’t have the right skillset to deal with Pharah; that’s the job of hitscan heroes such as Soldier: 76 and Widowmaker. Focus your attention on support and DPS heroes, and attack Zarya only when her barrier is on cooldown, otherwise you will charge her.
Reaper is simply one of the best counters against tanks and armored heroes because he can damage them heavily while also healing himself thanks to the passive lifestealing. Usually, the tanks have a large silhouette, so your Hellfire Shotguns will hit them consistently even from a not optimal distance.
Bastion is indicated among the counters due to his massive damage output. Zarya has no chances to survive while you are in Sentry form, but be aware that she could fight back and kill you if Particle Barrier is available, she has enough energy stored, and you are in her range. Do not engage her at the wrong time and from a poor placement.
Of course, Zenyatta can’t defeat Zarya in a 1vs1 situation. The main reason he is listed among the counters is Transcendence, which completely nullifies even the best Graviton Surge.
You can activate your ultimate even when caught by the Graviton because it doesn’t have a disabling effect, and literally save the lives of your entire team thanks to the massive AoE heal.
The damage buff provided by Orb of Discord is excellent to help your DPS players when her barrier is on cooldown. You can also bait the barrier of a less-experienced Zarya by simply using your ability.
Countering Zarya as a team
I know that communication is a rare skill in pub games and particularly in solo queue, but you can increase the effectiveness of the entire team by calling out a few important circumstances:
Alert when the barrier is on cooldown. Many teammates might not attack or use certain abilities because they are waiting to bait her bubble first.
Focus her when on high-energy. Zarya’s damage output is absurd if she is able to charge her energy, so she becomes a priority target your team must deal with as soon as possible.
Warn if she is going to Graviton. If you noticed that Zarya’s ultimate is ready, and she is going to use it, try alerting the team in time so they will spread out and avoid a potential catastrophe.
Ask your teammates to not feed her. This is a very delicate topic because many players do no accept any suggestion regarding their gameplay, but if you notice that someone is blindly giving her free charge (such as a Junkrat constantly spamming grenades against her barrier) try to explain - with the maximum respect - how to behave against her.
Burst damage. Zarya is not the toughest tank in the game: she is weak when the barrier is on cooldown, especially if separated from the rest of the team. Coordinate your burst damage at the right time to get rid of her quickly.
All the images and hero icons: Blizzard