landing-page-audit

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

Landing Page Audit

着陆页审计

Description

功能描述

The Landing Page Audit skill performs comprehensive evaluations of post-click experiences, combining technical performance analysis with conversion rate optimization (CRO) assessment. Landing page quality directly impacts Google Ads Quality Score, conversion rates, and ultimately the profitability of every advertising dollar. This skill audits the three pillars of landing page effectiveness: speed, relevance, and persuasion.
Technical performance analysis centers on Core Web Vitals — Largest Contentful Paint (LCP), First Input Delay (FID) / Interaction to Next Paint (INP), and Cumulative Layout Shift (CLS). Google uses these metrics as direct signals for landing page experience scoring. The skill measures real-world performance across devices, identifies render-blocking resources, analyzes critical rendering paths, and produces actionable speed optimization recommendations with estimated Quality Score impact.
The relevance and CRO layer evaluates message match between ad copy and landing page content, assesses call-to-action clarity and prominence, analyzes form design and friction points, checks mobile responsiveness, evaluates trust signals (reviews, certifications, security indicators), and benchmarks conversion elements against industry-specific best practices. The output is a scored assessment with prioritized improvement recommendations ranked by expected conversion rate impact.
Landing Page Audit技能结合技术性能分析与转化率优化(CRO)评估,对点击后体验进行全面评估。着陆页质量直接影响Google Ads质量得分、转化率,最终影响每一笔广告投入的回报率。该技能从三个核心维度审计着陆页效果:速度、相关性和说服力。
技术性能分析聚焦于Core Web Vitals——最大内容绘制(LCP)、首次输入延迟(FID)/交互到下一次绘制(INP)和累积布局偏移(CLS)。Google将这些指标作为着陆页体验评分的直接信号。该技能会跨设备测量真实环境下的性能表现,识别阻塞渲染的资源,分析关键渲染路径,并生成可落地的速度优化建议,同时预估对质量得分的影响。
相关性与CRO评估层会审核广告文案与着陆页内容的信息匹配度,评估行动召唤(CTA)的清晰度与突出性,分析表单设计与摩擦点,检查移动端适配性,评估信任信号(评价、认证、安全标识),并对照行业最佳实践对标转化元素表现。输出结果为带评分的评估报告,以及按预期转化率影响优先级排序的改进建议。

Use When

适用场景

  • User asks for a "landing page audit" or "page review"
  • User mentions "landing page experience" Quality Score component
  • User wants to "improve conversion rate" or "CRO analysis"
  • User asks about "page speed" or "Core Web Vitals"
  • User mentions "low conversion rate" on specific pages
  • User wants to "improve Quality Score" landing page component
  • User asks about "mobile landing page" performance
  • User mentions "message match" between ads and landing pages
  • User wants "form optimization" or "CTA optimization" advice
  • 用户请求“着陆页审计”或“页面审核”
  • 用户提及“着陆页体验”质量得分组件
  • 用户希望“提升转化率”或进行“CRO分析”
  • 用户询问“页面速度”或“Core Web Vitals”相关问题
  • 用户提到特定页面“转化率低”
  • 用户希望“提升质量得分”中的着陆页组件评分
  • 用户询问“移动端着陆页”性能
  • 用户提及广告与着陆页之间的“信息匹配度”
  • 用户需要“表单优化”或“CTA优化”建议

Architecture

架构

mermaid
flowchart TD
    A[Landing Page URL] --> B[Parallel Analysis Pipeline]

    B --> C[Technical Performance]
    B --> D[Content & Relevance]
    B --> E[CRO Assessment]

    C --> C1[Core Web Vitals\nLCP, INP, CLS]
    C --> C2[Page Speed\nTTFB, FCP, SI]
    C --> C3[Resource Analysis\nRender-blocking, Images]
    C --> C4[Mobile Performance\nViewport, Touch Targets]

    D --> D1[Message Match Scoring\nAd Copy vs Page Content]
    D --> D2[Keyword Relevance\nTarget Keywords in Content]
    D --> D3[Content Quality\nReadability, Depth]
    D --> D4[SEO Alignment\nMeta Tags, Headers]

    E --> E1[CTA Analysis\nVisibility, Clarity, Urgency]
    E --> E2[Form Audit\nField Count, Friction]
    E --> E3[Trust Signals\nReviews, Badges, Social Proof]
    E --> E4[Visual Hierarchy\nAbove-Fold Content, Layout]

    C1 --> F[Scoring Engine]
    C2 --> F
    C3 --> F
    C4 --> F
    D1 --> F
    D2 --> F
    D3 --> F
    D4 --> F
    E1 --> F
    E2 --> F
    E3 --> F
    E4 --> F

    F --> G[Overall Landing Page Score]
    G --> H[Prioritized Recommendations]
    G --> I[Estimated QS Impact]
    G --> J[Estimated CVR Improvement]
