Se admite în general că derivă din bulgară гранка (granka, „ramură”) (Weigand, Jb., XV, 168; Pascu, II, 188; Candrea; Scriban; DAR); însă, dimpotrivă, cuvântul bulgar poate proveni din română, atâta vreme cât nu s-a dovedit că este vorba de un cuvânt autentic slav. În bulgară este cuvânt izolat, fără familie, în timp ce în română a dat naștere la numeroase derivații.
Pe de altă parte, nu pare posibil să despărțim cuvântul român de crâng (DAR citează un exemplu, destul de rar, în care se poate chiar identifica creangă cu crug „firmament”); pare prin urmare mai prudent să se plece, ca în cazul acela, de la slavă krǫgŭ („rotund”). Este posibil să existe o contaminare cu cracă („ramură”).