The Rockingham County portion of Grottoes is part of the Harrisonburg Metropolitan Statistical Area, while the small portion that extends into Augusta County is part of the Staunton–Waynesboro Micropolitan Statistical Area.
According to the United States Census Bureau, the town has a total area of 1.3 square miles (3.4 km²), all land.
There were 861 households out of which 36.2% had children under the age of 18 living with them, 53.2% were married couples living together, 11.4% had a female householder with no husband present, and 31.1% were non-families. 27.2% of all households were made up of individuals and 11.7% had someone living alone who was 65 years of age or older. The average household size was 2.46 and the average family size was 2.98.
In the town the population was spread out with 27.0% under the age of 18, 7.5% from 18 to 24, 34.0% from 25 to 44, 20.5% from 45 to 64, and 10.9% who were 65 years of age or older. The median age was 34 years. For every 100 females there were 89.8 males. For every 100 females age 18 and over, there were 84.8 males.
The median income for a household in the town was $38,618, and the median income for a family was $46,574. Males had a median income of $32,500 versus $25,500 for females. The per capita income for the town was $17,195. About 5.5% of families and 7.2% of the population were below the poverty line, including 6.0% of those under age 18 and 14.2% of those age 65 or over.