Most business sites don't have an "SEO problem". They have five SEO problems, each costing them ranks. The fixes are usually small. Finding them is the hard part.
Below are the mistakes I see on almost every audit. Each one framed as Mistake → Fix.
Mistake: the site isn't mobile-friendly → Fix: ship a real responsive build
Mobile is the default crawl for Google. If your layout breaks, fonts shrink to 9px, or buttons sit on top of each other on a 390px viewport, you're losing both rank and conversions.
Fix:
- Audit with Lighthouse (mobile preset) and the Chrome DevTools device toolbar. Not by squinting at your phone.
- Tap targets ≥ 24×24 CSS px (WCAG 2.2 AA), spaced ≥ 8px apart.
- Body text ≥ 16px, line length 45–75 characters.
- No horizontal scroll. Test 320px viewport. That's the floor.
Mistake: page loads in 8 seconds → Fix: chase Core Web Vitals, not myths
Speed is a ranking factor and a conversion lever. The bar:
- LCP < 2.5s
- INP < 200ms
- CLS < 0.1
Fix:
- Serve images as AVIF/WebP via
<picture>. AVIF cuts ~50% vs JPEG. - Lazy-load below-the-fold images, eager-load the hero only.
- Defer non-critical JS. Inline critical CSS, async the rest.
- Put a CDN in front (Cloudflare, Fastly, Vercel Edge). It's the highest-leverage fix you'll do this year.
- Validate with PageSpeed Insights and field data in Google Search Console's Core Web Vitals report, lab scores lie.
Mistake: duplicate or missing meta tags → Fix: every page gets a unique title and description
Half the business sites I audit ship the same <title> across every page (usually "Company Name | Home"). Google then picks its own, usually badly.
Fix:
- Every page: unique
<title>(50–60 chars) andmeta description(140–160 chars). - Title format that works:
Primary keyword | Secondary | Brand. - Run Screaming Frog or Ahrefs Site Audit to find duplicates in 5 minutes.
- For templates (product, blog, category), generate titles dynamically from page content, never hardcode.
Mistake: H1 is the logo → Fix: text H1 with the page's actual topic
I still see business sites where <h1> wraps the logo image. That tells Google "this page is about Company Name" instead of "this page is about industrial coffee machines for hotels."
Fix:
- Exactly one
<h1>per page, plain text, matching the page's primary keyword/topic. - Logo wraps in a
<div>or<a>with anaria-label, not<h1>. - H2/H3 in logical order, no skipping levels for visual styling.
Mistake: thin or duplicated content → Fix: ship something worth ranking
A 120-word page about "Our Services" with a stock photo and a phone number doesn't rank. Neither does the city-page mill where you swap one word and call it 30 unique pages.
Fix:
- Cover the topic well enough that the user doesn't bounce back to Google. Helpful Content > word count.
- Answer the questions a real prospect would ask before buying. Use AlsoAsked, AnswerThePublic, or your sales team's inbox.
- For multi-location sites: write actually different content per city. Local context, not Mad Libs.
- Update old pages. Google rewards freshness when intent demands it.
Mistake: broken canonicals and indexing signals → Fix: audit the technical layer
These are the silent killers, the page looks fine, but Google won't index it.
Common offenders:
- Canonical pointing to a different URL (or
https://vshttps://www.mismatch) noindexleft over from stagingrobots.txtblocking/wp-content/(kills CSS/JS rendering)- 301 chains (A → B → C → D)
- Soft 404s, pages that return 200 but say "Sorry, not found"
Fix:
- Google Search Console → Page Indexing report. Read it weekly.
- Run Screaming Frog on the full site monthly. Filter by status code, canonical, indexability.
- Canonical → self-referential unless you genuinely want to consolidate.
- Robots.txt should block almost nothing. CSS/JS must be crawlable for Google to render the page.
- 404 pages: return real 404 status, link back to home + sitemap, no soft-404s.
Mistake: zero internal linking, zero analytics → Fix: link with intent, measure everything
Internal links spread authority and tell Google your content hierarchy. Most business sites have ~3 nav links and that's it. Meanwhile they're flying blind without GSC or analytics.
Fix:
- Link from related blog posts to service pages with descriptive anchor text, never "click here."
- Hub-and-spoke: one pillar page links out to 8–12 cluster pages, each links back.
- Fix internal 404s monthly (Screaming Frog, GSC).
- Install Google Search Console and GA4 (or Plausible/Fathom). Track impressions, CTR, average position by query.
- Review GSC weekly: which queries are gaining/losing, which pages are losing impressions, which clicks aren't converting.
Bonus: keyword stuffing or no keywords at all
Both extremes hurt. Keyword stuffing reads as spam and gets demoted. Zero keyword research means you're writing about topics nobody searches for.
Fix:
- Research before writing: Ahrefs, Semrush, or Google Keyword Planner.
- Target one primary keyword per page, 2–3 secondary, plus long-tail variants.
- Use them naturally: in titles, H2s, the first 100 words, URL slug, image alt text.
- Optimize for long-tail (4+ word queries). Lower competition, higher intent.
Not sure which of these mistakes your site is making? Get my free SEO audit. I'll find them all.