mermaid
flowchart TD
    A[Landing Page URL] --> B[Parallel Analysis Pipeline]

    B --> C[Technical Performance]
    B --> D[Content & Relevance]
    B --> E[CRO Assessment]

    C --> C1[Core Web Vitals\nLCP, INP, CLS]
    C --> C2[Page Speed\nTTFB, FCP, SI]
    C --> C3[Resource Analysis\nRender-blocking, Images]
    C --> C4[Mobile Performance\nViewport, Touch Targets]

    D --> D1[Message Match Scoring\nAd Copy vs Page Content]
    D --> D2[Keyword Relevance\nTarget Keywords in Content]
    D --> D3[Content Quality\nReadability, Depth]
    D --> D4[SEO Alignment\nMeta Tags, Headers]

    E --> E1[CTA Analysis\nVisibility, Clarity, Urgency]
    E --> E2[Form Audit\nField Count, Friction]
    E --> E3[Trust Signals\nReviews, Badges, Social Proof]
    E --> E4[Visual Hierarchy\nAbove-Fold Content, Layout]

    C1 --> F[Scoring Engine]
    C2 --> F
    C3 --> F
    C4 --> F
    D1 --> F
    D2 --> F
    D3 --> F
    D4 --> F
    E1 --> F
    E2 --> F
    E3 --> F
    E4 --> F

    F --> G[Overall Landing Page Score]
    G --> H[Prioritized Recommendations]
    G --> I[Estimated QS Impact]
    G --> J[Estimated CVR Improvement]

Implementation

实现代码

Core Web Vitals and technical performance analysis:
javascript
async function auditLandingPage(url, config) {
  const { adCopyText, targetKeywords, device = 'both' } = config;

  const [technical, content, cro] = await Promise.all([
    runTechnicalAudit(url, device),
    runContentAudit(url, adCopyText, targetKeywords),
    runCROAudit(url, device)
  ]);

  const overallScore = calculateOverallScore(technical, content, cro);

  return {
    url,
    overallScore,
    technical,
    content,
    cro,
    recommendations: prioritizeRecommendations(technical, content, cro),
    estimatedQSImpact: estimateQualityScoreImpact(overallScore),
    estimatedCVRImprovement: estimateCVRImprovement(cro)
  };
}

async function runTechnicalAudit(url, device) {
  const mobileMetrics = device !== 'desktop' ? await measurePerformance(url, 'mobile') : null;
  const desktopMetrics = device !== 'mobile' ? await measurePerformance(url, 'desktop') : null;

  const metrics = mobileMetrics || desktopMetrics;

  return {
    coreWebVitals: {
      lcp: { value: metrics.lcp, rating: rateLCP(metrics.lcp) },
      inp: { value: metrics.inp, rating: rateINP(metrics.inp) },
      cls: { value: metrics.cls, rating: rateCLS(metrics.cls) }
    },
    additionalMetrics: {
      ttfb: metrics.ttfb,
      fcp: metrics.fcp,
      speedIndex: metrics.speedIndex,
      totalBlockingTime: metrics.tbt
    },
    resourceAnalysis: {
      renderBlockingResources: metrics.renderBlocking,
      unoptimizedImages: metrics.unoptimizedImages,
      unusedCSS: metrics.unusedCSS,
      unusedJS: metrics.unusedJS,
      totalPageWeight: metrics.totalBytes
    },
    mobileUsability: {
      viewportConfigured: metrics.hasViewport,
      textReadable: metrics.fontSizeAdequate,
      touchTargetsSized: metrics.touchTargetsAdequate,
      contentFitsViewport: metrics.noHorizontalScroll
    }
  };
}

function rateLCP(ms) {
  if (ms <= 2500) return { score: 'good', color: 'green' };
  if (ms <= 4000) return { score: 'needs_improvement', color: 'orange' };
  return { score: 'poor', color: 'red' };
}

function rateINP(ms) {
  if (ms <= 200) return { score: 'good', color: 'green' };
  if (ms <= 500) return { score: 'needs_improvement', color: 'orange' };
  return { score: 'poor', color: 'red' };
}

