The difference between two phrases [duplicate]
Welcome to EL&U. The difference is this: "Learn by heart" refers to the level of learning while "Learn by rote" refers to the method of learning. For instance when it comes to he arithmetical 'times tables' (2 times 2 is 4, 3 times 2 is 6 and so on) most children learn them by heart so that they can repeat them and, perhaps more importantly, can recall individual items randomly and in reverse so that they can do simple division in their heads (for instance 'how many times does 7 go into 42?' answer '6’).
The method by which most children learn their tables is by frequent repitition of the tables. This is 'learning by rote'.