Xã Vạn Thạnh có diện tích 128,77 km², dân số năm 1999 là 4476 người,[1] mật độ dân số đạt 35 người/km².
Xã Vạn Thạnh có 3 thôn đảo là Ninh Đảo, Ninh Tân và Điệp Sơn, cách xa đất liền từ 10 km đến 20 km. Tính đến đầu năm 2015, thôn Ninh Đảo có 172 hộ dân với hơn 760 người, thôn Ninh Tân có 119 hộ với gần 500 người, thôn Điệp Sơn có 99 hộ với hơn 300 người.