function rateCLS(value) {
  if (value <= 0.1) return { score: 'good', color: 'green' };
  if (value <= 0.25) return { score: 'needs_improvement', color: 'orange' };
  return { score: 'poor', color: 'red' };
}
Message match and CRO assessment:
javascript
function scoreMessageMatch(adCopy, pageContent) {
  const adHeadlines = adCopy.headlines.map(h => h.toLowerCase());
  const adDescriptions = adCopy.descriptions.map(d => d.toLowerCase());
  const pageText = pageContent.toLowerCase();

  let matchScore = 0;

  const headlineMatches = adHeadlines.filter(h =>
    pageText.includes(h) || fuzzyMatch(h, pageText) > 0.8
  );
  matchScore += (headlineMatches.length / adHeadlines.length) * 40;

  const keyPhrases = extractKeyPhrases([...adHeadlines, ...adDescriptions]);
  const phraseMatches = keyPhrases.filter(p => pageText.includes(p));
  matchScore += (phraseMatches.length / keyPhrases.length) * 30;

  const aboveFoldContent = pageContent.aboveFold?.toLowerCase() || '';
  const aboveFoldRelevance = keyPhrases.filter(p => aboveFoldContent.includes(p));
  matchScore += (aboveFoldRelevance.length / keyPhrases.length) * 30;

  return {
    score: Math.round(matchScore),
    headlinePresence: headlineMatches,
    missingPhrases: keyPhrases.filter(p => !pageText.includes(p)),
    aboveFoldRelevance: aboveFoldRelevance.length / keyPhrases.length
  };
}

function auditCTA(pageData) {
  return {
    ctaPresent: pageData.ctaElements.length > 0,
    ctaAboveFold: pageData.ctaElements.some(cta => cta.yPosition < pageData.viewportHeight),
    ctaContrast: pageData.ctaElements.map(cta => ({
      text: cta.text,
      contrastRatio: calculateContrast(cta.color, cta.backgroundColor),
      meetsWCAG: calculateContrast(cta.color, cta.backgroundColor) >= 4.5
    })),
    ctaClarity: evaluateCTAText(pageData.ctaElements),
    ctaCount: pageData.ctaElements.length,
    recommendation: pageData.ctaElements.length === 0
      ? 'Add a clear, prominent CTA above the fold'
      : pageData.ctaElements.length > 3
        ? 'Reduce CTA options to avoid choice paralysis'
        : 'CTA count is appropriate'
  };
}

function auditForm(formData) {
  return {
    fieldCount: formData.fields.length,
    frictionScore: calculateFormFriction(formData),
    recommendations: [
      formData.fields.length > 5 && 'Reduce form fields to 3-5 for higher completion rates',
      !formData.hasProgressIndicator && formData.steps > 1 && 'Add progress indicator for multi-step forms',
      !formData.hasInlineValidation && 'Add inline validation to reduce submission errors',
      formData.requiredFields > formData.fields.length * 0.8 && 'Mark fewer fields as required to reduce friction'
    ].filter(Boolean)
  };
}
Core Web Vitals与技术性能分析:
javascript
async function auditLandingPage(url, config) {
  const { adCopyText, targetKeywords, device = 'both' } = config;

  const [technical, content, cro] = await Promise.all([
    runTechnicalAudit(url, device),
    runContentAudit(url, adCopyText, targetKeywords),
    runCROAudit(url, device)
  ]);

  const overallScore = calculateOverallScore(technical, content, cro);

  return {
    url,
    overallScore,
    technical,
    content,
    cro,
    recommendations: prioritizeRecommendations(technical, content, cro),
    estimatedQSImpact: estimateQualityScoreImpact(overallScore),
    estimatedCVRImprovement: estimateCVRImprovement(cro)
  };
}

async function runTechnicalAudit(url, device) {
  const mobileMetrics = device !== 'desktop' ? await measurePerformance(url, 'mobile') : null;
  const desktopMetrics = device !== 'mobile' ? await measurePerformance(url, 'desktop') : null;

  const metrics = mobileMetrics || desktopMetrics;

  return {
    coreWebVitals: {
      lcp: { value: metrics.lcp, rating: rateLCP(metrics.lcp) },
      inp: { value: metrics.inp, rating: rateINP(metrics.inp) },
      cls: { value: metrics.cls, rating: rateCLS(metrics.cls) }
    },
    additionalMetrics: {
      ttfb: metrics.ttfb,
      fcp: metrics.fcp,
      speedIndex: metrics.speedIndex,
      totalBlockingTime: metrics.tbt
    },
    resourceAnalysis: {
      renderBlockingResources: metrics.renderBlocking,
      unoptimizedImages: metrics.unoptimizedImages,
      unusedCSS: metrics.unusedCSS,
      unusedJS: metrics.unusedJS,
      totalPageWeight: metrics.totalBytes
    },
    mobileUsability: {
      viewportConfigured: metrics.hasViewport,
      textReadable: metrics.fontSizeAdequate,
      touchTargetsSized: metrics.touchTargetsAdequate,
      contentFitsViewport: metrics.noHorizontalScroll
    }
  };
}

