The important aspect of any contract for me are:
- What work will be done (Scope)
- When is it to be completed (Deadlines)
- What exactly is the final product (Deliverables)
- How much will the Client be expected to pay and when (Fee and payment schedule, cancellation clause, deposits)
- Who owns the final product (Ownership)
These is the crux of any contract.
Something no one ever tells anyone.... The longer your contract the more it's going to scare off clients. You don't need to have a long, double-speaking, legalese, contract to be protected. Contracts don't need to appear to be written by an attorney with decades of experience. Contracts merely need to detail what the parties are agreeing to, that's all. The problem with most "contract templates" is they are taken from a law firm or attorney-written and, well, attorney's like reading and writing "legalese" so they are generally full of it unnecessarily. And since most freelancer aren't lawyers, they assume they need to stick to some attorney-written script. You do not.
You don't even necessarily need anything signed. For example (in the US), if you send an email detailing the above and the client replies that they agree, that could be seen as a contract. I've had some clients that are fantastic clients, but just don't like dealing with signing 2-3 pages of legalese contracts. However, If I layout the above in clear, common language terms, they have no problem agreeing to it.
Contracts are always beneficial (to both parties) so they are always a good idea. However, just because it's a "contract" doesn't mean it has to appear to be presentable to the Supreme Court or based upon 4-5 page contract templates you find online. The primary goal of any contract is to merely put in writing what both parties agree to. While they are a good idea, being too "legalese" in contract can be a real turn off for some clients/people. Keep it simple, straight-forward, and clear.
Over the years I've whittled down my contract to a simple, single-sided, page/PDF that lists the above items for any project in simple, plain English. I also include an area for "Assumptions" which contains specific notes on the scope of that project, client responsibilities in terms of delivering content, etc. but I don't bother detailing a bunch of legal stuff that is unwarranted and included just to make the contract appear more "legal".
You can scribble on a bar napkin "I'll create your web site, you pay me $xxx" and both sign it.. that's a contract.