Skip to content
SolutionsFor SaaS

A marketing site that ships every day, checked every time

Your marketing site is in the same repo, on the same pipeline, deployed by the same people as the product. It should be checked the same way too.

app.pixyscan.com/w/…/s/…/changes
The changes screen: new, resolved and still-open findings since the previous scan.
Sound familiar?

If any two of these are true, this page is for you

None of them is unusual. They are what happens to a site that ships regularly and is only ever looked at deliberately.

  • The site ships several times a week and nobody reviews it for anything but visual regressions.
  • A component refactor dropped the H1 on every pricing variant and it took a quarter to notice.
  • Preview deploys get crawled by accident and pollute whatever numbers you were tracking.
  • Docs, blog and marketing live on three subdomains with three different sets of habits.

What PixyScan does

3 things, specifically

Each one is a mechanism in the running product, not a positioning statement.

  1. 01

    Wired into the pipeline

    One CLI command, one exit code, one per-site secret. The scan runs against the branch's environment URL, so the thing being measured is the thing about to ship.

  2. 02

    Preview branches stay out of the trend

    Scans are compared only with the previous scan on the same branch. Map a branch pattern to an environment and a preview run is filed as preview.

  3. 03

    The diff, per release

    New, resolved and still open since the last run. A release that broke three things says so on the day rather than in the next quarterly review.

How it fits your week

Day one, then every week after

When you would actually open it. A tool you have to remember is a tool that gets forgotten, so most of this runs without you.

  1. Step 1

    Day one: three sites, one pipeline step

    Add marketing, docs and blog as separate sites so each gets its own score and history. Issue a secret for the marketing site, map main and the preview pattern, and add the CLI step to the pipeline with the floor set to today's score.

  2. Step 2

    Every pull request: the preview is scanned

    The preview deploy is crawled and compared with previous previews. A component change that drops the H1 on every pricing variant fails the check on the pull request, with the URLs in the log, before it is merged.

  3. Step 3

    Every release: read the Changes screen for production

    After the deploy, New is what the release changed for the worse and Resolved is what it fixed. Once a month, glance at AI readiness - the marketing site is the one property where being quotable by an answer engine matters most.

Worth knowing

  • Sites are separate, so docs, blog and marketing each get their own score and history.
  • Two crawl engines per site - fast HTTP, or Playwright executing your JavaScript on Pro and above, for the app shell that renders client-side.
  • AI readiness scored per site, which matters more here than almost anywhere else.
  • Structured data validated across 22 checks, including FAQ and Article types.

What it will not do for you

  • Core Web Vitals need your own Google API key and start on Hobby. Pages are sampled against a per-scan budget, and the ones that were not sampled say so rather than showing a guess.
  • No GitHub app - the gate is an exit code your pipeline chooses to act on.

Above the signup button on purpose

A month in

What is different four weeks later

Each of these is something you could check, not something you would have to take on trust.

  • The marketing site is checked on every merge, the same way the product is.
  • Preview deploys never appear in production's history.
  • Docs, blog and marketing each have a score, a schedule and a Changes screen of their own.
  • The team learns about a metadata regression from a red check rather than from a quarterly review.

Before you ask

Things people in your position ask first

Plans, edges, and the honest answer to the question this page is most often found by.

We use a static site generator. Does it still apply?

Especially then. Static HTML is exactly what the crawler reads, so what it reports is what every crawler receives. A build-time regression in a layout component is the canonical case for the CI gate.

What about subdomains and paths?

Each site is a URL, so docs.example.com and example.com/blog can each be their own site with their own settings, budget and schedule - or one site if you would rather have one score.

Does it measure Core Web Vitals?

Yes, on Hobby and above, with your own Google API key - PageSpeed Insights gives the Lighthouse lab run and CrUX gives real-user field data. LCP, INP, CLS, TTFB and FCP, plus the performance score out of 100, and a poor LCP, a poor CLS or a slow TTFB raises a real finding under Delivery & Trust. Pages are sampled against a per-scan budget; the ones that were not sampled say so rather than showing a guess.

See what is actually on your site

Point PixyScan at a URL and read the first report in a few minutes. The free plan covers one site and 500 URLs a month - enough to find out whether any of this is true.

No card required · 500 URLs a month on the free plan