• #lighthouse
  • #performance
  • #testing
  • #guide

Lighthouse テスト実行ガイド

本番環境(https://log.eurekapu.com/)に対してLighthouseテストを実行する際のガイド。

重要な注意点

1. Frontmatterの有無でテスト対象が決まる

  • frontmatterあり = 公開対象の記事 → テスト対象
  • frontmatterなし = 非公開の記事 → テスト対象外

contentディレクトリ内にあっても、frontmatterがないファイルは本番環境で503エラーを返す。これは仕様。

2. Cloudflareのレート制限

短時間に多数のリクエストを送ると、Cloudflareのレート制限に達して503エラーが返される。

対策:

  • 一度に大量のページをテストしない
  • テストを分割して実行する
  • レート制限に達したら数分〜1時間待つ

テスト実行手順

Step 1: テスト対象URLを生成

cd apps/web
node scripts/generate-lighthouse-urls.mjs

このスクリプトは:

  1. contentディレクトリ内のMarkdownファイルをスキャン
  2. frontmatterが有効なファイルのみを抽出
  3. Vue pagesと合わせてURL一覧を出力

Step 2: lighthouserc.cjs を更新

スクリプトの出力を lighthouserc.cjs のurl配列にコピー。

Step 3: Lighthouseテストを実行

方法1: 一括実行(レート制限に注意)

pnpm lighthouse

方法2: 遅延付きバッチ実行(推奨)

# 全URLを遅延付きでテスト(レート制限回避)
pnpm lighthouse:batch

# オプション指定
pnpm lighthouse:batch -- --delay=5000 --batch=5

# 途中から再開(例: 50番目から)
pnpm lighthouse:batch -- --start=50

# 一部のみテスト(例: 最初の20件)
pnpm lighthouse:batch -- --limit=20

バッチ実行オプション:

  • --delay=N: 各リクエスト間の遅延(ms)。デフォルト: 3000
  • --batch=N: バッチサイズ。N件ごとに長めの休憩。デフォルト: 10
  • --start=N: 開始インデックス。デフォルト: 0
  • --limit=N: テストするURL数の上限

Step 4: 結果を確認

pnpm lighthouse:summary

詳細なHTMLレポートは .lighthouseci/reports/ に保存される。

現在の問題点(2025-12-04時点)

Markdownコンテンツが503エラーを返す

frontmatterが有効なコンテンツ(117件)も503エラーを返している。

原因:

  1. コンテンツが本番環境にデプロイされていない
  2. または、Cloudflareのレート制限に達した

対処方法:

# 最新コンテンツをデプロイ
pnpm deploy:cloudflare

# デプロイ後、再度テスト
pnpm lighthouse

frontmatterの有無について

  • frontmatterあり = 公開対象の記事(テスト対象)
  • frontmatterなし = 非公開の記事(テスト対象外)

pnpm lighthouse:urls でfrontmatterが有効なURLのみを生成できる。

確認済みの動作するコンテンツ(10件):

  • /2025-10-04/nuxt-content-sqlite-field-mapping
  • /2025-10-07/real-estate-terms
  • /2025-10-18/excel-functions-let-xmatch-index-guide
  • /2025-10-19/google-claims-fact-check
  • /2025-10-20/design-philosophy-qa
  • /2025-11-29/home-ownership-vs-rental-fp-guide
  • /2025-12-02/mansion-vs-house-advice
  • /2025-12-03/mockup-development-log
  • /2025-12-04/lighthouse-performance-improvement
  • /features/table-of-contents

Vue pages のテスト結果(25件)

すべて正常にテスト完了。平均スコア:

  • Performance: 95
  • Accessibility: 95
  • Best Practices: 100
  • SEO: 91

関連ファイル

ファイル説明
lighthouserc.cjsLighthouse CI 設定ファイル
scripts/generate-lighthouse-urls.mjsテスト対象URL生成スクリプト
scripts/lighthouse-summary.mjs結果サマリー表示スクリプト
scripts/check-content-urls.mjs本番URLの存在確認スクリプト
scripts/lighthouse-with-delay.mjs遅延付きバッチテストスクリプト

参考ドキュメント