All in One SEO(以下「AIOSEO」)は、WordpressサイトのSEO対策を強化するための定番プラグインです。
無料版でもインストールするだけでタイトルタグやメタディスクリプションの設定、XMLサイトマップの生成、さらに構造化データ(Schema.org形式のJSON-LD)まで自動出力してくれます。
しかし実務レベルで見ると、AIOSEOの構造化データは「便利」な反面、「最適」とは言い切れないケースもあります。ページ内の情報を広く取得して出力するため、不要な情報や意図しないデータまで構造化データに含まれることがあるからです。
すべてのケースでAIOSEOが自動生成する構造化データが理想的とは限りません。
構造化データの削除やカスタマイズが必要なケース
- 使用中のテーマや別プラグインでも構造化データを出力しており、重複エラー(Search Consoleの警告)が出る
- パンくずリストや特定のスキーマタイプが不要、もしくは独自のフォーマットで出力したい
- 自作の構造化データを組み込みたいので、AIOSEO側は無効化したい
- 特定のページ(例:トップページ)のみ構造化データをオフにしたい
この記事では、AIOSEO無料版の構造化データの仕組みや注意点、削除を検討すべき理由に加え、functions.phpにコードを追加してAIOSEOの構造化データを「完全に無効化」または「一部だけ削除」する方法を具体的なコードとともに解説します。
さらに、削除後に必要な構造化データを自分で設計・実装する方法まで紹介します。
目次
AIOSEO無料版の構造化データの特徴

