【AdSense全廃】PageSpeed 94点!外部JSゼロの自作WebP投げ銭カードで爆速&ストレスフリーなブログを作った話

この記事は約16分で読めます。
この記事が役立ったらブックマーク! あとで読み返したり、環境構築時のリファレンスに活用できます
B! はてなブックマークに追加

自宅サーバーを構築し、Nginx や WordOps 、Redis から Valkey へのリプレイスによるオブジェクトキャッシュ、さらにはRAMディスク(tmpfs)の活用まで突き詰める――エンジニアやWeb系クラスタにとって、最速のレスポンス速度を追い求めるのは至高のロマンであり終わりのない沼です。
しかし、ふと我に返ったとき、画面の隅で異彩を放つアイツの存在に気づくのです。

「……AdSense、重すぎないか?」

月に数十円〜数百円のうまい棒数本分の収益のために、adsbygoogle.js という重い外部スクリプトを読み込み、PageSpeed Insightsのスコアを数十ポイント叩き落とされる現実。せっかく丹精込めて組み上げた爆速インフラが、たった数枚の広告タグによって台無しにされていく……。

「こんな割に合わないトレードオフ、もうやめだ!」

そう決意した管理人は、サイト上のすべてのGoogle AdSenseを全廃。代わりに導入したのが、外部JSを一切読み込ませない「超軽量な自作投げ銭システム」です。
本記事では、AdSenseを捨て去って手に入れた爆速環境の全貌と、海外サービスを日本の銀行口座へ安全に着金させるリアルな構築ノウハウ、そしてサイトのパフォーマンスを1ミリも落とさないブログカードの作成手順を詳しくお届けします。

第1章:なぜ AdSense を全廃し Buy Me a Coffee + Stripe へ移行したのか

1. 爆速サーバーの足を引っ張る「adsbygoogle.js」の猛威

Nginxのチューニング、Redisから切り替えたValkeyによる高速なオブジェクトキャッシュ、RAMディスク(tmpfs)の活用――どれだけサーバーサイドでコンマ数ミリ秒のレスポンス速度を突き詰めても、Google AdSenseを貼った瞬間にすべてが台無しになります。
特に問題なのが、非同期で読み込まれるはずの adsbygoogle.js です。 大量のサードパーティクッキー、レンダリングをブロックするスクリプト、後からガタガタと遅れて読み込まれる画像広告によって、PageSpeed Insightsのスコアは激減。
「うまい棒数本分」のために、自分がこだわり抜いたWebサイトのパフォーマンスとユーザー体験を犠牲にするのは、あまりにも割に合いません。

2. 「ノイズだらけの広告」から「価値への直接支援」へ

閲覧者の画面を追従するアンカー広告や、コンテンツを無理やり遮るインフィード広告は、サイトの品位を損なう原因にもなります。
そこで目をつけたのが、海外の有名クリエイターやエンジニアの間で標準となりつつある Buy Me a Coffee(BMaC) でした。

  • サイト内に無関係な広告が表示されない
  • 記事に真の価値を感じてくれた読者だけが支援できる
  • 金額を自由に決められる手軽な単発投げ銭スタイル

「押し売り」ではなく「感謝の循環」を作るこの仕組みこそ、個人技術ブログが目指すべき健全なマネタイズの姿だと確信したのです。

3. Stripe連携で「日本の銀行口座」へ円建て着金

「海外のサービスって、日本の銀行口座にお金が入るの?」という不安もありましたが、決済基盤に Stripe を使用しているため、その懸念は一瞬で吹き飛びました。
ドル建てで支援された資金は、Stripeによって自動的に日本円に換算され、登録した日本の銀行口座へ定期的に振り込まれます。中間手数料も明確で、国内の決済手段と比べても非常にスマートです。

💡そもそも「Stripe(ストライプ)」ってなに?

簡単に言うと、「世界中のWebサービスで使われている、超高性能な決済インフラ(集金代行システム)」で、AmazonやShopify、X(旧Twitter)などのオンライン決済の裏側でも広く採用されています。

  • Buy Me a Coffee(BMaC): 表側の「お店のレジ(画面)」
  • Stripe: 裏側の「お金を安全に処理して銀行に送る金庫・振込システム」

