동경 126°27′, 북위 36°23′에 위치한다. 원산도(元山島)에서 북동쪽으로 약 500m, 안면도(安眠島) 고남리 영목포구에서 남동쪽으로 2㎞ 지점에 있다. 면적은 1.10㎢이고, 해안선 길이는 5.4㎞이다.
조선시대에는 소자미도(小子味島) 또는 효자미도(孝子味島) 등으로 불렸다. 예로부터 효자가 많다 하여 효자도로 부르게 되었다고 한다.
섬 전체가 낮은 구릉성 지형이며, 최고봉은 북쪽에 있는 해발 47m 지점이다.동쪽에는 사빈해안이 발달해 있다. 1월 평균기온은 0.1℃, 8월 평균기온은 25.2℃, 연강수량은 1,081㎜이다.
2011년 기준으로 인구는 142명(남 73명, 여 69명)이 거주하고 있으며, 세대수는 82세대이다. 취락은 섬의 서쪽과 동쪽 해안에 집중해 있다. 토지이용 현황은 논 0.10㎢, 밭 0.21㎢, 임야 0.60㎢이다. 농경지가 부족하여 주민들은 대부분 어업에 종사한다.
농산물로는 쌀·마늘·무·고추·콩·깨 등이 생산된다. 근해에서 장어·밴댕이·볼락·멸치·게 등이 어획되며, 연안에서 조개·백합·보리새우·김 양식이 활발하다. 교통은 대천항에서 정기여객선이 운항된다. 광명초등학교 효자분교장은 폐교되었다.