An ideal customer profile usually lives in a strategy document, a sales deck, or the founder's head. A website lives somewhere messier: launch copy, feature pages, old campaigns, documentation, and articles written for different moments.
ICP drift is the gap between those two things. It asks whether the audience evidenced by the published site still resembles the audience the company intends to reach.
That is different from asking whether the copy sounds good. A polished page can still imply the wrong role, company size, buying trigger, or level of maturity.
Start with a declaration you can test
“Growing companies” is not a useful declared ICP. It is too broad to compare with anything.
A testable declaration names the dimensions that would change the message:
- company size;
- roles involved in buying or using the product;
- industries or business models;
- buyer maturity;
- recurring pain points;
- events that trigger a search; and
- the use cases the product should be hired for.
Not every product needs a long answer for every dimension. “Not yet decided” is better than invented specificity. The important thing is to separate what the team has chosen from what a model later infers.
Compare claims with page evidence
An ICP drift analysis should point back to the text that supports each inference. Without source evidence, “your audience is enterprise operations leaders” is just another model assertion.
Look for direct signals such as “built for teams under ten,” role names in headings, technical assumptions in documentation, or use cases repeated across navigation and articles. Then classify the relationship with the declaration:
- Matched: the site supports a declared value.
- Missing: a declared value has no supporting evidence in the measured pages.
- Extra: the site strongly signals a value the declaration did not include.
- Insufficient evidence: the measured content does not support a responsible inference.
These labels describe the comparison. They do not grade the business.
Treat extra values as questions
An extra value may reveal accidental drift. A startup that sells to finance leaders might have accumulated so much developer-facing implementation content that the site now appears developer-first.
But extra does not always mean wrong. A homepage can legitimately mention several pains that belong to one audience. A documentation portal can introduce technical roles that influence adoption without changing the economic buyer.
Ask three questions before editing:
- Does this signal attract a meaningfully different buyer?
- Is it a core promise, supporting evidence, or incidental wording?
- Should the site change, the declared ICP change, or neither?
That prevents a team from deleting useful specificity simply to improve an alignment percentage.
Look for maturity, not only demographics
Company size and job title are easy to state. Maturity is often more revealing.
A team with no website needs a different product from a team with fifty published pages and no measurement process. Both may have the same headcount and founder-led growth motion. Words such as “migrate,” “compare,” “monitor,” and “optimize” imply a different stage from “launch” or “create your first page.”
If the product depends on an existing workflow or evidence base, say so. Clear maturity language improves qualification for humans and gives an analysis something concrete to test.
Change one layer at a time
When drift is material, avoid rewriting the whole site in one pass. Choose the dimension that most affects qualification, update the pages carrying that signal, and record the intervention.
Then run a comparable measurement. Use the same declared ICP and, where possible, the same scope. The later result can show what was observed after the edit. It cannot prove the edit caused every difference, but it can tell you whether the evidence now supports the intended message more clearly.
That is the practical value of ICP drift: not a score to maximize, but a way to turn audience positioning into evidence a small team can inspect.
The Getting Started guide shows where ICP evidence sits in the wider heyEO workflow.
