Community研究與資料分析github.com

Landing Page Auditor / 登陸頁面審計器

審計登陸頁面、首頁或銷售頁面,並運用 GA4、Search Console、Google Ads 以及桌面與行動裝置渲染,針對七個支柱進行評分,並優先排序修正建議與改寫文案。

登陸頁面審計器 是什麼?

這是一個專門用於審計登陸頁面或銷售頁面轉換效能的 AI 技能,專為 InsightfulPipe MCP 平台設計,並與 Google Analytics 4、DataForSEO、Google Search Console、Google Ads、PageSpeed Insights 及截圖服務整合。技能會從 GA4 與 Search Console 獲取資料,透過 DataForSEO 擷取頁面結構(包含標題、CTA、信任元素等),並進行行動裝置渲染檢查。最終根據七個支柱(流量品質、轉換路徑、訊息一致性、頁面結構、信任元素、技術 SEO、行動體驗)產出詳細報告,並按優先順序列出每個發現的問題、背後的數據以及改寫後的文案建議。這對行銷人員、SEO 專員或產品經理相當實用,特別是當頁面轉換率不佳、需要進行登陸頁面審查、行動裝置檢測或規劃新頁面結構時。

相容平台~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/Insightful-Pipe/analytics-cro-skills/tree/HEAD/skills/landing-page-auditor

Installed? Explore more 研究與資料分析 skills: affaan-m/uspto-database, affaan-m/scholar-evaluation, affaan-m/literature-review · View all 6 →

在你喜歡的 AI 中提問

開啟一個已預先載入此 Agent Skill 的新對話。

說明文件

登陸頁面審計器

一項同時審視頁面與造訪者的審計。每個發現都來自此技能執行的呼叫,且每個發現都會顯示背後的數字或頁面元素。

開始之前

你需要先連接 InsightfulPipe MCP。Google Analytics 4 和 DataForSEO 負責主要路徑;其他資料來源則提供補充資訊。

  1. 針對每個平台呼叫 query_contexts,並帶入 request="accounts":google-analytics、google-search-console、dataforseo、screenshot、pagespeed-insights,以及若頁面有付費流量則加上 google-ads。請記下 workspace_id、brand_id、GA4 的 property_id 以及 Search Console 的 site_url。如果有多個資源,請詢問是哪個網站。
  2. 呼叫 query_contexts,並帶入 request="actions_details" 來取得 get_report 和 list_key_events (google-analytics)、search_analytics、onpage_instant_pages、capture、core-web-vitals、accessibility-seo 和 gaql 等動作,並遵循其回傳的 body 結構。
  3. 詢問三個事項;若使用者不清楚,則使用預設值:
    • 頁面。 預設:GA4 中工作階段數最多的登陸頁面(步驟 1)。
    • 此頁面存在的單一主要行動(註冊、購買、預約示範、來電、下載)。預設:首個 CTA(行動號召)的目標位置。
    • 頁面類型: 付費登陸頁面、首頁、銷售頁面、定價、功能、產品、潛在客戶開發、活動。預設:從 URL 和流量組合推斷,並說明推斷理由。

日期。 GA4 需要一至兩天來處理一天的數據,尚未處理完畢的日期會顯示零參與率的工作階段。使用截至昨天往前推 28 天的日期範圍。Search Console 的延遲更久:將其視窗截止日設為 3 天前。在報告頂端說明這兩個日期區間。

如何執行查詢

以下每個 body 都透過 query_data 傳送,並附上其命名的平台、workspace_id 和 brand_id。日期來自測試執行:請使用你自己的日期區間。路徑 / 和 https://example.com/ 代表你要審計的頁面。API 強制執行的規則或數據需求:

  • GA4 landingPage 是不包含主機的路徑(/pricing)。值為空白或 (not set) 的資料列是沒有頁面瀏覽的工作階段;請將它們排除在頁面排名之外,並說明有多少筆此類資料。
  • GA4 篩選器 使用 dimensionFilter,搭配 filter / stringFilter (matchType EXACT)、inListFilter,或是一個包含多個表達式的 andGroup。
  • Search Console 根據完整 URL(包含主機以及該網站使用的尾端斜線)進行篩選。
  • Google Ads GAQL: ORDER BY 中的任何欄位都必須同時出現在 SELECT 中。金額以 _micros 表示;請除以 1,000,000。
  • DataForSEO custom_js 在沒有排版引擎的頁面模型中執行:不支援 getBoundingClientRect、innerHeight 和計算後的樣式,且 NodeList.forEach 會失敗。請使用傳統 for 迴圈和 DOM 順序,將腳本控制在約 2,000 字元以下,並在回應為空時讀取 custom_js_client_exception。每次呼叫 onpage_instant_pages 都會收費:每頁一次。