function rateLCP(ms) {
  if (ms <= 2500) return { score: 'good', color: 'green' };
  if (ms <= 4000) return { score: 'needs_improvement', color: 'orange' };
  return { score: 'poor', color: 'red' };
}

function rateINP(ms) {
  if (ms <= 200) return { score: 'good', color: 'green' };
  if (ms <= 500) return { score: 'needs_improvement', color: 'orange' };
  return { score: 'poor', color: 'red' };
}

function rateCLS(value) {
  if (value <= 0.1) return { score: 'good', color: 'green' };
  if (value <= 0.25) return { score: 'needs_improvement', color: 'orange' };
  return { score: 'poor', color: 'red' };
}
信息匹配与CRO评估:
javascript
function scoreMessageMatch(adCopy, pageContent) {
  const adHeadlines = adCopy.headlines.map(h => h.toLowerCase());
  const adDescriptions = adCopy.descriptions.map(d => d.toLowerCase());
  const pageText = pageContent.toLowerCase();

  let matchScore = 0;

  const headlineMatches = adHeadlines.filter(h =>
    pageText.includes(h) || fuzzyMatch(h, pageText) > 0.8
  );
  matchScore += (headlineMatches.length / adHeadlines.length) * 40;

  const keyPhrases = extractKeyPhrases([...adHeadlines, ...adDescriptions]);
  const phraseMatches = keyPhrases.filter(p => pageText.includes(p));
  matchScore += (phraseMatches.length / keyPhrases.length) * 30;

  const aboveFoldContent = pageContent.aboveFold?.toLowerCase() || '';
  const aboveFoldRelevance = keyPhrases.filter(p => aboveFoldContent.includes(p));
  matchScore += (aboveFoldRelevance.length / keyPhrases.length) * 30;

  return {
    score: Math.round(matchScore),
    headlinePresence: headlineMatches,
    missingPhrases: keyPhrases.filter(p => !pageText.includes(p)),
    aboveFoldRelevance: aboveFoldRelevance.length / keyPhrases.length
  };
}

function auditCTA(pageData) {
  return {
    ctaPresent: pageData.ctaElements.length > 0,
    ctaAboveFold: pageData.ctaElements.some(cta => cta.yPosition < pageData.viewportHeight),
    ctaContrast: pageData.ctaElements.map(cta => ({
      text: cta.text,
      contrastRatio: calculateContrast(cta.color, cta.backgroundColor),
      meetsWCAG: calculateContrast(cta.color, cta.backgroundColor) >= 4.5
    })),
    ctaClarity: evaluateCTAText(pageData.ctaElements),
    ctaCount: pageData.ctaElements.length,
    recommendation: pageData.ctaElements.length === 0
      ? 'Add a clear, prominent CTA above the fold'
      : pageData.ctaElements.length > 3
        ? 'Reduce CTA options to avoid choice paralysis'
        : 'CTA count is appropriate'
  };
}

function auditForm(formData) {
  return {
    fieldCount: formData.fields.length,
    frictionScore: calculateFormFriction(formData),
    recommendations: [
      formData.fields.length > 5 && 'Reduce form fields to 3-5 for higher completion rates',
      !formData.hasProgressIndicator && formData.steps > 1 && 'Add progress indicator for multi-step forms',
      !formData.hasInlineValidation && 'Add inline validation to reduce submission errors',
      formData.requiredFields > formData.fields.length * 0.8 && 'Mark fewer fields as required to reduce friction'
    ].filter(Boolean)
  };
}

Integration with Buddy™ Agent

与Buddy™ Agent集成

