Session recording for any website.

If you can edit your site's HTML, you can install GetSiteTape. It is one script tag in the head, and it works the same on a hand-written page and a single-page app.

Free for 1,000 replays a month. No card needed.

Before you start

Have your snippet ready.

Every site you add to GetSiteTape gets its own snippet, with its key filled in. It is the same one line on every platform.

  • A GetSiteTape account, with your site added. The free plan is enough.
  • Access to your site's HTML template, or someone who has it
Your snippet
<!-- GetSiteTape -->
<script async
  src="https://cdn.getsitetape.com/getsitetape.js?sid=YOUR_KEY">
</script>

Your own snippet, with your key in place of YOUR_KEY, is in the dashboard.

Install GetSiteTape on your site, step by step.

  1. Step 1 of 4

    Open the template every page shares

    Find the file that produces the <head> of your pages: a layout or header template on most sites, or each page's own HTML on a small hand-written one.

    1. Your site's files
    2. Layout or header template
    Illustration: where to look
  2. Step 2 of 4

    Paste the snippet inside the head

    Paste your GetSiteTape snippet inside <head>, as near the top as you can. It loads asynchronously, so it does not hold the page up.

    index.html
    <!DOCTYPE html>
    <html lang="en">
    <head>
      <meta charset="utf-8">  <!-- GetSiteTape -->
      <script async
        src="https://cdn.getsitetape.com/getsitetape.js?sid=YOUR_KEY">
      </script>  <title>Your site</title>
    </head>
    Illustration: where the snippet goes
  3. Step 3 of 4

    Single-page apps: add it once

    In a React, Vue or Next.js app, add the snippet once to the root HTML, such as index.html or the root layout. Route changes are tracked by themselves and shown as separate pages.

    1. Root HTML
    2. One snippet
    3. Every route
    Illustration
  4. Step 4 of 4

    Visit your site

    Open your site in a new tab and click around. Deploy the change first. Your first recording appears in the dashboard about ten seconds later, and the site's status changes to Installed.

    Installed · first data received 12 seconds ago
    Desktop · Direct · 2 pages
    Example data

Good to know.

How to check that it is recording, and the things that are particular to installing it by hand.

Stuck? Ask us for setup help

See that it is working

Add ?wsr_diagnostics=true to any address on your site. A small console opens and says what the recorder is doing.

Nothing after a minute?

Open your page's source and search for getsitetape. If it is missing, the snippet was not saved or published. If it is there, check that the address you added in the dashboard is the one you are visiting.

Content Security Policy

If your site sends a Content-Security-Policy header, allow cdn.getsitetape.com and getsitetape.com in script-src, and getsitetape.com in connect-src. Otherwise the browser blocks the recorder.

Mark what is private

Passwords are never recorded. Add the class wsr-block to any other element that should stay out of recordings.

A small API

Put a name on a recording with wsr.identify() and mark a moment with wsr.tag(). With consent mode switched on, recording waits for wsr.consent(true).

On another platform?

The same snippet installs anywhere you can paste a script tag. There is a guide for each of these.

Watch your first visitor today.

Free for 1,000 replays a month. No card needed. Setup takes about a minute.