Thị trấn Vĩnh Lộc nằm ở đôi bờ sông Gâm và có cửa suối Khuổi Gác. Thị trấn có tuyến tỉnh lộ 176 đi qua, trên tuyến đường có cầu Chiêm Hóa bắc qua sông Lô, bên cạnh đó là các tuyến tỉnh lộ 185 đi về phía nam và tuyến tỉnh lộ hướng lên phía bắc.
Thị trấn Vĩnh Lộc có diện tích 7,27 km², dân số năm 2016 là 7.629 người, mật độ dân số đạt 1.049 người/km²[2].
Hành chính,
Thị trấn Vĩnh Lộc được chia thành 12 tổ dân phố: Vĩnh Hưng, Vĩnh Thái, Vĩnh Thiện, Vĩnh Giang, Vĩnh Quý, Vĩnh Sơn, Vĩnh Lim, Vĩnh Tài, Vĩnh Tiến, Vĩnh Khang, Vĩnh Thịnh, Vĩnh Bảo.