ソーシャルプルーフ(社会的証明)とは、他者の行動や評価を見て自分の判断の参考にする心理効果を活用したCRO施策です。BrightLocalの調査(2024年)によると、消費者の87%がオンラインレビューを購入前に確認しています。
ソーシャルプルーフの実装は静的なHTML/CSSで完結するものが大半です。この記事では、コンバージョン率を高める社会的証明の配置パターンと実装方法を解説します。
ソーシャルプルーフの6つのパターン
| パターン | 例 | 効果が高い配置場所 | 実装方法 |
|---|---|---|---|
| 導入企業ロゴ | 「○○株式会社、△△社など500社が導入」 | ファーストビュー直下 | HTML/CSS |
| 数値実績 | 「累計10,000ユーザー」「年間500件の制作実績」 | ファーストビュー内 | HTML/CSS |
| お客様の声 | 顔写真+名前+肩書き+具体的な成果 | CTA直前 | HTML/CSS |
| メディア掲載 | 「日経新聞、TechCrunchに掲載」 | ファーストビュー直下 | HTML/CSS |
| 評価・レビュー | 星評価4.8/5.0(レビュー200件) | CTAボタン周辺 | HTML/CSS + JSON-LD |
| リアルタイム情報 | 「現在23人が閲覧中」「本日15件のお申し込み」 | CTAボタン周辺 | JavaScript |
効果的なお客様の声の書き方
「とても良かったです」のような抽象的なレビューはCVRに影響しません。効果的なお客様の声には以下の要素が必要です。
| 要素 | 弱い例 | 強い例 |
|---|---|---|
| 成果の具体性 | 「売上が上がりました」 | 「導入3ヶ月でCVRが2.1%→3.4%に改善」 |
| 人物情報 | 「A社 担当者」 | 「株式会社○○ マーケティング部 田中太郎様」 |
| 顔写真 | なし | 実際の顔写真(信頼性が大幅に向上) |
| 課題→解決 | 「おすすめです」 | 「フォーム離脱率が70%→45%に改善。以前はツールに月3万円払っていたが不要になった」 |
ソーシャルプルーフのコード実装
導入企業ロゴのスライダー
CSSアニメーションだけで無限スクロールのロゴスライダーを実装できます。JavaScriptは不要です。
.logo-slider {
overflow: hidden;
white-space: nowrap;
}
.logo-track {
display: inline-flex;
animation: scroll 20s linear infinite;
}
.logo-track img {
height: 40px;
margin: 0 40px;
filter: grayscale(100%);
opacity: 0.6;
transition: opacity 0.3s;
}
.logo-track img:hover {
opacity: 1;
}
@keyframes scroll {
0% { transform: translateX(0); }
100% { transform: translateX(-50%); }
}
数値カウントアップアニメーション
「導入企業500社」などの数値を、Intersection Observerで画面に入ったタイミングでカウントアップ表示します。
function animateCounter(element, target, duration) {
const start = performance.now();
function update(now) {
const elapsed = now - start;
const progress = Math.min(elapsed / duration, 1);
const eased = 1 - Math.pow(1 - progress, 3);
element.textContent = Math.floor(target * eased).toLocaleString();
if (progress < 1) {
requestAnimationFrame(update);
}
}
requestAnimationFrame(update);
}
const observer = new IntersectionObserver((entries) => {
entries.forEach(entry => {
if (entry.isIntersecting) {
const el = entry.target;
animateCounter(el, Number(el.dataset.count), 2000);
observer.unobserve(el);
}
});
});
document.querySelectorAll('[data-count]').forEach(el => observer.observe(el));
参考: Intersection Observer API - MDN Web Docs
まとめ
この記事は CodeQuest.work に掲載した記事を技術者向けに再構成したものです。
CROシリーズの他の記事: