At the end of the day - design your sites to help users - keep time on site as high as you can, scrutinise your site and remove poor content you know dep down is crap, and then HOPE google's machine learning algo's actually know it's a decent site.
Google has taken a very questionable direction with all the 'Panda' approach of judging sites based on a set of rules 'learned' by real human reviewers and then applying that as a set of blanket rules all over the web. Unfortunately no algorithm will work for everyone, especially statistical abnormalities, which are labeled as 'bad' even though they are 'good'. It's the side effect of millions of sites on the web, and a planet load of spam constantly being produced. Google's trying to keep up, but does so at the expense of misdirecting people to completely the wrong sites...
Search is pretty broken at the moment for all but broad terms. Anything specific will return both relevant, and completely irrelevant results. For example, this morning i searched for '(name of VPS web host) has sold out' and number 8 result was a news story on the band radiohead. Go figure that one out.
I hope things turn around for you.