Untitled
254804632

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
:root {
–navy: #0D1B2A;
–ocean: #1A5276;
–wave: #2471A3;
–bright: #2E86C1;
–seafoam: #AED6F1;
–pale: #EAF4FB;
–sand: #F5F1EB;
–gold: #3A3A3A;
–gold-lt: #F0F0F0;
–white: #FFFFFF;
–text: #12213A;
–muted: #5D6D7E;
–border: #D5D8DC;
–accent: #1ABC9C;
}
body {
font-family: ‘Lora’, Georgia, serif;
background: #F4F6F8;
color: var(–text);
line-height: 1.8;
font-size: 17px;
}
/* ─── HERO ─── */
.hero {
background: var(–navy);
position: relative;
overflow: hidden;
padding: 5rem 2rem 4rem;
text-align: center;
}
.hero-waves {
position: absolute;
bottom: 0; left: 0; right: 0;
height: 90px;
pointer-events: none;
}
.hero-bg-circles {
position: absolute;
top: -80px; right: -80px;
width: 420px; height: 420px;
border-radius: 50%;
border: 1px solid rgba(46,134,193,0.15);
pointer-events: none;
}
.hero-bg-circles::after {
content: ”;
position: absolute;
top: 40px; left: 40px; right: 40px; bottom: 40px;
border-radius: 50%;
border: 1px solid rgba(46,134,193,0.1);
}
.hero-eyebrow {
font-family: ‘Montserrat’, sans-serif;
font-size: 0.7rem;
font-weight: 700;
letter-spacing: 0.2em;
text-transform: uppercase;
color: var(–seafoam);
margin-bottom: 1.2rem;
display: flex;
align-items: center;
justify-content: center;
gap: 0.75rem;
}
.hero-eyebrow::before, .hero-eyebrow::after {
content: ”;
display: block;
width: 40px;
height: 1px;
background: rgba(174,214,241,0.4);
}
.hero h1 {
font-family: ‘Montserrat’, sans-serif;
font-weight: 900;
font-size: clamp(1.9rem, 5vw, 3.2rem);
line-height: 1.15;
color: var(–white);
max-width: 800px;
margin: 0 auto 1.5rem;
letter-spacing: -0.01em;
}
.hero h1 em {
font-style: normal;
color: var(–seafoam);
}
.hero-deck {
font-family: ‘Lora’, serif;
font-size: 1.05rem;
font-style: italic;
color: rgba(255,255,255,0.65);
max-width: 560px;
margin: 0 auto 2.5rem;
line-height: 1.7;
}
.hero-meta {
display: flex;
justify-content: center;
gap: 1.5rem;
font-family: ‘Montserrat’, sans-serif;
font-size: 0.7rem;
font-weight: 600;
letter-spacing: 0.08em;
text-transform: uppercase;
color: rgba(255,255,255,0.4);
flex-wrap: wrap;
}
.hero-meta span { display: flex; align-items: center; gap: 0.4rem; }
/* ─── GRAPHIC BANNER (replaces hero image) ─── */
.graphic-banner {
background: linear-gradient(135deg, #0A1628 0%, #1A3A5C 50%, #0D2137 100%);
padding: 3rem 2rem;
display: flex;
align-items: center;
justify-content: center;
gap: 3rem;
flex-wrap: wrap;
border-bottom: 1px solid rgba(46,134,193,0.2);
position: relative;
overflow: hidden;
}
.graphic-banner::before {
content: ”;
position: absolute;
inset: 0;
background: repeating-linear-gradient(
-45deg,
transparent,
transparent 40px,
rgba(46,134,193,0.03) 40px,
rgba(46,134,193,0.03) 41px
);
}
.platform-badge {
display: flex;
flex-direction: column;
align-items: center;
gap: 0.6rem;
z-index: 1;
}
.platform-badge .icon-ring {
width: 72px; height: 72px;
border-radius: 50%;
border: 2px solid rgba(174,214,241,0.3);
display: flex;
align-items: center;
justify-content: center;
font-size: 2rem;
background: rgba(255,255,255,0.04);
transition: transform 0.3s;
}
.platform-badge:hover .icon-ring { transform: scale(1.08); }
.platform-badge .p-name {
font-family: ‘Montserrat’, sans-serif;
font-size: 0.65rem;
font-weight: 700;
letter-spacing: 0.12em;
text-transform: uppercase;
color: rgba(174,214,241,0.7);
}
.graphic-banner-caption {
font-family: ‘Montserrat’, sans-serif;
font-size: 0.65rem;
font-weight: 500;
color: rgba(255,255,255,0.3);
letter-spacing: 0.06em;
text-align: center;
margin-top: 1rem;
width: 100%;
font-style: italic;
z-index: 1;
}
/* ─── LAYOUT ─── */
.page-wrap {
max-width: 820px;
margin: 0 auto;
padding: 3.5rem 1.5rem 6rem;
}
/* ─── BODY TYPOGRAPHY ─── */
.post-body p {
margin-bottom: 1.4rem;
color: var(–text);
line-height: 1.85;
}
.post-body a {
color: var(–wave);
text-decoration: underline;
text-underline-offset: 3px;
text-decoration-color: var(–seafoam);
}
.post-body a:hover { text-decoration-color: var(–wave); }
/* ─── SECTION HEADERS ─── */
.section-label {
display: flex;
align-items: center;
gap: 0.75rem;
margin: 3.5rem 0 0.75rem;
}
.section-label .num {
font-family: ‘Montserrat’, sans-serif;
font-size: 0.65rem;
font-weight: 800;
letter-spacing: 0.15em;
color: var(–white);
background: var(–ocean);
width: 28px; height: 28px;
border-radius: 50%;
display: flex; align-items: center; justify-content: center;
flex-shrink: 0;
}
.section-label .tag {
font-family: ‘Montserrat’, sans-serif;
font-size: 0.65rem;
font-weight: 700;
letter-spacing: 0.15em;
text-transform: uppercase;
color: var(–ocean);
}
h2.section-title {
font-family: ‘Montserrat’, sans-serif;
font-weight: 800;
font-size: 1.6rem;
line-height: 1.25;
color: var(–navy);
margin-bottom: 1.2rem;
letter-spacing: -0.01em;
}
h3.subsection {
font-family: ‘Montserrat’, sans-serif;
font-weight: 700;
font-size: 1.05rem;
color: var(–navy);
margin: 2rem 0 0.6rem;
letter-spacing: -0.01em;
}
/* ─── PULL QUOTE ─── */
.pull-quote {
margin: 2.5rem 0;
padding: 1.75rem 2rem 1.75rem 2.5rem;
background: var(–navy);
border-radius: 4px;
position: relative;
overflow: hidden;
}
.pull-quote::before {
content: ‘201C’;
position: absolute;
top: -10px; left: 14px;
font-size: 8rem;
font-family: Georgia, serif;
color: rgba(46,134,193,0.15);
line-height: 1;
pointer-events: none;
}
.pull-quote::after {
content: ”;
position: absolute;
left: 0; top: 0; bottom: 0;
width: 4px;
background: var(–gold);
}
.pull-quote p {
font-family: ‘Lora’, serif;
font-size: 1.15rem;
font-style: italic;
color: var(–white);
line-height: 1.6;
margin: 0;
position: relative;
z-index: 1;
}
/* ─── STAT ROW ─── */
.stat-row {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(155px,1fr));
gap: 1rem;
margin: 2rem 0;
}
.stat-card {
background: var(–white);
border: 1px solid var(–border);
border-top: 3px solid var(–bright);
border-radius: 4px;
padding: 1.4rem 1rem 1.2rem;
text-align: center;
}
.stat-card .num {
font-family: ‘Montserrat’, sans-serif;
font-size: 2.1rem;
font-weight: 900;
color: var(–ocean);
display: block;
line-height: 1;
margin-bottom: 0.5rem;
}
.stat-card .lbl {
font-family: ‘Montserrat’, sans-serif;
font-size: 0.72rem;
font-weight: 500;
color: var(–muted);
line-height: 1.4;
letter-spacing: 0.02em;
}
/* ─── HOOK ANATOMY GRAPHIC ─── */
.hook-anatomy {
background: var(–navy);
border-radius: 6px;
padding: 2rem;
margin: 2rem 0;
overflow: hidden;
position: relative;
}
.hook-anatomy::before {
content: ”;
position: absolute;
inset: 0;
background: repeating-linear-gradient(
90deg,
transparent, transparent 60px,
rgba(46,134,193,0.04) 60px, rgba(46,134,193,0.04) 61px
);
}
.hook-anatomy h4 {
font-family: ‘Montserrat’, sans-serif;
font-size: 0.65rem;
font-weight: 700;
letter-spacing: 0.2em;
text-transform: uppercase;
color: var(–seafoam);
margin-bottom: 1.5rem;
text-align: center;
z-index: 1;
position: relative;
}
.timeline-bar {
display: flex;
align-items: stretch;
border-radius: 4px;
overflow: hidden;
margin-bottom: 1rem;
height: 52px;
z-index: 1;
position: relative;
}
.tl-seg {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
font-family: ‘Montserrat’, sans-serif;
font-size: 0.6rem;
font-weight: 700;
letter-spacing: 0.06em;
text-transform: uppercase;
padding: 0 0.5rem;
line-height: 1.3;
text-align: center;
}
.tl-seg .sec { font-size: 0.75rem; font-weight: 900; display: block; margin-bottom: 2px; }
.tl-hook { background: #E74C3C; color: #fff; flex: 0 0 18%; }
.tl-value { background: #2471A3; color: #fff; flex: 0 0 42%; }
.tl-cta { background: var(–gold); color: #fff; flex: 0 0 22%; }
.tl-end { background: rgba(255,255,255,0.08); color: rgba(255,255,255,0.45); flex: 1; }
.timeline-legend {
display: flex;
gap: 1.5rem;
justify-content: center;
flex-wrap: wrap;
z-index: 1;
position: relative;
}
.tl-legend-item {
display: flex;
align-items: center;
gap: 0.4rem;
font-family: ‘Montserrat’, sans-serif;
font-size: 0.65rem;
font-weight: 600;
color: rgba(255,255,255,0.6);
letter-spacing: 0.04em;
}
.tl-dot {
width: 10px; height: 10px; border-radius: 2px; flex-shrink: 0;
}
.dot-hook { background: #E74C3C; }
.dot-val { background: #2471A3; }
.dot-cta { background: var(–gold); }
/* ─── HOOK TYPES GRID ─── */
.hook-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(220px,1fr));
gap: 1rem;
margin: 1.5rem 0 2rem;
}
.hook-card {
background: var(–white);
border: 1px solid var(–border);
border-radius: 6px;
padding: 1.25rem 1.25rem 1rem;
transition: box-shadow 0.2s;
}
.hook-card:hover { box-shadow: 0 4px 16px rgba(13,27,42,0.08); }
.hook-card .hc-icon {
font-size: 1.5rem;
margin-bottom: 0.6rem;
display: block;
}
.hook-card .hc-type {
font-family: ‘Montserrat’, sans-serif;
font-size: 0.72rem;
font-weight: 700;
text-transform: uppercase;
letter-spacing: 0.1em;
color: var(–ocean);
margin-bottom: 0.4rem;
}
.hook-card .hc-example {
font-family: ‘Lora’, serif;
font-size: 0.88rem;
font-style: italic;
color: var(–text);
line-height: 1.5;
border-left: 2px solid var(–seafoam);
padding-left: 0.75rem;
margin-bottom: 0.6rem;
}
.hook-card .hc-why {
font-family: ‘Montserrat’, sans-serif;
font-size: 0.72rem;
color: var(–muted);
line-height: 1.5;
}
/* ─── RETENTION METER GRAPHIC ─── */
.retention-visual {
background: var(–white);
border: 1px solid var(–border);
border-radius: 6px;
padding: 1.75rem 1.5rem;
margin: 2rem 0;
}
.retention-visual h4 {
font-family: ‘Montserrat’, sans-serif;
font-size: 0.65rem;
font-weight: 700;
letter-spacing: 0.2em;
text-transform: uppercase;
color: var(–ocean);
margin-bottom: 1.5rem;
text-align: center;
}
.ret-row {
display: flex;
align-items: center;
gap: 1rem;
margin-bottom: 0.85rem;
}
.ret-label {
font-family: ‘Montserrat’, sans-serif;
font-size: 0.7rem;
font-weight: 600;
color: var(–navy);
min-width: 100px;
letter-spacing: 0.02em;
}
.ret-bar-bg {
flex: 1;
background: #EBF4FB;
border-radius: 100px;
height: 22px;
overflow: hidden;
position: relative;
}
.ret-bar-fill {
height: 100%;
border-radius: 100px;
display: flex;
align-items: center;
padding-right: 0.5rem;
justify-content: flex-end;
}
.ret-bar-fill span {
font-family: ‘Montserrat’, sans-serif;
font-size: 0.62rem;
font-weight: 800;
color: #fff;
letter-spacing: 0.04em;
}
.fill-great { background: #1ABC9C; width: 92%; }
.fill-good { background: #2471A3; width: 70%; }
.fill-avg { background: #F39C12; width: 45%; }
.fill-poor { background: #C0392B; width: 25%; }
.ret-note {
font-family: ‘Montserrat’, sans-serif;
font-size: 0.65rem;
color: var(–muted);
text-align: center;
margin-top: 1rem;
font-style: italic;
}
/* ─── ALGORITHM EXPLAINER ─── */
.algo-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(200px,1fr));
gap: 1rem;
margin: 1.5rem 0 2rem;
}
.algo-card {
border-radius: 6px;
padding: 1.4rem 1.25rem;
position: relative;
overflow: hidden;
}
.algo-card::after {
content: ”;
position: absolute;
bottom: -20px; right: -20px;
width: 80px; height: 80px;
border-radius: 50%;
background: rgba(255,255,255,0.06);
}
.algo-instagram { background: linear-gradient(135deg, #1A2F5A 0%, #2C3E70 100%); }
.algo-tiktok { background: linear-gradient(135deg, #0D1B2A 0%, #1A2A3A 100%); }
.algo-facebook { background: linear-gradient(135deg, #1B3A5C 0%, #0D2137 100%); }
.algo-card .platform {
font-family: ‘Montserrat’, sans-serif;
font-size: 0.65rem;
font-weight: 700;
letter-spacing: 0.15em;
text-transform: uppercase;
color: rgba(255,255,255,0.5);
margin-bottom: 0.35rem;
display: flex;
align-items: center;
gap: 0.4rem;
}
.algo-card .metric {
font-family: ‘Montserrat’, sans-serif;
font-size: 1.4rem;
font-weight: 900;
color: var(–seafoam);
line-height: 1;
margin-bottom: 0.4rem;
}
.algo-card .metric-label {
font-family: ‘Lora’, serif;
font-size: 0.82rem;
color: rgba(255,255,255,0.7);
line-height: 1.4;
font-style: italic;
margin-bottom: 0.8rem;
}
.algo-card .signal-list {
list-style: none;
padding: 0;
}
.algo-card .signal-list li {
font-family: ‘Montserrat’, sans-serif;
font-size: 0.65rem;
font-weight: 500;
color: rgba(255,255,255,0.55);
padding: 0.3rem 0;
border-bottom: 1px solid rgba(255,255,255,0.07);
display: flex;
align-items: center;
gap: 0.4rem;
letter-spacing: 0.02em;
}
.algo-card .signal-list li::before {
content: ‘→’;
color: var(–seafoam);
font-size: 0.6rem;
}
/* ─── POSTING FREQUENCY TABLE ─── */
.freq-table-wrap {
background: var(–white);
border: 1px solid var(–border);
border-radius: 6px;
overflow: hidden;
margin: 1.5rem 0 2rem;
}
.freq-table {
width: 100%;
border-collapse: collapse;
font-family: ‘Montserrat’, sans-serif;
}
.freq-table thead tr {
background: var(–navy);
}
.freq-table thead th {
font-size: 0.65rem;
font-weight: 700;
letter-spacing: 0.12em;
text-transform: uppercase;
color: var(–seafoam);
padding: 0.85rem 1rem;
text-align: left;
}
.freq-table tbody tr {
border-bottom: 1px solid var(–border);
transition: background 0.15s;
}
.freq-table tbody tr:last-child { border-bottom: none; }
.freq-table tbody tr:hover { background: var(–pale); }
.freq-table tbody td {
padding: 0.85rem 1rem;
font-size: 0.78rem;
color: var(–text);
vertical-align: middle;
}
.freq-table .platform-name {
font-weight: 700;
color: var(–navy);
display: flex;
align-items: center;
gap: 0.5rem;
}
.freq-table .rec { color: var(–ocean); font-weight: 700; }
.freq-table .min { color: var(–muted); }
.badge-video {
font-size: 0.6rem;
font-weight: 700;
letter-spacing: 0.06em;
text-transform: uppercase;
background: #E8F5E9;
color: #1B5E20;
border: 1px solid #A5D6A7;
padding: 0.15rem 0.45rem;
border-radius: 2px;
}
.badge-algo {
font-size: 0.6rem;
font-weight: 700;
letter-spacing: 0.06em;
text-transform: uppercase;
background: var(–pale);
color: var(–ocean);
border: 1px solid var(–seafoam);
padding: 0.15rem 0.45rem;
border-radius: 2px;
}
/* ─── CHECKLIST ─── */
.ww-checklist {
list-style: none;
padding: 0;
margin: 1rem 0 2rem;
}
.ww-checklist li {
display: flex;
gap: 0.85rem;
padding: 0.75rem 0;
border-bottom: 1px solid var(–border);
align-items: flex-start;
}
.ww-checklist li:last-child { border-bottom: none; }
.ww-checklist .check {
width: 22px; height: 22px;
background: var(–ocean);
border-radius: 50%;
display: flex; align-items: center; justify-content: center;
flex-shrink: 0;
margin-top: 2px;
}
.ww-checklist .check::after {
content: ‘✓’;
color: #fff;
font-size: 0.65rem;
font-weight: 700;
}
.ww-checklist li strong {
display: block;
font-family: ‘Montserrat’, sans-serif;
font-size: 0.82rem;
font-weight: 700;
color: var(–navy);
margin-bottom: 0.2rem;
}
.ww-checklist li p {
margin: 0;
font-size: 0.88rem;
color: var(–muted);
line-height: 1.5;
}
/* ─── TIP BOX ─── */
.tip-box {
background: var(–gold-lt);
border: 1px solid #C8C8C8;
border-left: 4px solid var(–gold);
border-radius: 4px;
padding: 1.25rem 1.5rem;
margin: 2rem 0;
}
.tip-box .tip-label {
font-family: ‘Montserrat’, sans-serif;
font-size: 0.65rem;
font-weight: 800;
letter-spacing: 0.15em;
text-transform: uppercase;
color: #1A1A1A;
margin-bottom: 0.5rem;
}
.tip-box p {
font-size: 0.92rem;
color: #2A2A2A;
margin: 0;
line-height: 1.6;
}
/* ─── SECTION DIVIDER ─── */
.wave-divider {
text-align: center;
margin: 3rem 0 2rem;
color: var(–seafoam);
font-size: 1.4rem;
letter-spacing: 0.3em;
opacity: 0.5;
}
/* ─── CTA BLOCK ─── */
.post-cta {
background: var(–navy);
border-radius: 6px;
padding: 3rem 2.5rem;
text-align: center;
margin-top: 4rem;
position: relative;
overflow: hidden;
}
.post-cta::before {
content: ”;
position: absolute;
bottom: -60px; left: -60px;
width: 240px; height: 240px;
border-radius: 50%;
background: rgba(46,134,193,0.08);
}
.post-cta::after {
content: ”;
position: absolute;
top: -40px; right: -40px;
width: 180px; height: 180px;
border-radius: 50%;
background: rgba(212,172,13,0.06);
}
.post-cta .eyebrow {
font-family: ‘Montserrat’, sans-serif;
font-size: 0.65rem;
font-weight: 700;
letter-spacing: 0.2em;
text-transform: uppercase;
color: var(–seafoam);
margin-bottom: 0.8rem;
position: relative;
z-index: 1;
}
.post-cta h3 {
font-family: ‘Montserrat’, sans-serif;
font-weight: 900;
font-size: 1.6rem;
color: var(–white);
margin-bottom: 0.8rem;
line-height: 1.25;
position: relative;
z-index: 1;
}
.post-cta p {
font-family: ‘Lora’, serif;
font-style: italic;
color: rgba(255,255,255,0.6);
margin-bottom: 2rem;
font-size: 0.95rem;
position: relative;
z-index: 1;
}
.cta-btn {
display: inline-block;
background: var(–gold);
color: #FFFFFF;
font-family: ‘Montserrat’, sans-serif;
font-size: 0.78rem;
font-weight: 800;
letter-spacing: 0.1em;
text-transform: uppercase;
padding: 0.85rem 2.5rem;
border-radius: 3px;
text-decoration: none;
position: relative;
z-index: 1;
transition: background 0.2s;
}
.cta-btn:hover { background: #555555; color: #fff; }
/* ─── TAGS ─── */
.post-tags {
margin-top: 2.5rem;
display: flex;
flex-wrap: wrap;
gap: 0.5rem;
}
.post-tags .tag {
font-family: ‘Montserrat’, sans-serif;
font-size: 0.65rem;
font-weight: 600;
letter-spacing: 0.08em;
text-transform: uppercase;
padding: 0.25rem 0.75rem;
background: var(–pale);
border: 1px solid var(–seafoam);
border-radius: 2px;
color: var(–ocean);
}
@media (max-width: 600px) {
.site-nav .nav-links { display: none; }
.hero h1 { font-size: 1.75rem; }
h2.section-title { font-size: 1.3rem; }
.graphic-banner { gap: 1.5rem; }
.timeline-bar { height: 44px; }
.tl-seg { font-size: 0.52rem; }
.post-cta h3 { font-size: 1.3rem; }
}
Social Media Growth
The Two Things That Actually
Grow Your Social Media in 2026
Forget follower-buying schemes and posting every hour. Every algorithm on every platform rewards the same two things: a hook that stops the scroll, and content that holds attention.
By Wave Works Media
10 min read
Updated April 2026
Target: social media growth reels small business
🎬
Instagram Reels
🎵
TikTok
▶️
Facebook Reels
📺
YouTube Shorts
Graphic suggestion: Replace with side-by-side phone mockups showing each platform’s short-form video UI
Ask most small business owners what it takes to grow on social media and you’ll hear the same answers: post more, use trending sounds, add hashtags, and hope the algorithm notices you. It’s not bad advice — but it’s incomplete. And incomplete strategies produce incomplete results.
The businesses that are genuinely growing on Instagram, TikTok, Facebook, and YouTube Shorts in 2026 have figured out something simpler and more powerful: the algorithm on every major platform is designed to reward two things above all else — hooks that capture attention, and content that keeps it. Everything else is secondary.
In this post, we’re breaking down exactly what those two things mean, why they matter more than posting frequency, and how your small business can start applying them this week.
1.7B
daily Reels plays on Instagram alone 2 sec
average time before a viewer scrolls past your video 70%
of TikTok’s algorithm weight goes to watch time and replays 3–5×
more reach for videos with strong retention vs. weak ones
01
The Foundation
Why Short-Form Video Is the Most Powerful Tool for Small Business Growth Right Now
Short-form video — Reels, TikToks, Shorts — is not a trend. It is the dominant content format across every major social platform, and the algorithms are built to push it further than any other content type. That means a single well-made Reel from a small business in Charlotte can reach thousands of people who’ve never heard of you, at zero ad spend. That is genuinely remarkable.
But the key phrase there is “well-made” — and well-made doesn’t mean expensive or highly produced. It means strategically structured. It means understanding that every second of a short-form video has a job to do, and the first two seconds matter more than all the rest combined.
“Your first two seconds aren’t an introduction. They’re an audition. The viewer is deciding whether you’ve earned the next eight.”
This is the insight that separates accounts that grow from accounts that stall. And it all starts with the hook.
02
Capture Attention
What Is a Hook — and Why It Makes or Breaks Your Content
A hook is the opening moment of your video: the first frame, the first words, the first visual. It has one job — to give the viewer a reason to keep watching instead of scrolling to the next thing. That’s it. A hook doesn’t sell your product, explain your business, or introduce your brand. It creates enough curiosity, tension, or intrigue that stopping feels like the right choice.
Most small business content fails not because the product is bad or the production is low quality — it fails because the hook is weak. “Hey guys, welcome back to our page” is not a hook. Neither is a logo animation, a shot of your storefront, or a monologue that starts with “So today I wanted to talk about…” The viewer is gone before you get to your point.
Anatomy of a High-Performing Short-Form Video
0–2sHOOK 3–25sVALUE / STORY 26–30sCTA +LOOP
Hook — stops the scroll
Value/Story — builds retention
Call to action
Graphic suggestion: Replace with animated version showing a phone screen as each section plays
The 4 Types of Hooks That Work
Every effective hook falls into one of four categories. Mix and match these depending on your content:
❓
The Question Hook
“Are you making this mistake with your Google Business profile?”
Creates an open loop. Viewers stay to find out the answer — or to reassure themselves they’re not making the mistake.
⚡
The Bold Statement Hook
“Posting every day is killing your Instagram reach.”
Challenges a common belief. Triggers a “wait, what?” response that makes stopping feel necessary.
🔢
The List Hook
“3 things every small business needs to do before posting a Reel.”
Sets clear expectations. Viewers want to see all three items, which drives watch time naturally.
👀
The Visual Hook
Opening on a surprising result, a before/after, or an unexpected image before saying a word.
Works for visually-driven businesses. The image itself creates enough intrigue to earn the next few seconds.
Wave Works Tip
Write your hook last. Build your content first, then ask: “What’s the most surprising, valuable, or counterintuitive thing in this video?” Lead with that. The hook should be a preview of the best part — not a preamble to it.
03
Hold Attention
What Is Retention — and Why the Algorithm Cares About It More Than Likes
If the hook gets someone to start watching, retention is what keeps them watching. In video analytics, retention refers to the percentage of your video that viewers actually watch — and it is the single most important signal you can send to every major social algorithm.
Here’s why: platforms like Instagram, TikTok, and YouTube are in the business of keeping people on their apps as long as possible. When your video keeps viewers engaged — when they watch it to the end, or better yet, watch it twice — the platform interprets that as a quality signal and pushes your content to more people. The inverse is equally true: if viewers drop off in the first few seconds, the algorithm quietly buries your post.
How Retention Affects Your Reach
80–100% watch
Viral push
50–79% watch
Growing reach
25–49% watch
Limited push
Under 25%
Suppressed
Graphic suggestion: Animate bars loading in sequence with a real phone analytics screenshot alongside this chart
How to Build Retention Into Your Videos
Strong retention isn’t accidental — it’s engineered. Here are the techniques that work consistently across platforms:
Keep videos under 30 seconds when starting out
Shorter videos are easier to watch to completion, which gives you a higher retention rate. As your audience grows, you can experiment with longer formats. Until then, tighter is better.
Cut every second that doesn’t add value
The first edit pass is about getting your message out. The second edit pass is about cutting everything that isn’t essential. If a scene or sentence doesn’t advance the viewer toward the payoff, cut it.
Use pattern interrupts every 3–5 seconds
A pattern interrupt is a sudden change — a cut to a new angle, a graphic appearing on screen, a new speaker, a sound effect. These micro-resets prevent viewers from tuning out and dramatically improve mid-video retention.
Delay the payoff strategically
Don’t front-load everything. If you’re making a list video, tease the best tip at the end. If you’re showing a result, build the context first. Viewers who know the best is coming will stay to see it.
Design for loops
On TikTok and Instagram, the video loops automatically. When your ending flows naturally into your beginning, viewers watch twice without realizing it. This doubles your watch time signals on the same piece of content.
Add on-screen text that supplements — not duplicates — your audio
Many viewers watch with the sound off. On-screen captions or highlight text give silent viewers a reason to stay. They also add a second layer of information that rewards attentive viewers.
“The algorithm doesn’t know if your product is good, your service is excellent, or your brand is trustworthy. It only knows one thing: did people watch? Make them watch.”
04
The Algorithm
How Every Major Platform Rewards Hooks and Retention
This isn’t a theory — it’s documented behavior across every platform’s own published guidance and confirmed by creators and brands who have studied their analytics at scale. Here’s how each platform weighs what matters:
🎬 Instagram Reels
Watch Time
Primary ranking signal for Reels distribution
Replays counted as high-interest signal
Shares push content to non-followers
Saves signal evergreen value
Skips in first 3s trigger suppression
🎵 TikTok
Completion Rate
Most heavily weighted signal in the For You feed
Full replays = strongest positive signal
Comments drive secondary distribution
Early drop-off kills reach immediately
Shares to other platforms amplify reach
▶️ Facebook Reels
Engagement Rate
Combines watch time with comments and shares
Reels prioritized over static posts in feed
Watch time × interaction rate = boost
Cross-posting from Instagram is supported
Local reach advantage for small businesses
Notice the throughline: every platform is measuring some version of “did people keep watching?” Instagram has publicly confirmed that watch time is the dominant signal for Reels distribution. TikTok’s own documentation makes clear that completion rate and replays are the highest-weighted factors in their recommendation system. The data all points the same direction — hooks and retention are not one part of the strategy. They are the strategy.
Wave Works Tip
Check your analytics after every post. On Instagram and TikTok, you can see exactly where viewers are dropping off. When you find a consistent drop-off point, that’s your content telling you what to fix in the next video.
~ ~ ~
05
Posting Frequency
How Often Should You Post? The Real Numbers by Platform
Consistency matters — but volume without quality is counterproductive. Posting mediocre content every day will suppress your reach faster than posting excellent content three times a week. The sweet spot is the highest frequency at which you can maintain quality. Here’s what the data and platform guidance suggest:
Platform | Minimum / Week | Recommended | Format Priority | Notes |
|---|---|---|---|---|
3x | 4–5x Reels | Reels | Reels get 3–5× more reach than static posts | |
🎵 TikTok | 3–5x | 5–7x | Video only | Higher volume rewarded; quality must not suffer |
3x | 3–4x Reels | Reels + Posts | Cross-posting from Instagram is efficient here | |
📺 YouTube Shorts | 2x | 3–5x | Shorts | Great for SEO — Shorts appear in Google results |
For most small businesses managing social media without a dedicated team, the realistic starting point is 3 quality Reels per week on your primary platform. That is enough to build momentum if the content is structured well — meaning strong hooks and high retention. If you can batch-film content once a week and schedule it out, three posts per week becomes very manageable.
As your process improves and your templates solidify, scaling to five posts per week is achievable without dramatically increasing your time investment. The goal is to build a repeatable system, not to sprint until you burn out. For a deeper look at building a sustainable content calendar, see our guide on social media marketing for small businesses.
06
Putting It Together
Your Action Plan: Applying This to Your Business Starting Now
Here’s how to take everything in this post and turn it into a repeatable workflow this week:
Audit your last 10 posts for hook quality
Watch your own content like a stranger would. Does the first two seconds give them a reason to stay? Identify what’s working and what isn’t before creating anything new.
Write 10 hook variations before filming anything
Use the four hook types above and write multiple options for your next piece of content. Then pick the one that would make you stop scrolling if you saw it from a stranger.
Commit to one platform for 60 days
Spreading thin across five platforms produces five mediocre presences. Pick the platform where your customers spend the most time and go deep there first. Master the format before expanding.
Check your retention analytics weekly
Both Instagram and TikTok show you exactly where viewers drop off. Use this data to improve your next video — not to feel bad about the last one.
Batch your content creation
Film multiple videos in one session. This reduces the mental overhead of content creation and makes it far easier to maintain a consistent posting schedule without burnout.
Growing on social media as a small business in 2026 is genuinely achievable — but only if you’re playing the right game. The right game isn’t about going viral once or having a perfect aesthetic grid. It’s about building a system that consistently stops the scroll, holds attention, and signals to every algorithm that your content is worth distributing further.
Hooks and retention. That’s the foundation. Everything else — trending sounds, hashtags, posting times — is optimization on top of a solid base. Get the base right first.
If you’d like help building that system for your specific business — or if managing social media consistently isn’t something you have time for in-house — Wave Works Media’s social media management packages are built exactly for this. We handle strategy, content creation, and reporting so you can focus on running your business.
Wave Works Media · Charlotte, NC
Ready to Make Your Content Actually Grow Your Business?
We’ll build your social media strategy around hooks, retention, and content that converts — without the big-agency price tag.
Reels
TikTok
Social Media Growth
Content Strategy
Small Business
Algorithm
Short-Form Video
