동경 127°19′, 북위 34°19′에 위치하며, 득량만(得糧灣)의 내측에 있다. 남양면 남양리에서 서쪽으로 1.3㎞ 지점에 있다. 면적은 0.46㎢이고, 해안선 길이는 3.3㎞이다. 섬의 동쪽과 남양면 해안을 연결하는 시멘트 도로가 있는데, 하루 두 차례 썰물 때에만 통행이 가능하다.
섬에 소머리처럼 생긴 큰 돌이 있어 ‘소섬’ 또는 ‘쇠이’라고 부르다가 한자화되면서 우도(牛島)가 되었다고 한다. 한편 섬에 대나무가 많이 자생하여 임진왜란 때 화살을 만들어 나라에 바치면서 우죽도(牛竹島)라고도 불렸는데, 뒤에 죽(竹)자를 없애고 다시 우도라 하여 현재에 이르렀다고도 전해진다.
이와 다르게, 현재의 고흥군 우도는 『동여도(東輿圖)』의 우기도(혹은 우죽도)가 아니라 그 밑에 있는 ‘고도’라는 주장도 있다.
지질은 대부분 화강암류이고, 경사가 비교적 완만한 구릉성산지(최고 높이 110m)로 이루어져 있다. 섬은 둥근 형상을 하고 있으며, 해안선은 단조롭다. 해안은 사질해안(沙質海岸)이 많고 주위에 간석지가 넓게 발달해 있다. 1월 평균기온은 1.4℃, 8월 평균기온은 24.8℃, 연강수량은 1,286㎜이다.
2009년 기준으로 인구는 111명(남 47명, 여 64명)이 거주하고 있으며, 세대수는 51세대이다. 취락은 우도봉(牛島峰) 동남쪽 산기슭에 분포한다.
토지이용 현황은 논 0.02㎢, 밭 0.22㎢, 임야 0.17㎢이다. 주민의 대부분이 농업과 어업을 겸하고 있다. 농산물로는 보리·쌀·콩·마늘·무·배추·참깨 등이 생산된다. 근해에서 문어·오징어·전복·바지락 등이 어획되며 바지락·굴·홍합·피조개 등의 양식도 활발하다. 교육기관으로는 남양초등학교 우도분교장이 있다.