There is a kind of battle that has been going on among search engines and the websites that they index. Search engines balance the needs of the people that use them, advertisers and their own business needs. Website builders and SEO firms are constantly inventing ways to get sites to appear at the top of organic results. For example it used to be common practice to stuff keywords into meta tags so that search spiders would rank the site as more relevant. Search engines have since been built to be more advanced and recognize this sort of trickery.
Now to get a website to appear at the top of the list there are better tactics that can be used. For instance finding the hottest keywords for a particular market is still one of the surest ways to get a site to rank near the top of the list. Surprisingly these words may not even be grammatically correct. Putting keywords into key places in code is also a good strategy. Putting them in headlines, subheads and in the body of a page are all good places. Filling the page up with so many keywords that it makes the overall content hard to read will ensure that the site is tossed aside by a search engine. Relevance is also very important. Putting in words that have nothing to do with the overall website is also a sure fire way to get ranked last. For example putting in a bunch of "Roth IRA vs 401K" onto a real estate listing site will cause search engine spiders to ignore the page all together.
Finally keeping content fresh is a great way to get ranked higher in organic results. By changing or adding new content daily or at least weekly, search engines are more likely to show your site to their users than ones that have not been changed in months. Of course users will be shown the most relevant content to their query so that is almost always paramount.