Paid ads

Free message match auditor for ads and landing pages

By Charles Summers · Updated · Free, no signup

Short answer

Paste your ad headline, ad description, page headline, page subhead and primary keyword, and this scores the match out of 100 across four measured components: word overlap between the two headlines, whether the keyword survives onto the page, whether the offer promised in the ad appears anywhere on the page, and whether the page is as specific as the ad. It names the exact words that went missing, the vocabulary the page introduced that the visitor has never seen, and then rebuilds the headline and subhead using only phrasing from your own ad copy.

Use the landing page message match auditor

What does this tool actually do?

Paste your ad headline, ad description, page headline, page subhead and primary keyword, and this scores the match out of 100 across four measured components: word overlap between the two headlines, whether the keyword survives onto the page, whether the offer promised in the ad appears anywhere on the page, and whether the page is as specific as the ad. It names the exact words that went missing, the vocabulary the page introduced that the visitor has never seen, and then rebuilds the headline and subhead using only phrasing from your own ad copy..

It runs entirely in your browser. Nothing you type is sent to a server, no account is required, and there is no usage limit, because there is no cost per run to control.

What the visitor is doing in the first few seconds, and why repetition beats elegance

Someone who clicks a paid ad arrives holding a sentence in their head, and it is your sentence, because they read it four seconds ago. What happens next is not reading, it is scanning for confirmation. They are checking whether this page is about the thing they just clicked, and the fastest way to answer that is to find the same words. If the words are there they commit and start actually reading; if they are not, the page has to be re-evaluated from scratch, which costs effort the visitor did not agree to spend.

This is why an elegant rewrite of the ad promise scores worse than a blunt repetition of it. A page headline that reads "Effortless clarity for modern teams" may be better prose than "Inventory forecasting for Shopify stores", but the visitor who clicked an ad about inventory forecasting cannot pattern-match against it. The mechanism is recognition, not persuasion, and recognition needs the literal string. Synonyms are for the second paragraph, once the visitor has decided to stay.

The cost of getting this wrong is charged twice. You paid for the click and got nothing, and on Google Ads the landing page experience is one of the three components behind Quality Score, alongside expected click-through rate and ad relevance, so a page that visitors bounce off can raise what you pay for the next click as well. That makes message match one of the few things in a paid account that improves the numerator and reduces the denominator at the same time.

How this score is calculated, and what it cannot see

The overlap component compares the meaningful words in your ad headline against the meaningful words in your page headline. Stop words are dropped, and words are crudely singularised so "shoes" matches "shoe". The result is a shared-vocabulary ratio, and full marks arrive well before an exact copy, because a page headline that repeats every ad word verbatim usually reads badly. The keyword component is checked separately, in the headline first and the subhead second, because a keyword that only appears below the main headline is doing half a job.

The offer component looks for offer-shaped phrases in the ad text, things like a percentage off, a free trial, a number of days, a money-back guarantee, a demo or a price, then checks whether each one survives onto the page. This is literal string detection rather than comprehension: it can tell that the ad says "14-day free trial" and the page does not, and it cannot tell that the page says "two weeks on us" and means the same thing. Read the flagged items before acting on them.

The specificity component compares numerals in the ad against numerals on the page and scans the page for a list of vague marketing words that carry no information: seamless, innovative, world-class, next-generation and their relatives. A page that answers a specific ad with a generic promise is the most common failure this catches, and it is invisible to a pure keyword check because the keyword can be present while everything around it says nothing.

What no automated score can see is whether the page delivers on the promise once the visitor starts reading. A perfect 100 here means the top of the page matches the ad, which is a necessary condition and not a sufficient one. The form length, the price transparency and the proof below the fold decide the rest, and they need a human to look at them.

The offer is the part that breaks, and it usually breaks for operational reasons

In most accounts the ad and the landing page have different owners, different tools and different release processes. The media buyer changes the promotion in the ads platform in ten minutes; the page change needs a ticket, a designer and a deploy. So the ad promises 20% off, the page shows the old banner or none at all, and the visitor who arrived for the discount now has to hunt for it. Very few of them hunt.

