Traditionnellement, le shchi est apparu dans la Rus de Kievan vers le 9e siècle, peu après l’introduction du chou en provenance de Byzance. La recette, cependant, différait sur de nombreux aspects et n’a pas été popularisée avant la fin du 16ème siècle dans le Tsardom russe. Le « chtchi » original désignait un mélange de légumes relativement facile à préparer (potage) que les paysans faisaient bouillir dans une marmite pour « se gaver » – les preuves étymologiques les plus populaires suggèrent que le mot dérive du proto-slave съти, qui signifie « gavé » (c’est-à-dire « plein de nourriture »).
Au 10e siècle, le shchi est devenu un aliment de base des Slaves de l’Est, et un dicton populaire est né de ce fait : « Щи да каша – пища наша. » (Shchi da kasha – pishcha nasha « Le shchi et le kasha sont notre nourriture »). La viande (bœuf, porc, agneau ou volaille), les champignons, la farine et les épices sont également devenus des ingrédients. Le chou et la viande étaient cuits séparément et la smetana était ajoutée comme garniture avant le service. Le shchi est traditionnellement consommé avec du pain de seigle.
Au fil du temps, alors que la Horde d’or divisait les Slaves orientaux en régions « est » et « ouest », et que le Grand-Duché de Moscou a été formé, la farine est devenue rare et a été exclue de la recette. Le mélange d’épices était enrichi de poivre noir et de laurier. La viande était parfois remplacée par du poisson, tandis que la carotte et le persil pouvaient être ajoutés aux légumes. Le rapport eau/chou variait et alors que le shchi des débuts était souvent si visqueux qu’une cuillère pouvait s’y tenir, une préparation plus diluée a été adoptée par la suite.
Aujourd’hui, plusieurs variantes existent : en Russie, le shchi est plus populairement consommé avec du bœuf, tandis que le porc est une viande plus courante pour le shchi cuisiné en Ukraine.