Diagnose landing page → conversion path problems for Google Ads traffic. Separates tracking failures from UX/path failures — the two most commonly confused sources of "low conversion rate." Pulls ad a…
Library skill — the default version is maintained in GitHub; edits you make live in your own clone.
"The landing page isn't converting" is the most common complaint in Google Ads. But it hides two completely different root causes:
Most operators (and most clients) assume path failure when the numbers look bad. Half the time, it's a tracking failure. Conflating the two wastes months.
This skill separates them.
Read first:
- google-ads/references/operator-thesis.md
- google-ads/references/tracking-playbook.md
- google-ads/references/structure-playbook.md
Read workspace if available:
- workspace/ads/account.md
- workspace/ads/goals.md
- workspace/ads/findings.md
- workspace/ads/drafts/_index.md — check for existing tracking drafts
"Landing page isn't converting"
│
┌────┴────┐
│ │
FORK A FORK B
Tracking Path/UX
│ │
Is the Is the page
signal actually
correct? failing?
Always run Fork A first. If tracking is broken, Fork B conclusions are unreliable.
1. Does a conversion action exist for the goal on this page?
- Is there a conversion action configured for the form/call/purchase that this landing page is supposed to produce?
- Is it set as primary (include_in_conversions_metric = TRUE)?
- Is the counting type correct?
2. Does the tag actually fire? - Is the Google Ads conversion tag (or GA4 event imported to Google Ads) present on the confirmation/thank-you page? - Does the tag fire when the user completes the action? (Google Tag Assistant, network tab, or manual test) - Is the tag firing on the WRONG page? (e.g., firing on page load of the form page instead of the thank-you page)
3. Is the conversion path end-to-end intact? - Click on ad → landing page → form/CTA → thank-you page → tag fires → conversion recorded - Where does the chain break?
4. Cross-domain / redirect issues? - Does the landing page redirect to a different domain for the form/checkout? - If so, is cross-domain tracking configured? - Are UTM parameters / GCLID surviving the redirect?
5. Auto-tagging? - Is auto-tagging enabled? - Are there URL parameters being stripped by the landing page CMS or CDN?
6. Attribution window? - Conversion window too short (e.g., 1 day for a B2B lead that takes a week to decide)? - Multiple touchpoints lost?
Conversion actions for this campaign:
SELECT
conversion_action.name,
conversion_action.type,
conversion_action.category,
conversion_action.counting_type,
conversion_action.include_in_conversions_metric,
conversion_action.status,
metrics.conversions,
metrics.all_conversions
FROM conversion_action
WHERE segments.date DURING LAST_30_DAYS
AND conversion_action.status = 'ENABLED'
ORDER BY metrics.conversions DESC
Campaign-level conversion data:
SELECT
campaign.name,
campaign.final_url_suffix,
metrics.clicks,
metrics.conversions,
metrics.all_conversions,
metrics.cost_micros,
metrics.cost_per_conversion
FROM campaign
WHERE campaign.status = 'ENABLED'
AND segments.date DURING LAST_30_DAYS
ORDER BY metrics.clicks DESC
Ad-level landing page URLs and performance:
SELECT
campaign.name,
ad_group.name,
ad_group_ad.ad.final_urls,
ad_group_ad.ad.type,
metrics.clicks,
metrics.impressions,
metrics.conversions,
metrics.cost_micros
FROM ad_group_ad
WHERE campaign.status = 'ENABLED'
AND ad_group_ad.status = 'ENABLED'
AND segments.date DURING LAST_30_DAYS
ORDER BY metrics.clicks DESC
LIMIT 50
Landing page experience (quality score indicators):
SELECT
campaign.name,
ad_group.name,
ad_group_criterion.keyword.text,
ad_group_criterion.quality_info.quality_score,
ad_group_criterion.quality_info.post_click_quality_score,
ad_group_criterion.quality_info.creative_quality_score,
ad_group_criterion.quality_info.search_predicted_ctr
FROM keyword_view
WHERE campaign.status = 'ENABLED'
AND ad_group.status = 'ENABLED'
AND ad_group_criterion.status = 'ENABLED'
ORDER BY ad_group_criterion.quality_info.post_click_quality_score ASC
LIMIT 50
| Tracking Status | Meaning | Next Step |
|---|---|---|
| Clean | Tag fires correctly, conversion action configured right, GCLID passes | Proceed to Fork B |
| Suspicious | Tag exists but volume seems too low or too high vs. reality | Investigate specific break, then Fork B |
| Broken | No tag, wrong tag, or GCLID stripped | Fix tracking FIRST. Fork B is premature. |
| Unknown | Can't verify from API alone — needs manual tag inspection | Recommend Tag Assistant audit, then Fork B |
Only meaningful if Fork A shows tracking is Clean or Suspicious.
1. Search intent → Ad promise → Landing page delivery
The #1 conversion killer in Google Ads is message mismatch: - User searches "roll-off dumpster rental near me" (specific, purchase-intent) - Ad says "Container Solutions for Your Business" (vague) - Landing page is a generic homepage with 12 menu items
Each handoff is a potential drop:
| Handoff | Question | Failure Mode |
|---|---|---|
| Search → Ad | Does the ad answer the specific search? | Generic ad for specific intent |
| Ad → Landing | Does the LP deliver what the ad promised? | "Request a Quote" ad → page with no form |
| Landing → CTA | Is the CTA visible, clear, and low-friction? | Form buried below fold, 15 fields |
| CTA → Completion | Can the user actually complete the action? | Broken form, redirect fails, captcha blocks |
2. Specific checks (via browser or URL fetch):
3. Are different intent classes landing on different pages?
| Intent Class | Should Land On | Common Failure |
|---|---|---|
| Buyer ("buy X now") | Product/service page with CTA | Homepage |
| Comparison ("X vs Y") | Comparison content | Product page with no comparison |
| Research ("how does X work") | Educational content | Sales page |
| Local ("X near me") | Location/service area page | National homepage |
| Brand ("company name") | Homepage or brand page | Generic product page |
If multiple intent classes all route to the same generic page, that's a structure problem (→ recommend in structure draft), not a landing page problem.
4. Walk the actual path the user takes:
Click on ad
→ Landing page loads (check: speed, mobile rendering)
→ User reads headline (check: message match)
→ User finds CTA (check: visibility, clarity)
→ User clicks CTA (check: does it work?)
→ Form/checkout loads (check: friction, fields)
→ User submits (check: confirmation page loads)
→ Tag fires (check: conversion recorded)
Each step is a potential break. Document where the break is.
Rate each dimension:
| Dimension | Score | Notes |
|---|---|---|
| Message match (search→ad→page) | Strong / Weak / Missing | |
| CTA clarity | Clear / Buried / Missing | |
| Form friction | Low (≤4 fields) / Medium (5-8) / High (9+) | |
| Mobile experience | Good / Adequate / Broken | |
| Page speed | Fast (<3s) / Slow (3-6s) / Broken (>6s) | |
| Trust signals | Strong / Some / None | |
| Intent specificity | Focused / Mixed / Generic | |
| Conversion path completeness | Complete / Partially broken / Broken |
web_fetch for content analysis (H1, CTA text, form fields, page structure)
- Use browser for interactive checks if needed (JavaScript-rendered pages, form testing)
- Check mobile rendering if concerns ariseworkspace/ads/intent-map.mdAsk the user for: - Landing page URL(s) - Which campaigns/ad groups point to which pages - Conversion action name and how it fires (page load, event, etc.) - Any known issues (form complaints, mobile problems) - Recent conversion volume (or "we don't know" — that's data too)
After running both forks, produce a clear classification:
Symptoms: Low/zero conversions, but page looks fine, form works, users seem to engage
Diagnosis: Tag not firing, wrong conversion action, GCLID stripped, cross-domain break
Action: Fix tracking → then reassess conversion rate with clean data
Draft type: Tracking fix (use drafts/templates/tracking-draft.md)
Symptoms: Tracking verified clean, but conversion rate is genuinely low Diagnosis: Message mismatch, buried CTA, excessive form friction, wrong page for intent Action: Landing page improvements or intent routing changes Draft type: Landing review draft (use template below) and/or structure draft
Symptoms: Tracking has issues AND the page has UX problems Diagnosis: Two independent failures compounding Action: Fix tracking first (P0), then address UX (P1) — in that order Draft types: Tracking fix draft + Landing review draft
Symptoms: Tracking clean, page is good, but conversion rate still low Diagnosis: The traffic is wrong — keywords matching wrong intent, broad match pulling junk, PMax sending Display/YouTube traffic to a Search landing page Action: Search terms analysis, negative keywords, or structure changes Draft type: Negative draft and/or structure draft (this is NOT a landing page problem)
Trigger: Fork B finds meaningful path/UX issues (at least 2 dimensions scored Weak/Missing/Broken)
Create using the template below:
- Write to workspace/ads/drafts/YYYY-MM-DD-[account-slug]-landing-review.md
- Update workspace/ads/drafts/_index.md
If Fork A also finds issues, create a SEPARATE tracking fix draft — don't mix them.
# Draft: Landing Page Review — [DATE]
Status: proposed
Skill: /google-ads landing-review
Account: [Customer ID / Name]
## Summary
[One paragraph: which pages were reviewed, the primary diagnosis (tracking vs path vs both),
and the highest-priority fix.]
## Diagnostic Classification
**Primary issue:** Tracking Problem | Path/UX Problem | Both | Traffic Quality Problem
## Fork A: Tracking Status
- **Conversion action:** [Name and status]
- **Tag status:** [Fires correctly / Suspicious / Broken / Unknown]
- **GCLID passing:** [Yes / No / Unknown]
- **Auto-tagging:** [Enabled / Disabled]
- **Verdict:** [Clean / Suspicious / Broken / Unknown]
## Fork B: Path/UX Assessment
### Page: [URL]
- **Campaigns pointing here:** [list]
- **Clicks (30d):** [N]
- **Conversions (30d):** [N]
- **Implied conversion rate:** [X%]
#### Scores
| Dimension | Score | Detail |
|-----------|-------|--------|
| Message match | [Strong/Weak/Missing] | [specific observation] |
| CTA clarity | [Clear/Buried/Missing] | [specific observation] |
| Form friction | [Low/Medium/High] | [field count, issues] |
| Mobile experience | [Good/Adequate/Broken] | [specific observation] |
| Page speed | [Fast/Slow/Broken] | [load time if available] |
| Trust signals | [Strong/Some/None] | [specific observation] |
| Intent specificity | [Focused/Mixed/Generic] | [specific observation] |
| Path completeness | [Complete/Partial/Broken] | [where it breaks] |
### Proposed Changes
#### Change 1: [Specific recommendation]
- **Current state:** [what's wrong]
- **Proposed state:** [what to do]
- **Expected impact:** [on conversion rate, quality score]
- **Risk:** [what could go wrong]
- **Priority:** P0 / P1 / P2
[repeat for each change]
## Intent Routing Assessment
- **Are different intent classes landing on the right pages?** [Yes / No — detail]
- **Should new landing pages be created?** [If so, for which intent classes]
- **Cross-reference with intent map:** [link to workspace/ads/intent-map.md findings]
## Dependencies
- [e.g., "Fix tracking (2026-03-15-acme-tracking-fix.md) before assessing conversion rate improvement"]
## Confidence
[High / Medium / Low] — [reasoning]
## Review
- [ ] Evidence checked
- [ ] Collateral risk checked
- [ ] Dependencies checked
- **Decision:** approve | defer | reject
- **Decision reason:** ____
- **Reviewed by:** ____
- **Reviewed on:** ____
- **Applied on:** ____
- **Notes:** ____
workspace/ads/findings.md — landing page diagnosis and classificationworkspace/ads/learnings.md — what we learned about this account's conversion path