용암포로부터 남서쪽으로 약 17㎞ 떨어져있으며, 압록강 하구로부터 약 12㎞ 떨어진 지점에 위치하고 있다. 면적 6.77㎢, 해안선길이 15㎞이다. 일명 장자도(獐子島)라고도 한다. 압록강은 토사의 운반과 퇴적이 왕성하여 하구부근에 많은 하중도(河中島)를 형성하고 있다.
신도는 과거에 육지가 침수되어 이루어진 섬이며, 근래에는 압록강 하구의 신우평(信愚坪)·영문강(迎門崗) 등의 토사로 넓은 갯벌이 펼쳐진다. 곳곳에 곶(串)이 돌출하여 전체적으로 해안선이 복잡하며 남부와 서부 해안에는 해식애의 절벽이 많다. 북부의 만입부는 방조제를 쌓아 평지를 조성하였다. 섬 주변 해역은 압록강의 담수와 황해의 해수가 만나는 기수역이다. 섬 북부의 상상봉(上上峯, 92m)이 최고봉이며, 남부에는 삼각봉(三角峯, 90m)이 솟아 있다.
≪신증동국여지승람≫에 의하면, 1678년(숙종 4)에 미곶(彌串)에 진을 설치하였다가 1807년(순조 7)에 신도로 옮겼는데, 바람이 잠잠하면 나가서 신도에 진을 치고, 바람이 강하게 불면 물러나와 미곶을 지켰다고 한다.
압록강 하구에 위치한 관계로 중국인의 밀입국이 빈번하였는데, 1530년(중종 25)에는 요동인(遼東人)이 암암리에 신도에 전입하여 거주하게 되자 진병(進兵)하여 명나라 도민(逃民) 60명과 가재를 포획한 일 등은 역사상 유명한 일이다.
섬 곳곳의 만입부를 막아 농토로 이용하고 있는데, 그 중에서도 동주동은 서안의 깊숙한 만입을 막아 넓은 평지를 얻고, 이 섬의 중심 마을이 되고 있다. 또한, 근해는 압록강의 담수와 해수가 혼합되는 수역이어서 좋은 어장을 이룬다.