Buy Me a Coffee自体が直接クレジットカードを処理しているわけではなく、実際の決済や世界各国の通貨換算、セキュリティ認証、銀行への送金処理はすべて裏で「Stripe」が代行しています。
だからこそ、海外サービスでありながら日本のクレジットカードで決済でき、日本の銀行口座に円建てで振り込まれるという安心な仕組みが成り立っているのです。

第2章:Stripe連携のハマりポイントとテスト決済

1. 本人確認(eKYC)と連携の挙動

Buy Me a CoffeeとStripeの連携を進めていくと、アカウントの初回作成時には身分証明書による本人確認(eKYC)を求められます。

  • 必要なもの: 写真付き身分証明書(運転免許証、マイナンバーカードなど) + カメラ付きスマホ
  • 流れ: 画面に表示されるQRコードをスマホで読み取り、画面の指示に従って身分証(表面・裏面)をその場でリアルタイム撮影する

スマホで撮影を終えれば待ち時間もなくその場で審査が完了します。

💡 補足(すでにStripeアカウントをお持ちの方へ):
過去に他のサービス等でStripeの本人確認(eKYC)を済ませている場合、同一人物の情報で連携を行うと、身分証の撮影ステップ自体がスキップされ、登録情報の確認のみで即座に連携が完了します。

2. 【注意】住所入力での照合エラーに注意!

個人情報の登録時、身分証の表記と1文字でも表記揺れ(ハイフンや建物名の半角・全角など)があると、以下のように自動照合で弾かれることがあります。

郵便番号からの自動補完を活用し、手元の写真付き身分証明書とまったく同じ表記(漢字や番地)で入力するのが一発で通過するコツです。

3. 日本のセキュリティチェックリストの乗り越え方

住所入力や口座登録が終わると、「日本のクレジットカード決済におけるセキュリティ対策チェックリスト」が表示されます。
要するに「あなたのサイト自体でクレジットカード番号を直接扱っていませんか?」という確認ですので、決済処理をすべてStripe側に任せている本構成では、画面の指示に従って適合(はい)を選択して進めれば問題なく通過します。

4. テスト決済と日本円への自動換算・着金確認

設定完了後、シークレットウィンドウを使って実際にテスト決済(任意の金額)を実施しました。決済時には「3Dセキュア 2.0(クレジットカード本人認証)」がしっかり作動し、安全に決済が完了することを確認。
決済成功後、Stripeのダッシュボードに即座に反映され、自動で円換算された金額と振込予定日が表示されました。「読者が投げ銭 ➔ Stripeが決済&円換算 ➔ 日本の銀行口座へ着金」 というパイプラインの完成です。

第3章:【実践】外部JSゼロ!自サーバー配信WebPで作る最速投げ銭ブログカード

1. 公式ウィジェットを捨て、自サーバー配信WebPを選択

Buy Me a Coffeeの公式から提供されるJavaScriptウィジェットコードを使うと、外部スクリプトの読み込みが発生し、レンダリングブロックの原因になります。
「外部JSを1本も読み込ませない」という爆速化の美学を貫くため、今回は公式のQRコード画像をダウンロードし、最新フォーマットである WebP に変換して自サーバーから直接配信する手法を採用しました。
これにより、DNSルックアップやTLSハンドシェイクのオーバーヘッドをゼロにし、Nginx/WordOpsの静的ファイルキャッシュをフル活用できます。

2. コピペで使える最速ブログカードコード

1. HTML

HTML
<div class="bmac-card" role="region" aria-label="投げ銭・支援コーナー">
  <div class="bmac-header">
    <h3>☕ この記事が役に立ったらコーヒー1杯奢りませんか?</h3>
    <p>月数十円の広告を排除し、爆速かつノイズレスな記事をお届けしています!</p>
  </div>
  <div class="bmac-body">
    <div class="bmac-qr">
      <img src="https://your-domain.com/wp-content/uploads/bmac-qr.webp" alt="Buy Me a Coffee投げ銭ページへのQRコード" width="180" height="180" loading="lazy">
    </div>
    <div class="bmac-action">
      <p class="bmac-text">スマホの方は下のボタンから、PCの方はQRコード読み取りで簡単に投げ銭(自由な金額で支援)が可能です!</p>
      <a href="https://buymeacoffee.com/あなたのID" target="_blank" rel="noopener noreferrer" class="bmac-btn" aria-label="Buy Me a Coffeeの外部ページを開いて開発者を支援する">
        Buy Me a Coffee で支援する
      </a>
    </div>
  </div>
