How to Build Session Recording Analysis in PostHog
Quantitative analytics tell you what users do. Session recordings show you how they do it — the hesitation before clicking, the scroll-up to re-read a confusing label, the rage click on a button that does not respond. This qualitative layer transforms abstract data points into visceral understanding of user experience that no dashboard can replicate.
PostHog's session recording feature is tightly integrated with its analytics platform, which means you can filter recordings by user properties, feature flags, and event sequences. Instead of watching random recordings hoping to stumble on insights, you can surgically find recordings of users who exhibited specific behaviors — like those who abandoned checkout or struggled with a new feature. This guide covers how to set up recordings, build an analysis workflow, and extract actionable insights.
Step-by-step guide
Enable and configure session recording
In PostHog project settings, enable Session Recording. Configure the recording settings: set the minimum session duration to 30 seconds to filter out accidental page loads, enable console log capture for debugging (disable in production if there are performance concerns), and configure privacy controls. Mask all input fields by default to prevent recording passwords and personal data, then selectively unmask non-sensitive inputs. Add the 'ph-no-capture' class to any DOM elements that should never be recorded.
- Enable session recording in Project Settings > Session Recording
- Set minimum session duration to 30 seconds to reduce noise
- Add 'ph-no-capture' class to elements containing PII (profile details, payment forms, etc.)
- Enable console log capture for development and staging environments
Define your recording analysis questions
Watching recordings without a goal is a time sink. Before each analysis session, write down 2-3 specific questions you want to answer. Examples: 'Where do users struggle in the new onboarding flow?', 'Why are users clicking the back button on the pricing page?', or 'How do power users navigate the dashboard differently from new users?' These questions determine which filters you will apply and what behaviors you will look for.
- Write down your questions before opening the recordings tab
- Identify the specific events or pages related to each question
- Set a time limit per analysis session (60-90 minutes) to maintain focus
Build targeted recording filters
Use PostHog's recording filters to narrow down to relevant sessions. Filter by: specific page URLs (e.g., only sessions that visited the checkout page), events performed (e.g., sessions where 'add_to_cart' fired but 'purchase_completed' did not), user properties (e.g., users on free plan, users from a specific country), duration (e.g., sessions longer than 5 minutes indicating engaged users), and date range. Save your filter configurations as playlists so you can revisit them.
- Create a filter for sessions containing your target page or event
- Add a negative filter to exclude sessions that completed the desired outcome
- Save the filter as a playlist named after your analysis question
Watch recordings with a structured note-taking system
Open recordings and watch at 2x speed for context, slowing to 1x when you observe interesting behavior. Take structured notes for each recording using a consistent format: Timestamp, Observation (what the user did), Interpretation (why you think they did it), and Category (usability issue, confusion, delight, workaround). After watching 10-15 recordings, patterns will emerge. Tag recordings in PostHog with labels like 'friction-point,' 'workaround,' or 'positive-signal' for later reference.
- Use a spreadsheet or Notion table for structured note-taking alongside PostHog
- Watch at 2x speed and slow down when cursor movement indicates hesitation or confusion
- Tag each recording with relevant labels in PostHog for future retrieval
Identify patterns and quantify them
After watching 15-20 targeted recordings, group your observations into patterns. Common patterns include: dead clicks (users clicking non-interactive elements), rage clicks (rapid repeated clicks indicating frustration), U-turns (users navigating to a page and immediately going back), and scroll confusion (users scrolling up and down repeatedly looking for something). For each pattern, estimate its frequency and severity. Then validate the pattern quantitatively using PostHog's event analytics — for example, count how many sessions have rage click events on a specific element.
- Group observations into 3-5 distinct patterns
- Rate each pattern by frequency (how often it occurs) and severity (how much it impacts the user)
- Cross-reference patterns with PostHog event data to validate the sample is representative
Create clips and share findings
For each significant finding, create a short clip in PostHog that captures the key moment. Compile your findings into a brief report with the structure: Question we investigated, What we found (with embedded recording clips), How many users are affected (quantified from analytics), and Recommended action. Share this in your team channel and link it to any related Jira or Linear tickets. Recording clips are far more persuasive than written descriptions when advocating for UX improvements.
Build a recurring analysis habit
Schedule 60 minutes every two weeks for session recording analysis. Rotate the focus area: one session covers onboarding, the next covers a core feature, the next covers a recently shipped change. Create a PostHog dashboard widget that shows the count of sessions matching each of your saved playlists so you can quickly see where the most data is available. Over time, this cadence builds deep product intuition that no amount of dashboard staring can replace.
Common mistakes
Watching random recordings without filters
PostHog can record thousands of sessions per day. Watching random ones is like reading random pages of a book hoping to find the plot. Always filter recordings to sessions relevant to a specific product question, and save filters as playlists for reuse.
Drawing conclusions from too few recordings
Watching three recordings where users struggled and declaring a feature broken is anecdotal. Watch at least 15-20 filtered recordings before identifying patterns, and always validate patterns with quantitative event data. One user's confusion might be an outlier; ten users' confusion is a pattern.
Not configuring privacy controls before launch
Recording passwords, credit card numbers, or personal messages creates a compliance liability. Always mask input fields by default and audit your recording configuration against your privacy policy before enabling in production. PostHog's masking is applied at capture time, so you cannot retroactively mask existing recordings.
Tips
Use PostHog's rage click detection filter to quickly find sessions where users experienced frustration — these are the highest-signal recordings to watch first.
Pair session recording analysis with your weekly metrics review: if a metric dropped this week, filter recordings to sessions during that period to understand why.
Share one compelling session recording clip per week in your team channel to build a culture of user empathy without requiring everyone to watch full sessions.
Create a 'New Feature Watch' playlist for each major launch that filters to sessions where users interact with the new feature for the first time.
How Vantage helps
Vantage helps product teams turn qualitative insights from session recordings into structured requirements. When writing PRDs, you can reference specific user behavior patterns as evidence for product decisions, and Vantage ensures these insights carry through from problem definition to ticket creation so engineering understands the real user pain behind each task.