The size of mdf file is much bigger than its gdb file

Actually, the size of db is not accepted and I want return it to its original size, on the other hand I just find one way to reduce the size by using (shrink) and you said that shrink may damage my db so how I can solve this contradiction?

Is the increasing in mdf file size normal in sql? Is this always due to indexes ?