이 지역은 발해의 중경 현덕부(中京顯德府)가 있던 곳으로 추정된다. 서고성은 화룡현의 비옥한 두도평야의 서북쪽 약 10km에 위치한 서고향 북고성촌에 남아 있다. 성의 남쪽 3km 떨어진 곳에는 두만강의 지류인 해란강(海蘭江)이 서북쪽에서 동남쪽으로 흐른다. 성은 해란강의 좌우에 펼쳐진 평야의 서북쪽에 있다. 고성촌 두도평야 동남쪽에는 요·금대의 고성지인 동고성(東古城)이 있는데, 서고성의 명칭은 여기에서 비롯된 것으로 보인다.
서고성 주변에는 하남둔고성, 잠두성, 북대묘지, 하남둔묘장, 용두산묘군, 용해묘군, 고건축지 등 다수의 발해유적이 자리하고 있다.
서고성은 토성(土城)으로서 외성(外城)·내성(內城)·중성(中城)으로 된 3중성이다. 외성은 장방형인데, 방향은 서쪽으로 10° 치우친 남향이다. 성벽의 네 모서리는 모두 둔각을 이루었으며, 벽의 다른 곳보다 2배 이상 넓게 만들어서 방어에 편하게 하였다.
성벽 밖으로는 해자를 팠는데 지금은 이곳으로 관개수가 흐른다. 문터는 남벽과 북벽의 중앙에 있다. 성의 총둘레는 약 2,714m이며, 동서 두 벽의 길이가 각각 약 729m, 남북벽의 길이는 각각 약 628m이다. 내성은 외성의 중앙 북벽에 있으며, 총둘레는 약 1,000m로서 동서 길이 약 190m, 남북 길이는 약 310m이다.
중성은 내성의 북쪽에 있으며, 북벽은 내성 북벽에서 남으로 34m, 외성 북벽에서 47m되는 곳에 있다. 성 안에는 건물지·연못·우물·길 등의 유적지가 있으며, 와당(瓦當), 문자(文字)가 찍힌 기와, 유약 바른 주초장식기와〔柱礎裝飾瓦〕, 귀면(鬼面) 및 용마루 장식, 문양전(文樣塼) 등의 유물이 나왔다.
한편 2000∼2002년에 서고성이 발굴조사되었다. 주목되는 것은 외성 남쪽의 성문이 서고성의 외부로 나가는 주요 통로가 아니라는 것이 확인되었다. 이에 따르면 성문과 성벽이 문돈(門墩)을 감싸며 연결되어 있고, 문돈 벽체표층은 백회가 발라져 있다고 한다. 성벽은 토축을 하였는데, 성벽 가로 단면의 판축 특징을 통해 볼 때 가로로 향한 성벽은 좌우 두 번에 걸쳐 판축으로 이루어졌고, 벽체 바깥은 쐐기형 판축을 이용하여 벽체를 견고히 하여 무너지는 것을 막았다고 한다. 성벽의 이러한 축조방식은 비교적 독특한 것이다. 내성 남부의 정중앙에 위치한 1호 궁전지구의 발굴을 통해서 1호 궁전지는 가로로 긴 장방형으로 동서길이 41m, 남북 폭 22.5m의 판축과 강자갈을 서로 중첩하여 조성한 기단위에 만들어졌음을 확인하였다. 이 궁전에는 3문이 있는데, 기단 북쪽 중앙에 북쪽으로 한 개의 문이 있고, 기단 남쪽의 동서 양쪽 가까이에 각각 남쪽으로 향한 문이 있다고 한다. 이전에 이루어진 지표조사와 항공촬영에 근거하여 연구자들은 1호 궁전지 동·서 양측의 건축을 낭무(廊廡) 성격의 부속건축이라고 이해하였으나 이번 발굴의 결과 기둥 사이에 벽체가 있음을 확인하여, 건축은 곁채 상방(廂房) 성격에 가까운 것으로 추정하게 되었다.