如果某個呼叫失敗,請繼續執行。將它所提供的資料標記為 未知,說明是哪個呼叫失敗以及原因,並在最後對失敗的頁面工具重試一次。切勿憑空猜測來填補空缺。

步驟 1:選擇頁面並檢查追蹤設置

{"platform": "google-analytics", "action": "get_report", "property_id": "properties/<PROPERTY_ID>",
 "dimensions": ["date"], "metrics": ["sessions", "engagedSessions", "keyEvents"],
 "start_date": "2026-09-06", "end_date": "2026-10-05"}

執行此每日檢查,涵蓋過去 30 天至昨天。

  • 追蹤異動: 如果某一天的工作階段數至少是前 7 天中位數的 5 倍,並且之後的日子維持在這個水平,則表示追蹤代碼在那一天發生了變化(反之亦然,如果是下降)。將視窗起始日設為新水平的第一天。
  • 未處理的日期: 一個最近的日期有工作階段數但參與率為 0,表示該日尚未處理完畢。將它排除在視窗外。
  • 日期區間過短: 如果剩下少於 7 天,審計仍然會執行,但請在報告頂端說明這些比率僅供參考。
{"platform": "google-analytics", "action": "get_report", "property_id": "properties/<PROPERTY_ID>",
 "dimensions": ["landingPage"],
 "metrics": ["sessions", "engagedSessions", "engagementRate", "keyEvents", "averageSessionDuration"],
 "start_date": "2026-10-01", "end_date": "2026-10-04",
 "orderBys": [{"metric": {"metricName": "sessions"}, "desc": true}], "limit": 25}

使用 deviceCategory 作為唯一維度,執行相同的報告以取得網站的整體參與率。如果使用者未指定頁面,則審計工作階段數最多的登陸頁面,並列出接下來四個頁面作為後續分析的候選。

步驟 2:衡量:頁面的轉換是否被計算?

{"platform": "google-analytics", "action": "list_key_events", "property_id": "properties/<PROPERTY_ID>"}
{"platform": "google-analytics", "action": "get_report", "property_id": "properties/<PROPERTY_ID>",
 "dimensions": ["pagePath", "eventName"], "metrics": ["eventCount", "totalUsers"],
 "start_date": "2026-10-01", "end_date": "2026-10-04",
 "dimensionFilter": {"filter": {"fieldName": "pagePath", "stringFilter": {"matchType": "EXACT", "value": "/"}}}}
{"platform": "google-analytics", "action": "get_report", "property_id": "properties/<PROPERTY_ID>",
 "dimensions": ["pagePath", "linkUrl", "outbound"], "metrics": ["eventCount"],
 "start_date": "2026-10-01", "end_date": "2026-10-04",
 "dimensionFilter": {"andGroup": {"expressions": [
   {"filter": {"fieldName": "pagePath", "stringFilter": {"matchType": "EXACT", "value": "/"}}},
   {"filter": {"fieldName": "eventName", "stringFilter": {"matchType": "EXACT", "value": "click"}}}]}}}
結果說明
已衡量登陸頁報告顯示該頁面的關鍵事件,或有關鍵事件在該頁面上觸發
部分衡量僅記錄了 CTA 點擊(一個 click 事件,其 linkUrl 為 CTA 的目標位置)
未衡量兩者皆無
  • 名稱包含 "test" 或 "qa" 的關鍵事件不計入。報告在該時間範圍內配置了多少個關鍵事件以及觸發了多少次。
  • GA4 內建的 click 事件僅記錄站外連結。站內連結以及為跨網域衡量設定的網域不會被記錄。因此,對於 CTA 目標位置沒有點擊記錄,表示「未衡量」,絕不代表「沒人點擊」。
  • 當頁面未被衡量時,就沒有轉換率。請使用代理指標並將其標記為代理指標:參與率、到達轉換路徑的頁面工作階段比例(步驟 3),以及 90% 滾動(內建的 scroll 事件;將 deviceCategory 加入事件報告以按裝置拆分,計算有滾動的使用者對比有瀏覽的使用者)。

