How Long Does SEO Take to Work? Measure It Yourself

Google publishes a page about hiring someone to do your SEO. It was last updated on 5 June 2026. It tells you what to ask, what to be suspicious of, and what a legitimate audit looks like.
Search it for the word "month" and you get zero hits. "Week" gets zero. The only timing word on the entire page is inside a question Google suggests you ask a vendor: "What kind of results do you expect to see, and in what timeframe? How do you measure your success?"
That is the actual state of the evidence. The company that runs the index declines to publish a number, and puts the burden of producing one on whoever is asking for your money.
Meanwhile the ten results ranking for this question today will tell you three to six months, or six to twelve, or six to twelve with an asterisk. Those numbers are averages of other people's sites, collected by people selling the service being timed. None of them can see your domain, your crawl rate, or your queue of pages waiting to be indexed.
This article does something different. It gives you the four events in the path from publishing to a paying visit that are actually datable, the two API calls that date them on your own property, and the measurement traps that make a working strategy look broken. By the end you will have a lead time measured on your site instead of an estimate borrowed from someone else's.
What the search results for this question actually look like
We pulled the live results for "how long does seo take to work" in the United States on 11 September 2026, through Ahrefs rather than a browser, so that the ranking data is real rather than personalised.
The first thing on the page is not a website. It is an AI Overview carrying eleven source links, and the first source it cites is a Reddit thread from r/SEO. Search Engine Land, Orbit Media, Squarespace, Shopify, OuterBox and SEO.com follow it.
Below the overview, four of the eight organic slots are discussions: two more Reddit threads, a Quora page, and a LinkedIn post whose entire argument is that the six to twelve month figure is wrong.
The number two organic result is worth pausing on. It is Shopify's guide, served from its Philippines country path, with two backlinks pointing at it. A duplicate country path with two links outranks most of the industry on a query the industry has been answering for fifteen years.
Read that page the way we tell customers to read their own: nobody owns this query. Google is filling half the slots with people arguing in public because no published page answers the question in a way that settles it. That is what an unowned SERP looks like, and it is the reason this article exists.
Why "six to twelve months" is an average of other people's sites
The consensus figure is not invented. It is a rough summary of what agencies observe across portfolios of client sites. The problem is what happens to an average when you apply it to one site.
An agency portfolio mixes domains with fifteen years of history and domains registered last month, competitive commercial queries and unclaimed long tails, sites with a thousand referring domains and sites with two. The mean of that distribution describes none of its members.
Worse, the figure is usually quoted with the causality reversed. "SEO takes six months" sounds like a property of search. What is actually being measured is the time an agency needs to publish enough pages, fix enough technical debt, and earn enough links, at the pace its retainer pays for. Change the pace and the number changes.
The honest version of the claim is narrower. Given a site of a certain authority, a page of a certain quality, and a query with a certain level of competition, it takes some number of weeks for Google to crawl, index, and settle on a position. Three of those four terms are things you can measure on your own property today. Only one is a guess.
And the outcome is never assured. Google's own Search Essentials, updated 10 December 2025, states plainly: "just because a page meets all of these requirements and best practices, doesn't mean that Google will crawl, index, or serve its content." No one can guarantee a ranking or a date, this article included. What follows is a measurement method, not a forecast.
The four events you can actually date
Between hitting publish and receiving a customer, there are four discrete events. Each one has a timestamp that Google will hand you. The interval between them is your lead time, and it is a property of your site, not of the industry.
| Event | What it means | Where the timestamp lives |
|---|---|---|
| Crawl | Googlebot fetched the URL | lastCrawlTime, URL Inspection API |
| Index | The URL is eligible to be served | verdict and coverageState, same call |
| First impression | The URL appeared in a result page | Search Console Performance, filtered to that page |
| First click | Someone chose it | Same report, clicks column |
The reason this decomposition matters is that failure at each gate has a completely different cause and a completely different fix.
A page that was never crawled has a discovery or a budget problem: it is not in a sitemap, nothing links to it, or your server is slow enough that Google is rationing requests.
A page crawled but not indexed has a quality or a duplication problem, and the API will usually say which, which is the diagnosis walked through in why your website is not showing up on Google. A page indexed with zero impressions has a targeting problem: it is eligible, and no query it matches is one anybody searches.
A page with impressions and no clicks has a title and description problem, which is the one failure on this list you can fix in ten minutes.
"SEO is taking too long" is never a useful diagnosis, because those four sentences call for four unrelated actions. The timeline question is really a question about which gate you are stuck at.
Date the first two gates with the URL Inspection API
The URL Inspection API returns Google's own record of what it did with a URL. The endpoint is a POST to https://searchconsole.googleapis.com/v1/urlInspection/index:inspect, and it takes the URL you care about plus the Search Console property that owns it.
curl -s -X POST \
'https://searchconsole.googleapis.com/v1/urlInspection/index:inspect' \
-H "Authorization: Bearer $GSC_TOKEN" \
-H 'Content-Type: application/json' \
-d '{
"inspectionUrl": "https://example.com/blog/your-new-post",
"siteUrl": "sc-domain:example.com"
}' | jq '.inspectionResult.indexStatusResult |
{verdict, coverageState, lastCrawlTime, googleCanonical, indexingState, robotsTxtState}'
Four fields in that response carry the whole diagnosis, and Google's reference documents each of them precisely.
lastCrawlTime is the "Last time this URL was crawled by Google using the primary crawler", and the documentation adds that it is "Absent if the URL was never crawled successfully". An absent field is not a slow crawl. It is a URL Google has never successfully fetched, which is a different problem with a different fix.
verdict is an enum, and its values are documented as equivalents of the Search Console labels: PASS is "Valid", FAIL is "Error", and NEUTRAL is "Excluded". A NEUTRAL verdict is the one people misread most often. Excluded is a decision, not a queue position.
coverageState is the sentence explaining that decision, and googleCanonical is "The URL of the page that Google selected as canonical", which the reference notes is "absent" when the page was not indexed. When it is present and differs from your URL, your page is not waiting on anything. It was folded into another one.
The quota is documented at 2000 queries per day and 600 per minute per property. That is enough to inspect every URL on a small site daily, which turns this endpoint into a monitor rather than a spot check. Store the result each morning and the date a page crossed each gate becomes a fact in your own database instead of an estimate.
Date the last two gates with the Search Analytics API
Impressions and clicks come from a POST to https://www.googleapis.com/webmasters/v3/sites/{siteUrl}/searchAnalytics/query. Grouping by date and filtering to one page gives you the exact day a URL first appeared in results.
curl -s -X POST \
"https://www.googleapis.com/webmasters/v3/sites/sc-domain%3Aexample.com/searchAnalytics/query" \
-H "Authorization: Bearer $GSC_TOKEN" \
-H 'Content-Type: application/json' \
-d '{
"startDate": "2026-06-01",
"endDate": "2026-09-11",
"dimensions": ["date"],
"dimensionFilterGroups": [{
"filters": [{
"dimension": "page",
"operator": "equals",
"expression": "https://example.com/blog/your-new-post"
}]
}],
"dataState": "all",
"rowLimit": 200
}' | jq '[.rows[] | select(.impressions > 0)][0]'
That last jq expression returns the first day the page was seen by anybody. Subtract lastCrawlTime from it and you have the crawl-to-impression interval for one page on your site. Run it over twenty pages and you have a distribution, which is what you wanted when you asked how long SEO takes.
Two parameters in that payload matter more than they look. dataState: "all" is documented as including fresh data, where the default "final" returns only finalised rows. If you are trying to spot the first impression of a page published this week, the default will hide it from you. There is also a "hourly_all" value that returns an hourly breakdown with partial data.
The quota here is 1200 queries per minute per site, so the loop over your URLs is not the constraint. Your patience is.
The measurement traps that make a working strategy look broken
Most of the panic about SEO timelines comes from misreading the instrument rather than from the strategy failing. Four traps account for nearly all of it.
Data is two days old by design. Google states that "Search Console data is available in Search Console and in Analytics 48 hours after it is collected by Search Console." The final days of any chart are also preliminary and will move. Comparing this week to last week on a Monday compares a settled number to an unsettled one.
Average position is not your position. The Performance report defines it as "The average position of the topmost result from your site". If two of your pages surface for the same query, the better one is the only one counted, and the other becomes invisible in the chart while quietly collecting impressions.
The chart and the table do not aggregate the same way. Google's documentation is explicit: data grouped by queries, countries, devices or dates is "aggregated by property", while data grouped by pages or search appearance is "aggregated by page". Query numbers and page numbers will not reconcile, and that is correct behaviour rather than a bug.
Your history stops at sixteen months. Search Console keeps data for the last 16 months. If you want to compare this autumn to the autumn two years ago, the comparison does not exist unless you were exporting all along. Start the export before you need it.
There is a fifth trap outside Search Console. The Crawl Stats report covers a rolling 90 days, counts each redirect in a chain as a separate request, and excludes client-side redirects entirely. A site that routes through JavaScript navigation will look under-crawled in a way that has nothing to do with its content. We went through the Next.js side of that in Next.js SEO.
What moves the clock, and what does not
Once you are measuring your own intervals, the levers separate cleanly into the ones that change a date and the ones that change a position. They are not the same lever, and confusing them wastes months.
Discovery is the cheapest interval to shorten and the one most often left broken. A URL that is in your sitemap and linked from a page Google already crawls frequently gets fetched sooner than an orphan. Internal linking is not a ranking trick here, it is a routing decision, and we covered how to audit yours in SEO content audit.
Server response time changes crawl volume, because crawl budget is partly a function of how much your host can absorb. If Crawl Stats shows response times climbing while requests fall, the ceiling is your infrastructure.
Query selection changes the position interval more than anything else you control. A page targeting a query where the incumbents have thousands of referring domains will sit at position 40 for a very long time. A page targeting a query nobody has served properly can surface within days. This is the entire argument for checking the results page before writing, which is what we do for every article and described in DIY SEO for small business.
What does not move the clock: republishing with a new date, pinging index submission tools, adding keywords to a page that is already indexed and already matching, and rewriting a page every fortnight. The last one is actively harmful, because you keep resetting the observation window before it has produced a reading.
A ninety-day schedule built on gates, not on faith
Here is the schedule we would actually follow, expressed in checks rather than promises. Each row is a question with a yes or no answer and a defined action when the answer is no.
| When | Check | If no |
|---|---|---|
| Day 1 | lastCrawlTime present? |
Submit in sitemap, link from a crawled page |
| Day 7 | verdict is PASS? |
Read coverageState and googleCanonical |
| Day 21 | Any impressions at all? | The query targeting is wrong, not the timing |
| Day 45 | Impressions rising week over week? | Check which queries, not how many |
| Day 60 | Clicks present at any position? | Rewrite title and description, nothing else |
| Day 90 | A distribution across ten or more pages | You now have a lead time for your site |
The value of this table is not the specific intervals. It is that every row fails loudly and points at one action, so at no point are you waiting on an unfalsifiable claim that it takes six months.
At day 90 you stop borrowing numbers. You have your own median crawl-to-impression interval and your own click gate, both of which will be wrong for anybody else's site and correct for yours.
If you are weighing the whole investment rather than one page, the arithmetic behind it is in Is SEO worth it, and the cost side is broken down in How much does SEO cost. The comparison against buying the clicks instead sits in SEO vs Google Ads, where the timing question is precisely the variable that decides it.
How AI answers changed the question, and what stayed the same
The AI Overview sitting above every result for this query is not a reason to abandon the measurement. It does change what you are measuring toward.
Google's documentation on AI features, updated 10 December 2025, is unusually direct about eligibility: there are "no additional requirements to appear in AI Overviews or AI Mode, nor other special optimizations necessary". To be used as a supporting link, "a page must be indexed and eligible to be shown in Google Search with a snippet".
Read that against the four gates above and it collapses into something useful. The crawl gate and the index gate are exactly the same gates for AI surfaces as for the ten blue links. There is no second pipeline to instrument and no separate clock to start.
What changes is the click gate. A page can be indexed, cited inside an overview, and never receive the visit, which means impressions can rise on a curve that clicks never follow. If you are tracking the interval to first click and the answer is being consumed above the results, your instrument is fine and your expectation is not.
Tracking citation rather than clicks is a different exercise with different tools, and we wrote it up in Answer engine optimization and LLM SEO. For a product or a service page specifically, the eligibility side is in Product page SEO.
When the honest answer is that it will not work
A timeline article that only explains delays is dishonest by omission. Some sites are not slow. They are aimed at something they cannot reach.
If every page in the top ten for your target query belongs to a domain with hundreds of referring domains, and yours has none, the interval is not long, it is indefinite. The fix is not patience, it is a different query.
If your pages are indexed, collecting impressions at position 30 or worse for six months, and the pages above them are being updated regularly by teams larger than yours, that is a measurement telling you to move. Measured properly, quitting a query early is a feature of the method, not a failure of it.
Nobody can guarantee a position or a date, and results vary by domain, market and query. What you can have, within ninety days and for the price of two API calls a day, is a number that belongs to your site. That is considerably more than the industry consensus offers, and it is checkable, which the consensus is not.
FAQ
Is SEO dead now with AI?
No, but the click gate moved. Google's own documentation says a page needs to be indexed and snippet-eligible to be cited in AI Overviews or AI Mode, which is the same technical bar as ordinary results. What changed is that impressions can grow while clicks stay flat, because the answer is being read above the results. That makes measuring impressions and clicks separately more important, not less.
How long does SEO take to work on a brand new domain?
Longer at the discovery gate and the position gate, and not measurably different at the index gate once a page has been crawled. On a new domain, expect to spend your first weeks getting URLs fetched at all, which is why sitemaps and internal links matter more early than any on-page tactic. Use lastCrawlTime from the URL Inspection API as your first signal rather than watching rankings.
How long before Google indexes a new page?
Google does not publish a figure, and its Search Essentials states that meeting every requirement still "doesn't mean that Google will crawl, index, or serve its content". The measurable version is your own: inspect the URL daily and record the day verdict becomes PASS. Ten pages of that gives you a median for your site, which is the only number that applies to your next page.
What is the 80/20 rule in SEO?
It is the observation that a small share of pages produces most of the organic traffic on a typical site, which holds on most properties we have measured. The practical use in a timeline context is triage: measure the lead time of pages in the productive fifth, not the average across everything, because the average is dragged down by pages that were never going to earn a click.
Is SEO very difficult?
The mechanics are not difficult, and the two API calls in this article are the bulk of the instrumentation. What is difficult is query selection, because it is the one decision that is expensive to reverse after you have written the page. Getting that wrong is what people usually mean when they say SEO is taking too long.
Is SEO still worth it in 2026?
That depends on gross profit per customer and the click volume left after AI answers take their share, which is arithmetic rather than opinion. We worked the model through with three examples in Is SEO worth it, including the cases where the honest answer is no. The timeline question here feeds that model: your break-even month cannot be computed without your own lead time.
Should I republish old articles to speed things up?
Only when the content has substantively changed. Changing a date to look fresh is explicitly called out in Google's guidance on creating helpful content, and in measurement terms it is worse than useless: every republish resets the observation window before it has produced a reading. Let a page sit long enough to generate data, then decide.
Get cited by ChatGPT. Rank on Google.
You found this article through search. That is the whole product.
- One researched article a day
- Published on your own domain
- Keywords checked against live results
Get cited by ChatGPT. Rank on Google.
You found this article through search. That is the whole product.
- One researched article a day
- Published on your own domain
- Keywords checked against live results
