
A website not getting traffic is one of the most common problems that lands in my inbox, and it usually arrives with a theory attached: “we need better SEO”, “the site is too slow”, “we should redesign”. After 12+ years and 500+ WordPress projects I can tell you that the theory is wrong more often than it is right – and that acting on the wrong theory is how businesses spend six months and a real budget fixing something that was never the problem. A site with no traffic is not a mystery. In almost every case I have diagnosed, the cause was one of eight findable things, and most of them can be identified in under an hour with free tools.
This guide is the diagnostic I run before I touch anything on a client’s site. For each of the eight causes you get three things: how to check it in minutes, what the fix actually involves, and a realistic timeline for results – because “we fixed it, where is the traffic” is a conversation that goes much better when expectations were honest from the start. At the end there is a prioritised diagnosis flow you can run top to bottom. Work through it before you buy any SEO package, plugin or redesign, and you will at least know what you are paying to fix.
Table of contents
- Establish the facts first: the 10-minute evidence check
- Cause 1: your site is not indexed at all
- Cause 2: indexed but invisible – no keyword targeting, thin pages
- Cause 3: there is nothing to rank – the content gap
- Cause 4: competition mismatch – chasing terms you cannot win
- Cause 5: technical problems – speed, mobile, Core Web Vitals
- Cause 6: no authority – nobody links to you
- Cause 7: you rank, but for the wrong queries
- Cause 8: your tracking is lying – the traffic exists
- Realistic timelines for each fix
- The prioritised diagnosis flow
- Frequently asked questions
Establish the facts first: the 10-minute evidence check
Before any theory, you need three facts, and they come from two free tools: Google Search Console and your analytics (GA4 or any privacy-friendly alternative). If your site is not connected to Search Console yet, that is your first fix – it takes ten minutes with any SEO plugin or a DNS record, and diagnosing traffic problems without it is guesswork. Search Console shows you what Google actually does with your site; analytics shows you what visitors actually do on it. You need both, because the gap between them is itself diagnostic.
The three questions
- Is the site indexed? Open Search Console’s Pages report (under Indexing) and look at the count of indexed pages. Cross-check with a
site:yourdomain.comsearch in Google. If Google has not indexed your pages, nothing else in SEO matters yet. - Is it getting impressions? Open the Performance report and look at total impressions over the last three months. An impression means your site appeared somewhere in the results for some query – even at position 60. Impressions are the earliest signal that Google considers your pages relevant to anything.
- Is it getting clicks? Same report, clicks column. Then compare that number to sessions from organic search in your analytics for the same period. They will never match exactly, but they should be in the same neighbourhood.
How to read the four patterns
- Not indexed: go straight to cause 1. Nothing else matters until this is fixed.
- Indexed, but almost no impressions: Google knows your pages exist and shows them to nobody. This is a content problem – causes 2, 3 and 4.
- Impressions, but almost no clicks: you appear for queries but too low, or for the wrong ones, or your snippets do not earn the click – causes 4, 7 and sometimes 5.
- Search Console shows clicks, analytics shows nothing: celebrate briefly, then go to cause 8 – your measurement is broken, not your marketing.
Ten minutes with these two reports tells you which third of this guide to read carefully. That is a better return than any audit tool subscription I know of.

