Google changes its crawler algorithm and ranking criteria continuously. Why do you think they would do that? Its simple. Google hates stupid SEO guys. Bad SEO is equal spamming.
Traditional SEO just put keywords everywhere in the following: domain name, file name, title tag, meta tag, image alt text, html tag (<h1>, <b>, <em>), first words on the page, words on first paragraph, all the hyperlink.
Spread your keyword in all those spot, and be prepared to lose your ranking on the next morning. Overused keyword will activate Google’s spam filter and mark your site as one. It’s unknown how many or which combination of those spots will trigger the spam filter. So it’s better to be smart and creative in your content work.
Some spots don’t need your keyword in it. For example, H1 tag. Not every page is designed to have that. Same thing goes to image alt text. You don’t always have to force your keyword to stand behind every image in your site just for SEO purpose.
And the first paragraph thing. For the sake of SEO, we might be stuffing the keyword in the first paragraph. Read again what we have write. Does the content have a readable flow. If don’t, then delete it. Keyword doesn’t have to be stuffed in first paragraph. We should distribute them evenly through the entire page.
The key to avoid spam filter is do SEO without specific formula. Do it creatively as an art.