步驟 3:誰來了,他們又去了哪裡

{"platform": "google-analytics", "action": "get_report", "property_id": "properties/<PROPERTY_ID>",
 "dimensions": ["landingPage", "sessionDefaultChannelGroup", "sessionSourceMedium"],
 "metrics": ["sessions", "engagedSessions", "engagementRate"],
 "start_date": "2026-10-01", "end_date": "2026-10-04",
 "dimensionFilter": {"filter": {"fieldName": "landingPage", "stringFilter": {"matchType": "EXACT", "value": "/"}}}}

使用 deviceCategory 取代頻道維度再次執行報告,並使用 pagePath 和指標 sessions(按工作階段數排序前 10 名)再執行一次,以查看頁面將使用者導向何處。第一行通常是頁面本身,因此 10 行會顯示 9 個下一頁。然後:

  • 來源: 每個頻道的工作階段比例及其參與率。一個來源有 10 個或更多工作階段但參與率為 0,這是流量問題(機器人、預覽擷取器或錯誤的標籤),而非頁面問題。請標記它,並提供包含和不包含該來源的頁面參與率。
  • 裝置: 行動裝置比例決定了行動裝置發現結果的權重。
  • 轉換路徑: 到達定價、示範、註冊或結帳頁面的工作階段比例。
  • 確認付費流量。 google / cpc 的工作階段僅在該工作階段具有 sessionGoogleAdsCustomerId,或廣告帳戶顯示對該 URL 有來自 Google Ads 的點擊時,才計為 Google Ads 流量。否則將其稱為「未確認的付費流量」並說明。
{"platform": "google-analytics", "action": "get_report", "property_id": "properties/<PROPERTY_ID>",
 "dimensions": ["landingPage", "sessionCampaignName", "sessionGoogleAdsCustomerId"], "metrics": ["sessions", "engagedSessions"],
 "start_date": "2026-10-01", "end_date": "2026-10-04",
 "dimensionFilter": {"andGroup": {"expressions": [
   {"filter": {"fieldName": "landingPage", "stringFilter": {"matchType": "EXACT", "value": "/"}}},
   {"filter": {"fieldName": "sessionSourceMedium", "stringFilter": {"matchType": "EXACT", "value": "google / cpc"}}}]}}}

自然流量意圖 (Search Console):

{"platform": "google-search-console", "action": "search_analytics", "site_url": "https://example.com/",
 "dimensions": ["query"], "start_date": "2026-09-06", "end_date": "2026-10-03", "row_limit": 25,
 "dimension_filter_groups": [{"filters": [{"dimension": "page", "operator": "equals", "expression": "https://example.com/"}]}]}

將品牌搜尋查詢(商業名稱及其拼寫錯誤)與其他查詢分開,並提供品牌查詢的點擊佔比。品牌訪客已經知道名稱:頁面必須確認他們的身份並引導他們。非品牌查詢則承載了頁面標題應反映的關鍵詞。

付費訊息匹配 (Google Ads):

SELECT landing_page_view.unexpanded_final_url, metrics.clicks, metrics.cost_micros, metrics.conversions
FROM landing_page_view WHERE segments.date DURING LAST_30_DAYS ORDER BY metrics.clicks DESC LIMIT 20
SELECT ad_group_ad.ad.final_urls, ad_group_ad.ad.responsive_search_ad.headlines, metrics.clicks, metrics.impressions
FROM ad_group_ad WHERE segments.date DURING LAST_30_DAYS AND ad_group_ad.status = 'ENABLED'
ORDER BY metrics.clicks DESC LIMIT 20
SELECT ad_group.name, ad_group_criterion.keyword.text, ad_group_criterion.quality_info.post_click_quality_score,
       ad_group_criterion.final_urls, metrics.clicks
FROM keyword_view WHERE segments.date DURING LAST_30_DAYS AND metrics.clicks > 0 ORDER BY metrics.clicks DESC LIMIT 50

