Why "you need both" is a non-answer
Ask most agencies whether to fix technical SEO or write content and you'll get "both, obviously." True in the same way "eat well and sleep well" is true. It doesn't tell you where the next ₹3 lakh goes.
The order matters. Publish 40 articles on a site Google can't crawl properly and you've bought inventory nobody sees. Spend six months on Core Web Vitals for a site with three thin service pages and you've made a fast site that ranks for nothing. You don't need an agency to work out which one you are — Google gives you the diagnostic free, and it takes about 40 minutes.
Test 1 — indexed pages against submitted pages
The cheapest test, and the one people skip. You're checking whether Google actually accepted the pages you told it about.
Open Indexing → Pages and read two numbers: indexed and not indexed. Compare the total against your sitemap's URL count. A 5–10% gap is normal — Google skips duplicates, filtered URLs and pages it judges low value, and it's usually right. A gap over 25% on a site with clean URLs is a signal.
- Note your indexed and not indexed counts, then open the not-indexed list and read the reasons in order of size.
- "Discovered – currently not indexed" at scale means Google found the URL and chose not to fetch it — a crawl-priority problem, usually internal linking, sitemap hygiene, or a site so repetitive Google is rationing attention. See crawl budget.
- "Crawled – currently not indexed" means Google fetched the page, read it, and decided it wasn't worth storing. That's a content quality verdict wearing a technical-sounding label.
- "Duplicate, Google chose a different canonical" points at canonical tags or duplication across your URL parameters. Anything under "Server error (5xx)", "Redirect error", "Blocked by robots.txt" or "Soft 404" is straightforwardly technical — fix those first regardless of what the other two tests say.
Test 2 — impressions against crawl activity
Test 1 tells you whether pages exist in the index. Test 2 tells you whether the ones that exist are doing anything, and whether crawling is the constraint.
Go to Settings → Crawl stats and look at total crawl requests over 90 days. Then go to Performance and look at impressions over the same 90 days. You're comparing the shape of two lines, not their values.
There are three readings, and each points somewhere different.
- Crawl falling, impressions falling. Something changed on the server or in the site structure. Check response times in the same report — if average response time climbed, Google throttled itself. Technical, and urgent.
- Crawl healthy and flat, impressions flat. Google fetches your pages perfectly well and the market ignores them. Crawling isn't your bottleneck. This is content quality or coverage, and no amount of schema will move it.
- Crawl healthy, impressions rising, clicks flat. You're being shown and not chosen. Titles, meta descriptions, intent mismatch — the cheapest fix on this page, and an afternoon's work.
The trap in crawl stats
High crawl volume isn't automatically good. If most of Google's requests land on filtered category URLs, session parameters or paginated archives, you have a crawl problem that looks like crawl health. Sort crawl stats by response — a block of 301s and 404s crawled repeatedly is attention you're paying for in ranking speed.
Test 3 — money keywords with no page at all
This is the test almost nobody runs, and the one that most often returns the real answer.
Take your 20–40 money queries. For each, ask one question: which page on my site is supposed to rank for this? Not which page does — which one is meant to. Write the URL next to the keyword, and leave it blank if there isn't one. Then check yourself in Search Console: filter Performance by that query and see which URL Google is actually showing.
| What you find | What it means | The fix |
|---|---|---|
| No page exists for the query | Coverage gap. This is the most common result on most sites and it is neither a technical nor a quality problem. | Build the page. Nothing else on this list matters until you do. |
| A page exists, gets impressions, sits past position 20 | It isn't competitive — usually thinner, less specific or less current than what ranks. | Rewrite, don't republish. Changing the date and nothing else does nothing. |
| Two or three of your URLs alternate for the query | Keyword cannibalisation. You're competing with yourself. | Consolidate into one page, 301 the rest, fix internal anchors. |
| Google shows a page you never intended | Internal linking and titles are pointing Google at the wrong URL. | On-page and internal linking work. Cheap, fast, frequently ignored. |
Reading the three results as a decision matrix
Now put the three answers side by side. This table tells you where the first rupee goes.
| Test 1: indexation gap | Test 2: crawl vs impressions | Test 3: coverage gap | Diagnosis → where the money goes |
|---|---|---|---|
| Large (>25% unindexed) | Crawl requests flat or falling | Small | Technical. Fix crawl and indexing before you write another word. New pages inherit the same blockage. |
| Small (<10%) | Crawl healthy, impressions flat | Small | Content quality. Your pages are seen and passed over. Rewrite the ten that matter, properly. |
| Small | Impressions rising, clicks flat | Small | Titles and intent match. An afternoon of work. Do this before anything else on the list. |
| Small | Healthy | Large | Coverage. Straight content build. Technical is genuinely not your problem — stop paying for audits. |
| Large | Crawl falling | Large | Everything, but technical first. Otherwise you're publishing into a site Google has already decided to visit less often. |
| Small | Healthy | Small | Neither. Your bottleneck is links, brand or product-market fit. See on-page vs off-page SEO. |
The maintenance floor technical SEO never drops below
Even when the diagnostic says content, technical work doesn't go to zero. It goes to a floor of a few hours a month. Sites that skip the floor are the ones that lose a quarter of their traffic in a replatform and can't say when it happened.
- Monthly: read the Pages report for new not-indexed reasons. A new category appearing is the earliest warning you get.
- Monthly: Core Web Vitals — not for the score, for the direction. A field-data regression usually means a script somebody added without telling you.
- Every release: check staging didn't ship with
noindexstill on. Five seconds, and it has cost Indian sites more traffic than every algorithm update combined. - Quarterly: crawl properly. Redirect chains, orphan pages, broken internal links, and any URL returning a 200 that should return a 404.
- Before any migration: a signed-off URL map before a single DNS change. The audit that catches this costs a fraction of the recovery.
What each side costs, and which to buy first
Rough shape of the spend, so you can sanity-check a quote. Technical work is front-loaded and then drops sharply. Content is level and continuous — a subscription to your own visibility that stops working when you stop paying it.
On a typical Indian retainer, technical takes 20–30% of hours in the first quarter and settles near 10% after. Content runs 40–50% throughout. If a proposal still has technical at 40% of hours in month seven, ask what they're fixing.
We run SEO from ₹75,000/mo, smaller sites from ₹40,000, and we run this exact diagnostic in week one before anyone signs anything. What we won't do is sell a six-month technical programme when your Search Console says coverage. If we can't beat your own frozen 90-day organic lead baseline within 90 days, we keep working free until we do — that's a movement guarantee, not a ranking promise. Nobody can make one of those honestly.