Nằm ở phía Tây Bắc của Việt Nam, thị trấn Sa Pa ở độ cao 1.600 mét so với mực nước biển, cách thành phố Lào Cai 38 km và 376 km tính từ Hà Nội. Ngoài con đường chính từ thành phố Lào Cai, để tới Sa Pa còn một tuyến giao thông khác, quốc lộ 4D nối từ xã Bình Lư, Lai Châu. Mặc dù phần lớn cư dân huyện Sa Pa là những người dân tộc thiểu số, nhưng thị trấn lại tập trung chủ yếu những người Kinh sinh sống bằng nông nghiệp và dịch vụ du lịch.
Nằm ở miền bắc Việt Nam, Sa Pa có khí hậu cận nhiệt đới nhưng do nằm tại độ cao lớn nên không khí mát mẻ quanh năm. Vào mùa hè thời tiết ở thị trấn một ngày có đủ bốn mùa: buổi sáng là tiết trời mùa xuân, buổi trưa tiết trời như vào hạ, thường có nắng nhẹ, khí hậu dịu mát, buổi chiều mây và sương rơi xuống tạo cảm giác lành lạnh như trời thu và ban đêm là cái rét của mùa đông. Nhiệt độ không khí trung bình năm của Sa Pa là 15 °C. Mùa hè, thị trấn không phải chịu cái nắng gay gắt như vùng đồng bằng ven biển, khoảng 13 °C – 15 °C vào ban đêm và 20 °C – 25 °C vào ban ngày. Mùa đông thường có mây mù bao phủ và lạnh, nhiệt độ có khi xuống dưới 0 °C, đôi khi có tuyết rơi. Lượng mưa trung bình hàng năm ở đây khoảng từ 1.800 đến 2.200 mm, tập trung nhiều nhất vào khoảng thời gian từ thang 5 tới tháng 8.
Thị trấn Sa Pa là một trong những địa điểm có tuyết rơi tại Việt Nam. Trong khoảng thời gian từ 1957 tới 2013, 21 lần tuyết rơi tại Sa Pa[4]. Lần tuyết rơi mạnh nhất vào ngày 13 tháng 2 năm 1968, liên tục từ 3 giờ sáng đến 14 giờ cùng ngày, dày tới 20 cm.