透過 action="gaql" 並帶入 account_id 執行這些查詢。如果 landing_page_view 沒有該頁面的任何資料列,則跳過其他兩個:表示沒有針對該頁面的付費流量可以匹配。post_click_quality_score 是 Google 對該關鍵字的登陸頁面體驗評級(高於平均值、平均值、低於平均值)。關鍵字的最終 URL 通常為空,因為會使用廣告的 URL,因此透過廣告群組將關鍵字與頁面關聯。保留那些 final_urls 指向該頁面的廣告,並將其標題與頁面的 H1 和提案進行比較。對於 Meta、LinkedIn 或其他平台的廣告,或連結到該頁面的電子郵件,請要求使用者貼上廣告或電子郵件的內容(標題、內文、提案和 CTA),並以同樣的方式與頁面進行比較:H1 呼應標題,所有提案和聲明都在頁面上,並且頁面的 CTA 延續了廣告的 CTA。如果已安裝 ad-landing-page-match-scorer 技能,它會進行更深入的分析。

步驟 4:分解頁面

{"platform": "dataforseo", "action": "onpage_instant_pages", "url": "https://example.com/", "enable_javascript": true,
 "custom_js": "var o={seq:[],nav:0,links:document.links.length,forms:document.forms.length,inputs:document.querySelectorAll('input,select,textarea').length,imgs:0,noalt:0,vid:document.querySelectorAll('video,iframe').length,proof:{}};function E(l,f){for(var i=0;i<l.length;i++)f(l[i])}function t(e){return(e.textContent||'').replace(/\\s+/g,' ').trim()}function C(e){for(var p=e;p;p=p.parentNode){var n=(p.tagName||'').toLowerCase();if(n=='nav'||n=='header'||n=='footer')return 1}return 0}var f=0;E(document.querySelectorAll('h1,p'),function(e){if(e.tagName=='H1')f=1;else if(f==1&&t(e)){o.sub=t(e).slice(0,200);f=2}});E(document.querySelectorAll('h1,h2,h3,a[href],button'),function(e){var n=e.tagName.toLowerCase();if(n.charAt(0)=='h'){o.seq.push([n,t(e).slice(0,90)]);return}if(C(e))return;var c=(e.getAttribute('class')||'')+' '+(e.getAttribute('role')||'');if(n=='a'&&!/btn|button|cta|bg-/.test(c))return;var x=t(e).slice(0,50);if(x)o.seq.push(['cta',x,(e.getAttribute('href')||'').slice(0,80)])});E(document.querySelectorAll('header a[href],nav a[href]'),function(){o.nav++});E(document.querySelectorAll('img'),function(e){o.imgs++;if(!e.hasAttribute('alt'))o.noalt++});var x=t(document.body);o.words=x.split(' ').length;var p={testimonial:/testimonial|what .{0,12}say/i,rating:/★|\\d(\\.\\d)? ?\\/ ?5|g2|capterra|trustpilot/i,logos:/trusted by|used by|customers include/i,count:/\\d[\\d,]*\\+? (customers|users|teams|companies|marketers)/i,works_with:/works with|integrates with/i,security:/soc ?2|gdpr|encrypt/i,guarantee:/guarantee|refund|cancel anytime/i,faq:/faq|frequently asked/i};for(var k in p){var m=x.match(p[k]);o.proof[k]=m?m[0].slice(0,40):null}o;"}

custom_js_response 會以閱讀順序(seq:標題以及位於頁首、導航列和頁尾之外的 CTA)、H1 之後的第一個段落(sub)、計數,以及每種信任元素類型的第一個匹配項來返回頁面。請如此解讀:

  • 英雄區: 第一個 h2 之前的所有內容。注意其中的 H1、副標題和 CTA。
  • CTA: 只有帶有目標位置 (href) 的元素才是 CTA。沒有目標位置的按鈕是分頁標籤、折疊式選單或 Cookie 橫幅。計算不同的目標位置數量,並注意主要 CTA 在長頁面的中間之後是否再次出現。
  • 信任元素: 一個匹配是線索,而非最終判斷。在將其計入之前,請檢查前後文:產品示範中的一個數字或 FAQ 回答中的「secure」不是信任元素。「Works with」標誌顯示的是相容性,而非客戶。
  • 離開點: 頁首和導航連結數量 (nav)。在付費登陸頁面上,每個連結都是一條離開路徑。
  • 表單: forms 和 inputs。
  • 來自標準回應:meta.title、meta.htags、meta.content.plain_text_word_count、可讀性指數,以及 checks(no_h1_tag、has_render_blocking_resources、no_image_alt、title_too_long)。no_image_alt 可能為 true,與此同時該腳本可能找到了 alt 屬性;請優先採用腳本的結果,但檢查報告中這兩個值的狀態。

Individual skills in this repo

This repo contains 1 individual skill — each has its own dedicated page.

相關技能