Xã nằm về phía Đông Bắc của huyện Lập Thạch, có diện tích 11,3 km²; phía Bắc giáp xã Hợp Lý (huyện Lập Thạch); phía Đông giáp các xã Yên Dương, Bồ Lý (huyện Tam Đảo); phía Nam giáp các xã Thái Hòa, Liễn Sơn (huyện Lập Thạch); phía Tây giáp xã Ngọc Mỹ (huyện Lập Thạch).
Dân số của xã vào năm 2010 là khoảng 7.000 người,[1] mật độ trung bình xấp xỉ 600 người/km². Cư dân chủ yếu là người Kinh và Sán Dìu.