Cause 1: your site is not indexed at all
This is the bluntest cause and the most common one on newly launched or recently redesigned sites. If Google has not indexed your pages, you are not in the race – there is no ranking position to improve because you are not on the list. The classic version: a site is built on staging with indexing switched off (correctly), and the switch never gets flipped when it goes live. I have seen sites run for over a year with a leftover noindex, their owners spending money on content the whole time.
How to check in minutes
- Search
site:yourdomain.comin Google. Zero or near-zero results with 30 published pages is your answer. - Search Console’s Pages report lists exactly why pages are not indexed: “Excluded by noindex tag”, “Blocked by robots.txt”, “Discovered – currently not crawled”.
- In WordPress, check Settings > Reading: the “Discourage search engines from indexing this site” checkbox is the single most expensive checkbox in WordPress.
- Check
yourdomain.com/robots.txtfor a blanketDisallow: /– another staging leftover. - Check your SEO plugin’s settings – a noindex can be set globally, per post type or per page, and survive a plugin migration.
The fix and the timeline
Remove the noindex or robots block, make sure an XML sitemap exists (every serious SEO plugin generates one) and submit it in Search Console, then use URL Inspection to request indexing for your most important pages. Recovery is fast by SEO standards: important pages usually return within days, a full site within a few weeks. This cause also hides inside redesigns and domain moves – if your traffic disappeared after a relaunch or migration, work through my guide on migrating a website without losing SEO rankings, because missing redirects and indexing leftovers explain most post-launch traffic collapses.
Cause 2: indexed but invisible – no keyword targeting, thin pages
The most frequent finding on small business sites: everything is indexed, nothing ranks, because no page was ever built to answer a specific search. The homepage title is the business name. The services page is titled “Services” and lists six offerings in six sentences. Google indexes it all and has no idea what any page should rank for, so it ranks them for nothing. Being indexed is attendance; targeting is participation.
How to check in minutes
- Read your title tags – search
site:yourdomain.comand look at the blue links. If they say “Home”, “About”, “Services”, they target nothing. - Ask one question per page: “which search should this page win?” If nobody can answer for a page, that page is invisible by design.
- Check word counts on the pages that matter. A 120-word service page competes against 1,500-word pages that answer pricing, process and proof questions.
- Look at Search Console’s Queries report: if the only queries with impressions are variations of your business name, this cause plus cause 7 is confirmed.
The fix and the timeline
Map one primary topic to each page and rewrite titles, H1s and content around it: “Emergency Plumber in Leeds – 24/7 Call-outs” beats “Services” everywhere it counts. Expand thin money pages so they actually answer what a buyer asks – process, prices, timescales, proof. This matters beyond classic Google too: AI assistants and AI-generated answers pull from pages that state things clearly and answer specific questions, which is why the same rewrite improves both – I cover that side in my guide to AI search optimisation. Timeline: retitled and rewritten pages typically show movement in impressions within two to six weeks, with click growth following over two to three months.
Cause 3: there is nothing to rank – the content gap
This is the conversation nobody enjoys, so I will have it here. A five-page brochure site – Home, About, Services, Gallery, Contact – gives Google five chances to show you to anyone, and four of those pages target nothing (see cause 2). Meanwhile a competitor with sixty indexed pages answering real customer questions has sixty chances, and their pages reference and strengthen each other. The arithmetic is not subtle. When someone with a brochure site asks me why the competitor “with a worse website” outranks them, the answer is usually that the competitor’s site has more to say.
How to check in minutes
- Count your indexed pages in Search Console, then run
site:competitor.comfor the two competitors who dominate your searches. If they have ten times your page count, you have found a cause. - List the last ten questions customers actually asked you – by phone, by email, in meetings. Now check whether any page on your site answers any of them. Usually: none.
The fix and the timeline
A content plan built from customer questions, not from keyword-tool fantasies. One properly built page per service (not six services on one page), and then consistent answering content: the questions people ask before they buy, comparisons, prices, “how long does X take”, “X vs Y”. Two to four solid pieces a month beats a one-time batch of twenty, because consistency compounds and batches stall. Quality bars matter: a 300-word post written to exist does nothing; a 1,500-word page that genuinely answers a question can rank for dozens of long-tail queries. Timeline: this is the slowest cause to fix and the most valuable – expect first meaningful traffic in three to six months and compounding growth after that. There is no honest shortcut here, which is exactly why it works: most of your competitors will not do it.
Cause 4: competition mismatch – chasing terms you cannot win
Some sites do everything reasonably and still see nothing, because every page targets a head term the site cannot win. “Insurance”, “web design”, “fitness” – page one for these belongs to national brands, aggregators and sites with decades of authority. Targeting them from a two-year-old domain is not ambition, it is a rounding error. Your pages get impressions at position 55, which is the same as invisibility with extra steps.
How to check in minutes
- Search your main target term in a private window and look at who holds page one. If it is national brands, directories and Wikipedia, you are in the wrong race.
- Check your average position for your dream queries in Search Console. Positions 40-90 with steady impressions and zero clicks is the signature of this cause.
The fix and the timeline
Redirect the same effort at queries you can win: longer, more specific, closer to a real buying situation. “Accountant for freelance designers in Manchester” instead of “accountant”. “WooCommerce B2B price lists” instead of “ecommerce”. Location-modified and question-form queries have a fraction of the volume and a multiple of the intent – fifty visits a month from people who want exactly what you sell beats a thousand from people who do not. Timeline: long-tail targeting is the fastest content lever there is; well-targeted pages against weak competition can rank in two to eight weeks. Win a portfolio of small terms first; the head terms become reachable later, after cause 6 improves.
Cause 5: technical problems – speed, mobile, Core Web Vitals
I earn part of my living fixing slow WordPress sites, so trust me when I say this honestly: technical problems are rarely the sole reason a site has no traffic, but they are a brake on every other fix. A site that takes eight seconds on mobile loses visitors before the page paints, converts worse, and gives Google a quality signal that suppresses rankings you would otherwise earn. And in the rarer severe cases – pages that time out for the crawler, mobile layouts that hide the content, render-blocking chaos – technical state does become the primary cause.
How to check in minutes
- Run PageSpeed Insights on your homepage and your most important service page. Look at the mobile score and the Core Web Vitals assessment, not just the desktop number.
- Open Search Console’s Core Web Vitals report – it shows how real visitors experience the site, grouped by page type.
- Load your own site on a phone over mobile data, not office Wi-Fi. Thirty seconds of honesty.
The fix and the timeline
The usual WordPress suspects: oversized images, too many plugins loading assets everywhere, cheap hosting, no caching, a theme that ships five sliders you do not use. The full checklist is in my Core Web Vitals guide for LCP, INP and CLS, and if you would rather hand it over, this is exactly what my WordPress speed optimisation service does – most sites reach a 90+ mobile score within days. Timeline: the fix itself is days; the ranking effect, where there is one, follows over four to eight weeks as Google re-measures field data. Expect speed work to amplify a site that has content worth ranking – and to do nothing for a site that fails causes 2 and 3.
Cause 6: no authority – nobody links to you
Links from other websites remain one of the strongest signals Google uses to decide who to trust, and a new or unpromoted domain typically has almost none. This cause explains the frustrating pattern where your page is genuinely better than the one ranking above it: their domain has been cited by other sites for years, yours has not. Authority is not a verdict on your quality – it is a measure of your visibility to date, and it starts at zero for everyone.
How to check in minutes
- Open Search Console’s Links report – top linked pages and top linking sites. Single digits from directories and your web designer’s footer means this cause applies.
- Check a free backlink checker (most SEO tool vendors offer one) for your domain and your strongest competitor. The gap is usually educational.
The fix and the timeline
Ignore anyone selling you links – bought link packages range from useless to harmful. Realistic link earning for a small business looks unglamorous: your trade association and chamber of commerce, suppliers and partners who list who they work with, local press for genuinely newsworthy things, industry directories that real people use, a guest article where your expertise fits, and – the honest engine – content worth citing, which is cause 3 again wearing a different hat. A handful of relevant links from real sites in your industry outweighs hundreds of junk directory entries. Timeline: the slowest lever of all – think in quarters, not weeks. Which is why it is last in the fix order and why you should never start here.
Cause 7: you rank, but for the wrong queries
A subtle one that hides behind healthy-looking dashboards. The site gets some traffic, so nothing seems broken – but open the Queries report and every click comes from your business name. People who already know you are finding you; nobody who does not know you ever will. Brand traffic is navigation, not acquisition. A variant of the same cause: ranking for queries that sound related but carry no buying intent – a plumber ranking for “how to fix a dripping tap yourself” gets readers, not callers, unless those pages deliberately route visitors towards the service.
How to check in minutes
- Filter the Queries report to exclude your brand name (Search Console lets you filter queries not containing a term). What remains is your real search visibility – often a shockingly short list.
- Look at which pages earn the non-brand clicks. If it is only blog posts and never service pages, intent is leaking.
- Check impressions with high positions but no clicks: if you rank 6-10 for good queries and get nothing, your titles and descriptions are not earning the click against the results around them.
The fix and the timeline
Service pages that name the service and the problem in the language buyers use, not internal jargon (“boiler repair” beats “heating solutions”). Informational posts that link clearly to the relevant service with a next step. And for the high-position-no-clicks pattern: rewrite titles and meta descriptions as an offer to the searcher rather than a label – include the differentiator, the place, the number. Timeline: title and snippet changes can move click-through within two to four weeks; building non-brand visibility from nothing follows the content timelines of causes 2 and 3.
Cause 8: your tracking is lying – the traffic exists
The cheerful cause. Several times a year someone comes to me with “traffic dropped to zero” and the truth is that visitors kept arriving the whole time – only the measurement died. Analytics tags get lost in redesigns, consent banners get configured to block analytics for everyone regardless of what the visitor chooses, a plugin update removes the tracking snippet, GA4 properties get mixed up, or an aggressive filter excludes far more than office IPs. Traffic that is not counted looks identical to traffic that does not exist – on the dashboard.
How to check in minutes
- Compare Search Console clicks to analytics organic sessions for the same 28 days. Clicks in the hundreds with sessions near zero means measurement is broken, not marketing.
- Open your site on your phone (not on office Wi-Fi), then watch the analytics realtime report. If your own visit never appears, the tag is missing or blocked.
- View the page source and search for your measurement ID. After a theme change or plugin cleanup, it is often simply gone.
- Test the consent banner: accept everything on a clean browser and check whether analytics fires. Misconfigured consent tools silently block all tracking – and ad blockers thin the numbers for everyone, which is one reason server-side stats and privacy-friendly analytics often report more than GA4.
The fix and the timeline
Reinstall or repair the tag (a plugin or a child-theme snippet, not a random header hack), configure consent mode properly, verify in realtime, and note the date so you do not misread the “recovery” as growth. Timeline: immediate – this is the only cause where the traffic was there all along. It goes first in the diagnosis flow for exactly that reason: every other conclusion depends on the numbers being real.
Realistic timelines for each fix
Expectations break more SEO projects than algorithms do, so here is the honest table. “Fix effort” is the work itself; “results visible” is when you should see movement in Search Console – and if a deadline-free view is what you were missing, this table is the part of the post to bookmark.
| Cause | Diagnosis takes | Fix effort | Results visible |
|---|---|---|---|
| 1. Not indexed | 5 minutes | Hours | Days to a few weeks |
| 2. No keyword targeting | 30 minutes | Days per page | 2-6 weeks |
| 3. Content gap | 30 minutes | Ongoing, monthly | 3-6 months, compounding |
| 4. Competition mismatch | 15 minutes | Days per page | 2-8 weeks on long-tail |
| 5. Technical / speed | 15 minutes | Days | 4-8 weeks |
| 6. No authority | 15 minutes | Ongoing, quarterly | 3-12 months |
| 7. Wrong queries | 20 minutes | Days | 2-4 weeks (snippets) |
| 8. Broken tracking | 10 minutes | Hours | Immediate |
Notice the shape: everything can be diagnosed inside an hour, the mechanical fixes take days, and the two levers that build lasting traffic – content and authority – are measured in months. Any proposal that promises otherwise is describing a different universe.
The prioritised diagnosis flow
Run the checks in this order, and stop at the first one that fails – the order is built so that cheap, binary checks come before expensive, gradual ones, and so that no fix is attempted on top of a broken assumption.
- Verify the tracking (cause 8). Compare Search Console clicks with analytics sessions and run the realtime test. Until the numbers are trustworthy, nothing else is.
- Verify indexing (cause 1). Pages report plus
site:search. If pages are excluded, fix that and only that, then wait for re-indexing before judging anything else. - Read the impressions (causes 2, 3, 4). Near-zero impressions with healthy indexing means a content problem: check targeting first (are the titles trying to win anything?), then volume (is there enough to rank?), then realism (are you chasing head terms?). Most sites fail two of these three at once.
- Read the queries (cause 7). Filter out your brand name and see what is left. Decide whether you are visible to strangers or only to people who already know you.
- Read the clicks (cause 7 again, plus 4). Decent positions with no clicks points at titles and snippets; positions beyond 30 everywhere points back at content and competition.
- Check the technical layer (cause 5). PageSpeed Insights and the Core Web Vitals report. Fix what is genuinely broken; do not expect speed alone to conjure traffic onto thin pages.
- Assess authority last (cause 6). If everything above is healthy and rankings still stall below better-established competitors, links are the remaining gap – and the slowest, steadiest work begins.
Two habits make the flow work in practice. First, change one thing at a time where you can: if you fix a noindex, rewrite ten titles and install a caching plugin in the same week, you will never know what worked. Second, write down the date of every fix – Search Console’s date comparison is your before-and-after evidence, and it keeps the project honest. Diagnosis, in my experience, is the difference between three months of focused work that produces traffic and a year of scattered work that produces invoices.

