Bacnotan is bounded on the north by Balaoan, on the east by San Gabriel, on the south by San Juan, and on the west by the South Cina Sea.

The western side of Bacnotan faces the South China Sea and has a long stretch of black sand beaches, indicating a large amount of magnetite. Some portions of the seashore have pebble and limestone deposits. The beaches, stretching about 16 kilometers, are suitable for fishing boating, swimming, snorkeling, diving, and surfing.

Although San Juan is a favorite place among serious surfers, the waves in Quirino have been discovered to be likewise excellent for surfing.

The Baroro River, located at the southern boundary of Bacnotan, provides freshwater fishing, aquaculture farming, and recreation.

Bacnotan is 283 kilometres (176 mi) from Metro Manila and 14 kilometres (8.7 mi) from City of San Fernando, La Union, The Provincial Capital.