En vieil anglais, le mot gan signifiait « avancer, marcher ; partir, s'en aller ; se produire, avoir lieu ; conquérir ; observer, pratiquer, exercer ». Il provient du germanique occidental *gaian, qui a donné en vieil saxon, vieux frison gan, moyen néerlandais gaen, néerlandais gaan, vieux haut allemand gan, et allemand moderne gehen. Ses racines plongent dans le proto-indo-européen avec *ghē-, signifiant « libérer, laisser aller ; être libéré », que l'on retrouve en sanskrit avec jihite (« s'en va ») et en grec ancien avec kikhano (« j'atteins, je rencontre »). Cependant, il n'existe pas de consensus sur une liste de cognats.
Ce verbe a toujours été défectif dans son histoire, et son passé en vieil anglais était eode, un terme dont l'origine reste floue mais qui semblait autrefois être un verbe différent, peut-être lié au gothique iddja. Au cours des années 1400, il a été remplacé par went, le passé de wenden, qui signifie « diriger son chemin » (voir wend). Toutefois, dans le nord de l'Angleterre et en Écosse, eode a souvent été remplacé par gaed, une construction basée sur go. Dans l'anglais moderne, seuls be et go forment leur passé à partir de verbes totalement différents.
Dans ses diverses formes et combinaisons, le mot occupe 45 colonnes de texte serré dans l'OED. Le sens « cesser d'exister » apparaît vers 1200, tandis que celui de « se manifester » (en référence à l'habillement, l'apparence, etc.) date de la fin du 14e siècle. L'idée de « être vendu » émerge au début du 15e siècle. Le sens « être connu » (avec by) se développe dans les années 1590, suivi dans les années 1580 de « passer à un autre état ou condition ». Vers 1600, il prend aussi le sens de « parier », ce qui a conduit à l'expression « offrir une tournée » et à l'idée de go (someone) better dans les paris (1864). Le sens « dire » apparaît dans l'argot des adolescents des années 1960. L'utilisation familière pour « uriner ou déféquer » est attestée dès 1926, de manière euphémistique (à comparer avec le vieil anglais gong, qui signifie « cabinet » ou littéralement « un aller »).
La locution go back on, signifiant « faire preuve d'infidélité », date de 1859, tandis que go under, utilisé au sens figuré de « échouer », apparaît en 1849. L'expression go places, signifiant « connaître le succès », est attestée dès 1934.