The four shapes keyword stuffing takes
Google's spam policies name keyword stuffing directly, and the examples are unusually specific: blocks of text listing cities and regions a page wants to rank for, lists of phone numbers with no supporting content, and a phrase repeated until the sentence stops making sense.
It rarely arrives as a deliberate decision. It arrives as a brief that said "use the keyword 12 times".
- Body repetition. The exact phrase forced into every paragraph, at the cost of the sentence. You can hear it when you read the page aloud.
- Hidden text. White text on a white background, text set to
font-size: 0, or a block pushed off-screen with CSS. Google renders CSS now. - Footer and sidebar keyword lists. Forty links reading "seo company mumbai", "seo company pune", "seo company thane", stamped onto every page.
- Attribute stuffing. Alt text written as a keyword string, filenames like
best-cheap-seo-agency-india.jpg, and the meta keywords tag — which Google confirmed it ignores back in 2009.
There is no correct keyword density
Ask ten SEO blogs for the right keyword density and you'll get ten numbers between 0.5% and 3%. None came from Google. Google has never published a density target, and the reason is mechanical: modern retrieval doesn't count string occurrences against a threshold. It scores how well a document covers a subject, using embeddings and entity relationships that don't care whether you typed the phrase four times or nine.
The number survives because a plugin prints it. Yoast and Rank Math divide occurrences by word count and turn the result into a traffic light. That's a readability heuristic written by a plugin author — never calibrated against Google's index, and computed by software with no access to the thing it claims to score.
The Indian variant: city stuffing
The most common version we see here isn't repetition inside a paragraph. It's geography. One service page, forty city names, either scattered through the copy ("our packers and movers in Pune, Nashik, Nagpur and Thane") or dumped into a footer block linking to forty near-identical URLs.
It looks efficient — one template, forty markets. It fails on two of Google's own policies at once: keyword stuffing covers the city block, and the doorway-pages rule covers URLs built for regions that funnel everyone to the same place. It's also thin content, since the only difference between two of those pages is a find-and-replace.
The alternative is unglamorous. Build a city page only where you can say something true and specific — an address, named staff, the pin codes you serve. Otherwise write one strong page and let it cover the region. Where that line sits is in programmatic SEO and scaled content.
What to write instead
Stop counting the string and list what a person searching that query needs settled. A page about link pricing needs numbers; a page about a penalty needs the recovery steps. Cover those and the phrase appears on its own, alongside the variants you'd have used anyway.
That's the practical end of entity SEO: search engines resolve a page to a subject and its related concepts, not to a string frequency. Five paragraphs naming the tools, the costs and the failure modes beat fifty repetitions of the head term.
- Read the page aloud. Repetition is audible long before it's measurable.
- Check the footer and sidebar — that's where stuffing hides on templated sites, and it repeats sitewide.
- Check alt text and image filenames. Alt text describes the image for someone who can't see it. That's the whole brief.