Session replay

Watch how users experience your app

Session replay helps diagnose issues and understand user behavior in your product or website.

Screenshot of Session Replay in PostHog
  • improved conversion rates by 10-20%

    "We wouldn't have noticed that needed fixing without PostHog's session replays."

    Read the story
  • uses replays and surveys when testing ideas

    "We watch lots of replays when testing a feature, and love how easy it is to launch surveys."

    Read the story
  • reduced back-and-forth in community support

    "Session replay in PostHog is so much better than Smartlook, which we used to use."

    Read the story
  • improved registrations by 20-30%

    "We've improved our whole onboarding flow by about 5% too, which is great."

    Read the story

Features

  • Event timeline

    History of everything that happened in a user's session

  • Console logs

    Debug issues faster by browsing the user's console

  • Network monitor

    Analyze performance and network calls

  • Capture sessions without extra code

    Works with PostHog.js

  • Automatic playlists

    Filter by user behavior or time

  • Web or mobile session recording

    Your choice of web and mobile SDKs

  • Download recordings

    Retain recordings beyond data retention limits

  • Block sensitive data

    Disable capturing data from any DOM element with CSS

Usage-based pricing

Use session replay free. Or enter a credit card for advanced features. Either way, your first 5,000 recordings are free – every month.

Free

No credit card required

All other plans

All features, no limitations

Recordings

5,000/mo

Unlimited

Features

Web recordings
Included
Included
Android recordings
Included
Included
iOS recordings
Included
Included
React Native recordings
Included
Included
Flutter recordings
Included
Included
Console logs
Included
Included
Recording playlists

unlimited

Included
Network performance on recordings
Included
Included
Network monitor
Included
Included
Download recording files
Not included
Included
Data retention

1 month

3 months

Block sensitive data
Included
Included
Share and embed
Included
Included
Event timeline
Included
Included
Filter person properties
Included
Included
Filter events
Included
Included
DOM Explorer
Included
Included
Sample recorded sessions
Included
Included
Minimum duration
Included
Included
Record via feature flag
Included
Included
Mobile session replay
Add-on
Available

Monthly pricing

First 5k recordings
Free
5-15k
$0.0050/recording
15-50k
$0.0035/recording
50-150k
$0.0020/recording
150-500k
$0.0017/recording
500k+
$0.0015/recording

FAQs

PostHog vs...

Single-page app support
iOS recordings
Android recordings
React Native recordings
Flutter recordings
Identity detection
Target recordings by URL
Target by sample size
Filter recordings by user or event
Rage-click detection
Privacy masking for sensitive content
Export recordings
Recording retention policy
1 month
12 months
24 months
1 month
Up to 3 months

So, what's best for you?

Reasons a competitor may be best for you (for now...)

Reasons to choose

  • Interlinking with feature flags and insights
    • Jump between them easily
  • Collaboration, sharing, and embedding exporting recordings
  • No limits on how many recordings captured

Have questions about PostHog?
Ask the community or book a demo.

Featured tutorials

Visit the tutorials section for more.

  • How to use session replays to get a deeper understanding of user behavior

    In this tutorial, we focus on the connections session replays have with insights and visualizations. These connections enable deeper exploration and understanding of user behavior.

    Read more
  • How to use filters + session replays to understand user friction

    We’ll explain how to use PostHog’s various filters and features to find relevant session replays quickly.

    Read more
  • How to only record the sessions you want

    As you scale, the number of recordings can go beyond what you need. Use PostHog’s configuration options to only record the sessions you want.

    Read more
  • Improve web app performance using PostHog session replays

    Learn the important metrics for measuring page load speed and how to identify opportunities to improve performance.

    Read more

Install & customize

Here are some ways you can fine tune how you implement session replay.

Installation

This is the simplest way to get PostHog up and running. It only takes a few minutes.

Copy the snippet below and replace <ph_project_api_key> and <ph_client_api_host> with your project's values, then add it within the <head> tags at the base of your product - ideally just before the closing </head> tag. This ensures PostHog loads on any page users visit.

You can find the snippet pre-filled with this data in your project settings.

