The oldest parts of the church, the sacristy and the eastern end of the nave, are thought to have been built sometime between 1250 and 1350. During the fifteenth century the original timber barrel vault was replaced with brick rib vaults, and it was in the 1490s that the church received its wall paintings, believed on stylistic grounds to be the work of Albertus Pictor's workshop. A narrower westward extension was also added in the 1400s; the unusual thickness of its walls suggests it may have been intended as an unfinished tower. The porch is thought to date from the close of the medieval period.
Set into the south wall is a well-preserved runestone from around 1100, carved in the Urnes style with a Christian inscription. Inside, the font is carved from a mottled pink-and-grey sandstone and dates from the fifteenth century, while a four-seat oak choir bench of the same era survives in the chancel. The late Baroque pulpit was given to the church in 1748, and the altarpiece dates from 1740, having been rebuilt in 1781.
The church has had a succession of organs. Daniel Stråhle built the first in 1731, later enlarged by Carl Holm in 1759 and replaced by a new instrument from Pehr Gullbergson in 1838–39. The current organ was built in 1929, retaining the facade of its 1838–39 predecessor, and was subsequently modified and restored in the twentieth century.
Outside, a burial field of the later Iron Age, including a large burial mound, lies between the church and the old main road. South of the churchyard stands a free-standing bell tower with red-painted panelling, given its present form around 1800; it houses two bells cast by the Meyer foundry in Stockholm, one from 1655 and the other from 1752. The churchyard is enclosed by a grey stone wall that once had a roof, and includes a medieval lychgate in its southern stretch, with evidence suggesting a second lychgate once stood to the north-east. A small timber loft storehouse with red panelling in the north wall is thought to be the only surviving timbered tithe barn in Uppland.