AIOSEOは無料版でも構造化データを自動生成しますが、細かい設定やスキーマの選択はできません。テーマや投稿情報、ユーザー情報などをもとに自動的に構造化データを組み立てる仕組みになっています。
そのため、AIOSEOプラグインを導入すると意図しない情報まで構造化データに含まれることがあり、結果として“無駄な構造化データ”が出力されやすくなります。
起きやすい問題
- ページ内情報を広く取得しすぎる
- 不要な著者情報やサイト情報まで出力される
- テーマのスキーマと重複する
- ページごとの制御ができない
- Search Consoleで重複警告が出る
AIOSEOの構造化データは「自動」であるがゆえに、制御できない情報が含まれることがあります。Googleはコンテンツと構造化データの整合性を重視するため、不要な出力や重複はSEO上のノイズになる可能性があります。そのため、状況によっては削除を検討することも必要といえます。
削除すると得られるメリット
AIOSEOの自動構造化データを削除することで、ページごとに最適な構造化データ設計が可能になります。自動出力に任せている状態では、不要な情報や重複したスキーマが含まれることがありますが、削除することでそうした“ノイズ”を排除できます。
また、必要なスキーマだけを自分で記述できるようになるため、ArticleやBreadcrumb、FAQなどページの目的に合わせた正確な構造化データを実装できるようになります。これにより検索エンジンがページ内容をより適切に理解しやすくなり、リッチリザルトの安定表示にもつながります。
- 不要なデータを排除できる
- ページごとの最適化が可能
- カスタムJSON-LDで精密な構造化が可能
さらにテーマや他プラグインとの構造化データの重複も回避できるため、Search Consoleの警告減少や構造化データの整合性向上といったメリットも期待できます。結果として、不要な自動出力に依存せず「必要な情報だけを意図的に伝える」SEO設計が可能になります。
ポイント
AIOSEOの自動出力を止めることで「必要な構造化データだけ」を自分で設計できるようになります。
構造化データ削除の考え方
AIOSEOでは、構造化データの生成をコントロールできるフィルターフックが用意されています。特に重要なのは次の2つです。
AIOSEOが提供するフィルターフック
- aioseo_schema_disable:構造化データの生成自体を無効化するフック。trueを返すと、そのページでは構造化データが出力されなくなります。
- aioseo_schema_output:出力される構造化データ(配列)を加工・削除するためのフック。$graphs という配列に各構造化データ(Graph)が格納されており、特定の@type を持つデータだけを削除することができます。
この2つを組み合わせることで、「特定ページでは完全オフ」+「他ページでは一部だけ削除」という柔軟な制御が可能になります。
実装例:functions.phpで構造化データを削除
以下のコードを、テーマ(または子テーマ)の functions.php に追加してください。
構造化データを完全に無効化
// フロントページ(トップページ)では構造化データを完全に無効化
function disable_aioseo_schema_globally( $disabled ) {
if ( is_front_page() ) {
return true; // 構造化データを出力しない
}
return $disabled;
}
add_filter( 'aioseo_schema_disable', 'disable_aioseo_schema_globally' );
is_front_page() で条件分岐を使い、トップページでは true を返すことでAIOSEOの構造化データをすべて無効化します。
特定のタイプを削除
// 出力された構造化データから特定タイプ(BreadcrumbList)を削除
add_filter( 'aioseo_schema_output', 'aioseo_filter_schema_output' );
function aioseo_filter_schema_output( $graphs ) {
foreach ( $graphs as $index => $graph ) {
// 「パンくずリスト」の構造化データを削除
if ( 'BreadcrumbList' === $graph['@type'] ) {
unset( $graphs[ $index ] );
}
// graph内の「breadcrumb」キーを削除(余計なパンくず情報を除去)
foreach ( $graph as $key => $value ) {
if ( 'breadcrumb' === $key ) {
unset( $graphs[ $index ][ $key ] );
}
}
}
return $graphs;
}
$graphs 配列には、AIOSEOが生成したすべての構造化データ(Article、BreadcrumbList、WebSiteなど)が格納されています。@type が BreadcrumbList の要素を見つけたら unset() で削除します。さらに、breadcrumb というキーを持つ情報も削除することでパンくずに関するデータを完全に消します。
実際の使用場面
この方法は以下のようなケースで役立ちます。
テーマ側にパンくずリスト構造化データがすでに実装されている場合
WordPressのテーマの中には、AIOSEOを使わなくてもパンくずリスト用の構造化データを自動で出力してくれるものがあります。例えば「Cocoon」「SWELL」などの有名テーマでは、デフォルトでパンくずリストのschemaを生成する機能が搭載されています。この状態でAIOSEOの構造化データを有効にしていると、「BreadcrumbList」が二重に出力されてしまい、Google Search Consoleに「重複する構造化データが検出されました」という警告が表示される可能性があります。
そのまま放置すると検索エンジンにとってどちらのデータが正しいのか判断できず、リッチリザルトに反映されないことも考えられます。
こうした場合にAIOSEO側の「BreadcrumbList」だけを削除しておけば、テーマのパンくず構造化データだけが残るため、重複を避けつつ最適なデータを提供できます。
AMPページやLPでシンプルな構造化データにしたい場合
AMPページやキャンペーン用のランディングページは、余計な要素を極力排除し、シンプルかつ高速に表示することが求められます。
AIOSEOは便利な反面、標準で「Article」「WebPage」「BreadcrumbList」など複数の構造化データを出力するため、不要なデータが含まれるとコードが肥大化してしまい、ページ読み込みの負荷につながることがあります。
例えば「キャンペーン専用のLPでは記事情報やパンくずリストは不要」「検索結果で星評価やパンくずは表示させず、CTA(ボタン)に集中させたい」といったケースでは、AIOSEOが自動生成するスキーマを削除した方がユーザー体験にプラスになります。このように、特定のページではシンプルな構造化データだけを残すという戦略を取ると、SEOとコンバージョン両面でメリットが得られます。
削除後の正しい対応(構造化データ例)
削除後は、テーマまたはカスタムコードで必要な構造化データのみを実装します。以下はコラム記事用のArticleスキーマ例です。
{
"@context": "https://schema.org",
"@type": "Article",
"headline": "記事タイトル",
"description": "記事の概要説明",
"author": {
"@type": "Person",
"name": "著者名"
},
"publisher": {
"@type": "Organization",
"name": "サイト名",
"logo": {
"@type": "ImageObject",
"url": "https://example.com/logo.png"
}
},
"datePublished": "2025-02-05",
"dateModified": "2025-02-05",
"mainEntityOfPage": {
"@type": "WebPage",
"@id": "https://example.com/article-url"
}
}
差し替え後は、リッチリザルト テストで構造化データが正しく認識されるか確認するのがおすすめです。
注意点
AIOSEOの構造化データを削除する際には、便利さとリスクの両面を理解しておくことが大切です。
不用意にすべての構造化データをオフにすると、検索結果での見え方に影響が出る可能性があり、結果的にSEOパフォーマンスを下げてしまうこともあります。以下、実装前に確認しておきたい注意点を整理しました。
構造化データ削除の注意点
SEOへの影響
構造化データは検索エンジンにページ内容を伝える重要な役割を果たしています。たとえばパンくずリストのschemaを残しておけば、Google検索結果にパンくずが表示されユーザーがサイト内の階層構造を理解しやすくなります。逆に削除してしまうと、リッチリザルト(パンくず、レビュー、イベント情報など)が表示されなくなる可能性があります。
また、Googleは「リッチリザルトの有無が直接の順位決定要因ではない」と明言していますが、クリック率(CTR)やユーザー体験に影響するため、結果的にSEO評価に間接的な影響を与えることがあります。そのため、本当に不要な構造化データだけを削除し、必要なのもは残すか別の方法で補うのが理想的です。
テーマや他プラグインとの競合
WordPressではテーマや複数のプラグインが同じ種類の構造化データを出力するケースが多々あります。たとえば「テーマがすでにArticleスキーマを出しているのに、AIOSEOも同じデータを出力してしまう」といった具合です。
この場合、Google Search Consoleでは「重複する構造化データ」「不正確なデータ」などの警告が表示されることがあります。検索エンジンは「どちらを正しいデータとして解釈すべきか」判断できず、結果的にリッチリザルトが出ない・表示が不安定になるといったデメリットにつながります。
作業に入る前に、Search Consoleの「拡張」レポート や「リッチリザルトテストツール」で、実際に出力されているスキーマの種類や数を確認してから削除対応を行うと安心です。
追加コードの管理ファイル
functions.phpにコードを追加する際には、必ず子テーマやカスタムプラグインを利用してください。親テーマのfunctions.phpに直接追加してしまうと、テーマのアップデート時に上書きされ、せっかくのカスタマイズが消えてしまいます。
また、カスタマイズを行う場合には「テスト環境」での動作確認も推奨されます。ローカル環境やステージング環境を用意し、実際に構造化データがどう変化するかを確認してから本番環境に反映すると、サイトトラブルを未然に防げます。
まとめ
AIOSEOは非常に便利なSEOプラグインですが、構造化データが他の機能と競合するケースも少なくありません。今回紹介した方法を使えば、不要な構造化データだけをピンポイントで削除したり、特定のページのみ無効化することができます。
特にSearch Consoleで「構造化データが重複しています」といった警告が出た場合、今回の方法を取り入れることで改善できる可能性が高いです。実装後は必ずリッチリザルト テストで出力内容を確認し、意図通りの構造化データになっているかチェックしましょう。
本記事の監修者
ピークスマーケティング株式会社
代表取締役 小森 健
本記事の監修者
ピークスマーケティング株式会社 代表取締役
小森 健
ベンチャーから大手広告代理店まで、Web制作・デジタルマーケティング領域に従事。
複雑なWebサイト制作、LP制作、比較サイト制作、ECサイト構築、動画制作を中心に、情報設計・デザイントンマナ設計を起点としたフロントエンド設計・CSS・PHP実装まで一貫して対応。
本記事では、Web制作の実務経験をもとに、内容の正確性と実務での再現性の観点から監修を行っています。