Wikipedia wrote:
Initially, the S-shield had one meaning: S for Superman. One of the first alternative meanings was presented in Superman: The Movie, in which it was not an S, but rather the S-shaped Coat of arms of the House of El. After the Superman reboot story The Man of Steel, the symbol's story was that it was designed by Jonathan Kent and was derived from an ancient Native American symbol. The symbol was featured on a medicine blanket given to an ancestor of the Kent family by a Native American tribe after he helped to cure them of a plague and was supposed to represent a snake, an animal held to possess healing powers by the tribe (implying that, by wearing this symbol, Superman was a metaphorical healer). In 2004, Mark Waid's Superman: Birthright series says the S-Shield is the Kryptonian symbol for "hope" and Superman believes it may have begun as a coat of arms for the House of El. Later, writer Geoff Johns confirmed it was indeed a coat of arms, as well as a symbol for hope. In the 2013 film Man of Steel, it is also described as the Kryptonian symbol for "hope".