Windows built in Defrag does just fine for the most part.
As mentioned, it really will only make a difference if the drive is currently heavily fragmented.
In regards to other free alternatives that may be better than Win7s own, not sure.
Ive always used, and prefer Perfect Disc. But, its not a free app.
so what do you mean ''heavily fragged''?
If you do not know much about fragmentation, and defragmenting, please have a look here:
File system fragmentation - Wikipedia, the free encyclopedia
It should help answer all questions.
Fragmentation is actually quite normal. You can see how much there is, by typing "defrag" in you start menu search box, than open the Disk Defragmenter.
Just press the analyse button, and it will give you an idea in a percentage.
Less than 10% is generally regarded as being OK, and should not cause much of a performance issue.
More than 10% typically means a defrag pass is needed.
Heavily fragmented would be something like 20% or more fragementation.
Please bear in mind, all of this applies to mechanical Hard Drives. Solid State (SSD) suffer no ill effects from it as they work entirely different than a mechanical, platter type hard drive.
It is also worth mentioning, that by default, Windows 7 defrag passes should occur automatically any time the level get close to or exceeds 10%.
Unless you intentionally disbaled it.