Answered straight

How to attribute revenue to SEO without lying in either direction

The short answer

Attribute revenue to SEO by joining four records: the source captured on the first visit, the lead created from it, the CRM stage it reached, and the money it closed. GA4 alone can't finish that chain — on a long sales cycle the earlier organic session is usually gone by the time the deal closes.

Updated 7 August 2026 · Written by the Last Agency team · See what SEO actually costs

The short version

  • Attribution is a join, not a report setting. Four records have to connect, and in most Indian businesses the break is at the form, not the tag.
  • Last-click doesn't merely under-credit organic — it hands the credit to Direct, because the March session no longer exists when the June deal closes.
  • Write first-touch source into a write-once CRM field. A field a salesperson can edit is a field that will be edited.
  • At ₹75,000/mo and ₹50,000 of gross profit per deal, you need roughly eight qualified organic leads a month to break even. That's arithmetic you can do before the first call.
  • Two numbers we won't put in a report: influenced pipeline and estimated traffic value. Neither can be proved wrong, so neither is evidence.

The four records that have to join up

Revenue attribution isn't a setting you switch on. It's a join across four separate records held in four different systems, and it breaks in a different place in almost every business we open up.

Here's the chain, in order. If one link is missing, everything downstream is a guess wearing a decimal point.

  • The lead record is where it usually breaks. A form that posts a name, a number and a message — but not the landing page or the referrer — has destroyed the evidence before the lead exists.
  • You don't need a warehouse for this. A monthly CSV out of your CRM, with two extra columns filled at form submit, settles most of the argument a dashboard project was going to spend a quarter on.
  • Phone and WhatsApp enquiries need the same treatment or they sit permanently in the unattributed pile, which on Indian sites is frequently the biggest pile of the lot.
The four records that have to connect before anyone can say SEO produced revenue.
Link in the chainWhere it livesWhat breaks it
Source captureThe visitor's first session — referrer, landing page, dateCookie expiry, an ignored consent banner, a phone-to-laptop switch, an in-app browser
Lead recordThe form, chat or call, written into your CRMHidden fields nobody added, so the CRM stores the source as blank
CRM stageThe pipeline your sales team actually updatesA rep overwriting Lead Source with "Referral" because that's how the call felt
Closed revenueThe invoice, and the gross margin on itNobody ever sends closed-won values back to whoever writes the marketing report

Why last-click quietly hands organic's credit to Direct

"Last-click undercounts SEO" is the standard complaint. The mechanism matters more than the complaint, because what you do about it depends entirely on which part is failing.

GA4 fixes a session's source at session_start, from the referrer, the gclid or the UTM parameters present on that visit. Someone lands from a Google result in March: that session is Organic Search. They come back in June by typing your name: that session is Direct.

GA4's models exclude direct visits from receiving credit unless the entire path is direct, which sounds like protection for organic — until you look at what counts as the entire path. GA4 can only include March if it still holds that person's identity in June.

Three ordinary things break that. Safari caps script-written storage at seven days without a return visit, so on an iPhone the March cookie is long gone. A phone-then-laptop switch splits one buyer into two users unless you're stitching on a logged-in ID. And a consent banner the visitor closed without accepting means March was never recorded at all.

Once the earlier session is missing, the path GA4 can see genuinely is entirely direct — so Direct takes the credit. That isn't a modelling opinion you can argue with. It's an absent row.

  • The longer the cycle, the worse it gets. A four-day D2C purchase mostly survives. A 90-day B2B cycle with three research visits and a brand search at the end mostly doesn't.
  • Check which scope you're reading. Session default channel group answers "what brought this visit". First user default channel group answers "what first brought this person". The two disagree by design, and people quote whichever is kinder that month.
  • Rising Direct is a symptom, not a channel. Direct climbing while organic sessions stay flat usually means your measurement decayed, not that more people started memorising your URL.
  • None of this makes first-touch honest either. First-touch credits organic for a deal that closed because of a referral and two sales calls. Every model is a set of assumptions with a name on it. Pick one, write it down, don't switch mid-engagement.

Capture the source once, and stop anyone overwriting it

The fix is unglamorous and it's usually two days of developer time. It's also the difference between a twelve-month review that ends in a decision and one that ends in an argument about GA4.

Do these five things in this order. The first two are where nearly all the value sits.

  1. Write a first-touch record on the first visit. Landing page, referrer and date, into a first-party cookie, set only if it isn't already set. Keep a last-touch record beside it, refreshed every visit. Two cookies, both yours.
  2. Put hidden fields on every form. Website forms, landing pages, the chat widget, the click-to-WhatsApp handler, the click-to-call. First-touch landing page, first-touch referrer, last-touch source, GA4 client ID. If a form can't carry hidden fields, replace the form.
  3. Map those fields to write-once CRM properties. Lead Source should lock the moment the record is created. Give the sales team a separate, editable field for their own read of where it came from — you want both, and you want to know when the two disagree.
  4. Add one self-reported question. "How did you hear about us?", free text, optional, no dropdown. It's unscientific, it's the only signal that survives every cookie problem described above, and it's routinely the most useful column in the export.
  5. Send closed-won values back. Once a month, export deals with first-touch source, close date and gross profit. That export is your revenue attribution. The GA4 report is a leading indicator you read in between.

The arithmetic a published price allows

Our prices are on the site, so anyone can run this before they ever speak to us. SEO from ₹75,000 a month, smaller sites from ₹40,000, all ex-GST, ad spend billed separately with no media markup.

The question a retainer has to answer is narrow: how many qualified organic leads a month does it take to cover ₹75,000 of gross profit? Not revenue — revenue at a 12% margin isn't money, it's turnover.

