SEO is a competitive business. One client with a six-month contract can be very lucrative. If you have your own business and your clients have large websites, you don't need too many to operate profitably. Nevertheless, clients are hard to get, so letting even one go is hard. You have to do it sometimes, though, if you want to maintain your sanity.
Some people say there is no such thing as a bad client' just a client with unrealistic exceptions that you didn't correct. The truth is, you can set expectations from day one and some clients will only hear what they want. You can tell them their industry is competitive, and the competition is fierce, but they already know this. They chose the sector because it's profitable; competition is your problem.
Some client's expectations are set by other SEO firms. Shady SEO firms will promise to get clients on page one of Goggle in a few months. If you don't meet this goal, the client assumes you are not doing something right. You can explain all day long that page one of Google isn't always the goal if you're only getting the client there for keywords that won't increase their leads or sales. Clients don't want to hear this.
Sometimes clients learn other business owners are paying less for SEO. They don't look at the quality of the work, just the price. An agency offering inferior quality content written by people who have English as a second language and that buys backlinks from Fivver, can charge less than you. Don't expect clients to judge content or backlink quality until they receive a Google penalty. It's up to you to explain that people get what they pay for with SEO. Clients that shop by price alone are generally the worst type of client unless you don't care about doing a good job. For more information click here https://www.reddit.com/r/SEO/comments/my2wgj/hadtoletaclientgotoday/.