The Landing Page Audit skill operates within Buddy™ Agent as the post-click quality assurance layer. When the Google Ads Audit detects "below average" landing page experience scores on high-spend keywords, Buddy™ automatically triggers landing page audits for the associated URLs with the relevant ad copy and keywords pre-loaded for message match analysis.
Buddy™ maintains a landing page performance database, tracking Core Web Vitals and conversion rates for every URL receiving ad traffic. It detects performance regressions (speed degradation, CLS increases after site updates) and alerts users before Quality Score impacts materialize. The platform also monitors message match when ad copy changes, ensuring landing page content stays aligned with updated messaging.
For agencies managing multiple clients, Buddy™ aggregates landing page insights across accounts, identifying systematic issues (common CMS performance problems, shared template weaknesses) that can be addressed at scale.
Landing Page Audit技能作为点击后质量保障层,运行在Buddy™ Agent中。当Google Ads审计检测到高消耗关键词的着陆页体验得分“低于平均水平”时,Buddy™会自动触发对应URL的着陆页审计,并预加载相关广告文案与关键词以进行信息匹配分析。
Buddy™维护着陆页性能数据库,跟踪所有获得广告流量的URL的Core Web Vitals与转化率。它能检测性能退化(网站更新后的速度下降、CLS上升),并在质量得分受影响前提醒用户。当广告文案变更时,平台还会监控信息匹配度,确保着陆页内容与更新后的广告信息保持一致。
对于管理多个客户的代理机构,Buddy™会跨账户聚合着陆页洞察,识别系统性问题(常见CMS性能问题、共享模板缺陷),从而实现规模化优化。

Best Practices

最佳实践

  1. Target LCP under 2.5 seconds on mobile as the single most impactful speed metric
  2. Ensure primary CTA is visible above the fold on both mobile and desktop
  3. Match the exact language from your top-performing ad headlines on the landing page
  4. Limit form fields to the minimum necessary — each additional field reduces conversion rate by 4-7%
  5. Include at least three trust signals: customer reviews, security badges, industry certifications
  6. Test pages on real mobile devices, not just responsive desktop previews
  7. Compress images to WebP format and implement lazy loading for below-fold content
  8. Use a single, clear CTA per page section to avoid decision paralysis
  9. Audit landing pages quarterly and after any significant site updates
  10. A/B test landing page variations with sufficient traffic (500+ sessions per variant minimum)
  1. 将移动端LCP控制在2.5秒以内,这是影响最大的速度指标
  2. 确保主要CTA在移动端和桌面端都能在首屏可见
  3. 着陆页上使用与表现最佳的广告标题完全一致的语言
  4. 表单字段保持最少必要数量——每增加一个字段,转化率会下降4-7%
  5. 至少包含三种信任信号:客户评价、安全徽章、行业认证
  6. 在真实移动设备上测试页面,而不仅仅是桌面端响应式预览
  7. 将图片压缩为WebP格式,并对首屏以下内容实现懒加载
  8. 每个页面区域使用单一、清晰的CTA,避免决策瘫痪
  9. 每季度审计一次着陆页,且在网站重大更新后也要审计
  10. 对着陆页变体进行A/B测试,且每个变体需有足够流量(每个变体至少500次会话)

Platform Compatibility

平台兼容性

PlatformSupported
Claude Code
Cursor
Codex
Gemini
平台支持情况
Claude Code
Cursor
Codex
Gemini

Related Skills

相关技能

  • Quality Score Optimization - Landing page experience is one of three Quality Score sub-components
  • Ad Copy Generation - Message match between ad copy and landing page content affects relevance and conversions
  • Conversion Tracking - Landing page CRO improvements directly impact conversion rates and tracking accuracy
  • Long-Horizon Workflows - Multi-page site audits benefit from phased, checkpointed workflow execution
  • Quality Score Optimization - 着陆页体验是质量得分的三个子组件之一
  • Ad Copy Generation - 广告文案与着陆页内容的信息匹配度会影响相关性与转化率
  • Conversion Tracking - 着陆页CRO优化直接影响转化率与追踪准确性
  • Long-Horizon Workflows - 多页面网站审计可受益于分阶段、带检查点的工作流执行

Keywords

关键词

landing page audit, core web vitals, page speed, conversion rate optimization, CRO, message match, CTA optimization, form optimization, mobile landing page, landing page experience, quality score landing page, LCP, INP, CLS, page performance

© 2026 googleadsagent.ai™ | Agent Skills™ | MIT License
着陆页审计, Core Web Vitals, 页面速度, 转化率优化(CRO), 信息匹配度, CTA优化, 表单优化, 移动端着陆页, 着陆页体验, 质量得分着陆页组件, LCP, INP, CLS, 页面性能

© 2026 googleadsagent.ai™ | Agent Skills™ | MIT License