You counter a GB when the read shield pops up on the body of YOUR character. You don't react on the sign on the other guy it just implicates that a GB attack is thrown at you.
This is your safest rule. For normal GB as pimma stated you can just spam the button but
for quick throws like cent's mid chain GB after a light or
shinobi's ranged gb you have to be precise with the timing and
CANNOT spam otherwise it will be recognized as a false input and you get in fact guardbroken.
Heavies are vulnerable on startup to guardbreaks. That is why heavy feints into gb are very effective when the opponent tends to parry your attacks. The only exceptions who have a very very small vulnerability frame on heavy startup are Centurion, Gladiator and Aramusha (700 ms heavies). So you basically should not try the feint into GB on those as they punish you with a heavy to your face.
GB is a 400 ms move. Means from start until it connects it's 400ms. Here is a list from reddit to show you why some heavies are easily guardbroken and others are not:
Heavy Type
- 0-700ms -> 0-100ms Guard Break vulnerability window
- 800-1000ms -> 0-400ms Guard Break vulnerability window
- 1100-1300ms -> 0-600ms Guard Break vulnerability window
- 1400-…ms -> 0-800ms Guard Break vulnerability window
Gladiators zone attack has a 0 ms of gb vulnerability window, meaning you can react to gbs with it.
Light attacks beat GB. You can almost react to attempts with them. There is a 100 ms vulnerability on startup but it is really very very slim. So basically if you get caught with a gb when you wanted to throw a light you probably were just a notch too late. Bashes of course also beat GB attempts but GB can beat those if initiated early enough when they are about to dodge to activate the bash. Works well on warden for example. Conq's activates too fast.
GB that interrupt GB is a bit of a strange thing. It might be that the other guy was just a little faster with the input and due to latency you get this result. Could be also that in general the later thrown GB just overrules the other.