고려시대에 지방 관리를 감찰하고 백성의 상황을 살피는 안찰사(按察使)가 파견된 5도(五道) 가운데 하나이다. 7세기에 개성(開城)과 우봉(牛峯: 지금의 금천) 지역을 확보한 신라는 성덕왕 때 대동강 이남의 영유권을 확보한 뒤 영토를 개척하였고, 이를 관할하는 관청으로 패강진(浿江鎭)을 두었다. 그리고 태봉(泰封) 때 지금의 황해도 서부 지역을 개척하여 패서(浿西) 13 진(鎭)을 새로 설치하였다. 이 지역은 신라 말 고려 초에 ‘패서’ 또는 ‘ 패서도(浿西道)’로 지칭되었다.
995년(성종 14)에 전국을 10도(十道)로 편성할 때 관내도(關內道)에 속하였다. 이 중 해주(海州)와 황주(黃州)가 관할하는 지역을 서도(西道)라 하였으며, 중앙에 직속된 경기(京畿), 양주(楊州), 광주(廣州) 등이 관할하는 동도(東道)와 구분되었다.
1018년(현종 9)에 지방제도를 개편하면서 계수관(界首官)이 설치되었을 때 해주는 안서대도호부(安西大都護府)가 되었고, 황주는 목관(牧官)이 되었다. 관내 서도는 개경을 보호하는 기능을 가진 탓에 이른 시기부터 하나의 단위로 운영되었기 때문에 10도가 폐지된 뒤에도 존속하였다.
일시적으로 패서도라고 불리기도 하였으나 본래 10도에서 북계(北界) 지역을 가리키는 말이었기 때문에 혼란을 피하기 위하여 다시 서해도로 고쳤다. ‘서해도’라는 명칭은 1093년(선종 10)에 서해도 안찰사 사례에서 처음 확인되어 문종 후반에 개정된 것으로 짐작된다.
서해도에 가장 먼저 안찰사가 파견되었고, 이를 토대로 남도 지역에도 안찰사가 파견되면서 5도가 수립되었다. 남도 지역이 관내 계수관의 이름을 따서 도명(道名)을 정한 것과 달리 서해도는 기존 도명을 그대로 유지하였다. 조선에서 비로소 계수관의 이름을 따서 부르게 되었는데, 1395년(태조 4)에 풍해도(豊海道)로 부르다가 1417년(태종 17)에 황해도(黃海道)로 고쳤다.