The Ultimate Pre-Launch Landing Page Checklist for Google & Meta Ads
Most campaign disasters are not bad creative. They are a broken CTA, a tag that never fired, or a policy trigger nobody checked. Here is the pre-flight sequence to run before the first rupee is spent.

The expensive campaign failures are almost never creative failures. They are a CTA pointing at a staging URL, a conversion tag that silently never fired, a privacy policy link that 404s, or a form that swallows leads without telling anyone. Each one is invisible in the ad platform and obvious in hindsight.
The cost is asymmetric. A mediocre headline loses you a few percentage points of CTR. A broken destination URL loses you an entire day of spend, and in the worst case an ad account. This checklist is the sequence we recommend running in the last hour before a campaign goes live — grouped so you can hand each section to whoever owns it.
1. Destination health — can the crawler actually reach the page?
Before a human ever sees your ad, an automated crawler fetches the destination. Google uses AdsBot-Google for landing page checks, and it has a behaviour that catches teams out constantly: it does not obey the User-agent: * wildcard in robots.txt. A blanket disallow left over from a staging environment will not block it — but an explicit User-agent: AdsBot-Google block will, and that produces an immediate disapproval.
- The final URL returns 200, not 301 → 302 → 200. Every redirect hop is a chance for a parameter to be dropped.
- The page loads without a logged-in session, without a cookie, and from a clean browser profile.
- It loads from outside your country if you are targeting outside your country. Geo-blocking at the CDN is a very common cause of "Destination not working".
robots.txtdoes not carry an explicitDisallowforAdsBot-Google,AdsBot-Google-Mobile, orfacebookexternalhit.- The SSL certificate is valid, not self-signed, and covers the exact hostname — including
wwwvs apex. - No
noindexleft on the page from the staging build.
2. Policy compliance — the pages that must exist
Both Google and Meta expect a landing page to disclose who you are and what happens to the data you collect. On a single-page campaign build these are the first things to get forgotten, because they are not part of the conversion path.
| Required | Why it is checked | Where it must be |
|---|---|---|
| Privacy policy | Mandatory wherever you collect any personal data, including an email field | Linked from the page itself, not only the main site |
| Terms / refund policy | Required for ecommerce and subscription offers | Footer link, reachable in one click |
| Business identity | Google checks that the advertiser is identifiable | Legal entity name and a contact route |
| Contact method | Meta flags pages with no way to reach the business | Email, phone or form — not a chatbot alone |
Then the content itself. The "circumventing systems" policy is the one that ends accounts rather than pausing ads, and it is triggered by things that can be entirely accidental — cloaking through aggressive geo or user-agent logic, a page that behaves differently for the crawler than for a visitor, or a redirect that sends some traffic somewhere else. If you use any server-side personalisation on the landing page, verify what an unauthenticated crawler from a foreign IP actually receives.
3. Tracking — will you be able to tell if it worked?
A campaign with broken tracking is worse than a paused campaign: you spend the money and learn nothing, and the platform's optimisation runs blind. Verify these in a real browser session, not in the tag editor's preview mode alone.
- The GTM container fires exactly once. Duplicate containers — one in the theme, one added by a developer — double-count every event.
- The GA4
page_viewevent reaches the property, visible in the DebugView within a few seconds. - The conversion event fires on the actual success state, not on button click. A click on a form submit that then fails is not a conversion.
- Meta Pixel
PageViewand the relevant standard event both fire, and the Pixel ID matches the ad account you are spending from. - Consent Mode v2 sets defaults before any tag loads, and updates them when the banner is answered.
- UTM parameters survive every redirect between the ad click and the final page.
The duplicate-container problem is worth a specific mention because it is invisible in the platform UI and looks like unusually good performance. We covered the full diagnosis in Google Tag Manager & Enhanced Conversions.
4. The conversion path — click by click
Walk the path a customer walks, on a phone, on mobile data rather than office wifi.
- Every CTA button goes where it says. Check the
hrefof each one, including any that repeat further down the page. - No link points at a staging or localhost hostname. Search the built HTML for your staging domain before deploying.
- The form submits, and you receive the lead — in the CRM, not just in a "thank you" message.
- The thank-you page is a real URL you can fire a conversion on, or the success state pushes an event.
- Phone numbers use
tel:and email usesmailto:so they work on mobile. - Any embedded video or calendar widget loads over HTTPS. One
http://asset produces a mixed-content block and a broken page.
The form is the part that fails most quietly. A front-end "Thank you" modal will happily display after a 500 from the backend, so the visitor believes they converted, your conversion tag fires, and the lead never exists. The Ghost Lead Problem walks through testing the webhook rather than the modal.
5. Mobile and speed — where the budget actually goes
For most Indian D2C and lead-gen accounts, 70–85% of paid traffic arrives on a mid-range Android phone. The desktop experience is close to irrelevant to the campaign economics.
- Nothing is wider than the viewport. One overflowing element gives the whole page a horizontal scroll and makes the CTA hard to hit.
- Tap targets are at least 48×48 CSS pixels with spacing between them.
- Body text is legible without pinch-to-zoom — 16px minimum for form inputs, which also stops iOS auto-zooming on focus.
- Largest Contentful Paint is under 2.5s on a throttled 4G profile, not on your laptop.
- No layout shift after load. A late-loading banner that pushes the CTA down is a measurable conversion loss.
Speed is not only a UX concern on paid traffic: landing page experience feeds Google's Quality Score, which feeds your actual cost per click. We put numbers on that relationship in How Core Web Vitals Impact Quality Score and CPC.
6. The five-minute version
If the campaign goes live in ten minutes and you can only do one pass, this is the order that catches the most damage per minute:
- Open the final URL in a private window on a phone. Does it load, and does the offer match the ad?
- Click every CTA. Note any that go somewhere unexpected.
- Submit the form with a real address and confirm the lead arrives in the CRM.
- Check the conversion tag fires on the success state.
- Confirm the privacy policy link works.
Everything else on this list — redirect chains, SSL, robots directives, security headers, structured data, tap targets, CLS — is mechanical, which is exactly what an automated audit is for. Running 108 checks takes under a minute and does not get bored at item 31.
Paste your landing page URL and get all 12 modules — ad policy, tracking, forms, speed, mobile and security — scored before you turn the campaign on. No signup needed to see your score.
Audit my landing pageWhat to do with the result
Treat the output as a triage list, not a score to maximise. Fix anything in the policy and destination modules before launch, because those are the failures that stop the campaign entirely. Tracking issues are next, because they are the ones you cannot fix retroactively — a day of untracked spend is a day of data you will never get back.
Speed and UX findings are genuinely optimisation work. They matter, and they compound, but they do not need to block a launch. Ship, then work through them in the first week while you have live data telling you which pages deserve the effort.
- Why Did Google Ads Disapprove My Landing Page? Fixing "Destination Not Working" and "Circumventing Systems"
- Google Tag Manager & Enhanced Conversions: How to Stop Burning Ad Spend on Broken Attribution
- The "Ghost Lead" Problem: How to Test Form Webhooks, Error States and API Endpoints Before Going Live
