A lot of freelancers when they first start just do any work given to them right away. They never even think about contracts and ways to protect themselves till it's too late - I was one of those people, luckily I didn't get ripped off.
But every freelancer out there should really set out a contract for each of their clients which sets same rules and ways to protect themselves if anything were to go wrong. Some clients don't treat us as humans, they think we're some sort of machine which is just told what to do.
Many think that a contract should include very complicated language and words which are unheard of in everyday life - trust me, the simpler your contract the easier it is for clients to understand what they're signing, so you won't be asked a billion and one questions about what this and that means.
1. Only talk to one person, the person in charge of the project
Whenever you take on a project make sure you're making the decisions with just one person, mainly the person who is in charge of the project. By doing this, you are then limiting your contact with the one person.
The reason for this is that if you are talking to two or more different people who are in the project and they both request different changes and give you different feedback, there will inevitably be conflicts. Then you may have to revert any changes which you have spent time doing.
2. Rates & Payments
Make your rates clear from the beginning. You don't want to get halfway into a project, tell them how much you're charging and then for the whole project to be cancelled. You'll be wasting your time and the client's time.
Make sure to make it clear how you are charging, whether it be by the hour or by the project.
If you're charging by the hour, include a minimum and maximum amount of hours you'll be charging for. For example - You think the project will take a minimum of 10 hours and will be charging at least for that amount, even if you finish the project early - protecting yourself. But then you include a maximum of 15 hours, so even if you spend more time on it, you'll only be charging for 15 hours - giving protection and assurance to the client.
Set in the contract how you would like to be paid and in how many instalments. Maybe set out instalments of 50% at first, then the other 50% once the project is finished. You could even do 50%-25%-25% - something like that would work really well in big projects.
Make sure to set the exact dates you would like to be paid. And maybe apply a fee if they do not pay by that date (this one is risky, but a lot of freelancers I've found have benefited from it).
Once you've agreed with your client and they sign it off, they then can't go back and pay you less than what you asked for, protecting yourself.
3. Set a fee if the project were to be cancelled
One of the biggest nightmares with projects is when they get cancelled. It might not be a client's fault and can be beyond your control. That then most likely means you won't be paid.
If you like, you can include a cancellation fee - maybe 50% or 25% of what was originally estimated for how much the whole project would cost.
4. Changes and revisions
With any design project there will most likely be changes and revisions a client would like.
If you are in web design you can offer maybe two or three designs max, so that you're not made to make five different designs just to make the client happy.
Then there may be changes required in the design. If you're charging by hour you can just add the hours on at the end of a project. However if you charge per project, include some sort of clause where you cover yourself if the client were to ask for a whole load of changes.
This is a life saver in a contract because you're either saved from carrying out extra work, or are paid for the extra work you have done.
5. Protect your work
Make sure to set out in the contract how the copyrights behind your work will work. Maybe state how they only own the work once it is completed and fully paid for. But always make sure to state the original creator of the work was you, not the clients.
One other huge way to protect yourself is by not sending the actual work till it's been paid for. Maybe you could copyright it if it were a poster or picture. Or if it were a website, not give them access to the code, design or anything else to do with it.
6. Deadlines, deadlines, deadlines
Every project will usually have some sort of deadline. Whether it be the client's deadline or one you have set, so you can get onto other projects afterwards.
By having a deadline you'll be able to schedule your work and your workload. It protects both you and the client. You could even add leeway just incase you were to go over the deadline date - it does happen.
It'll also be a form of assurance for the client because they'll know when to expect the work. And won't keep nagging you, asking if it is done yet.
All the 6 points listed should be included in most, if not all, of your freelance contracts. Contracts help protect you from any dodgy clients who may try to rip you off. Thankfully most clients are genuine and great to work with, but there will always be one or two who either don't understand what they're doing wrong, or are just trying to do you over.