One of the best tips I ever received on swimming is: Swimming is all about minimizing resistance. Minimize resistance and you WILL get faster. Warren Lager, Coach and owner of the Marin Pirates (USA team) & Marin Pirates Masters, furthered that tip by telling me, think of yourself as swimming in a tight cylinder. For efficiency in all strokes, keep the body in the cylinder as much as possible. The limbs will break the cylinder, but you still want to minimize how far outside that cylinder you let those limbs go. For something like breaststroke, you want to keep your knees no wider than your hips. For dolphin kick, you want that knee action to be minimal, and have the kick generate from the hips and torso – always thinking about that cylinder. For back and free, you keep the legs contained in the cylinder, and on free, you want to make sure not to let the arms pull way outside the body (your cylinder).
Ok, so for freestyle, we know that it is critically important to stay in your cylinder – especially with your legs. How to test whether you are keeping your legs within your cylinder? Well, a great drill is to swim freestyle with a pull buoy held between your ankles (and not your knees where we all like to keep it). This is a great core test as well as this forces you to use your abs and tighten your core in order to keep your legs straight behind you and not allow them to swing side to side. A key is to keep your hips at the surface when swimming in this fashion. And bonus, you can do this same drill with backstroke! Start first (with backstroke) getting used to pulling with the pull buoy between your knees. Keep your feet and legs from swaying side to side. As you get stronger, then move the buoy down to your ankles. You will definitely improve your cylinder swimming with this drill.
Check out the GoSwim video on this.