I once read an article on most hated jobs in America. To my surprise "Web Developer" was on the list (something like 3rd place). Honestly, when I thought about it a bit more I understood why. Let me help you explain the disconnect between web developer and customer.
First problem.
Most businesses are like the majority of high school students entering college for the first time. They don't what they want, still trying to figure out who they are, and they waste time and money doing it. Start-Ups are notorious for this, but I have worked in multi-billion dollar businesses that have the same problem just with the extra red tape. If you can't explain to me in 60 seconds over the phone your mission statement (Why your business exists), and vision statement (Your businesses eventual goal). I cannot create a proper website explaining to your customers why they need your product, or build a system that allows your business to achieve it's goals. I can make it pretty and functional, but guess what.... If you lack purpose, so will your website.
Second problem
Most of the businesses I help, suffer due to organization. They usually have information coming in from multiple sources with repeated data, or fluff (useless data). They are overwhelmed. A websites first job is to organize data. You know your company, you know your target audience, you know your product, I don't. Do no ask me to write up something for you, present me with data and I will turn it into information. I simply edit it for spelling errors, then organize the information, and rearrange it in a meaningful way for your customers understand and take action.
Third Problem
Technology. Listen, you should know how to operate your email, read a PDF document, and know how to use Microsoft Office Suite by now. The information age has been here at least a decade. Instead I have to walk my clients through "how to open an attachment on their email". This waste my time and other parties involved. To compound this frustration I get outdated practices offered to me as great solutions, that will drive a logical efficient person insane. Technology and practices have changed quite a bit year to year, so I an empathize there. However, if you fell behind the curve because you decided not to better yourself to a changing and adaptive market it is on you. YouTube tutorials are everywhere, information and self education is not only available to the elite, there is no excuse. You don't need to be a computer wiz, but don't call me to fix your computer.
Forth Problem
A main problem with web developers is ourselves. Many of us are introverts by nature, and choose a career in computers as to not have to deal with people. Problem is, not many of us didn't actually know the level of involvement and interaction that many of us would have with our clients on a day to day basis.
All in all, I hate having to do websites for people who don't know what they want. Honestly, it is almost never worth the money to deal with the headaches. There is no need. Why work for a difficult customer when you could just sell your templates, and make recurring passive income. The smart web developers, have figured out that it doesn't pay to work with direct customers when you can create systems of money online for your self. After all we do it all the time for businesses why not just do it for ourselves. Businesses need web developers a lot more than web developers need businesses, just some of us coders haven't figured that out.
A Story of 90% of my customers and why I no longer do websites
Go to The Oatmeal to view more awesome Web Developer comics.