1. Underestimating time & project costs
Underestimating both time and project costs is easily the biggest mistake I've made, and also the biggest mistake freelancers make in general. Why? Because it's extremely difficult to calculate the length of time a project takes if you haven't completed another similar project beforehand to utilize as reference.
I've found that the largest "unknown" factor that consumes much more time than I expected is communicating with clients and making countless revisions and minor changes to a project.
I believe the only truly effective way to generate more accurate estimates is to carefully track time on projects now to make sure that later on, as soon as you have projects similar in scope, there's real, hard data to work with for calculating the estimates.
2. Accepting equity (shares) in startup companies as compensation as a substitute for hourly compensation
Accepting equity, or shares, in a startup company to replace hourly compensation is the second largest mistake I've made as a freelancer. The reality is nearly all startups fail.
On a few occasions earlier in my career as a freelancer, I met with prospective clients who were extremely enthusiastic about some new great idea they had for a website (internet startup). It's very easy to get tangled in all the hype and excitement surrounding the potential of becoming rich quickly from a new idea, but be cautious (and rational).
Unless you are absolutely certain the "idea" provides real value, is truly unique (or better in comparison to the competition), and is marketable (do your research!), chances are you will end up working for countless hours with no compensation whatsoever. Additionally, it's likely your relationship(s) with your business partner(s) will worsen if you start having doubts about whether the business has potential to prosper.
3. Not requiring 50% downpayment before work begins
I'm an incredibly trusting person, and the truth is most clients (and people as a whole) can be trusted to pay for what you've done, but it's significantly better to be safe than sorry. There exist individuals who may decide - even after you've worked hard - that they no longer want what you've produced for them, or worse, they simply don't have an interest to pay money for your precious time.
It's very easy to safeguard yourself financially by asking for at least 50% upfront for the project cost estimate. I admit it is usually a little awkward to ask a brand new client (who you could have just met) for cash before you've even started working, but it's an important protection that ensures that even in the worst case scenario, at the least, you've been paid something with regards to your efforts.
4. Not having both parties sign an explicit contract beforehand
This mistake goes hand-in-hand with not requiring a 50% downpayment upfront - even if it might be annoying investing time and resources writing up the contract, it's critical to put together a clear, concise contract (wow, alliteration!) or agreement between you and the client before beginning a project. A well-worded contract will shield you, along with your business, legally and financially.
As I explain in mistake #5 below, a solid contract prevents scope creep; that is, it clearly sets expectations for your client that shields you should your client ask - throughout the life of a project - for added features, elements, or services that you initially didn't expect when you first estimated the project cost.
Alongside establishing expectations for your client, a good contract also clearly sets expectations for what you should be paid (compensated) as the freelancer.
5. Not being clear enough about precisely what deliverables or services are included in the cost of a project
This mistake is a subset of #4 - be certain every contract specifies just what is covered in the project cost, especially what number of revisions and whether or not ongoing support is included. Scope creep (also called feature creep) is among the most commonly encountered problems freelancers face - that is, whenever a client asks for more and more as the project goes on. The problem is, most often, the client expects for more without paying more for the effort and time.
For instance, a client may ask for another page to a website after the project is in progress. The problem is, that added webpage wasn't contained in the initial estimate, so either you as the freelancer can basically design the page for free or you can remind the client that that part wasn't in the contract and that you will have to charge extra for that page. A legal contract should specify that any additional services are billed in addition to the original cost estimate.