동경 126°20′, 북위 35°35′에 위치하며, 변산반도에서 서쪽으로 14.6㎞ 지점에 있다. 위도면의 주도에 해당한다. 북쪽에 식도가 있으며, 정금도와는 방조제로 연결된다. 그 밖에 큰딴치도 · 딴달래섬 · 거륜도 등 부속 섬들이 있다. 면적은 11.72㎢이고, 해안선 길이는 66.0㎞이다.
섬의 형태가 고슴도치와 비슷하다고 하여 위도라 불리게 되었다고 한다.
지질은 중생대 백악기말에 분출한 화산암이 기반암을 이루고 있다. 섬은 동북에서 남서 방향으로 뻗어 있다. 동남쪽 해안은 거의 직선을 이루나 서북쪽 해안은 돌출부와 소만입이 발달하여 해안선이 복잡하다. 망월봉(望月峰, 255m)을 비롯하여 곳곳에 200m 전후의 구릉성산지가 발달해 있다. 연안에는 간석지가 분포한다. 겨울에 눈이 많이 내린다. 1월 평균기온은 -0.2℃, 8월 평균기온은 25.5℃, 연강수량은 1,136㎜이다.
조선시대에는 부안현 용연면(龍淵面)에 속해 있었다. 1896년(건양 1)에 전라남도 지도군(智島郡) 위도면이 되었다가 1914년에 영광군으로 편입되었다. 1963년에 전라북도(현, 전북특별자치도) 부안군 위도면으로 개편되었다.
2009년 기준으로 인구는 1,068명(남 548명, 여 520명)이 거주하고 있으며, 세대수는 582세대이다. 취락은 면사무소가 있는 진리(鎭里)에 집중해 있는데, 조선시대에는 수군첨절제사의 진영이 있었다. 토지이용 현황은 논 0.18㎢, 밭 1.07㎢이고, 임야는 9.81㎢이다.
주민들은 농업과 어업을 겸하고 있다. 농산물로는 보리 · 마늘 · 콩 · 고추 · 고구마 · 깨 등이 생산된다. 근해에서 멸치 · 갈치 · 조기 · 장어 · 농어 등이 어획되며, 김과 우렁쉥이 양식이 활발하다. 교통은 부안 격포항에서 정기여객선이 운항된다. 교육기관으로는 위도초등학교와 위도중 · 고등학교가 있다.