Cross-Platform Content Performance — Merge Search and Engagement Data

Search Console tells you which pages attract clicks. GA4 tells you which pages keep visitors engaged. Neither one alone tells you which content is actually working. Cross-Platform Content Performance merges both data sources into a single quality matrix, so you can see which pages win on search AND engagement — and which ones need fixing. Upload two CSVs and get the full picture in under 60 seconds.

What Is Cross-Platform Content Performance Analysis?

Most content teams look at search data and engagement data separately. They check Search Console for impressions and clicks, then flip to GA4 for bounce rates and time on page. The problem is that these two views tell completely different stories. A blog post might rank on page one and pull hundreds of clicks per week — but if every visitor bounces within five seconds, that traffic is worthless. Conversely, a deep guide might have incredible engagement metrics — two minutes average read time, low bounce rate — but appear on page three of Google where nobody finds it.

Cross-Platform Content Performance analysis solves this by joining your Google Search Console export with your GA4 engagement export on a shared URL field. The result is a unified view where every page has both its search metrics (clicks, impressions, CTR, average position) and its engagement metrics (pageviews, bounce rate, session duration, engagement rate). Pages are then scored and plotted on a quality matrix that reveals four distinct quadrants: stars (high search + high engagement), SEO opportunities (high engagement but low search visibility), optimization targets (high search traffic but poor engagement), and underperformers (low on both).

This is the analysis that answers the question every content strategist asks: "Which of my pages are actually working end-to-end?" Not just attracting clicks, not just keeping visitors, but doing both. The quality matrix makes the answer visual and immediate — you can see at a glance where to invest effort and where to cut losses.

When to Use Cross-Platform Content Analysis

Run this analysis whenever you need to prioritize content work. If you have a library of blog posts, landing pages, or documentation and limited time to improve them, this report tells you exactly where to focus. The stars quadrant shows your best content — protect and replicate it. The SEO opportunities quadrant reveals hidden gems that engage visitors but lack search visibility — these are your fastest wins because the content is already good, it just needs better distribution. The optimization targets quadrant flags pages pulling search traffic that bounces — these need content improvements before the search traffic is wasted.

Content audits are the most common trigger. When a marketing team reviews their content portfolio quarterly, this analysis replaces hours of spreadsheet work with a single report. Instead of manually cross-referencing GSC and GA4 tabs, you upload two exports and get the matrix in seconds. The report even identifies content types (articles vs. landing pages vs. docs) and compares performance across types, so you can see if your blog strategy is outperforming your product pages or vice versa.

This analysis is also valuable after major site changes — a redesign, a URL migration, or a content reorganization. By running the cross-platform analysis before and after, you can see which pages maintained their combined search-plus-engagement performance and which ones broke.

What Data Do You Need?

This is a multi-dataset module. You need two separate CSV files:

Search dataset (from Google Search Console): Export your page-level performance data with columns for page URL, clicks, impressions, CTR, and average position. In GSC, go to Performance, set your date range, click "Pages" tab, then export. The key columns are page, clicks, impressions, ctr, and position.

Engagement dataset (from GA4): Export your page-level engagement data with columns for page path, screen page views, total users, sessions, bounce rate, average session duration, and engagement rate. In GA4, go to Reports > Engagement > Pages and screens, set your date range, and export. The key columns are pagePath, screenPageViews, totalUsers, sessions, bounceRate, averageSessionDuration, and engagementRate.

The module matches pages across the two datasets using URL matching. You can set a domain parameter to strip the domain prefix from GSC URLs (which include the full URL) so they match GA4 paths (which are typically just the path). Additional parameters let you set minimum thresholds: min_clicks (default 5), min_impressions (default 50), and min_pageviews (default 10) to filter out low-traffic pages that would add noise to the analysis. A content_type_regex parameter lets you classify pages into content types based on URL patterns.

How to Read the Report

The report contains nine sections, each revealing a different facet of your content performance:

Quality Matrix. This is the centerpiece. Pages are plotted on a two-dimensional chart with search performance on one axis and engagement performance on the other. Each dot is a page, and pages cluster into four quadrants. Stars (top-right) are your best performers — high search traffic and high engagement. SEO opportunities (bottom-right) engage visitors well but lack search visibility. Optimization targets (top-left) attract search clicks but fail to engage. Underperformers (bottom-left) need either a complete rework or deprecation.

Stars. A detailed table of your top-performing content — the pages that score well on both search and engagement. These are your templates for success. Study what they have in common: topic depth, format, keyword targeting, page structure. Then replicate those patterns across your weaker content.

SEO Opportunities. Pages with strong engagement signals but poor search visibility. These are often long-form guides, case studies, or niche content that visitors love once they find it — but Google is not sending traffic yet. Action items: improve title tags, add internal links, build backlinks, and target related keywords.

Optimize Content. Pages that attract search clicks but fail to retain visitors. High bounce rate, low session duration, or low engagement rate despite decent search rankings. The content is not meeting the promise of the search snippet. Action items: improve content quality, match search intent better, fix page speed issues, add internal navigation.

Content Types. If you set the content_type_regex parameter, this section breaks down performance by content category — articles vs. tutorials vs. product pages, for example. You can see which content format delivers the best combined search-plus-engagement ROI.

Unmatched Pages. Pages that appear in one dataset but not the other. GSC-only pages might have URL mismatches or might not be tracked in GA4. GA4-only pages might not be indexed in Google. This section helps you catch data hygiene issues.

TL;DR. AI-generated executive summary with the key findings, top action items, and overall content health score.

When to Use Something Else

If you only have GA4 data and want to analyze page engagement without the search dimension, use the GA4 Page Engagement module instead. It goes deeper on engagement metrics alone — bounce analysis, duration patterns, content type breakdowns — without requiring a GSC export.

If you only have Search Console data and want to find SEO opportunities without the engagement overlay, use the GSC Quick Wins module. It identifies pages ranking positions 4-20 with high impressions but low CTR — the classic SEO quick wins that do not require engagement data.

If you want to track how search rankings change over time rather than analyze content quality, use the Ranking Changes module. And if you are running SEO title experiments and need to compare control vs. treatment periods, use the Title A/B Test module.

The R Code Behind the Analysis

Every report includes the exact R code used to produce the results — reproducible, auditable, and citable. This is not AI-generated code that changes every run. The same data produces the same analysis every time.

The analysis uses dplyr for joining the two datasets on URL, computing composite quality scores, and classifying pages into quadrants. Engagement metrics are normalized using z-scores so that bounce rate (where lower is better) and session duration (where higher is better) can be combined into a single engagement index. Search performance is similarly composited from clicks, impressions, and CTR. The quality matrix is rendered with ggplot2, with quadrant boundaries set at the median of each axis. Content type classification uses regex pattern matching on URLs. All thresholds and parameters are visible in the code tab of your report.