동경 126°21′, 북위 36°54′에 위치하며, 충청남도 태안반도 북쪽에 있는 가로림만의 가운데 쯤에 있다. 서산시에서는 26㎞ 정도 거리이고, 팔봉면 소재지부터 12㎞ 지점에 자리한다. 면적은 1.09㎢이고, 해안선 길이는 4.5㎞이며, 육지에서 대략 800m 정도 떨어져 있다.
고파도의 지명 유래는 ‘바자’에서 비롯되었다. ‘바자’는 대, 갈대, 수수깡 등을 엮은 발을 말한다. 고파도에서는 이것을 이용하여 바닷가 주변에 ‘살’을 설치하였기에 ‘바자섬’으로 불렸다. 이것은 한자로 파지도(波知島)라고 쓰는데, 이를 줄여서 파도(波島)라고 불리기도 하였다. 고려시대에 고파도에는 주변 지역을 방어하던 군사기지로 파도영(波島營)을 설치하였는데, 조선시대에 들어와 다른 곳으로 이전함에 따라 ‘옛파도’라는 의미에서 고파도(古波島)가 되었다고 한다.
섬의 남쪽은 대부분 산지인데, 가장 높은 곳이 해발 69.1m 정도이다. 북쪽으로 갈수록 점점 높이가 낮아져 섬의 북쪽에는 구릉지가 분포한다. 동쪽 일부를 제외한 대부분의 해안은 모래가 많이 쌓인 사빈해안으로 이루어져 있다. 1월 평균기온은 -1.5℃이고, 8월 평균기온은 24.6℃이며, 연 강수량은 1,074㎜이다.
고려시대에 파지도령(波之島領)이 설치되었다가 조선시대에 팔봉면 호리로 이전된 뒤 ‘옛 파지섬’, ‘고파도’라고 불렸다. 1914년 행정구역 개편 때 서산군 팔봉면 고파도리가 되었다가, 1995년에 서산시와 서산군이 통합되면서 서산시 팔봉면에 속하였다.
2009년 기준으로 84세대, 161명(남자 75명, 여자 86명)이 거주하고 있다. 마을은 주로 섬의 북쪽에 분포하며, 동쪽 해안에도 일부가 자리하고 있다. 주민들은 대부분 어업에 종사하며, 주요 성씨로는 김해김씨, 경주김씨, 전주이씨 등이 있다.
토지 현황은 논 0.08㎢, 밭 0.11㎢, 임야 0.8㎢이다. 보리·마늘·무·양파·깨 등이 생산되지만 많은 양은 아니다. 수산물로는 가자미·장어·넙치·농어·미역·톳 등이 어획되고 있으며, 김과 미역 양식이 행해지고 있다. 서북쪽 해안에는 1944년에 조성된 형제염전·고파도염전 등이 있다. 팔봉면 구도리 구도 선착장에서 정기여객선이 운항되고 있다. 교육기관으로는 팔봉초등학교 고파도분교장이 있다.