Website Migration Testing

See exactly what breaks when you migrate

Compare page existence, content, and pixels between the site you have and the site you're moving to. Free trial in your browser — nothing to install, no card needed.

No URLs handy? — two small demo sites with a few planted differences.

No account is needed to start, with 100 captured pages without one; signing in adds 500 more and unlocks Pro.

Or open the web app and start there

DiffiCat report for a three-page migration: the headline reads “Fix before launch — 2 of 3 pages: 1 missing or erroring, 1 with text differences, 1 that looks different.”, with one page row returning 404 on the new site, one with content and visual changes, and one that matches
The finished report leads with the verdict, then lists every page worst first: broken, changed, or matched.
Free trial — no card needed
Nothing to install — runs in your browser
Pixel-level visual diff
Phone, tablet, and desktop viewports

The Problem

Website migrations break things

Every replatform, redesign, or domain change risks breaking pages, losing content, and introducing visual regressions.

Pages vanish

Broken redirects, missing pages, and unexpected 404s slip through manual QA and damage SEO rankings.

Content drifts

Titles, headings, and body text get altered or lost during migration. Small changes compound into big problems.

Layouts break

CSS changes, missing assets, and rendering differences create visual regressions that are hard to spot manually.

How It Works

Three steps to a verified migration

Enter two URLs, pick the pages, and read the report. Under a minute to the first result.

1

Enter Site A and Site B

Paste the site you're moving from and the site you're moving to — in the form above, or at app.difficat.com. Just want a screenshot? Enter one URL and hit Start.

2

Pick pages, then compare

DiffiCat discovers the pages from your sitemap. Choose which to test, set a page limit and a viewport width, add credentials behind the lock icon if a site is password-protected, and run.

3

Read the report

The report leads with the verdict and lists pages worst first. Expand any page for blame indicators naming Site A or Site B, word-level text diffs, and side-by-side screenshots.

Or jump straight in:

Features

Three checks, every breakpoint

Existence, content, and visual comparison — at whatever width your users browse at.

An expanded page row for /team.html: the Page check fails with the blame indicator A: 200 → B: 404, so content and visual checks are skipped

Existence Check

Never miss a broken page

HTTP status checks across every page on Site A and Site B. Catches 404s, broken redirects, authentication walls, and server errors before your users do. Blame indicators show which site returned the error (e.g., "200 → 404") so you know exactly where the problem is.

Content Differences table for the pricing page’s body text: the old prices removed from Site A struck through in red, the new prices and words added on Site B highlighted in green

Content Comparison

Detect every content drift

Compares titles, headings, meta descriptions, and body text with a 90% word-overlap threshold. The diff highlights the individual words added and removed, side by side under Site A and Site B, so "what changed" is a thing you can read rather than infer.

Visual difference 3.55%: the slider mode mid-drag across Site A and Site B screenshots of the same pricing page, with the mode switcher for changes, side by side, slider, and overlay

Visual Regression

Pixel-perfect visual proof

Every page captured from the top down to 10,000 px (about ten desktop screens, or Full page if you choose it in Run defaults) and compared pixel-by-pixel with a configurable threshold — 0% for strict pixel-perfect matching, slide it up to tolerate anti-aliasing. The report marks any page that was cut. Four views — changes highlighted on the new page, side by side, slider, and overlay — with synchronised scrolling, so Site A and Site B stay level as you move down the page.

Responsive capture

Every check runs at the viewport width you pick: preset chips for 375px, 768px, and 1440px, or any custom width from 320px to 2560px. A mobile breakpoint gets the same existence, text, and pixel scrutiny as the desktop one.

Snapshot site

No Site B required. Enter one address, let DiffiCat find the pages, choose which to keep and take the snapshot — credentials behind the lock icon if the site is protected. Useful for archiving a site before you touch it.

DiffiCat is a website migration testing tool that runs in your browser, with a free trial. It compares a source site against a target site — in the app these are Site A (the site you're moving from) and Site B (the site you're moving to) — across three checks: page existence (HTTP status codes and broken redirect detection), content accuracy (titles, headings, meta descriptions, and body text with a 90% word-overlap threshold), and visual regression (pixel-level screenshot comparison with a configurable diff threshold, defaulting to 0% for pixel-perfect matching). Open it at app.difficat.com with nothing to install. DiffiCat captures at any viewport width from 320 to 2560 pixels and generates a report with pass/fail breakdowns, word-level content diffs, and side-by-side screenshot viewers.

Under the Hood

Built for precision

320–2560px
Capture viewport width (375 / 768 / 1440 presets)
0–100%
Configurable visual diff threshold
90%
Content word-overlap threshold
5 strategies
Page discovery: sitemap, robots.txt, remapped sitemap, crawl

Why DiffiCat

Website migration testing, automated

Replace hours of manual QA with automated, repeatable checks that catch what humans miss.

Manual QA

  • Click through pages one by one
  • Visually inspect each page for layout changes
  • Compare content in spreadsheets
  • Miss subtle CSS regressions and broken redirects
  • Takes days for large sites

With DiffiCat

  • Auto-discover pages from sitemap
  • Pixel-level visual diff with threshold control
  • Automated content comparison with 90% overlap detection
  • Catch every 404, redirect loop, and server error
  • Run hundreds of pages in minutes, at any viewport width

