「ブログの成約率を上げたいけれど、ずっと表示されるバナーは読者の邪魔になりそうで不安……」
「ポップアップや追従バナーを入れたいけど、プラグインを入れるとサイトが重くなるのが嫌だ」
WordPressテーマの「SWELL」を使っていると、こんな悩みが出てきませんか?
確かに、常に画面の大部分を占領するバナーは、読者にとってストレスになりやすく、Googleの評価(UX指標)を下げる原因にもなりかねません。
そこで今回は、**SWELLの標準機能と簡単なコピペコードだけ**で、読者にもサイト速度にも優しい「理想の追従バナー」を作る方法を解説します。 今回実装するバナーの特徴は以下の通りです。
- プラグイン不要:サイトの読み込み速度を落としません。
- スクロールで表示:記事を読み始めてから「ふわっ」と出てくるので邪魔になりません。
- 閉じる(×)ボタン付き:不要な読者は自分で消せる親切設計です。
- ページ移動で復活:そのページで閉じても、別の記事ではまた案内ができるので機会損失を防げます。
「コードなんて触ったことがない」という初心者の方でも、指定の場所に貼り付けるだけで完了するように解説しますので、ぜひ一緒に設定していきましょう!
なぜプラグインを使わないのか
追従バナーやポップアップを実装するプラグインはたくさんありますが、実はデメリットも少なくありません。
1. サイトが重くなる:外部のファイルを読み込むため、表示速度に悪影響が出やすい。
2. デザインが浮く:SWELLの洗練されたデザインに馴染ませるのが難しい。
3. 管理が大変:プラグインのアップデートのたびに不具合の心配がある。
SWELLには「高度な設定」という、コードを安全に挿入できる場所があらかじめ用意されています。これを利用することで、テーマを汚さず、最小限の記述でプロ級のバナーを実装できるんです。
具体的な実装ステップ
準備するもの
バナー画像: 横長のもの(例:1200×300pxなど)をWebP形式などで圧縮して用意。
リンク先URL: 飛ばしたい先のURL。
実装手順
SWELLのカスタマイザーを開き、
「高度な設定」→「bodyタグ終了直前に出力するコード」
に以下のコードを貼り付けるだけです。
【コピペ用】実装コード(自己責任でお願いします。
#### 【コピペ用】実装コード
```html
<!-- UX配慮型 固定バナー(ページ移動で再表示) -->
<div id="smart-fixed-banner" style="display: none; opacity: 0;">
<button id="banner-close-btn" aria-label="閉じる">×</button>
<a href="https://ここにリンク先のURL">
<img src="https://ここに画像のURL" alt="キャンペーン案内">
</a>
</div>
<style>
/* -------------------------------------------
* バナー全体のデザイン
* ------------------------------------------ */
#smart-fixed-banner {
position: fixed !important;
bottom: 20px; /* 下からの距離 */
left: 50%;
transform: translateX(-50%);
z-index: 999999;
width: 90%;
max-width: 400px; /* 最大横幅 */
line-height: 0;
transition: opacity 0.4s ease, transform 0.4s ease;
pointer-events: auto;
}
/* 表示された時に適用されるスタイル */
#smart-fixed-banner.is-visible {
opacity: 1 !important;
}
#smart-fixed-banner img {
width: 100%;
height: auto;
border-radius: 12px;
box-shadow: 0 10px 30px rgba(0,0,0,0.3);
}
/* 閉じるボタンのデザイン */
#banner-close-btn {
position: absolute;
top: -12px;
right: -12px;
width: 32px;
height: 32px;
background: #444;
color: #fff;
border: 2px solid #fff;
border-radius: 50%;
cursor: pointer;
font-size: 20px;
font-weight: bold;
display: flex;
align-items: center;
justify-content: center;
z-index: 1000001;
}
/* スマホ用の位置調整(SWELLの固定メニューがある場合) */
@media (max-width: 959px) {
#smart-fixed-banner {
bottom: 75px;
width: 88%;
}
}
</style>
<script>
(function() {
window.addEventListener('DOMContentLoaded', function() {
const banner = document.getElementById('smart-fixed-banner');
const closeBtn = document.getElementById('banner-close-btn');
const showThreshold = 400; // 400pxスクロールしたら表示
let isManuallyClosed = false;
window.addEventListener('scroll', function() {
if (isManuallyClosed) return;
if (window.scrollY > showThreshold) {
if (banner.style.display === 'none') {
banner.style.display = 'block';
setTimeout(() => banner.classList.add('is-visible'), 10);
}
} else {
banner.classList.remove('is-visible');
setTimeout(() => {
if(!banner.classList.contains('is-visible')) banner.style.display = 'none';
}, 400);
}
});
closeBtn.addEventListener('click', function(e) {
e.preventDefault();
isManuallyClosed = true;
banner.classList.remove('is-visible');
setTimeout(() => { banner.style.display = 'none'; }, 400);
});
});
})();
</script>
```
カスタマイズのポイント(解説)
表示タイミングを変えたい: `showThreshold = 400` の数値を大きくすれば、もっとスクロールしないと出ないようになります。
スマホの位置を調整したい: `@media` 内の `bottom: 75px` を変えることで、SWELLのメニューとの被りを調整できます。 * **
ページ移動で再表示させたくない場合: 「今回は利便性を考えて、ページ移動で復活するように設計しています」
まとめ
プラグインを使わないのでサイトが重くならない。
×ボタンがあることでユーザーにストレスを与えない。
SWELLの「高度な設定」を活用すれば、テーマを直接いじらず安全にカスタマイズできる。

コメント