What is the difference between gift and present?
One difference is that we use birthday gift or birthday present but we only use free gift and not free present.
In many contexts, there is not much difference. I'd say "present" is mostly used in a practical context, when you hand someone a present on his birthday; "gift" is rather used in an abstract or formal context, as in the gift of telepathy [by supernatural powers], or a gift of land to the church. But this distinction is not at all strict; in many practical situations, they are used interchangeably. I think "present" is the more limited word. When it is used in a formal context, it is often with mild irony: "the Duchy of Burgundy was a handsome present for Maximilian to receive from a potential bride, so the Habsburgs did not need much time to decide on the target of their bribes".
A radio show titled "Says You!" had a piece on "what's the difference?" The answer to gift vs present was that one gives a present in person, but sends a gift. The show itself seems well researched, with the occasional listener letter sent in and read as a correction.
I once heard that a present was something the giver chose because it was something he/she wanted the person they were presenting it to to have; while a gift was something that was given because it was something that the giftee has expressed a desire to have.
They are both free, but present is more official than gift.