동경 124°55′, 북위 37°52′에 위치한다. 옹진반도로부터 서쪽으로 약 40㎞, 대청도에서 남동쪽으로 4.5㎞ 지점에 있다. 면적은 2.94㎢이고, 해안선 길이는 14.2㎞이다.
청도(靑島)는 ‘검푸른 섬’의 의미를 가지는데, 멀리서 바라보면 울창한 것이 마치 눈썹을 그리는 검푸른 먹[黛]과 같이 생겼기 때문에 붙여진 이름이라고 전해진다. 위쪽의 큰 섬은 대청도라 하고, 아래쪽의 작은 이 섬은 소청도라 부른다.
동서로 길게 자리잡고 있으며 남쪽에 최고 높이 174m의 산이 있다. 암석해안을 이루어 대리석의 기암총석(奇巖叢石)이 해안을 돌아가며 병풍처럼 둘러싸고 있다. 남쪽 해안의 중부에 완경사지와 간석지가 펼쳐져 있으며, 나머지 지역은 대부분 급경사를 이룬다. 1월 평균기온은 -2.1℃, 8월 평균기온은 25.2℃, 연강수량은 1,234㎜이다.
2010년 기준으로 인구는 280명(남 163명, 여 117명)이 거주하고 있으며, 세대수는 162세대이다. 취락은 남쪽 해안의 예동과 노화동에 집중해 있다. 토지이용 현황은 논은 없고 밭 0.62㎢, 임야 2.15㎢이다. 주민들은 대부분 어업에 종사하고 있다. 근해는 황해의 주요 어장으로 꽃게·낙지·조기·해삼·전복·홍어·까나리 등이 많이 잡힌다. 또 굴 채취와 전복 양식이 활발하다.
남동쪽에 위치한 분바위[粉巖]는 원나라 순제(順帝)가 이 섬에 유배되었을 때 주악(酒樂)을 즐겼던 곳으로 유명하다. 교통은 인천에서 소청도를 경유하여 대청도와 백령도로 가는 정기여객선이 운항된다. 교육기관으로는 대청초등학교 소청분교장이 있다. 섬의 남쪽에 잇는 스트로마톨라이트 및 분바위는 2009년 11월 천연기념물로 지정되었다.