I've spent the last few years getting very heavily into SEO, working out ways to increase relevant search traffic to my business sites. I've spent lots of time on seobook - an awesome private community for anyone serious about learning SEO.<p>In many ways having a good understanding of SEO is fantastic. When you understand what search engines want, and you know how to give it to them, you can get traffic that your competitors have no idea even exists. The small guy that understands SEO has a tremendous advantage over the big guy that doesn't.<p>However, for a small software company, I think it can be important to avoid going overboard. If you're making software (or a web service or whatever), SEO is just one piece of the puzzle, and there are only so many hours in the day. Generally only 24. Keeping close track of rankings, keywords, inbound links, and new linking opportunities is time consuming, and, when you're operating in just one niche, you can reach a point of diminishing returns. For niche products, there's only so much relevant traffic out there.<p>If you have multiple SEO-savvy competitors competing for your keywords, then maybe you do need to focus more time on day-to-day SEO, to keep the traffic rolling in. But many niche software businesses are doing something new, and actually don't have all that much competition for the keywords that line up well with what they're offering.<p>I think that often the best way for small software businesses to approach SEO it is to bake it into the systems they create, then leave those systems to do their job, building links, awareness and search traffic that will increase over time without direct involvement. By "systems" I don't mean scrapers and bots, I mean systems that encourage people to market your site for you (including building you good, natural links), and maybe systems that generate good link-worthy content for you as well.