Floors squeak because changes in temperature and humidity cause the wooden parts to shrink or swell and rub against each other or against the nails that hold them together. Depending on which component of the flooring is causing the squeak, in most cases it is possible to silence squeaking floors with just a little detective work and carpentry skills.
It is important to understand the parts of a floor before beginning repairs. From the bottom up, a subfloor of plywood rests on either 2"x6" or 2"x8" joists, which are strengthened by crisscrossed bridging between the joists, or by blocking--another 2"x6" or 2"x8" running perpendicular to the joists. Above the subfloor is an underlayer that provides additional strength. Linoleum, carpet, or tongue-and-groove wood flooring rests atop the underlayer.
Locate the exact area of the squeak by walking on the floor and determining where the floorboards move and squeak. If the joists are visible, such as in an unfinished basement, watch the subfloor while an assistant walks above. If the subfloor moves, then chances are firming it up from below will stop the squeak. If you have hardwood floors and the subfloor does not move when you hear the squeak, then the surface floor and subfloor may have separated and will need to be fixed together with screws. Finally, examine the joists. If the blocking or bridging is loose, it will have to be replaced. If the joists and subfloor are not visible, such as in a second story, then you are likely limited to repairing the squeak from above using pilot holes and nails.
Fixing the Subfloor from Below There are two ways to fix a squeaking subfloor: shims or cleats. Shims are the easiest method, provided you can locate the exact spot where the subfloor has pulled away from the joist. If you can do this, then cover the tip of a shim with wood glue and lightly hammer it into place between the subfloor and joist until it sits firmly in place. To fasten a cleat, take a 2"x2" piece of oak, about 4 inches long (the cleat) and attach it to the joist at the point where the subfloor and joist separate. Using a long two-by-four as a prop, force the 2"x2" oak into place so it fits tightly against the joist and floorboard. The two-by-four prop should press on the underside of the cleat, forcing it up against the subfloor. The nails will ensure that it fits tightly against the joist. Repeat this process on the other side of the joist.
Fixing Separated Sub- and Surface Floors. If the squeak is caused by a separation of the subfloor from the finished floor above, use wood screws to pull the subfloor, any underlayer and the finished floor together. Drill a pilot hole to avoid splitting the subfloor Use washers to ensure that the screws are not pulled up through the subfloor. Use caution to avoid drilling through all layers of the floor or using screws that are too long.
Strengthening Joists If the joists have twisted or warped, or if the bridging between them is loose, they may be the cause of the squeaking. Strengthen the joists by firming up the bridging using larger nails or by replacing the bridging altogether. In extreme cases, steel bridging can be used to straighten twisted joists.
Fixing Squeaks from Above If access to the subfloor is not possible, squeaks will have to be stopped by inserting finishing nails or screws from the top. Drill pilot holes to avoid splitting the wood, then drive in the nails or screw in the finish-head screws. Countersink the heads and then fill the holes with wood putty.
When drilling from below, take care not to drill through all levels of the floor. The same applies to fixing nails and screws. Don't use fasteners that are too long.