Want a diagnosis instead of a guess?
I run exactly this diagnostic for clients – Search Console evidence first, then the fix, with honest timelines and a fixed quote within 24 hours. Whether the answer turns out to be a technical repair, retargeted pages or a rebuilt site that finally has something to rank, my custom WordPress development service covers it. See the portfolio for the kind of work I deliver, or send me your domain – I reply within 24 hours.
Frequently asked questions
Why is my website not getting traffic?
Almost always one of eight findable causes: not indexed, no keyword targeting, too little content, unrealistic competition, technical problems, no authority, ranking only for your brand name, or broken tracking. Search Console and analytics reveal which within an hour.
How do I check if my website is indexed by Google?
Search site:yourdomain.com in Google and open the Pages report in Search Console. The report also tells you why any page is excluded – noindex tags and robots.txt blocks are the usual culprits.
How long does it take to get traffic after fixing SEO issues?
Indexing and tracking fixes show results in days; retitled pages and snippet rewrites in two to six weeks; new content in three to six months; authority building in quarters. Anyone promising page one in a fortnight is selling something else.
Do I need paid SEO tools to diagnose a traffic problem?
No. Google Search Console, PageSpeed Insights and your analytics – all free – cover the entire eight-cause diagnostic. Paid tools help later with keyword and competitor research, not with the diagnosis itself.
Can a slow website be the reason it gets no traffic?
Rarely the only reason, but often a brake: poor Core Web Vitals suppress rankings you would otherwise earn and lose the visitors who do click. Fix speed alongside content, not instead of it.
How much content does a website need to get traffic?
More than five brochure pages. One properly targeted page per service plus consistent question-answering content – two to four solid pieces a month – is the pattern that compounds. Depth per page beats page count for its own sake.
Why does Search Console show clicks but my analytics shows no visitors?
Your tracking is broken: a lost tag after a redesign, a misconfigured consent banner, or a wrong property. The visitors are real – repair the measurement and they reappear immediately.