トラブルシューティング
Kashiwazaki SEO Perfect Breadcrumbs の使用中に発生しうる問題と対処法、動作要件、技術仕様について解説します。
よくある問題と対処法
パンくずが表示されない
| 考えられる原因 | 対処法 |
|---|---|
| プラグインが有効化されていない | 管理画面の「プラグイン」一覧で、本プラグインが有効になっていることを確認してください。 |
| テーマが選択したフックに対応していない | 別の表示位置(フックポジション)を試してください。または、ショートコード [kspb_breadcrumbs] を使用してください。 |
| キャッシュプラグインが古い出力を表示している | キャッシュプラグイン(WP Super Cache、W3 Total Cacheなど)のキャッシュをクリアしてください。 |
| トップページを表示している | トップページ(フロントページ)ではパンくずは設計上表示されません。投稿や固定ページで確認してください。 |
パンくずのスタイルが崩れる
| 考えられる原因 | 対処法 |
|---|---|
| テーマのCSSとの競合 | ブラウザの開発者ツールで、テーマのCSSがパンくずのスタイルを上書きしていないか確認してください。 |
| 別のパンくずプラグインとの競合 | 他のパンくずプラグイン(Yoast SEO、Rank Mathなど)のパンくず機能を無効にしてください。 |
| フォントサイズの設定が不適切 | 設定画面でフォントサイズを調整してください(10〜24pxの範囲)。 |
JSON-LDが出力されない
| 考えられる原因 | 対処法 |
|---|---|
テーマが wp_head() を呼び出していない |
テーマの header.php に <?php wp_head(); ?> が記述されていることを確認してください。 |
| 他のSEOプラグインがJSON-LDを上書きしている | 他のプラグインのBreadcrumbList出力を無効にするか、重複がないか確認してください。 |
URLスクレイピングが動作しない
| 考えられる原因 | 対処法 |
|---|---|
| サーバーの外部通信が制限されている | ホスティング環境で wp_remote_get / wp_remote_head が利用可能か確認してください。 |
| 対象URLがタイムアウトしている | タイムアウトは5秒に設定されています。対象サーバーの応答が遅い場合はキャッシュクリア後に再試行してください。 |
| Basic認証が必要なURL | 設定画面でBasic認証のユーザー名・パスワードを登録してください。 |
ヒント
問題が解決しない場合は、一度プラグインを無効化してから再有効化してみてください。設定値はデータベースに保持されるため、再有効化後も設定は維持されます。
動作要件
| 項目 | 要件 |
|---|---|
| WordPress | 5.0 以上 |
| PHP | 7.4 以上 |
| 対応ブラウザ | Chrome、Firefox、Safari、Edge(最新版) |
技術仕様
- データ保存: wp_options (kspb_options)、transient (24時間キャッシュ)
- カスタムテーブル: なし
- 外部通信: wp_remote_head / wp_remote_get (User-Agent: KSPB Breadcrumbs Bot/1.0、タイムアウト5秒)
- Cronイベント: なし
- メール送信: なし
- セキュリティ: nonce検証、manage_options権限チェック、入出力サニタイズ
アーキテクチャ
Kashiwazaki SEO Perfect Breadcrumbs は以下のコンポーネントで構成されています。
フロントエンド
- CSSのみ(約7KB)で6種類のデザインパターンを実装
- JavaScriptは一切使用せず、Core Web Vitalsへの影響をゼロに
- BreadcrumbList JSON-LD を
<head>内にインライン出力
バックエンド
- 設定データは
wp_optionsテーブルにkspb_optionsキーで一元管理 - URLスクレイピング結果は Transient API で24時間キャッシュ
- 管理画面は
manage_options権限のユーザーのみアクセス可能 - すべてのフォーム送信に nonce 検証を実施
URL検査フロー
1
パンくず生成時に各URLのTransientキャッシュを確認します。キャッシュが有効であれば、キャッシュデータを使用します。
2
キャッシュがない場合、wp_remote_head でHTTPステータスコードを取得します(タイムアウト5秒)。
3
ステータスコードに応じて処理を分岐します。301/302 の場合は Location ヘッダを取得し、同一ドメインのみ代替URLとして扱い、404 の場合はエラーとして記録します。
4
正常なURL(200)の場合は wp_remote_get でページタイトルを取得し、結果をTransientキャッシュに24時間保存します。
補足
カスタムテーブルやCronイベントは使用しないため、プラグインの削除時にデータベースに不要なデータが残ることはありません。wp_options の設定値と Transient のみが削除対象です。