TL;DR: Twelve causes ordered by how often they are the actual problem in our audits. The top three: the site targets the wrong queries or no queries (most common), the site is too new (3–6 months minimum, sometimes 12), and the site has no content depth (one thin page per service). After that: missing schema, slow Core Web Vitals, weak internal linking, no inbound links, indexing blocked or canonicals broken, duplicate content, geo signals missing for local search, page experience signals (CLS, INP), and brand demand is too low. Most SEO consultants diagnose at #6 or #7 because that is where they have things to sell. The fix is usually #1, #2, or #3.
When a small business site doesn't rank, it's almost always one of the same twelve things. Most "SEO consultant" engagements diagnose at #6 or #7 because that's where the consultant has interesting things to sell. The actual cause is usually #1, #2, or #3.
Here are the causes, ordered by how often they're the real problem in our audits.
1. The site is targeting the wrong queries (or no queries)
The most common cause. The homepage targets "we build websites" or "modern web design," which nobody searches for. Service pages target the company's internal language, not the buyer's search language.
Diagnostic: Open Google Search Console, look at the queries your site already shows up for. Compare to what you'd expect. If the queries are random brand-related or category-irrelevant, you don't have a content strategy yet.
Fix: Pick 5–15 specific queries your buyer actually searches. Each one gets a page. The page targets the query in the H1, the meta description, the first 200 words, and a couple H2s. Not stuffing — natural inclusion.
2. The site is too new
Google takes 3–6 months to rank a brand new site for anything competitive. Some studies say up to a year. There's no bypassing this short of buying an aged domain.
Diagnostic: Check your domain age. Under 6 months: too early to expect rankings. 6–12 months: ranking is starting. Over 12 months: the lack of rankings is structural.
Fix: Patience for newer sites. Backlink building and consistent content publishing accelerate the clock but don't skip it.
3. The site is hopelessly slow on mobile
Google's mobile-first indexing means the mobile version is what gets ranked. A site that hits Lighthouse 60 on mobile is competing on hard mode against sites that hit 95.
Diagnostic: Run your site at PageSpeed Insights. If LCP is over 2.5s on mobile, this is meaningfully holding back rankings.
Fix: Image compression. Remove unused JavaScript. Audit third-party scripts. If you're on WordPress with 22 plugins, this is structural and may need a rebuild.
4. The pages are too thin
A 200-word service page can't rank against competitors' 1,500-word service pages. Not because Google has a word count requirement, but because thin pages don't actually answer the search intent.
Diagnostic: For your top 3 target queries, look at the top 5 ranking pages. Compare to yours. If theirs are 3x your length and yours doesn't have unique insight or proof, that's the gap.
Fix: Write to actually answer the query. Don't pad. Length should follow content, not lead it.
5. No internal linking strategy
A site where every page is one click from the homepage but pages don't link to each other doesn't pass authority well. Google reads the link graph and decides which pages are most important.
Diagnostic: Pick a service page. Count how many other pages on your site link to it (excluding nav and footer). Under 3 internal links is thin.
Fix: Every blog post should link to 2–3 related posts and 1–2 service pages. Every service page should link to relevant case studies and blog posts. The hub-and-spoke pattern.
6. No backlinks from anywhere
If no other site links to yours, Google has no external signal for your authority. Backlinks aren't the only signal but they're a meaningful one.
Diagnostic: Check your backlink count on Ahrefs (free trial), Moz, or even Search Console. Under 10 referring domains for a 12-month-old site is thin.
Fix: Earn links by being citable. Original data, opinionated takes, useful tools. Buying links is risk that's not worth the reward.
7. The technical SEO has problems
Robots.txt blocking pages you want indexed. A noindex tag accidentally on a key page. Broken canonical tags. Sitemap missing pages.
Diagnostic: Run the site through Search Console's URL Inspection tool for your top 5 pages. Check the "Coverage" report for crawl errors.
Fix: These are usually 30-minute fixes once identified. Most CMS templates handle the basics, but custom builds sometimes have subtle issues.
8. Duplicate content
Multiple pages targeting the same query, or content copied (intentionally or via a CMS bug) across multiple URLs.
Diagnostic: Search "site:yourdomain.com" on Google. If you see the same content on 5 different URLs, you have a duplicate problem. Check for trailing-slash variants and protocol variants too.
Fix: Canonical tags. 301 redirects. Pick the URL that should rank and consolidate the rest into it.
9. The content is AI-paraphrased and obviously is
Google's 2024 helpful content updates penalize content that's clearly AI-generated paraphrasing of what's already on the SERP. Pages that sound like they were written by ChatGPT and have no original specifics rank worse than they used to.
Diagnostic: Read your blog posts out loud. If they sound like every other blog post on the topic, with no original numbers, examples, or opinions, they're at risk.
Fix: Inject original data, named examples, contrarian opinions. AI as a drafting tool is fine. AI as the writer is not.
10. Your site is competing in a query you can't win
If you're a 6-month-old studio targeting "best web design agency 2026," you're competing against high-DR sites with years of backlinks. Some queries are structurally not winnable for new sites.
Diagnostic: Check the domain authority of the top 10 ranking pages. If they're all DR 60+, you're playing on the wrong field.
Fix: Pick narrower queries. "Best web design agency 2026" is unwinnable. "Best web design agency for SaaS startups in Austin" is winnable. Specificity is leverage.
11. The page exists but Google hasn't indexed it
Less common than the others, but real. Sometimes Google just hasn't crawled the page yet.
Diagnostic: In Search Console, use "URL Inspection" on the missing page. If it says "URL is not on Google," request indexing.
Fix: Wait 1–4 weeks. Check sitemap.xml. Add internal links pointing to the page from already-indexed pages.
12. You're checking the wrong rank
Google personalizes search heavily. The result you see when you search "[your service] near me" isn't what your potential customer sees. The result you see while logged into Google is different from incognito.
Diagnostic: Check your rank from incognito mode, on a different IP if possible. Or use Search Console's average position metric, which is closer to truth than self-checking.
Fix: Stop checking your own rank in regular browsing. Use Search Console as the source of truth.
How to actually diagnose this for your site
Five steps in order.
- Search Console first. What queries does your site already show up for? What's the average position? Where are the impression-to-click gaps?
- PageSpeed Insights. Run the homepage and 2–3 internal pages. LCP under 2.5s on mobile or it's structural.
- Top 5 ranking pages for your target query. What length, what proof, what backlinks. Honest comparison.
- Internal linking audit. Pick a key page. Count internal links to it. Build more if needed.
- A 30-day test. Pick the top hypothesis. Make the fix. Wait 30 days. Did rankings move?
If you want a 30-minute SEO audit (Search Console interpretation, top 3 fixes ranked by leverage), send us the URL and Search Console access (or a screen recording of the relevant tabs). We reply within two days.