To get around the idea of free speech, a lot of companies put non-disparagement clauses in their terms of use. You know all of those terms you are asked to review and click a box that you accept before you can use the website? This clause is contained within those terms. This clause will typically say that you agree not to post a comment on a social media site about the product or service or even limit what you can and can't post on a site. The problem is that you do not know you are agreeing to this because, quite honestly, who reads the terms.
Congress is trying to fix this by introducing a bill that would allow the Federal Trade Commission and States to take legal action against the companies that have these non-disparagement clauses in their contracts. California has taken the lead by enacting a law to ban these clauses. However, it will not take effect until next year. Hopefully, other states will follow suit.