1 Ne sont comptabilisés que les matchs en compétitions officielles, quel que soit le statut (amateur et professionnel). Les matchs amicaux ne sont pas comptabilisés. 2 Matchs officiels.
Il fait ses débuts avec les Pumas UNAM le en tant que remplaçant lors d'un match contre San Luis FC. Herrera connaît une excellente période personnelle en devenant le meilleur buteur du club au cours de sa première saison au sein du club. La saison 2015-2016 se révèle la plus prolifique, où il marque 15 buts en 37 matches et terminant deuxième du Tournoi d'ouverture 2015 avec les Pumas UNAM. Afin d'acquérir du temps de jeu, Herrera est prêté à Santos Laguna pour la saison saison 2013-2014, où il marque 5 buts en 21 matchs. Il passe le début de l'année 2017 en prêt à Veracruz, marquant 3 buts en 13 matchs.
En , le club écossais des Glasgow Rangers, dirigé par l'ancien entraîneur de Santos Laguna, Pedro Caixinha, transfère définitivement Herrera. Une offre d'achat de £1,5 million est acceptée par le Pumas UNAM pour Herrera. Ce dernier se rend à Glasgow au début du mois de juin afin de signer son contrat. Après avoir accepté son contrat, Herrera doit attendre un permis de travail et un visa obligatoire pour les joueurs non européens. Il rejoint finalement les Glasgow Rangers le , le même jour que son coéquipier mexicain Carlos Peña.
Il fait ses débuts en compétition le lors de la défaite 0:2 des Glasgow Rangers en qualification pour la Ligue Europa face aux Luxembourgeois du Progrès Niedercorn. Lors de ce match, Herrera remplace Jordan Rossiter à la 77ème minute de jeu.