Everything in the table is arithmetic, not a client result. Put in your own gross profit per closed deal and your own close rate, and read the row you land on. Watch the top row especially: at ₹25,000 of gross profit a deal and a one-in-ten close rate, ₹75,000 a month needs thirty qualified organic leads before it breaks even.

What a ₹75,000 monthly retainer has to return in steady state, at different deal economics.
Gross profit per closed dealClosed deals needed per monthQualified organic leads at a 20% close rateAt a 10% close rate
₹25,0003.01530
₹50,0001.5815
₹1,00,0000.7548
₹3,00,0000.2523
₹10,00,0000.081 a quarter1 a month

What to agree in writing before month one

Every unsettleable month-twelve conversation traces back to something nobody wrote down in week one. Six lines in the scope document remove almost all of it.

  1. The definition of a qualified lead, in one sentence both sides can apply to a specific CRM record without discussion. What counts as a qualified lead is an argument worth having now instead of in month eleven.
  2. The attribution model, named. "First-touch, non-branded organic, 90-day window, read from the CRM" is a sentence you can hold someone to. "We'll look at GA4" is not.
  3. The baseline, frozen and dated. Trailing ninety days of qualified organic leads, exported on day one, saved as a file both sides keep a copy of.
  4. Who fixes the tracking, and by when. If the hidden fields land in month four, you've lost a third of the engagement's evidence and no one can get it back.
  5. The lag you'll both tolerate — how many months in before closed revenue is read as a verdict rather than as noise.
  6. What happens if the number doesn't move. This is the line most proposals leave blank, and the one that decides whether the other five matter.

The two numbers we refuse to report

Both appear in agency decks constantly. Both share one property: no month can ever make them look bad. That's exactly why they're popular, and it's why we won't put either in front of your board.

Underneath them are the four numbers that go in the report instead — all four checkable by someone who doesn't trust us, which is the only test a reported number really has to pass.

  • SEO-influenced pipeline. Every deal that touched any organic page at any point in its life. The number only ever rises, and your paid, email and social reports are each claiming the same deals in their own version of the slide. Four channels claiming the same ₹40 lakh isn't measurement, it's four people pointing at one invoice.
  • Estimated traffic value in rupees. The tool metric that multiplies your ranking positions by advertiser bid prices. It's the notional cost of clicks you aren't buying, on keywords you might not want, at a price you'd never actually pay. It moves when a competitor's ad budget moves. It has never once been money.
  1. Qualified organic leads against the frozen baseline, counted in the CRM, with the definition unchanged all year.
  2. Closed revenue and gross profit from first-touch organic, exported monthly, with the close-date lag stated so nobody reads month three as a verdict.
  3. Non-branded impressions and clicks from Search Console — the leading indicator that tells you whether the lead number is about to move.
  4. The unattributed pile, shown as a number. If 30% of leads have no source, we print that rather than quietly spreading it across the channels. Reporting your own uncertainty is the cheapest credibility available, and it's usually what gets flat leads on rising traffic diagnosed instead of argued about.

Sources

  1. Get started with attributionGoogle Analytics Help
  2. Default channel groupGoogle Analytics Help
  3. About Analytics sessionsGoogle Analytics Help
  4. Full Third-Party Cookie Blocking and MoreWebKit · 2020-03-24

Every source above was checked on 7 August 2026.

Related questions.

Why does GA4 show fewer organic conversions than my CRM?

Because GA4 loses the earlier organic session. Safari deletes script-written storage after seven days without a return visit, device switches split one buyer into two users, and declined consent means the first visit was never recorded. With the earlier session missing, GA4 sees a path that is entirely direct and credits Direct. A CRM with a first-touch field doesn't have that problem.

What's the minimum setup to attribute revenue to SEO properly?

Two cookies and four hidden fields. A first-touch record — landing page, referrer, date — set once, a last-touch record refreshed each visit, both posted with every form submission into write-once CRM fields. Add a free-text "how did you hear about us" question. Roughly two days of developer time, and it outperforms most attribution tooling.

Should I use first-touch or last-touch attribution for SEO?

Report both and show the gap. First-touch flatters discovery channels like SEO; last-touch flatters closing channels like brand search and retargeting. The distance between the two numbers is roughly the size of the uncertainty you're working with. What matters is choosing before month one and never switching mid-engagement.

How do I attribute WhatsApp and phone enquiries to organic search?

Pass the first-touch cookie values into the click-to-WhatsApp URL as parameters, and fire a distinct click-to-call event carrying the same values. Both then arrive with a source attached. Without that, phone and WhatsApp leads sit in the unattributed pile permanently — which on most Indian sites is where the majority of real enquiries live.

How long before organic revenue is worth reporting at all?

Leading indicators move in four to eight weeks. Qualified leads follow in three to six months. Closed revenue lags by your sales cycle on top of that, so a 90-day cycle means month nine before the revenue line means much. Report it monthly from the start anyway — you want the lag visible, not discovered later.

Is a ₹75,000 retainer worth it if my deals are small?

Do the arithmetic before the sales call. At ₹25,000 of gross profit per deal and a 10% close rate, ₹75,000 a month needs thirty qualified organic leads to break even. If your commercial queries don't carry that much monthly search demand nationally, the answer is no — and any agency should tell you so in the first meeting.

Keep reading

Next, the thing you’ll ask after this.

Last slot's open

Make this the last growth call you book.

Grab the free strategy call and walk away with a 90-day growth plan — hired or not. Or just text us. Either way, you'll know exactly how we'd win.

Guaranteed or it's free · No lock-in · Free strategy call