동경 125°07′, 북위 34°04′에 위치한다. 목포에서 남서쪽으로 145㎞, 대흑산도에서 남서쪽으로 70㎞ 지점에 있다. 우리나라 최서남단에 있는 섬이다. 면적은 9.09㎢이고, 해안선 길이는 22㎞이다.
조선시대에는 가가도(佳嘉島, 可佳島, 家假島)로 불리다가 1896년부터는 사람이 살 수 있는 곳이라 하여 가거도(可居島)라 부르게 되었다. 일제강점기 때 소흑산도로 지명이 바뀌었다가, 다시 가거도로 불리고 있다.
본래 지도군 흑산면에 속하였으나 1914년에 행정구역 개편으로 대리·대풍리·항리를 합하여 무안군 흑산면 가거도리가 되었다. 1969년에 신안군이 무안군에서 분군함에 따라 신안군 흑산면으로 개편되었다.
지질은 주로 규암(硅岩)과 사암(砂岩)으로 이루어져 있다. 북서에서 남동 방향을 장축(長軸)으로 한 긴 모양의 섬이다. 북쪽에 위치한 독실산(犢實山, 639m)을 비롯하여 대부분 기복이 큰 산지로 이루어져 있다. 독실산은 신안군에서 가장 높은 산이다.
해안선은 비교적 단조롭다. 남쪽의 사빈해안을 제외하면 대부분 암석해안이며, 높은 해식애(海蝕崖)가 발달하여 장관을 이룬다. 가거도리 앞 해빈은 규사(硅砂)가 풍부한 백사장을 이루고 있어 유리원료로 채취되고 있다. 섬 전체가 거의 산림지대를 형성하여 경작지는 적다. 1월 평균기온은 2.0℃, 8월 평균기온은 25.5℃, 연강수량은 1,112㎜이다.
2009년 기준으로 인구는 494명(남 280명, 여 214명)이고, 세대수는 290세대이다. 취락은 섬 남쪽의 선착장에 집중해 있으며, 북쪽의 동서 해안에도 취락이 일부 분포한다. 토지이용 현황은 논은 없으며 밭 0.13㎢, 임야 8.75㎢이다.
주민의 대부분이 어업에 종사하며, 소량의 채소류를 재배한다. 인근 해역은 난류인 제주해류가 통과하고 있어 각종 어족이 풍부하여 황금어장을 이루고 있다. 주요 어획물은 멸치·전복·농어·장어 등이다.
선사시대의 유물인 돌도끼·돌바늘·패총 등이 출토되었으며, 섬의 북쪽에는 소흑산도 등대가 있다. 교통은 목포에서 정기여객선이 운항된다. 교육기관으로는 가거도초등학교와 신안흑산중학교 가거도분교장이 있다.