동경 126°16′, 북위 34°59′에 위치한다. 목포에서 북서쪽으로 51㎞, 지도(智島)에서 남쪽으로 1.5㎞ 지점에 있다. 면적은 5.23㎢이고, 해안선 길이는 6.6㎞이다. 남쪽에 있던 일정도(一靜島)와 청도(淸島)가 방조제로 연결되면서 현재는 선도의 일부가 되었다.
섬의 형태가 매미같이 생겨 선도라 부르게 되었다고 한다.
지질은 산성화산암류와 약간의 반암류(斑岩類)로 이루어져 있다. 경사가 완만한 구릉성 산지(최고높이 139m)가 있을 뿐 대부분이 저평하다. 해안은 사빈해안이 많으나 돌출한 갑(岬)은 암석해안으로 이루어져 있다. 섬 주위에는 간석지가 넓게 발달되어 만입부(灣入部)를 방조제로 막아 농경지로 이용하고 있다. 1월 평균기온은 2.0℃, 8월 평균기온은 25.5℃, 연강수량은 1,138㎜이다.
2009년 기준으로 인구는 289명(남 154명, 여 135명)이고, 세대수는 172세대이다. 취락은 매계·남악·북촌마을 등이 있으며, 선착장 주변에 읍사무소 출장소와 보건소 등이 위치한다.
토지이용 현황은 논 1.10㎢, 밭 1.35㎢, 임야 2.58㎢이다. 주요 농산물은 쌀과 보리이며 감자·고구마·마늘·콩·참깨 등이 약간 생산된다. 주요 어획물은 낙지이고 김양식을 하지만 어로활동은 활발하지 않다. 교통은 압해읍 송공선착장과 무안 운남면 신월선착장에서 정기여객선이 운항된다. 교육기관으로 지도초등학교 선치분교장이 있다.