usability.cat
Issue Wiki

Missing Call-to-Action

Your page has no clear next step. It's a shop with no checkout counter — visitors browse, shrug, and walk out empty-handed.

What is this?

Imagine walking into a shop where everything looks nice, the shelves are stocked, but there is no checkout counter. No signs saying "Buy here." You browse, shrug, and walk out without buying anything. That is what happens when your page has no clear call-to-action (CTA). A CTA is the button or link that tells visitors what to do next — "Sign up," "Start free trial," "Get a quote." Without one, you are leaving the most important part of the conversation unsaid.

Why it matters

  • For your visitors: People do not want to figure out what to do next. They want to be guided. A missing CTA creates decision paralysis — visitors read your content, nod along, and then stare at the screen wondering "...now what?" Most of them will close the tab. You did all the work of getting them interested and then forgot to tell them the next step.
  • For your business: No CTA means no conversions. It does not matter how brilliant your landing page copy is or how beautiful your design looks. If there is no clear path to sign up, buy, or contact you, your page is a beautiful dead end. Studies consistently show that pages with a single, prominent CTA convert 2-3x better than pages with none or too many.
  • The standard: Every conversion rate optimization framework (from Google's HEART to Nielsen Norman Group's guidelines) emphasizes that each page should have one primary action. The W3C's web design guidelines recommend clear, descriptive link and button text that tells users what will happen when they click.
Clear, prominent CTA
<section class="hero">
  <h1>Ship better websites, faster</h1>
  <p>Get UX feedback in 30 seconds, not 30 days.</p>
  <a href="/signup" class="cta-button">
    Start your free scan
  </a>
</section>
No CTA — beautiful dead end
<section class="hero">
  <h1>Ship better websites, faster</h1>
  <p>Get UX feedback in 30 seconds, not 30 days.</p>
  <!-- Cool story. Now what? -->
</section>

How to fix it

React / Next.js

Create a reusable CTA button component and place it wherever you need to drive action.

// src/components/cta-button.tsx
import Link from "next/link";

interface CTAButtonProps {
  href: string;
  children: React.ReactNode;
  variant?: "primary" | "secondary";
}

export function CTAButton({ href, children, variant = "primary" }: CTAButtonProps) {
  return (
    <Link
      href={href}
      className={
        variant === "primary"
          ? "inline-flex items-center bg-amber-500 px-6 py-3 text-base font-semibold text-black transition-colors hover:bg-amber-400"
          : "inline-flex items-center border border-gray-300 px-6 py-3 text-base font-semibold transition-colors hover:bg-gray-100 dark:border-gray-700 dark:hover:bg-gray-800"
      }
    >
      {children}
    </Link>
  );
}

Use it on your pages — one primary CTA per section, above the fold on landing pages:

// src/app/page.tsx
import { CTAButton } from "@/components/cta-button";

export default function HomePage() {
  return (
    <section className="flex flex-col items-center gap-6 py-24 text-center">
      <h1 className="text-4xl font-bold">Ship better websites, faster</h1>
      <p className="max-w-md text-lg text-gray-500">Get UX feedback in 30 seconds, not 30 days.</p>
      <CTAButton href="/signup">Start your free scan</CTAButton>
    </section>
  );
}

Plain HTML

<section style="text-align: center; padding: 4rem 1rem;">
  <h1>Ship better websites, faster</h1>
  <p>Get UX feedback in 30 seconds, not 30 days.</p>

  <!-- Primary CTA — make it big, make it obvious -->
  <a
    href="/signup"
    style="
      display: inline-block;
      padding: 0.75rem 1.5rem;
      background: #f59e0b;
      color: #000;
      font-weight: 600;
      font-size: 1rem;
      border-radius: 0.5rem;
      text-decoration: none;
      margin-top: 1.5rem;
    "
  >
    Start your free scan
  </a>
</section>

CTA best practices in a nutshell: use action verbs ("Start," "Get," "Try" — not "Submit" or "Click here"), make it visually dominant (size, color, contrast), place it above the fold, and limit to one primary CTA per viewport. If you have a secondary action, style it as an outline or text link so it does not compete.

High impactnavigation~2 paws

A page without a CTA is a pitch without an ask. The cat does not understand why you would invite visitors over and then not tell them what to do.

How the cat scores this

The scanner checks for prominent interactive elements (buttons or links) with action-oriented text within key page sections — particularly the hero/above-the-fold area and section endings. It flags pages where the primary content area has no buttons or links styled as CTAs. The scanner also checks for competing CTAs (too many equally-prominent buttons that create choice paralysis) and penalizes vague text like "Click here" or "Learn more" when used as the only action on a page.

Further reading

On this page