동경 127°15′, 북위 34°13′에 위치한다. 여수에서 서남쪽으로 67㎞, 거문도에서 북쪽으로 25㎞ 지점에 있다. 면적은 7.72㎢이고, 해안선 길이는 22.6㎞이다.
풀이 많은 섬이라 하여 초도라 부르게 되었다고 한다.
지질은 중성화산암류와 소량의 불국사화강암으로 형성되어 있다. 중앙에 위치한 상산봉(上山峰, 339m)은 기복이 비교적 큰 산지이지만 경사는 완만하다. 해안은 돌출한 갑(岬)과 깊숙한 만(灣)이 교대하며 이어지고 있어 해안선이 복잡하다. 동쪽과 남쪽의 일부 해안에는 높은 해식애가 발달하였다. 1월 평균기온은 2.1℃, 8월 평균기온은 24.7℃, 연강수량은 1,247㎜이다.
2009년 기준으로 인구는 478명(남 249명, 여 229명)이 거주하고 있으며, 세대수는 204세대이다. 취락은 대동마을을 중심으로 해안가의 만입부에 예미·의성·경촌·진막·정강마을 등이 형성되어 있다. 토지이용 현황은 논 0.16㎢, 밭 1.56㎢, 임야 5.19㎢이다.
주민들은 어업보다 농업에 주로 종사한다. 벼농사는 미약하나 마늘·감자·보리·콩 등의 산출이 많아 식량의 자급률이 높으며, 돼지·닭·염소·소가 많이 사육된다. 근해에는 문어·삼치·방어·감성돔 등이 어획되며 톳과 미역 양식도 활발하다.
교통은 여수와 고흥 녹동에서 정기여객선이 운항된다. 교육기관으로는 초도초등학교, 거문중학교 초도분교장이 있다.