How to attach 4x4 post to concrete?
Fastening into a concrete fence post footing depends on load and on whether the concrete is cracked. Mechanical anchors expand against the hole wall; adhesive anchors bond into it and hold more in tension. Drill to the specified depth, blow the hole clean — dust is the single most common cause of adhesive anchor failure — and respect edge distance.
- Typical thickness
- a hole one-third of the post height and three times the post widthfence post
- Typical strength
- 3ASTM C39 at 28 days
- Hole depth
- 1/3 post heightplus 6″ gravel
- Hole width
- 3× post width10–12″ for a 4×4
Short version
- One third of the post height in the ground is the working rule: a 6 ft fence needs a 6 ft post set 24 inches deep, plus gravel.
- A 10 inch diameter hole 24 inches deep takes about one 50 lb bag of fast-setting mix; a 12 inch hole takes closer to two.
- Gravel at the bottom lets water drain away from the end grain instead of pooling against it.
- Fast-setting mixes are poured dry into the hole and water added on top — no mixing, and they hold the post in 20 to 40 minutes.
- Crown the concrete above grade and slope it away from the post so water sheds instead of sitting at the joint.
How deep should a fence post go?
The working rule is one third of the post height below grade. A 6 foot fence uses an 8 foot post with roughly 24 to 30 inches in the ground; an 8 foot fence needs proportionally more. Add 6 inches below that for gravel, so the hole itself is deeper than the embedment.
Two things override the rule. In a freezing climate the base of the hole must sit below the local frost line, or the post heaves as the ground freezes and thaws — and frost depth is set by your local building department, not by any national figure. And gate posts and corner posts carry lateral load that line posts do not, so they are normally set deeper and in a wider hole.
How many bags of concrete does a post take?
It depends on hole volume, and the arithmetic is simple once you have the dimensions. A cylindrical hole 10 inches across and 24 inches deep is about 1.09 cubic feet, minus the volume the post itself occupies — a 4×4 takes up roughly 0.24 cubic feet over that depth — leaving about 0.85 cubic feet to fill. At 0.375 cubic feet per 50 lb bag, that is between two and three bags of standard mix, or one to two bags of a fast-setting post mix, which is formulated to a different yield.
Round up rather than down. Running short halfway through setting a post means either a cold joint at the worst possible place or pulling the post and starting again.
Should the post sit on gravel or directly on concrete?
Gravel underneath, concrete around. Six inches of compacted gravel at the bottom of the hole lets water that runs down the post drain away instead of collecting against the end grain, which is where wood posts rot first. Setting a post directly on a concrete plug creates a basin that holds water permanently.
Above ground, the finish matters as much as the fill. Crown the concrete an inch or two above grade and slope it away from the post so rain sheds off rather than sitting in the joint. A concrete collar finished flush or dished is the second most common way posts rot, after no gravel at all.
Common mistakes
- Setting the post directly on concrete with no gravel — water collects against the end grain, which is where wood posts rot first
- Finishing the collar flush or dished — it holds rain against the post instead of shedding it
- Ignoring frost depth — a post above the local frost line heaves as the ground freezes and thaws
Also asked as
- how to attach a 4x4 post to a concrete slab
Sources (4)
- Quikrete — Product technical data sheets (accessed Mon Aug 17 2026 00:00:00 GMT+0000 (Coordinated Universal Time))
- Sakrete — Product technical data sheets (accessed Mon Aug 17 2026 00:00:00 GMT+0000 (Coordinated Universal Time))
- International Code Council — ICC Digital Codes — IRC Chapter 4, Foundations (accessed Mon Aug 17 2026 00:00:00 GMT+0000 (Coordinated Universal Time))
- NRMCA — Concrete in Practice series (accessed Mon Aug 17 2026 00:00:00 GMT+0000 (Coordinated Universal Time))