면적 3.03㎢, 해안선길이 14.4㎞이다. 1999년 12월 말 현재 98세대에 213명의 주민이 거주하고 있다. 인천에서 남서쪽으로 48km, 덕적도에서 남동쪽으로 600m 해상에 위치한다. 지명의 어원에 대해서는 확실하게 알려진 것이 없다. 삼국시대에는 사치도(史治島)라고 하였고, 이후 사야곶도(沙也串島)·조야도(鳥也島)·신야곶도(新也串島)·사야도(史也島)·대야곶도(大也串島)·소도(蘇島) 등으로 바뀌었다. 660년(신라 태종무열왕 7) 당(唐)나라 소정방(蘇定方)이 백제를 정벌하기 위해 함대를 이끌고 이 섬에 정박한 일이 있어 소야도가 되었다는 설도 있다.
신석기시대 중기부터 사람들이 거주하였고, 삼국시대에는 백제에 속하였다가 고구려와 신라가 한강 유역을 번갈아 점령함에 따라 소속이 몇 차례 바뀌었다. 1018년(고려 현종 9) 수주(수원)에 속하였다가 이후 인주(인천)와 남양부에 소속되었다. 조선시대 중기 이후에는 덕적진에 속하였으나, 1894년 갑오개혁으로 덕적면 지역이 진리면·북리면·서면·소야면의 4개 면으로 분리되었으며, 1909년 행정구역 개편에 따라 단일화된 덕적면에 편입되었다.
전체적으로 구릉의 기복이 심하고, 남동부와 남서부 해안의 일부를 제외하고는 넓은 간석지로 둘러싸여 있다. 북동부 해안의 간석지 끝에는 암초열(岩礁列)이 형성되어 자연적인 방조제 구실을 하며, 전체적으로 소나무가 군락을 이루고 있다. 섬 주위에 천연 백사장이 펼쳐져 있어 바다낚시터와 피서지로도 이용되며, 뗏부루해수욕장과 전설이 깃들여 있는 장군바위가 유명하다. 연안부두에서 여객선으로 덕적도까지 가서 소야도행 배로 갈아타야 한다.