Pricing

Start free. Run your first comparison in a minute.

The free trial runs the full comparison engine — every check, every viewport width. Pro is there when you need more.

Pro

$29/month

or $290 a year (save $58) — commercial license included

  • 5,000 captured pages a month included, shared by the web app and the Agent API
  • Overage $0.01 a page under a $50 default cap
  • Up to 10,000 pairs a run, comparisons saved until you delete them
  • Cancel any time from your account page
Get Pro

Try it on your real migration first — upgrade only if the trial limits get in your way. After the trial you pay as you go: $0.01 per captured page from a prepaid balance you top up with $5, $10 or $25 on the account page, which also pays Agent API calls. A live comparison uses 2 captured pages per pair, a comparison against a stored snapshot 1, capturing a snapshot 1 per page, and comparing two stored snapshots is free. Free accounts’ comparisons expire after 30 days, at most 5 kept. Larger needs are quoted on request — send an enterprise enquiry. Automating from a script or an AI agent? See the Agent API, paid per call with a free daily allowance.

Use Cases

Built for every migration scenario

Platform replatforming

Migrating from WordPress to headless CMS, Shopify to custom, or any platform switch. Verify that every page, redirect, and piece of content transfers correctly.

Domain changes

Moving to a new domain or subdomain? DiffiCat verifies that all URLs resolve, redirects work, and no content is lost in the transition.

Redesigns and CSS overhauls

Catch visual regressions across your entire site after a redesign. The pixel-level diff viewer highlights exactly where layouts shifted or elements disappeared.

SEO preservation

Protect your search rankings during migration. DiffiCat checks that title tags, meta descriptions, headings, and body content are preserved on every page.

Responsive and mobile breakpoint QA

A layout that survives at 1440px can still collapse at 375px. Run the same comparison at each breakpoint and catch the regressions that only appear on a phone.

Staging sign-off before release

Compare the staging build against production before you flip the switch, and go live with a list of every page that changed instead of a hunch.

FAQ

Frequently asked questions

What is DiffiCat?

DiffiCat is a web app for website migration testing. Open app.difficat.com and it compares a source site against a target site across three checks: page existence (HTTP status codes), content accuracy (titles, headings, body text), and visual regression (pixel-level screenshot comparison). In the app the two sites are called Site A and Site B.

Is there a free trial?

Yes. Every visitor gets a free trial at app.difficat.com: 500 captured pages once when signed in (100 without signing in), never renewed, up to 100 pairs a run, with every check and viewport width, and no card needed. A live comparison uses 2 captured pages per pair, a comparison against a stored snapshot 1, capturing a snapshot 1 per page, and comparing two stored snapshots is free. After the trial you pay as you go at $0.01 per captured page from a prepaid balance (top up $5, $10 or $25 from the account page); the same balance pays Agent API calls. Abuse limits also apply: free callers get 500 comparison runs an hour and 2,000 pages a day, and every caller 200 page discoveries an hour. No account is needed to start, with 100 captured pages without one; signing in adds 500 more and unlocks Pro. Pro is $29 a month or $290 a year: 5,000 captured pages a month included, shared by the web app and the Agent API, with overage at $0.01 a page under a $50 default cap, saved comparisons (free accounts keep at most 5 for 30 days), and a commercial license; you can buy it from your account page. Larger needs are quoted on request: send an enterprise enquiry.

Do I need an account?

No account is needed to start: app.difficat.com opens straight on its three modes, with 100 captured pages without an account. Signing in adds 500 more, and it is how Pro, the commercial license, is unlocked.

How does visual comparison work, and how accurate is it?

DiffiCat screenshots both source and target URLs in a headless browser, from the top of each page down to 10,000 px (about ten desktop screens), then compares them pixel-by-pixel using the Pixelmatch algorithm. Need the whole page? Choose Full page in Run defaults, and the report always tells you when a page was cut. The default threshold is 0%, so any pixel change is flagged, and a visual diff overlay highlights exactly where it occurred. You can raise the visual sensitivity slider up to 100% to tolerate minor differences such as anti-aliasing or font rendering variations across environments.

How many pages can I compare?

As many as the site has, up to a ceiling of 10,000 per run; the free trial caps a run at 100 pairs. The page-limit control offers preset chips of 10, 20, and 50 for a quick sample, and a free-text field for any custom number. Leave the field blank and DiffiCat applies no limit, comparing every page it discovers.

Can I test mobile and tablet layouts?

Yes. Every capture runs at a viewport width you choose, with preset chips for 375px (phone), 768px (tablet), and 1440px (desktop, the default), plus a custom field accepting any width from 320px to 2560px. Run the same comparison at each breakpoint to catch layouts that survive on desktop and collapse on a phone.

What if my site requires login or authentication?

DiffiCat supports HTTP basic authentication for both source and target sites. Click the lock icon next to each URL field to enter credentials. Your session is preserved across all page requests during the comparison.

What platforms are supported?

DiffiCat runs in any modern browser at app.difficat.com — nothing to install, on macOS, Windows, Linux, or a tablet.

Ready to verify your migration?

Start your free trial in the browser and catch what breaks before your users do. No card needed.

Start the free trial

Feedback

Tell us what you think

What works for you, what's broken, what's missing? We read every message and use it to decide what to build next.