We create digital solutions that work for businesses
The site is built, the copy is written, the pages are indexed — and there is no traffic. This is the most common situation people bring us after trying SEO themselves, or after working with a contractor who “was doing something, but the result is not visible”.
The good news: there is almost always a specific cause, and it can be found in an hour. Below are fifteen reasons in the order we check client sites ourselves: from the simplest and costliest to the subtler ones. Each includes how to check it and what to do.
Before hunting for mistakes, establish two things — they decide whether there is a problem at all.
How old are your domain and your content? If the site is three months old, the absence of traffic is not a fault but a normal stage. Google needs 3–6 months to start trusting a new domain and 8–12 for positions to stabilise. Half of all “my site is not growing” cases are really “my site has not had time to grow yet”.
What does the Performance report in Search Console show? Look at the number of unique queries with impressions. If there are dozens or hundreds, the site is growing — you are simply not in the top ten yet. If there are no impressions at all, the problem is technical, and it is among the first five points below.
Open yoursite.com/robots.txt. If it contains Disallow: / with no qualifiers, the site is closed to crawling entirely. This is the costliest mistake in SEO, and it happens regularly: a developer blocked the staging domain and forgot to open it after the move.
The fix is instant — remove the line. But recovering positions takes several weeks while Google re-crawls the pages.
Check separately that important sections are not blocked by accident. A frequent e-commerce mistake is closing /catalog/ entirely while trying to keep filter pages out of the index. The result is that the whole catalogue disappears from search. Filters should be blocked by parameter, not by section.
This is sneakier than the previous one, because robots.txt looks fine. Open the page source (Ctrl+U) and search for noindex. If the meta tag is there, the page will never enter search, no matter how many links point to it.
Most often noindex survives in the template after development, or comes from a CMS setting: WordPress has a “Discourage search engines from indexing this site” checkbox that gets switched on during development and forgotten.
It is worth understanding the difference between the two tools, because they are constantly confused. robots.txt controls crawling: the bot does not visit the page. The noindex meta tag controls indexing: the bot visits, reads and does not add it to search. If you want a page out of the results you need noindex, and the page must stay crawlable — otherwise the bot never sees your instruction.
Search for site:yoursite.com. If the result count is far below your actual page count, dig into Search Console → Page indexing. It gives a reason for each URL: discovered but not indexed; crawled but not indexed; duplicate without a canonical; page with redirect.
“Crawled — currently not indexed” usually means Google considers the page insufficiently valuable: too short, too similar to others, or without unique substance.
If a page carries a rel="canonical" pointing at another URL, Google treats it as a copy and keeps it out of results. Check the source: the canonical should point to itself.
A typical breakage is every page on the site canonicalising to the homepage. That usually follows a botched SEO plugin configuration.
sitemap.xml belongs in the root, should contain only canonical URLs and must be submitted in Search Console. Frequent errors: noindex URLs inside the sitemap, old 404 pages, addresses with the wrong protocol (http instead of https) or with www when the site runs without it.
This is the most typical cause when everything is technically fine. We see the same picture constantly: 100% indexing, perfect meta tags, decent content — and no growth, because Google has no grounds to consider the site authoritative.
Links are votes. A site with no votes competes only with other sites that have none. Start simple: industry directories, mentions in client case studies, guest articles, local listings. Five quality mentions do more than a hundred purchased ones.
How to check whether anyone links to you: search for your company name and see whether you are mentioned anywhere besides your own site and social profiles. If the results contain only your own pages, there are no external signals at all.
And a note on what not to do: bulk link buying, mass placements in other sites’ footers, industrial-scale reciprocal swaps. These do not speed anything up; they create the risk of a penalty that takes longer to recover from than growing honestly would have taken.
“Website development” is a term fought over by agencies with a decade of history and hundreds of links. A new site will not appear there in six months, or in a year.
Check which queries you are actually targeting. If they are all two-word head terms, the strategy is wrong. Enter through refined queries: not “online store”, but “turnkey online store for children’s clothing”. Less traffic, but reachable and closer to a purchase.
A simple test: open the results for your target query and see who is there. If it is aggregators, marketplaces and ten-year-old companies, pick a different query. If it is sites of a similar size to yours, the task is realistic.
Cannibalisation: several of your pages target one intent, Google cannot tell which to show, and shows none of them properly.
How to check: filter one query in Search Console and look at the Pages tab. If different URLs take turns and none holds a position, that is it. The fix is to merge them into one strong page and 301-redirect the rest.
Length guarantees nothing by itself, but in competitive topics a 400-word page loses to a 2,500-word one simply because it answers fewer of the reader’s questions.
The symptom: in the Performance report a page has impressions but zero clicks. That means Google sees you there but places you on page three to eight. Such pages are the cheapest reserve you have: strengthening an existing page is easier than entering a new topic.
What to do with such a page specifically: look at the top three results for that query and list the subtopics they cover and you do not. Usually it turns out competitors answer five adjacent questions while you offer only a general description. Add those sections, refresh the date, and check the average position again a few weeks later.
Paragraphs stuffed with keywords stopped working long ago, and they repel readers. If your text contains awkward strings like “website development Kyiv cheap order”, it hurts rather than helps.
A simple benchmark: read the text aloud. If it sounds like human speech, good. If it sounds like a list of queries, rewrite it.
The same applies to text generated in bulk without understanding the business. Google does not punish the use of AI as a tool, but a page that adds nothing new to what already ranks has no reason to rank. Value comes from your numbers, your case studies and your experience — the things nobody else has.
A common setup: the site has a homepage, About, Contacts and a blog — but no pages for specific services. There is then nothing to promote: the query “order a landing page” needs a page about landing pages, with a price and a form, not a paragraph on a general services page.
The check takes five minutes: list the services that actually earn you money and find a dedicated page for each. If half of them have none, that is why you do not appear for those queries. A blog does not rescue this: an informational article will not rank for a commercial query, because the intent is different.
Speed is not the main ranking factor, but it shapes behaviour. If a page takes five seconds to load, people return to the results, and Google notices.
Check the basics: is gzip or brotli compression on, are images in webp, are scripts in <head> blocking rendering. And open the site on a phone — Google evaluates the mobile version.
Twenty pages where only the city name changes are doorway pages. They do not rank, and they drag down the quality assessment of the whole site.
Check your location pages: how much genuinely unique text is on them? If it is two or three sentences with the rest boilerplate, it is better to keep five real pages with local case studies and prices and put the rest behind noindex.
For a local business this is half the result. Map cards often produce more enquiries than organic listings, and getting in is easier.
The minimum: a fully completed profile, the correct category, photos, opening hours and 15–20 genuine reviews. Four reviews count for almost nothing in local results.
Sometimes a site is growing and the owner cannot see it, because they check positions manually from their own browser. Results are personalised: your position, a customer’s position in another city, and the “average” position are three different numbers.
Watch the sequence instead: pages indexed → queries with impressions → average position → clicks → enquiries. If the first two are rising, the machine is working; you simply have not reached clicks yet.
Once you fix something, do not expect a change by morning. Google has to re-crawl the pages, re-evaluate them and update the results. Rough timelines:
Disallow — first pages return within 3–14 days, the full index recovers over several weeks.To speed up re-crawling, submit the changed URLs through the URL inspection tool in Search Console. It is no guarantee, but it usually helps.
Disallow: /.noindex, canonical points to itself.site:yoursite.com and compare the count with reality.Of these fifteen points, three usually turn out to be the culprits: a young domain, no links, and thin content on commercial pages. The rest are technical faults that occur less often but cost the most.
If the cause is still not obvious after checking, get in touch. We will look at your site and tell you exactly what is holding growth back. For the full sequence of actions, see our guide on how to get to the top of Google.
Let’s create something amazing together Leave your number — we will call you back within 15 minutes during working hours.
We will call you back shortly.