Back to Playbooks

Turn “vs Competitor” Traffic into Signed SEO SaaS Deals

Free

A step-by-step Spreeflo journey for turning high-intent “vs competitor” comparison page visitors into signed SEO SaaS deals using targeted emails, tags, and internal alerts, so evaluators move from spreadsheet mode to trials and meetings.

Industry

Niche

Pattern

Loading sequence...

Someone reading your “Ahrefs vs [Your Tool]” page at 11:30pm is not a casual visitor. They’re in spreadsheet mode, comparing columns, trying to justify a decision.

Most SEO SaaS products let that moment pass with nothing more than a static comparison table and a generic newsletter drip in the background.

This playbook turns that intent spike into a structured evaluator track: targeted comparison emails plus internal alerts that help you win those deals instead of leaving them to chance. The sequence at the top of this page is the whole journey, end to end.

We’ll build it around a fictional SEO SaaS, RankPulse, but the pattern applies whether you sell rank tracking, content briefs, or technical audit tooling.

Why comparison pages deserve their own journey

Look at your analytics: /vs-competitor and /alternatives pages almost always have a smaller share of traffic and a much higher share of revenue influence.

Visitors there usually:

  • Already understand the problem (rank tracking, content briefs, site audits)

  • Are down to a shortlist of 2–3 tools

  • Are trying to reconcile pricing, features, and switching cost

If you treat those visitors like everyone else in your list, you leak revenue in two ways:

  1. You don’t speak to the specific doubts they have about you vs the other tool.

  2. You leave high-intent evaluators stuck in “thinking about it” instead of nudging them to a trial or meeting.

Spreeflo’s whole thesis is that you should capture detail on every customer so you can speak to each uniquely. Comparison traffic is an obvious place to do that.

This journey does three things:

  • Flags evaluators the moment they hit a comparison page

  • Sends a short, targeted sequence that speaks directly to their objections

  • Notifies a human when someone looks hot so you can step in

Let’s walk it node by node.

Step 0: Make sure Spreeflo sees your comparison-page visits

Before you touch the journey builder, instrument the behavior.

  1. Install the Spreeflo SDK on your marketing site so it can send page-view data into the web tracking and analytics dashboard.

  2. Confirm that page views are coming through with the page URL (or a page name) you can filter on, like /vs-ahrefs, /vs-semrush, /alternatives.

Spreeflo’s journeys can trigger on Custom Events. With SDK tracking in place, you’ll see a page_view (or similar) event in your event list, with properties like url and page_title. We’ll use that as our primary trigger.

For downstream conversion signals like meeting_booked or started_trial, you’ll usually send events from your backend or scheduling tool into the Spreeflo API as simple HTTPS POSTs.

One note on plans: triggering automations based on web activity lives on the Professional plan or trial. If you’re not sure which tier you’re on, the details are on Spreeflo’s pricing.

Step 1: Custom Event trigger on comparison-page views

In Spreeflo, create a new journey in the campaigns and journeys area. This is a journey, not a one-off campaign, because you want it running continuously.

Add a Custom Event trigger configured roughly like this:

  • Event name: page_view

  • Property conditions:
    - url contains /vs-
    - OR url contains /alternatives

  • Re-enrollment: ON

Why this setup:

  • url contains catches all your comparison variants without hard-coding each one.

  • Re-enrollment on means a contact can go through the sequence again if they come back to a comparison page months later. The built-in mid-journey lock stops duplicate enrollments while they’re still in the flow.

This trigger will fire for any known contact whose browser sends that page_view event and is tied to a contact via Spreeflo.identify.

Step 2: Filter to contacts you can actually email

Not every comparison visitor should get email:

  • Some may not have given marketing consent yet.

  • Some may not be known contacts at all.

Right after the trigger, drop in an If/Else process using the segment builder:

Condition (for the “Yes” path):

  • Email Subscription Status is “Subscribed”

  • AND Marketing Status is “Marketing”

Why:

  • You only want this comparison track hitting people who are fair game for marketing email and already exist as contacts.

  • It keeps your messaging focused on evaluators you can have a proper conversation with.

