Thành ban đầu được đắp bằng đất, đến năm 1831, được vua Minh Mạng cho xây lại thành bằng đá ong theo kiểu Vauban. Thành có 6 cạnh, chu vi dài 603 trượng (2.412 m), cao 1 trượng, 1 tấc, 5 thước (4,42 m), diện tích: 420.000 m², bao xung quanh có hào rộng 7 trượng (28 m), sâu 8 thước ta (3,20 m). Lúc khởi công, triều đình nhà Nguyễn đã huy động 1.000 lính Thanh Hóa, 4.000 lính Nghệ An. Đến thời Tự Đức, thành được tu bổ, bổ sung và thay thế 8.599 phiến đá sò từ Diễn Châu và đá ong từ Nam Đàn, 4.848 cân vôi, 155 cân mật mía, với tổng kinh phí là 3.688 quan tiền.