Semantic messaging drift detection

Find where your website stopped saying what you meant.

Paste the document that defines your positioning. msgdrift reads your live pages and shows you, sentence by sentence, where the copy contradicts it, dilutes it, or leaves it out. You get a report you can send to whoever owns the page.

Free. No login. Every report gets a permanent link.

What a finding looks like

Every finding quotes both sides. The page's sentence, the sentence in the positioning it drifts from, and a note on why it matters. You can disagree with it, line by line.

Criticalaudience-mismatchharbor.example / pricing

On the page

Starter: perfect for growing teams of 5+ who want to get started with conversation intelligence.

In the positioning

We do not sell to teams under 20 reps. We do not sell to SMB or self-serve motions.

The Starter tier invites exactly the buyer the company says it does not serve, and describes the product as conversation intelligence. A mid-market CRO reading this will file Harbor with SMB tools, and the SMB leads it generates will not close. This is the single largest source of drift across the scanned pages.

Three steps. About ninety seconds.

  1. 01

    Paste what you meant

    Your positioning document, messaging guide, or the strategy memo everyone agreed on. Markdown or plain text, up to 20,000 characters. It is used for the scan and kept only inside the report.

  2. 02

    Choose the pages

    Enter your domain. msgdrift reads the homepage, proposes the pages that carry positioning, such as pricing, product, and about, and lets you weight each one. Up to six per scan.

  3. 03

    Read the drift

    Findings arrive as the pages are read. Each one quotes the page and the positioning side by side, with a severity and a plain note on the business impact. Share the link, or download it as markdown.

Example report

A fictional company, scanned for real. The pricing page sells to a buyer the positioning rules out, which is the single largest source of drift on the site.

Open the full report
harbor.example64Drifting
  1. 01Pricing44Off-message
  2. 02About58Off-message
  3. 03Homepage78Drifting

Severity

The model is told what counts as drift and what counts as ordinary adaptation. Pages adapt the message for context. Drift is when the adaptation changes the meaning, weakens the position, or targets the wrong buyer.

Critical
A direct contradiction of the positioning, or copy aimed at a buyer you say you do not serve.
Major
A core value proposition missing from a page where it belongs, or present but diluted or misframed.
Minor
Tone that breaks the guide, stale phrasing from a previous position, or a secondary message that slipped.
Info
Not wrong on its face, but worth a human look. Often unused proof points or vague claims where you have specifics.

Why it exists

I run a fractional GTM practice. The first thing I check on a new client is whether the live site still matches the positioning the leadership team agreed on. It rarely does. This is the tool I built to do that check in minutes, and it is open source so you can run it on your own.

Page Sands, SandsDX

Reading
Claude Sonnet, structured output checked against a schema before it renders.
Crawling
One plain fetch per page. Navigation and chrome stripped. No scripts run.
Scoring
Per page, 0 to 100. Weighted by importance: high 3x, medium 2x, low 1x.
Code
github.com/wpsands/msgdrift

Check one site. It takes less time than this page did.