CTA Blocks: Placement, Copy and Examples
Build a CTA block that matches reader intent, names the next step, limits competing asks, appears at the right moment, and supports reliable attribution.
A call to action (CTA) offers a specific next step. A CTA block makes that prompt noticeable, but its job is not to ask for everything. It turns earned attention into one clear primary action when that action becomes reasonable.
The rendered example has one visually dominant action. Its secondary link answers the predictable lower-commitment question—how attribution works—without introducing a competing outcome. This page disables the section’s automatic mini banner because a demonstration page should not quietly add another promotional ask.
Why this element matters
Readers do not arrive at every paragraph ready to convert. They first decide whether the page understands their problem, whether its claims are credible, and whether the proposed next step is proportionate. A CTA block exists to make that next step easy to recognize after the page has supplied enough context. It reduces decision effort by naming one action, its immediate outcome, and, when needed, the reason to act now.
One primary action per page is the governing rule. “Primary” means the single business outcome the page is designed to advance: start a trial, request a quote, choose a product, subscribe, or continue to a specific resource. When three actions receive equal size, color, and repetition, the reader has to reconstruct the page’s priority. A page with three equal CTAs has none.
Keep a secondary action only for readers not ready for the primary commitment. Make it visually quieter and keep it on the same journey. “Start a free trial” paired with “See how attribution works” is coherent; trial, newsletter, and social-follow buttons shown equally are not. If the secondary action removes no real objection, demote or remove it.
Machine extractability means an automated system can preserve the element’s meaning outside its design. An outcome-led heading, short support sentence, descriptive link label, and real URL expose context, action, and destination. “Start a 14-day trial” remains intelligible when extracted; “Get started” does not.
When to use it
Use a CTA block after the page has satisfied the question that brought the reader there and the next step follows naturally. On an awareness-stage page, where the reader is learning or naming a problem, the action should preserve momentum with low commitment: read a related guide, inspect an example, subscribe for a defined topic, or run a lightweight check. On a consideration-stage page, where alternatives and approaches are being evaluated, offer a product walkthrough, methodology, calculator, comparison, or relevant case study. On a decision-stage page, where evidence and fit have been established, a trial, quote, purchase, or demo can be appropriate. On a retention-stage page, where an existing customer is trying to succeed, prefer setup, adoption, support, or expansion actions.
A “Book a demo” button on a glossary page converts nobody who is merely trying to understand a term and costs trust by revealing that the definition was treated as a sales trap. The problem is not the phrase itself; it is the mismatch between the reader’s stage and the demanded commitment. The same button can be correct on a product, use-case, or case-study page after proof, scope, and fit are visible.
Do not add a CTA to fill a slot. Omit it when the answer is incomplete, the destination repeats the page, or the action cannot be completed. A prose link is not automatically a CTA. A “Related reading” panel with several equal destinations is related navigation, not one call to action.
Map the primary action to the page’s journeyStage value:
journeyStage | Reader state | Suitable primary CTA | Avoid |
|---|---|---|---|
awareness | Defining a problem or learning a term | Read a focused guide, run a low-friction check, subscribe to a specific topic | Demo, quote, or purchase before proof |
consideration | Comparing approaches or requirements | View methodology, see a use case, inspect a relevant case study | Generic newsletter that abandons the active decision |
decision | Validating fit, risk, and commercial terms | Start trial, request quote, book demo, buy | Sending the reader backward to broad educational content |
retention | Implementing, adopting, or expanding | Configure feature, contact support, invite team, review usage | Lead-capture forms that treat a customer as an unknown prospect |
Where to place it
An ask before its justification feels intrusive; one after the reader has left feels late. Place the default closing panel after the final substantive section and before related content or the footer. It may summarize the outcome but cannot introduce an unsupported claim.
A mid-article mini banner is allowed only at a genuine decision hinge, after the reader has received a useful answer and before the next major depth layer. On this site it is not placed by manually pasting a shortcode into every article. The parent section’s [cascade] sets miniBannerEnabled = true and miniBannerCtaPosition = 3; the heading render hook then injects the banner immediately before the third second-level heading (H2). miniBannerCtaPosition counts H2 headings, not paragraphs, screen height, or percentage read. If the article has fewer H2s, the banner does not render. Set miniBannerDisabled = true on an individual page when the inherited ask is unsuitable.
The cascade can also inject a newsletter before another H2. Because that is another conversion ask, review miniBannerNewsletterEnabled and miniBannerNewsletterPosition. Never place CTAs beside another CTA, form, paywall, warning, key verdict, or uninterpreted evidence. Keep one complete substantive section between asks.
An inline button belongs immediately after a locally completed task or decisive proof point. It must not interrupt a sentence, numbered step, table, quotation, or source note. A sticky sidebar may accompany long desktop reading, but it counts as one persistent CTA and must not cover content or duplicate an identical inline button in the same viewport.
Frequency limits
Each extra ask consumes attention and creates another route to compare. Excess placements can lower completed conversions despite raising clicks: premature clicks lack intent, banners displace proof, and outcomes split the path. Measure completed conversions per eligible session, not click-through alone. Test whether removing an ask raises the page’s total conversions; no universal percentage applies.
| Article length | Maximum conversion asks | Recommended pattern |
|---|---|---|
| Under 1,500 words | 1 | Closing CTA only; replace it with a newsletter when subscription is the primary action |
| 1,500–2,499 words | 2 | One mid-article or inline CTA, plus one closing CTA |
| 2,500 words or more | 3 | One mid-article CTA, one outcome-adjacent inline CTA, and one closing CTA |
Count every promotional banner, inline button, newsletter form, and sticky sidebar. Repeated buttons in a single designed panel count as actions within one block, but they still compete; only one may be primary. Header and footer navigation do not count unless they are campaign-style promotional treatments.
Anatomy
The screenshot labels seven regions; this rendered legend remains maintainable independently of the image.
- Context label: optional, two to four words, identifying the relevant product area or next-step category.
- Outcome heading: states the value or completed state the action advances.
- Support copy: resolves the final practical objection without adding a new argument.
- Primary action: the only dominant button; its label states what happens next.
- Secondary action: optional, visually subordinate, and directed along the same journey.
- Destination: a working URL whose page fulfills the button’s promise.
- Tracking identity: a stable placement and variant identifier carried into analytics, not shown as copy.
Design examples
Treatment changes with space and reader stage; the one-primary-action contract does not.
Dark closing panel: the default close for long consideration and decision pages. Use cta-dark-panel; keep the secondary action quieter and related.
Mini banner: a compact prompt driven by the cascade or mini-banner-cta. It must follow useful content and avoid awkward semantic breaks.
Inline button: best when a local result creates an obvious next step. Style a link as a button for navigation; do not use a form button to change pages.
Newsletter capture: suits awareness content that names what will arrive and how often. Provide an email label, privacy context, errors, and confirmation.
Sidebar: use only with enough width. It returns to document flow on small screens, is dismissible if overlaid, and is never the only route.
Screenshot-led closing panel: primary-cta-grid pairs the ask with a real product image. The asset must exist, have useful alternative text, and clarify the destination; never use a placeholder.
Parameters
The portable contract separates content fields from presentation. Implementation-only color and gradient controls do not change the meaning of the CTA.
| Name | Type | Required | Min/max | Default | Source |
|---|---|---|---|---|---|
heading | Plain string | Yes | 4–12 words | None | Attribute |
description | Plain string | No | 0–35 words | None | Attribute |
primaryText | Plain string | Yes | 2–6 words; 40 characters | None | Attribute |
primaryUrl | URL | Yes | One valid destination | None | Attribute |
secondaryText | Plain string | No | 2–6 words; 40 characters | None | Attribute |
secondaryUrl | URL | Conditional | Required with secondaryText | None | Attribute |
variant | Enum | Yes | dark, mini, inline, newsletter, sidebar, screenshot-grid | dark | Attribute |
journeyStage | Enum | Yes | awareness, consideration, decision, retention | Page value | Frontmatter |
placementId | Stable slug | Yes | 3–40 characters | None | Attribute or analytics adapter |
body | Markdown or plain text | No | 0–35 words | Uses description | Body |
screenshotSrc | Existing image path | Conditional | One asset for screenshot-grid | Renderer default exists but must not be relied on | Attribute |
screenshotAlt | Plain string | Conditional | 5–25 words | None | Attribute |
The Hugo adapters use different names: cta-dark-panel has primaryCtaText and primaryCtaUrl; mini-banner-cta has primaryText and primaryUrl; primary-cta-grid has primaryText and primaryURL. Each has equivalent secondary fields. The capitalized URL in the last adapter matters. Both banner adapters supply secondary defaults, so omitted fields do not guarantee one action. Preview the component and preserve hierarchy.
Syntax and code examples
The three notations carry the same meaning even when a platform uses different field names.
Portable Markdown directive
:::cta-block{variant="dark" journeyStage="decision" heading="Measure the revenue your visibility creates" primaryText="Start revenue tracking" primaryUrl="https://app.amicited.com/reports/cockpit" placementId="closing-revenue"}
Connect the next click to a completed trial, order, or subscription.
:::
Hugo shortcode
{{< cta-dark-panel
heading="Measure the revenue your visibility creates"
description="Connect the next click to a completed trial, order, or subscription."
primaryCtaText="Start revenue tracking"
primaryCtaUrl="https://app.amicited.com/reports/cockpit"
secondaryCtaText="See revenue attribution"
secondaryCtaUrl="/features/revenue-attribution/"
gradientId="closing-revenue"
>}}
The current shortcode renders a secondary action. Treat it as subordinate support, not a second primary outcome. gradientId must be unique when multiple dark panels appear on one rendered page.
For automatic mid-article placement, use the real section mechanism rather than embedding the shortcode:
[cascade]
miniBannerEnabled = true
miniBannerCtaPosition = 3
miniBannerCtaHeading = "See which pages create revenue"
miniBannerCtaDescription = "Trace cited pages through to trials and orders."
miniBannerCtaPrimaryText = "Open revenue reporting"
miniBannerCtaPrimaryUrl = "https://app.amicited.com/reports/cockpit"
miniBannerNewsletterEnabled = false
WordPress block or shortcode
[cta_block variant="dark" journey_stage="decision" heading="Measure the revenue your visibility creates" primary_text="Start revenue tracking" primary_url="https://app.amicited.com/reports/cockpit" placement_id="closing-revenue"]Connect the next click to a completed trial, order, or subscription.[/cta_block]
A WordPress block may expose these as editor controls, but it must store text and destinations as content fields. Styling, tracking, and responsive behavior belong to the block renderer.
Examples
Good
See which cited pages produce revenue
Connect page visits to trials, orders, and subscriptions.
Open revenue reporting
This works because the heading names the outcome, the support copy explains the connection, and the button names the interface. After a decision-stage attribution explanation, the reader can predict the next screen.
Bad
Ready to transform your business?
Unlock the power of our game-changing platform today.
Learn more · Get started · Submit
This fails because the copy is generic, no destination is predictable, and three equal verbs compete. “Transform” and “game-changing” add unevidenced intensity. The buttons describe interface motion, not a result. Keep the action matching the journey stage, name it, and remove the others.
A subtler bad example is a perfectly written demo CTA inserted before a glossary definition. Even good copy fails when placement and commitment are wrong. On that page, replace it with a relevant educational continuation or omit the CTA entirely.
Schema markup and accessibility
A CTA block feeds no dedicated JSON-LD (JavaScript Object Notation for Linked Data) property; the Schema.org vocabulary defines no general CTA type for article promotion. Its text remains inside the enclosing Article, TechArticle, Product, or other truthful entity. Do not invent a schema type or copy button language into an unrelated property.
Navigation actions must use an anchor with a real href; a <button> is for an action on the current page, such as submitting a newsletter form or opening a disclosure. Link text must make sense out of context. Keyboard focus must be visible, focus order must follow the reading order, and the primary and secondary actions must not depend on color alone for their hierarchy. If a new destination opens a new tab, disclose that behavior; normally, keep the same tab.
The container needs no role="alert" or forced focus. An overlay sidebar needs a keyboard-operable close control and cannot trap focus. A newsletter needs an associated label, required status, text errors, and an announced success message. Analytics failure must not block the link.
Writing rules
Write the destination promise first, then shorten it. State what happens next: “Compare enterprise plans,” “Download the migration checklist,” “Start a 14-day trial,” or “Book a 20-minute demo.” Use two to six words and at most 40 characters. Put longer essential qualifiers in support copy.
Ban labels that describe nothing: Click here, Learn more, Get started, Submit, Continue, Go, More, and Find out more. A familiar verb is not automatically bad—“Start a 14-day trial” is specific—but a verb without an object or outcome forces the reader to guess.
Use one short heading and no more than 35 words of support copy. Match the page’s tone; do not become louder merely because the background is dark. State price, duration, credit-card requirements, contact expectations, or download format when that fact changes the decision. Never place fake urgency, unsupported savings, hidden conditions, a second sales argument, a testimonial, a feature list, a navigation menu, or more than one dominant button inside the block.
Secondary copy must answer a lower-commitment need on the same path. It cannot become an escape hatch for internal stakeholders who each want their own campaign represented. If two actions deserve equal prominence, the page has not resolved its objective; return to the journey stage and choose.
Post types that use it
The postTypes frontmatter lists every registered format because each can offer a next step, but requirement, variant, and commitment differ.
| Post type | Use | Allowed position and variant |
|---|---|---|
| ultimate guide | Usually | One mini banner after a completed major topic and a dark closing panel; do not interrupt orientation or the table of contents |
| how-to guide | Usually | Inline after the verified outcome, then closing panel on longer guides; never between a step and its result |
| listicle guide | Usually | Mini banner after a meaningful portion of the list and closing CTA after the final selection guidance |
| A vs B comparison | Always when commercial | Inline after the verdict or full comparison table, with an optional decision-stage closing panel |
| best X for Y guide | Always when commercial | After the shortlist verdict or selection method; never before the reader sees the inclusion criteria |
| alternatives to X page | Always when commercial | After switching criteria and credible options; use a closing action aligned to the chosen alternative |
| glossary term | Rarely | Educational continuation or newsletter at the end; no demo, quote, or sticky sales sidebar |
| what-is-X page | Sometimes | Soft inline or closing continuation after the complete answer; commitment follows the page’s stage |
| product page | Always | Primary action near the value proposition and after decisive proof; repeat only on a long page with stable wording |
| category page | Usually | Inline near the completed filter or choice and a closing action; do not block browsing with a banner |
| use-case page | Always | After audience-specific proof and at the close; demo or trial is appropriate only at decision stage |
| case study | Usually | After verified results or at the close; the CTA should extend the demonstrated use case, not interrupt the story |
Measurement
Measurement begins with a viewable impression, not a click. Attach the page URL, page type, journeyStage, placement ID, variant, label, destination, experiment version, and anonymous identifier. Carry the identifier to subscription, qualified demo, trial, order, or revenue completion and deduplicate retries. A click alone is not a conversion.
Compare completed conversions and revenue per eligible session, plus conversions assisted by the page. Segment by placement and journey stage; combining a glossary newsletter with a product trial hides their purposes. Review destination and form failures so broken routes are not mistaken for weak copy.
Attribution is a model for assigning credit across touchpoints, not proof that the CTA alone caused the outcome. Keep first-touch, last-touch, and assisted views labeled. Use a controlled test when deciding whether a second CTA creates incremental conversions or merely redistributes clicks. See revenue attribution for the product workflow that connects AI answers and cited pages to trials, orders, and recurring revenue.
QA checklist
- One objective: The page has one named primary conversion outcome, and every CTA supports it.
- Journey fit: The commitment matches
journeyStage; awareness content does not jump straight to a high-friction sales ask. - Earned placement: Useful content or proof appears before each ask. No CTA interrupts a definition, step, table, warning, verdict, or source note.
- Frequency: The total includes automatic banners, newsletter forms, inline buttons, and sticky sidebars and stays within the length-based cap.
- Cascade check:
miniBannerCtaPositionpoints to a semantically suitable H2, inherited newsletter settings are reviewed, and unsuitable pages setminiBannerDisabled = true. - Specific copy: The heading names an outcome, support copy stays within 35 words, and button text is two to six words and no more than 40 characters.
- No banned labels: Generic labels such as “Learn more,” “Get started,” and “Submit” have been replaced with destination-specific wording.
- Secondary restraint: Any secondary action is visibly subordinate, removes a real objection, and stays on the same journey.
- Destination parity: Every URL works and the destination fulfills the label’s promise without an unexpected login, download, or sales call.
- Accessible semantics: Navigation uses links, current-page actions use buttons, focus is visible, order is logical, forms have labels and errors, and color is not the only hierarchy signal.
- Asset integrity: A screenshot-led CTA references an existing useful image with accurate alternative text; screenshot capture comments do not render broken assets.
- Tracking: Impression, click, placement, variant, page, journey stage, and completed outcome can be connected and deduplicated without blocking navigation.
- Outcome reporting: Review uses completed conversions per eligible session, not click-through rate alone, and attribution is not presented as causal proof.
- Responsive review: The block remains readable, does not cover content, and keeps its primary action obvious at narrow and wide widths.
FAQ
The five reviewed questions in frontmatter cover frequency, secondary actions, journey-stage mismatch, the cascade placement mechanism, and structured-data restraint.
More tutorials in this section
Ready to put it into practice?
Free check · 7-day trial · no credit card