第10回 人気記事を自動表示する―GA4のPV上位3件をゆまラボのTOPページへ反映

GA4 Data APIの直近30日PVをContent Collectionsの記事と照合し、上位3件をゆまラボのTOPページへ自動表示した。既存ArticleCardを再利用し、PV数や順位は表示しない構成にした。
Web制作のタグが付いた記事です。
31件の記事

GA4 Data APIの直近30日PVをContent Collectionsの記事と照合し、上位3件をゆまラボのTOPページへ自動表示した。既存ArticleCardを再利用し、PV数や順位は表示しない構成にした。

GA4 Data APIで取得した記事別PVをCloudflare Pagesのビルドでも使うため、サービスアカウント、組織ポリシー、OAuth本番化、ADC再認証、Cloudflare Secret登録までを確認した。

2026年9月13日の公開中のゆまラボをPCブラウザで開き、ウィンドウを手動で縮められる限界まで狭くした。トップ・記事本文・連載一覧・カテゴリ一覧の折り返しと横方向の破綻を実画面で確認する。

AdSense申請中のbringain.comでads.txtが「不明」と表示されたため、ステータスの説明と/ads.txtの実表示を確認。404のままでも審査中に何をする必要があるのか、Google公式情報と照らして確認します。

Cloudflare WorkersのビルドでseriesOrder重複を検出した経験から、FrontmatterをAstro build前に検査する処理を追加。category、subcategory、series、seriesOrder、tagsを既存schemaとtaxonomyで確認し、正常時の219ページ生成まで記録します。

タグ一覧を人気タグとカード型の一覧へ変更し、タグ検索と並び替えを追加。記事末尾には既存Frontmatterから最大3件の関連記事を自動表示し、既存のタグURLやnoindex、連載導線を残したまま動作を確認した記録です。

CloudflareのResponse Header Transform RulesとHSTS、Always Use HTTPSを使ってbringain.comのHTTPレスポンスを見直した。Security Headersの評価がFからAに変わるまでと、HTTPが200 OKのままだったつまずきも含めて記録する。

PCでは問題なく読めたページが、スマホでは画像付近で止まったように見えた経験から、重い画像がモバイル表示へ与える影響を確認します。ゆまラボでAstroの画像最適化、srcset、WebP、遅延読み込みを適用した実測も振り返ります。

AstroはMarkdown見出しへ自動でIDを付けるため、追加プラグインなしでもページ内アンカーを使えます。長い技術記事の目次や特定セクション共有で役立つ一方、見出し変更によるURL切れ、UIの増加、固定ヘッダーやコピー機能の注意点もあります。

Astroで作成しているゆまラボの記事本文に、見出しアンカーとURLコピー用のリンクを追加した作業記録。あわせてトップページへヒーロー、連載カード、カテゴリカードを追加した。

AstroブログのheroImageを記事一覧と記事本文へ表示し、同じ画像から1200×630のOGP画像を生成。画像なしの記事との互換性、summary_large_image、一覧レイアウトまで確認した記録です。

記事本文の画像をAstro標準の画像処理へ移し、WebP、srcset、sizes、width/height、loading="lazy"を追加。278個の画像ファイルと281件の参照を対象に、容量削減とPC・スマホ表示を確認した記録です。

Astroの生成HTMLをビルド後に検査し、存在しない内部URLへのリンクがあればnpm run buildを失敗させる処理を追加。修正前後の実測、URL判定、parse5、意図的なリンク切れテストまで記録します。

存在しないURLでブラウザ標準の404だけが表示されていたため、Astroの404.astroを追加しました。SiteLayoutを再利用し、トップページ・記事一覧への導線、Cloudflare Workersで404を返す構成、ローカルと公開画面の確認まで記録します。

SNSやメール通知がある現在でもRSSを残す意味はあるのか。RSS 2.0の現状、Astroでの生成方法、Googleのサイトマップ利用、ゆまラボで残している理由を確認します。

記事本文のコードブロックへコピー操作を追加し、TOPページの「連載から読む」を3連載のカード表示へ変更しました。Clipboard APIのフォールバック、複数コードブロック、既存の連載カード再利用まで記録します。

Google検索では見えているのにGeminiではページを取得できない現象をきっかけに、Googlebot、Google-Extended、AI検索用・学習用クローラー、Cloudflare側の制御を調べます。

公開中のAstroサイトで/sitemap.xmlだけ404になったときに、@astrojs/sitemapの出力名と公開ファイルを確認した記録です。

カテゴリ・サブカテゴリに残っていた汎用説明を実際の記事内容に合わせて変更し、連載にも共通の説明データを追加しました。/series/を説明・記事数・導線を持つカード表示へ変更した内容を記録します。

記事一覧、カテゴリ、サブカテゴリ、連載詳細で、一覧末尾だけにあったページナビを上部にも追加しました。上下のナビを共通コンポーネント化し、同じpage・sort状態を使うようにした内容を記録します。

TOPページで連載をカテゴリより上へ移動し、記事一覧・カテゴリ・連載詳細へ10件表示、新しい順と古い順の切り替え、最初・前へ・次へ・最後のページ移動を追加した内容を記録します。
Google AdSenseのプライバシーポリシー追記、お問い合わせ先の独自ドメインメールへの変更、全記事へのupdatedAt追加、記事H1とfaviconの小さな修正を行った内容を記録します。

タグ一覧を記事件数の多い順に変更し、上位50件を通常表示、51件目以降を展開できるようにしました。/tags/のnoindexとサイトマップ除外、記事末尾の連載番号表示も修正します。

WEB制作・AI・開発支援の説明をtaxonomy側で管理するよう変更し、記事一覧・タグ・連載ページに残っていた本文側の重複ナビゲーションを削除した内容を記録します。

準備中のままになっていたお問い合わせページにmailto方式のフォームと直接メールできる連絡先を追加し、プライバシーポリシーにはGoogle AdSenseの広告設定に関する説明を追記した内容を記録します。

AstroとWordPressを、構成・更新方法・表示速度・運用・拡張性・Cloudflareとの相性まで比較。ゆまラボで最終的にAstroを選んだ理由を実際のサイト運用目線で整理します。

一度修正したはずのタグ重複が記事追加後に再発。Frontmatterの個別修正ではなく、タグマスタ、alias、共通のnormalizeTag、旧URL維持、未登録タグ警告まで追加した内容を記録します。

ゆまラボのAboutページへ運営者情報とプロフィール画像を追加し、全記事へパンくずとBreadcrumbListを実装。カテゴリページの重複ナビと記事本文のH1重複も修正した内容を記録します。

ゆまラボのヘッダーへ記事一覧・カテゴリ・連載・タグとサイト内検索を追加。横長の表を表だけ横スクロールできるように修正し、404だったsitemap.xmlも追加した内容を記録します。

ゆまラボのサイトチェックで気になった個別タグページの扱いとフッターの導線を見直す。タグ機能は残したままnoindexを設定し、お問い合わせ、プライバシーポリシー、免責事項へのリンクを追加した内容を記録します。

AstroのContent Collection schemaに合わないFrontmatterでCloudflare Workersのビルドが失敗。categoryとsubcategoryの修正後に見つかった分類ミス、タグ重複、トップページの余白まで続けて修正した流れを記録します。