The reverse happens just as often and is easier to miss. A promotion ends on the page and lives on in a paused-then-reactivated ad, or in a Performance Max asset group nobody audited, so you are advertising an offer you no longer honour. That is a policy exposure as well as a conversion problem, since advertising a price or promotion you do not deliver is exactly what the misrepresentation rules exist to catch.

The fix is procedural rather than creative. Whoever changes an offer changes it in both places in the same sitting, and the promotion has an owner and an end date written down. A monthly sweep of live ad text against live page text catches the rest, and this tool is a reasonable way to run that sweep one page at a time.

Scaling this beyond one page

A dedicated page per ad group is the textbook answer and rarely the affordable one. The practical version is one page per message theme: group ad groups that make the same promise, build one page for that promise, and only split further when the promise genuinely differs. Ten ad groups selling the same outcome to the same buyer need one page; two ad groups selling to a plumber and a hospital procurement team need two, however similar the product is.

Dynamic text replacement, where the page headline is populated from a URL parameter, closes the gap cheaply and introduces two specific risks. If the parameter is missing the page must degrade to a sensible default rather than a blank or a stray placeholder, and if the parameter is written into the page unescaped you have handed strangers a way to put arbitrary text on your site, which is both a security issue and a way to end up with an offensive headline on a page you are paying to promote. Whitelist the values you accept rather than reflecting whatever arrives.

For measurement, bounce rate is a poor read on message match because it is defined differently across analytics tools and it cannot distinguish "wrong page" from "answered my question instantly". Compare conversion rate by ad group against the same page, look at the share of sessions that scroll or engage past the fold, and watch what happens to those numbers when you change the headline. If a headline change moves the conversion rate for one ad group and not another, the mismatch was specific to that group, which tells you where the next page belongs.

Numbers worth knowing

MetricTypicalWhat it means
Quality Score components3Expected click-through rate, ad relevance and landing page experience. Message match is the lever that touches two of them, which is why it changes cost per click as well as conversion rate.
Time before a visitor decides to staya few seconds at mostShort enough that the decision is made by scanning for recognisable words rather than by reading. Published figures vary by method, so treat the direction as the finding, not the exact number.
Landing pages per ad group1 ideally, 1 per message theme in practiceThe binding constraint is production capacity, not theory. Split when the promise differs, not when the keyword differs.
Word overlap for full marks herearound 60%A verbatim copy of the ad headline usually reads badly as a page headline. Enough shared vocabulary for recognition is the target, not identical strings.
Where offer mismatches come fromdifferent owners and release cyclesAds change in minutes and pages change in sprints. Almost every offer mismatch is a process gap rather than a copywriting decision.

Mistakes that quietly cost you results

Writing a cleverer headline for the page than the one in the ad
The visitor is pattern-matching against the words they just read, not judging your prose. Repeat the ad promise in the page headline and save the better phrasing for the paragraph underneath.
Sending every keyword in the account to the homepage
A homepage is written for people who already know who you are, so it answers a different question from the one the search asked. Send paid traffic to a page that names the thing in the query, even if that page is a simple one.
Changing the promotion in the ad and not on the page
The visitor arrives looking for a discount that is not there and leaves without hunting for it. Change both in the same sitting, give the promotion an owner and an end date, and sweep live ad text against live page text monthly.
Answering a specific ad with a generic page
An ad that says 40 minutes and a page that says seamless onboarding have broken the match even though the keyword is present. Carry the numbers across, because the number is the part the visitor remembered.
Judging message match by bounce rate alone
Bounce is defined inconsistently between analytics tools and cannot separate a wrong page from an instantly answered question. Compare conversion rate by ad group on the same page and watch how it moves when the headline changes.

What does the output look like?

This is the exact output the tool produces from the example inputs. It is generated by the same code that runs when you click the button, so what you see here is what you get.

