Indian Beach is located in the middle of Bogue Banks, the next to last island in a chain of barrier islands known as the Southern OuterBanks,
aka
Crystal Coast. The town is divided in the middle by the unincorporated community of Salter Path.