</div>
HTML
<div class="bmac-card" role="region" aria-label="Donation and Support Section">
  <div class="bmac-header">
    <h3>☕ Enjoyed this article? Buy me a coffee!</h3>
    <p>We keep our site ad-free to deliver a lightning-fast, distraction-free reading experience!</p>
  </div>
  <div class="bmac-body">
    <div class="bmac-qr">
      <img src="https://your-domain.com/wp-content/uploads/bmac-qr.webp" alt="QR code to Buy Me a Coffee donation page" width="180" height="180" loading="lazy">
    </div>
    <div class="bmac-action">
      <p class="bmac-text">Mobile users can click the button below, and PC users can scan the QR code to easily send support with any amount!</p>
      <a href="https://buymeacoffee.com/YOUR_ID" target="_blank" rel="noopener noreferrer" class="bmac-btn" aria-label="Open Buy Me a Coffee page to support the developer">
        Buy Me a Coffee
      </a>
    </div>
  </div>
</div>

2. CSS

CSS
.bmac-card {
  border: 2px solid #ffdd00;
  border-radius: 12px;
  padding: 24px;
  background-color: #fffbf0;
  margin: 30px 0;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05);
}
.bmac-header h3 {
  margin: 0 0 8px 0;
  font-size: 1.2rem;
  color: #111111;
}
.bmac-header p {
  margin: 0 0 16px 0;
  font-size: 0.95rem;
  color: #333333;
}
.bmac-body {
  display: flex;
  align-items: center;
  gap: 20px;
  flex-wrap: wrap;
}
.bmac-qr img {
  border-radius: 8px;
  border: 1px solid #ccc;
  display: block;
}
.bmac-action {
  flex: 1;
  min-width: 200px;
}
.bmac-text {
  font-size: 0.9rem;
  color: #222222;
  margin-bottom: 12px;
}
.bmac-btn {
  display: inline-block;
  background-color: #ffdd00;
  color: #000000;
  font-weight: bold;
  padding: 12px 24px;
  border-radius: 8px;
  text-decoration: none;
  transition: background-color 0.2s ease;
}
.bmac-btn:hover {
  background-color: #ffcc00;
}

3. 完成イメージ

第4章:まとめ(AdSenseを全廃して手に入れた爽快感と課題)

1. 圧倒的なスコアと数値が証明する「爆速」の現実

AdSenseを完全に追放し、自社サーバー配信WebPの軽量カードへ切り替えた結果、PageSpeed Insightsのデスクトップスコアは劇的に改善しました。

  • パフォーマンス: 94
  • First Contentful Paint (FCP): 0.6秒(瞬時に画面が立ち上がる)
  • Total Blocking Time (TBT): 70ミリ秒(Javascriptによるレンダリングブロックがほぼゼロ)
  • Cumulative Layout Shift (CLS): 0.01(広告の遅延読み込みによる画面のガタつきが全滅)

AdSenseを載せていた頃の「重いJSに足を引っ張られるモヤモヤ」は完全に消え去り、数値としても圧倒的なパフォーマンスを実証できました。

2. モバイル計測で見えた「JS排除の先にある本当の課題」

なお、モバイル環境で計測したところ、パフォーマンスは 72点 でした。

しかし注目すべきは、TBT(Total Blocking Time)が90ミリ秒、ユーザー補助は97点という超優秀な数値を叩き出した点です。
モバイルでパフォーマンススコアが落ちた主な原因はJSの重さではなく、低速回線エミュレーション時におけるトップページの画像読み込み遅延(LCP 9.1秒)でした。
AdSenseという巨大な外部スクリプトの重りを脱ぎ捨てたことで、「本来解決すべき純粋な画像最適化などの課題」がクリアに見えるようになったのは大きな収穫です。

※余談ですが、ユーザー補助のスコア改善に躍起になってブログカードのCSSを調整していた際、「よく考えたら計測していたトップページに投げ銭カードを貼っていなかった」というドタバタもありましたw

3. 投げ銭というマネタイズの心地よさ

広告をクリックさせるビジネスモデルから脱却し、「この記事が役に立った」「応援したい」というポジティブな理由で読者から直接支援を受ける環境が整いました。
月数十円のために画面を広告だらけにし、丹精込めて組んだインフラの速度を殺すのに疲れたら、ぜひ「外部JSゼロの自作投げ銭カード」という選択肢を試してみてください!

コメント

タイトルとURLをコピーしました