MESSAGE MATCH SCORE: 4/100 BROKEN. The page reads as a different offer from the ad, and paid traffic is being paid for twice. WHAT WAS COMPARED Ad headline: Inventory forecasting for Shopify Page headline: Seamless clarity for modern commerce teams Keyword: inventory forecasting BREAKDOWN 1. Headline vocabulary overlap 0/30 Shared words: none Overlap ratio: 0% of the combined vocabulary, against a 60% target for full marks. 2. Keyword survival 0/25 The keyword does not appear anywhere in the page headline or subhead. The visitor searched for it, clicked an ad about it, and the page never says it back. 3. Offer continuity 0/25 0 of 1 offer phrases from the ad appear in the page text. - "free 14-day trial" (free offer): MISSING from the page 4. Specificity match 4/20 The ad uses 1 number (14) and the page uses none. The number is usually the part the visitor remembered. Vague marketing words on the page: seamless, empower, clarity. These carry no information a visitor can check, so they cannot confirm anything. NAMED MISMATCHES - Words in your ad headline that appear nowhere on the page: inventory, forecasting, shopify. These are the words the visitor is scanning for. - Vocabulary the page introduces that the ad never used: seamless, clarity, modern, commerce, team. New words are work: the visitor has to decide whether they mean the same thing. - The ad promises "free 14-day trial" and the page never repeats it. Whoever arrives for that offer has to go looking for it, and most will not. - The keyword "inventory forecasting" does not fully survive into the page headline, which is the first place a visitor looks to confirm they are in the right place. REWRITES BUILT FROM YOUR OWN AD COPY Nothing below is invented. Each option reuses phrasing the visitor has already read in the ad. Option A (ad headline verbatim): Inventory forecasting for Shopify Option B (keyword first, ad promise second): Inventory forecasting: stop guessing reorder dates Option C (lead with the ad description): Stop guessing reorder dates Subhead: Forecasts built from your own sales history. Free 14-day trial. Add near the headline, word for word: "free 14-day trial" WHAT THIS SCORE CANNOT SEE This is literal word matching, not comprehension, so a genuine paraphrase reads as a mismatch and a coincidental word match reads as agreement. It also only looks at the headline and subhead. A page can score 100 here and still lose the visitor to a nine-field form, a hidden price or no proof, which is the part that needs a human to read it.

Frequently asked questions

How is the 100-point score split?

Thirty points for shared vocabulary between the ad headline and the page headline, twenty-five for whether the primary keyword survives onto the page and where it lands, twenty-five for whether the offer promised in the ad appears in the page text, and twenty for specificity, which compares the numerals in your ad against the numerals on your page and penalises vague marketing words. Each component prints its own sub-score and the reason, so you can see which one is dragging the total down instead of arguing with a single number.

Does it understand synonyms?

No, and that is closer to how the visitor behaves than it sounds. The check is literal word matching with stop words removed and crude singularisation, so "shoes" matches "shoe" but "two weeks free" does not match "14-day trial". A human scanning a page for four seconds is doing something much nearer to literal matching than to semantic comprehension, so the strictness is deliberate. Read the flagged mismatches before you act on them, because a genuine paraphrase will show up as a false positive.

Where do the rewrite suggestions come from?

They are assembled from your own ad copy, never invented. The tool takes your ad headline, your keyword and the first clause of your ad description and combines them into headline and subhead options that carry the words the visitor just clicked. If the result reads awkwardly, that is usually a signal about the ad copy rather than about the page, and it is worth fixing at the source where it also affects what people click.

What message match score should a paid landing page hit before I spend on it?

Above 80 means the top of the page is doing its job and the remaining work is below the fold. Between 60 and 80 there is usually one specific thing missing, most often the offer or a number, and the breakdown will name it. Below 60 the visitor is being asked to work out for themselves that they are in the right place, and that work is where paid traffic gets lost.

Does message match affect what I pay per click?

On Google Ads, landing page experience is one of the three components behind Quality Score, alongside expected click-through rate and ad relevance, and Quality Score feeds into ad rank and what you pay. So a page that matches its ads is not only converting better, it is influencing the auction. That is unusual: most conversion rate work leaves your media cost untouched, and this is one of the few levers that moves both sides of the equation.

Related free tools

Some links on this site are affiliate links, which means Hacking Demand may earn a commission if you buy through them at no extra cost to you. This does not influence which tools are listed. The tools on this page are free and have no affiliate relationship of any kind.