If you’ve been doing SEO for six months or more and your rankings have stalled, the cause is almost always one of eight things — and the diagnostic order matters, because some of these are cheap to fix and some require rebuilding work you’ve already paid for. The most common cause is the thing your current agency is least likely to admit: the foundation pages on your site aren’t actually competitive, and no amount of new content or new links will float them.
Here’s the diagnostic I run when a partner calls me convinced their SEO has hit a wall. Eight likely causes, in roughly the order I’d check them. Most stuck sites are stuck for two or three of these reasons simultaneously, which is why a single fix rarely moves things.
1. Technical issues — the site is broken in places you can’t see
Slow load times, broken mobile UX, render-blocking scripts, server response times above 800ms, broken canonical tags, accidental noindex tags on important pages. Each of these is invisible from the front end but Google sees them. How to diagnose: run the site through PageSpeed Insights and Google Search Console’s Page Experience and Coverage reports. If your Core Web Vitals are red on mobile, fix that before anything else. What to do: a single afternoon with a competent WordPress developer usually fixes the bulk of it — caching plugin, image compression, removing unused scripts. If your “agency” never ran this diagnostic, that’s diagnostic in itself.
2. Thin practice pages — the foundation can’t carry the weight
This is the most common cause and the hardest one for agencies to admit, because admitting it means admitting the work they should have done in month one didn’t happen. Your practice pages — the pages you actually need to rank — are too short, too generic, structured for a 2018 search engine, full of legal disclaimers instead of substantive answers, missing trust signals. They’re competing against firms with thoroughly built-out 2,500-word practice pages that actually answer what searchers are asking, and they’re losing.
How to diagnose: open your top three competitors’ practice pages side-by-side with yours. Count words. Read both. Ask which one you’d call if you were the searcher. What to do: rewrite the practice pages. Not “refresh.” Rewrite. This is the single highest-leverage SEO work most firms can do, and it’s the work most agencies skip. More on what a ranking practice page looks like here.
3. Weak review profile — you’re losing the trust signal
Reviews are both a ranking factor and a conversion factor for local searches. If you have 12 Google reviews at 4.6 stars and your top three competitors have 80 to 200 reviews at 4.8, you’re being out-signaled. Google’s local pack pays attention to review count, review velocity, recency, and average rating in some combination, and a thin or stale review profile holds back rankings even when everything else is right.
How to diagnose: Google your top three competitors and look at the Google Business Profile knowledge panels. If they have 3x to 10x your review count, that’s a real problem. What to do: build a real review request process — ethically, within ABA Model Rule 7.1 and your state’s equivalent. More on reviews and reputation for law firms here.
4. You ate a Google update
Google rolls out core updates four or five times a year. Each one reassesses which sites are “helpful” and which are “less helpful.” If your rankings dropped sharply on a specific date and never recovered, you probably got caught in an update. The recent ones (Helpful Content Update through the 2024 and 2025 spam updates) have specifically targeted sites that publish thin AI content, sites with poor authorship signals, and sites with overly aggressive monetization patterns.
How to diagnose: cross-reference your rankings drop against Google’s published update history (Search Engine Land’s update tracker is the most reliable list). If they line up, you have your answer. What to do: remove or rewrite the thin content. Add real authorship signals to the work an actual attorney wrote. Fix on-page quality. Recovery typically takes a full update cycle (3 to 6 months) after fixes.
5. The market got more competitive while you stood still
Your rankings haven’t dropped — but neither have they improved, because two new firms moved into the market or one of the incumbents finally hired a real SEO team. SEO is a relative game. Standing still is going backwards when competitors are investing.
How to diagnose: compare your current SERP for your three most important queries to a screenshot from a year ago, if you have one. Look at who’s new in the top 5. What to do: the SEO needs to escalate to match what the market now requires. That might be 1,500 more words per practice page, three times the review velocity, a real local link strategy. If the agency’s monthly retainer hasn’t been re-scoped to reflect market change, that’s part of the problem.
6. The old playbook backfired
Paid link schemes from five years ago. AI-generated content from two years ago. Aggressive guest posting from someone who didn’t know what they were doing. Each of these used to work and now actively hurts. If a previous agency was buying links from a PBN or running spun content on your site, the chickens come home roost at the next update cycle.
How to diagnose: audit your backlink profile in Ahrefs or Semrush. If 60% of your links are from sites you’ve never heard of with strange domain names and Domain Authority scores in the 10-20 range, you’ve been bought low-quality links. Audit your site for AI-generated content patterns. What to do: disavow the worst backlinks. Remove or rewrite the AI content. Both fixes take time to register with Google.
Stuck rankings are almost never a single problem. They’re three problems stacked on top of each other, and the work is figuring out which one to fix first so the other two become solvable.
7. Cannibalization — multiple pages fighting for the same query
You have a practice page on personal injury. You also have a blog post called “Everything You Need to Know About Personal Injury Law.” You also have a service area page targeting “personal injury Phoenix.” All three are trying to rank for closely related queries. Google can’t tell which one is the canonical answer, so it ranks none of them well.
How to diagnose: in Search Console, look at your query report for your most important keywords. If multiple URLs from your site are getting impressions on the same query and none of them rank well, you have cannibalization. What to do: consolidate. Pick the page you want to rank, redirect the others into it, or rewrite each page to target a distinct query.
8. Site architecture is a mess
The site has accumulated five years of pages, half of them orphaned (no internal links pointing to them), navigation that doesn’t reflect what users or Google care about, a blog category structure that doesn’t match the practice page structure, and breadcrumbs that point to nowhere. This kind of structural mess dilutes topical authority and confuses crawlers.
How to diagnose: run a Screaming Frog crawl. Look at the orphaned pages report. Look at the internal link distribution. What to do: consolidate. Delete pages that aren’t pulling weight, redirect them appropriately, restructure navigation to reflect what the firm actually does. This is usually a 30-day project and one of the more painful but durable fixes.
Where to start
If your rankings have been flat for six months and you don’t know which of these is the cause — that’s the audit. Free 1-page version: I look at your site, your top three competitors, and tell you which of these eight things is the actual problem and what to do about it. How we work is here. Other useful reading: whether SEO can actually bring cases, how many cases SEO realistically brings.