ChatGPT holds no index of your site. It fetches pages live, in the seconds between a user’s question and the generated answer. Mike King of iPullRank has watched what happens when you fix a page those fetches kept abandoning: the impact lands “literally right away.” No crawl queue. No re-index wait. The next fetch either succeeds or it does not.
Now read a standard GEO proposal. Six months. Fixed deliverables. A results conversation scheduled for Q3. The mechanism runs on days, the invoice runs on quarters, and the gap between those two clocks is where a lot of retainer margin lives.
Why do some GEO fixes register in days?
Because retrieval happens at answer time, a retrieval fix takes effect at answer time. When your server is slow, ChatGPT hangs up mid-fetch and writes the answer without you; the evidence is an HTTP 499 in your logs. Fix the slow endpoint on Monday and Tuesday’s fetch can succeed. King’s warning cuts at the tooling too: “your SEO tool is not going to tell you to look for this.” The failures sit in a log file nobody reads, on your highest-value pages, deleting you from answers one timeout at a time.
A robots rule that blocks an AI fetcher behaves the same way. So does a page that renders empty without JavaScript. Binary defects, cheap to repair, live at the next retrieval.
How fast can one placement move a citation?
Within one refresh cycle, in the best documented case. Surfer secured a single placement on an agency site drawing about 6,000 monthly Google visits, and its citation presence on the target prompt went from “on and off, on and off” to “cited almost every time” (Surfer Academy). One page, on a site Google ignores. Ethan Smith’s read: when a mention appears where you had none, “we know that that’s going to have an effect.”
Entity work sits one band out. WordLift tells the story of InLinks climbing from 6th to 1st in AI recommendations in 8 weeks after filling a single entity gap. Eight weeks is not Tuesday. It is also not month six of a retainer.
What still takes months?
Your citation diet. The more general the buyer’s question, the more the answer is decided off-site by how many third-party pages mention you: Smith’s specific-query wins came from on-site pages, while general queries were won “almost entirely off-site” (Surfer Academy). Building that body of mentions means outreach and editorial calendars you do not control. Months is the honest unit.
The field’s error bars are wide too. Smith, whose agency ran the Webflow engagement everyone cites, says of answer engine optimization: “we’ve reproduced once, so I think we need to reproduce a few more times before we have proper confidence” (Surfer Academy). When the top practitioner hedges like that, a vendor guaranteeing month-six outcomes has told you something about the vendor.
So is the six-month retainer the problem?
The length can be defensible. The fixed scope is the tell. Smith on the Webflow work: “the stuff that we’re doing were not things that we agreed to… If we stuck to what was in the scope of work, we wouldn’t have gotten the impact” (Ethan Smith x Niklas Buschner). His explanation for why small teams win: “it’s kind of like a boat and the bigger the boat, the harder it is to turn.” A fixed SOW is a big boat by construction. It commits January’s guesses to June’s invoices.
The buying rule that falls out of this splits work by clock speed. Day-scale items belong in week one: retrieval failures, blocked fetchers, render gaps, timeout mismatches, each with a re-measure the week after. Month-scale items get priced as month-scale: placements and the citation diet. A proposal that fuses both into one opaque six-month line is charging the slow clock’s price for the fast clock’s work.
We built our checks around the fast clock’s evidence. The free scan runs 5 questions your buyers ask and shows the answers verbatim. Paid audits run each question 7 times per engine, and every finding links to the captured answer or log line that produced it. No ranks, because there is no rank. Get the day-scale list first, fix it this week, and watch the next answer: run the scan.