Rand has a posting on SEO salaries in SEOMoz Blog. In the post, he listed average salaries for various SEO positions for both in-house and agency.
His numbers appear to be on target, although the range he gave is quite large. And because it’s impossible to provide numbers for every metro area in the world, one will need to apply cost of living adjustments if he/she wants to see whether his/her own salary is within that range.
One question that people had on the comments was why the pay difference between in-house SEO and agency SEO. Factors mentioned include 1) agency can hire inexperienced people and train them, while an in-house SEO is expected to be the expert in the subject area, and 2) companies hire in-house SEO typically are large corporations, and a good SEO person can mean lots of additional revenue — hence that person needs to be paid accordingly.
One factor that was not mentioned was that the agency itself essentially acts as an intermediary to bring the job from the client to the people working for it, and thus it is only natural that the agency would take a cut of the money that the client is willing to pay.
For those who are looking to SEO as a career, I would recommend that you start out with an SEO agency despite the lower salary. In an agency, you’ll be able to learn the specifics, and you can slowly build your contacts. If you are a star, someone external will ask you to join as an in-house SEO soon enough, and that’s when you’ll get that bump in salary that you are looking for.