SWELLのJSON-LDを別の実装へ置き換える場合は、テーマ全体の自動生成を止める操作と、投稿ページのArticleだけを止めるコードを使い分けます。出力を減らすこと自体がSEO改善を保証するものではありません。
SWELLで最初から仕込まれているJSON-LDの構造化データを追加したり、削ったりということもできるのですが…
いっそのこと構造化データJSON-LDの出力を止めて、新しく自分で作り直す時に便利なカスタマイズの紹介です。

SWELLのJSON-LD自動生成をまとめて止める方法
管理画面の「SWELL設定」→「構造化データ」で「JSON-LDを自動生成する」をオフにして保存します。変更前の設定を控え、検証環境で確認してから適用してください。
SWELL 2.19.0では、この設定がテーマのJSON-LD生成処理全体を制御します。OrganizationやArticleだけのスイッチではありません。別のプラグインや手書きコードが出すJSON-LDまで停止する設定ではなく、ブロックなど別経路の出力も個別に確認します。
停止する出力の範囲を選ぶ
| 操作 | 止まる出力 | 別途確認する出力 |
|---|---|---|
| 共通の自動生成をオフ | SWELLのfooter側の共通JSON-LD | FAQ・商品レビューブロック、他プラグイン、手書きコード |
| 以下のArticleフィルターを追加 | 通常の投稿ページのArticle | 固定ページのArticle、Organization、WebSite、WebPage、BreadcrumbList |
SWELL 2.19.0の実行検証では、投稿ページのArticleを除いても他の4種類の値は変わらず、固定ページの出力も維持されました。フィルターを外すと元の共通データへ戻ります。共通生成をオフにしても、出力設定が有効なFAQブロックのFAQPageは残りました。
ページソース全体で「JSON-LD @SWELL」を検索します。headだけに絞ると、footer側の共通データを見落とします。別の生成元のデータは、種類が同じでもこの設定やコードでは止まりません。
SWELLでArticleの構造化データの出力を止める方法
次の例はSWELLが生成するArticleのうち、投稿タイプpostの個別ページだけを対象にします。固定ページや、別のプラグインが出すArticleは対象外です。
全体の自動生成はオンのまま使います。子テーマのfunctions.php末尾(既存のPHP内)またはPHPスニペット管理プラグインのどちらか一方に追加してください。投稿本文のコードブロックに貼っても実行されません。
swell_json_ld__articleのフックを使います。
投稿(post)のシングルページだけ Article を止める
/**
* SWELL が出力する Article の構造化データを投稿ページで停止
*/
add_filter( 'swell_json_ld__article', function( $data, $post_id ) {
// 投稿(post)のシングルページだけ Article を止める
if ( is_singular( 'post' ) ) {
return []; // 空配列 → generate() 側でスキップされる
}
return $data;
}, 10, 2 );適用後は投稿と固定ページの両方でページソース内のapplication/ld+jsonを調べ、SWELLのArticleだけが意図した範囲で消えたこと、他の必要な型が残ることを確認します。元へ戻すには追加したフィルターを削除・無効化します。全体設定をオフにした場合はオンに戻し、必要に応じてキャッシュを削除してください。
名前など一部の値を修正するだけなら、出力全体を止めずに構造化データの上書き方法を使う方法もあります。本記事の確認対象はSWELL 2.19.0の設定分岐とフィルターです。



