동경 126°23′, 북위 36°55′에 위치하며 서산시에서 북서쪽으로 16㎞, 북쪽의 육지에서는 700m 떨어져 있다. 가로림만(加露林灣) 내에 있는 여러 도서 중 가장 큰 섬이다. 간조시에는 도보 통행이 가능하나 만조시에는 선박을 이용해야 한다. 면적은 1.68㎢이고, 해안선길이는 5.0㎞이다.
섬의 서부와 동중부에 4개의 구릉이 솟아 있으며, 구릉의 중간에는 완경사지와 평지가 분포한다. 섬의 중앙부를 동북방향에서 남서방형으로 가로지르는 평지가 분포하며, 섬의 동쪽 해안에도 평지가 형성되어 있다. 해안은 대부분 간석지로 이루어져 있다. 최고지점이 86m이다. 1월 평균기온 -1.5℃, 8월 평균기온 24.6℃이고, 연강수량은 1,074㎜이다.
200여 년 전 대산면이 일도면(一導面)과 이도면(二導面)으로 되어 있을 때 이도면에 속하여 있었으며, 그 뒤 1914년 행정구역 개편 때에 웅도리로 되어 서산군 대산면 소속이 되었다. 1991년 12월에 서산군 대산읍 소속이 되었고, 1995년에 서산군과 서산시가 통합 서산시로 됨에 따라 서산시 대산읍 소속이 되었다.