HTML
<script>
!function(t,e){var o,n,p,r;e.__SV||(window.posthog=e,e._i=[],e.init=function(i,s,a){function g(t,e){var o=e.split(".");2==o.length&&(t=t[o[0]],e=o[1]),t[e]=function(){t.push([e].concat(Array.prototype.slice.call(arguments,0)))}}(p=t.createElement("script")).type="text/javascript",p.crossOrigin="anonymous",p.async=!0,p.src=s.api_host.replace(".i.posthog.com","-assets.i.posthog.com")+"/static/array.js",(r=t.getElementsByTagName("script")[0]).parentNode.insertBefore(p,r);var u=e;for(void 0!==a?u=e[a]=[]:a="posthog",u.people=u.people||[],u.toString=function(t){var e="posthog";return"posthog"!==a&&(e+="."+a),t||(e+=" (stub)"),e},u.people.toString=function(){return u.toString(1)+".people (stub)"},o="init capture register register_once register_for_session unregister unregister_for_session getFeatureFlag getFeatureFlagPayload isFeatureEnabled reloadFeatureFlags updateEarlyAccessFeatureEnrollment getEarlyAccessFeatures on onFeatureFlags onSessionId getSurveys getActiveMatchingSurveys renderSurvey canRenderSurvey getNextSurveyStep identify setPersonProperties group resetGroups setPersonPropertiesForFlags resetPersonPropertiesForFlags setGroupPropertiesForFlags resetGroupPropertiesForFlags reset get_distinct_id getGroups get_session_id get_session_replay_url alias set_config startSessionRecording stopSessionRecording sessionRecordingStarted captureException loadToolbar get_property getSessionProperty createPersonProfile opt_in_capturing opt_out_capturing has_opted_in_capturing has_opted_out_capturing clear_opt_in_out_capturing debug".split(" "),n=0;n<o.length;n++)g(u,o[n]);e._i.push([i,s,a])},e.__SV=1)}(document,window.posthog||[]);
posthog.init('<ph_project_api_key>',{api_host:'https://us.i.posthog.com', defaults:'2025-05-24'})
</script>

Once the snippet is added, PostHog automatically captures $pageview and other events like button clicks. You can then enable other products, such as session replays, within your project settings.


Set up a reverse proxy (recommended)

We recommend setting up a reverse proxy, so that events are less likely to be intercepted by tracking blockers.

We have our own managed reverse proxy service included in the platform add-ons, which routes through our infrastructure and makes setting up your proxy easy.

If you don't want to use our managed service then there are several other options for creating a reverse proxy, including using Cloudflare, AWS Cloudfront, and Vercel.

Grouping products in one project (recommended)

If you have multiple customer-facing products (e.g. a marketing website + mobile app + web app), it's best to install PostHog on them all and group them in one project.

This makes it possible to track users across their entire journey (e.g. from visiting your marketing website to signing up for your product), or how they use your product across multiple platforms.

Include ES5 support (optional)

If you need ES5 support for example to track Internet Explorer 11 replace /static/array.js in the snippet with /static/array.full.es5.js

Working with AI code editors?

If you’re working with AI code editors (like Lovable, Bolt.new, Replit, and others), it’s easy to install PostHog. All you have to do is ask (seriously). Specifically: in your tool, type a prompt like this: “I’d like to use PostHog to track events here; here is my install snippet.” Paste in your snippet. The tool will do the rest.

As of this time, some web-based AI builders (such as artifacts by Claude) don’t support access to external JS libraries. You’ll be able to ask it to use a placeholder, and then update it manually when you deploy to production.

Explore the docs

Get a more technical overview of how everything works in our docs.

Meet the team

PostHog works in small teams. The Replay team is responsible for building session replay.

(Shockingly, this team prefers their pizza without pineapple.)

Roadmap & changelog

Here’s what the team is up to.

Latest update

Jun 2025

You can now manually stop or start Android session recordings

Manoel made this and wanted us to announce in the headline that users could now manoelly start and stop recordings on Android devices.

And that's why Manoel doesn't work in marketing.

Up next

Check out the company roadmap to see what we're working on next!

Questions?

See more questions (or ask your own!) in our community forums.

  • Question / Topic

Pairs with...

PostHog products are natively designed to be interoperable using Product OS.

This is the call to action.

If nothing else has sold you on PostHog, hopefully these classic marketing tactics will.

Eco-friendly

PostHog Cloud

Digital download*

PostHog Cloud
People on G2 think we're great

Notendorsed
by Kim K

*PostHog is a web product and cannot be installed by CD.
We did once send some customers a floppy disk but it was a Rickroll.

  • Select your cloud
  • Starts at:
    $0Free>1 left at this price!!

Hurry: Tons of companies signed up . Act now and get $0 off your first order.

PostHog.com doesn't use third party cookies - only a single in-house cookie.

No data is sent to a third party.

Ursula von der Leyen, President of the European Commission