Branch behavior:

  • Yes branch (subscribed & marketing): continue into the objection-handling sequence.

  • Else branch: end the journey or just tag them for analytics (for example, add a “comparison_page_anon_or_unsubscribed” tag) and exit. No marketing emails on this path.

Step 3: Tag the evaluator and capture the moment

On the “Yes” branch, add an Add Tag action:

  • Tag: comparison_page

You might also add a second tag that’s competitor-specific, like vs_ahrefs or vs_semrush. If you want that level of detail, the cleanest pattern is to clone this journey per competitor and tighten the Custom Event condition to a specific URL, then hard-code a different tag in each copy.

Optionally, add an Update Contact Attribute node to set something like:

  • Attribute: evaluation_stage

  • Update type: Update

  • Value: comparison_page

The key principle: you’re turning a transient behavior (a page hit) into persistent data on the contact. That lets you:

  • Build segments later (“all contacts who ever hit a comparison page”)

  • Report on win rates for this cohort

  • Personalize future messaging for “former evaluators”

This is what “capture detail on every customer” actually looks like in practice.

Step 4: Send the first comparison email quickly

Now add your first Send Email action.

Configuration:

  • Use your primary sending identity (likely your main product address).

  • Keep “Send only once” ON to avoid hammering frequent visitors who come back to the page repeatedly.

  • Build the content in Spreeflo’s email builder so it’s responsive and easy to tweak.

What this first email should do:

  • Acknowledge their context without sounding creepy: “I know you’re comparing options for rank tracking…”

  • Frame the decision in their language: agencies vs in-house teams may care about different angles (seats, reporting, API limits).

  • Call out 2–3 concrete advantages vs the competitor they’re likely evaluating.

  • Offer a low-friction next step: a 15-minute “sanity check” call, or a short video walkthrough tailored to agencies/in-house teams.

Example structure:

  • Subject: “Choosing between Ahrefs and RankPulse?”

  • 1–2 lines that restate the core job (e.g., “keeping client rankings accurate without babysitting another dashboard”)

  • A short table: “Where RankPulse fits better” (unlimited users, white-label reporting, better pricing at agency scale)

  • Clear CTA: a single link to book a call or start a trial

Because this fires right after the page view, you’re catching them while the comparison is still open in a tab.

Step 5: Wait to see if they move on their own

Before you send anything else, give them space to act.

Insert a Wait Condition action:

Condition:

  • Custom event meeting_booked has triggered at least 1 time in the last 3 days
    OR
    Custom event started_trial has triggered at least 1 time in the last 3 days

Timeout:

  • 3 days

How those events show up:

  • meeting_booked is typically fired from your backend when Calendly/Cal.com (or whatever you use) sends a webhook. Your server takes that webhook and POSTs to the Spreeflo events API as described in the Spreeflo API docs.

  • started_trial comes from your app when a user successfully starts a trial or upgrades, again via the API.

What this step does:

  • If they book or start a trial, the Wait Condition completes early and the contact moves on immediately.

  • If nothing happens, they automatically proceed after 3 days.

This is your “let them self-serve” window.

Step 6: Branch on converted vs still-evaluating

Immediately after the Wait Condition, add another If/Else using the same criteria:

Condition:

  • Has meeting_booked OR started_trial in the last 3 days

Yes branch: they converted

On this path:

  1. Add Tag: comparison_converted

  2. Send Internal Email to yourself or whoever handles sales.

That internal email should include:

  • Contact name and company

  • Tags (including comparison_page and any competitor-specific tags)

  • Recent key events (comparison page, trial start, meeting booked)

  • A short note on what to check before the call (for example, which features they’ve already tried)

Use the Send Internal Email node and a simple template. This is where a small founder team outperforms a big sales org: you walk into the conversation already knowing they came from a “vs Ahrefs” page.

From here, you can safely exit the comparison journey and let your normal onboarding or sales-assist journeys take over.

Else branch: still evaluating

If they haven’t booked or started a trial within three days, they stay in the comparison track. This is where the true objection handling kicks in.

Step 7: Send the deeper objection-handling email

On the “still evaluating” branch, add Send Email #2.

Because you’ve already waited up to three days, you’re clear on pacing between emails.

Content ideas for this email:

  • Lead with a single strong proof point that matters to your buyers:
    “SEO agencies using RankPulse cut report prep time by 60% on average.”

  • Address the most common objection vs the main competitor:
    “We’re not trying to replace Ahrefs for full-funnel SEO research. RankPulse is the always-on rank monitor your account managers actually use every day.”

  • Make pricing logic explicit: show how your pricing behaves as accounts grow, or how unlimited users, white-label PDF exports, or client portals save them money elsewhere.

  • Include one focused case study that mirrors their situation (agency vs in-house, enterprise vs SMB, content teams vs technical SEO teams).

Again, a single clear CTA: book a call or start a trial.

Step 8: Check engagement and loop humans in at the right moment

After Email #2, add a Time Delay of 2 days. Then drop in a Check Email Activity process targeting that second email.

Configure two branches:

  • Branch A: “Link Clicked”

  • Branch B: “Not Clicked”

On the “clicked” branch:

  1. Add Tag: comparison_hot

  2. Send Internal Email to sales/founder with:

  3. Optional: after another 1-day Time Delay, send a final short email (#3) from a human sender, offering to answer specific questions. Keep it conversational and low-pressure.

On the “not clicked” branch:

You have two reasonable options:

  • If your list is already busy with other flows, simply Add Tag comparison_cold and end the journey. They’ll stay in your general nurture.

  • If you want one last attempt, insert another Time Delay of at least 1 day, then a final short email with a different angle (for example, focusing on migration help or a limited-time agency onboarding package).

Avoid dragging this out. The whole point is a focused evaluator track, not a month-long barrage.

Step 9: Measure comparison-page-to-meeting rate and win rate

The pattern’s success lives or dies on two metrics:

  1. How many comparison evaluators book a meeting or start a trial

  2. How many of those evaluators you actually win

Because you’ve tagged and attributed behavior along the way, you can now build a few simple segments with the segment builder:

  • “Comparison Evaluators”: tag contains comparison_page

  • “Comparison Evaluators Who Booked”: tag contains comparison_page AND custom event meeting_booked at least 1 time over all time

  • “Comparison Evaluators Won”: tag contains comparison_converted OR custom event started_trial and then upgraded_plan

From there you can:

  • Track comparison-page-to-meeting rate: Evaluators Who Booked / Comparison Evaluators

  • Track win rate for evaluators: Evaluators Won / Evaluators Who Booked

If you want these numbers visible in your CRM or a central dashboard, you can add a Webhook action at the end of each branch to POST contact data to your own reporting endpoint (Professional plan feature, covered in the campaign and journey automation docs).

Adapting the pattern by competitor or segment

Once the base journey works, you can specialize it without much extra work:

  • Clone the journey per major competitor and tighten the Custom Event condition to a specific URL like /vs-ahrefs. Hard-code competitor-specific tags and tweak email copy accordingly.

  • Or clone it per segment: agencies vs in-house, enterprise vs SMB, content teams vs technical SEO teams. The trigger can stay the same; you adjust the If/Else logic and emails based on plan, company size, or primary use case attributes.

This is where small SEO SaaS teams can punch above their weight. You design a handful of journeys once, and they keep reacting to evaluator behavior day and night. As we like to say internally, founder-led businesses win on leverage, not headcount.

The real win: no more silent evaluators

Comparison pages surface your highest-intent visitors, yet most tools treat that traffic like a normal blog reader. That’s a textbook example of leaving lifetime value on the table by not nurturing engagement.

By turning a simple page_view into a structured evaluator journey, you:

  • Capture richer detail on each prospect’s decision process

  • Respond with messages tailored to that exact moment

  • Bring humans in only when the signals are strong enough to justify it

Build this once in Spreeflo, let it run, and your “vs competitor” tabs start turning into trials and meetings instead of ghost traffic.