レ点腫瘍学ノート

pukiwikiカスタマイズ箇所/2020/サイト構造化データ(JSON-LD)への対応 の履歴ソース(No.10)

#author("2022-12-01T00:43:12+09:00;2020-05-03T09:30:54+09:00","default:tgoto","tgoto")
[[SEO対策>pukiwikiカスタマイズ箇所/pukiwikiのSEO対策]]にどれほど貢献するのかは不明ですが、検索エンジンで当サイトで記事を書いているキーワードがあったときに表示されやすくなればと思い、pukiwikiカスタマイズ箇所/2020の一環としてJSON-LDへの対応を行いました。

*schema.orgの中ではJSON-LDが使いやすい [#i1ece2ca]

JSON-LD以外にもschema.orgに対応しているフォーマットであればどれでも良いのですが、JSON-LDはHTMLのどこに書いても良いというのがPukiwikiカスタマイズとの相性の面で利便性が高いと思います。

#ogpi(https://oncologynote.com/?72646a307e)

*基本的なサイト構造化データ [#t156630d]

**JSONLDプラグインを使う場合 [#f748c769]

2020年4月というかなり新しいプラグインですが、pukiwiki公式サイトにJSONLDプラグインが掲載されています。これを使えば基本的なサイト構造化データが簡単に示せます。

[[自作プラグイン/jsonld.inc.php>https://pukiwiki.osdn.jp/?%E8%87%AA%E4%BD%9C%E3%83%97%E3%83%A9%E3%82%B0%E3%82%A4%E3%83%B3/jsonld.inc.php]]

2020年4月26日時点で最新のリビジョン1.02では、22行目と23行目にこの設定項目があります。ARTICLEが必要であれば上段をTRUEに、後述のパンくずリストが必要であれば下段をTRUEにしておきます(後述)。

> define('PLUGIN_JSONLD_ARTICLE', true); // ARTICLEが必要な場合にTRUE
> define('PLUGIN_JSONLD_BREADCRUMBLIST', true);	 // パンくずリストが必要な場合にTRUE

そして、スキンのpukiwiki.skin.phpファイル内の<body>の末尾付近に次のコードを置いています。

> <?php if (exist_plugin_convert('jsonld')) echo do_plugin_convert('jsonld'); ?>

**自作する場合 [#ta48436d]

JSON-LDを記載する場所は<HEAD>内でも<BODY>内でも構いません。次のコードをHTMLのbodyの末尾につけています。descriptionはpukiwikiカスタマイズ箇所/OGP対応と同じものを流用しています。さらにアイキャッチ画像などを作っても良いでしょう(ただしサイト構造化データのimageには幅1200px以上、縦横の積で合計800,000px以上が推奨されており、これを満たしていない場合はGoogle search consoleで「推奨の画像サイズより小さい」というエラーが出ます。

> <script type="application/ld+json">
> 	{
> 	"@context": "http://schema.org",
> 	"@type": "Article",
> 	"name": "<?php echo $title ?> - <?php echo $page_title ?>",
> 	"author": {"type": "Person","name": "authorname"},
> 	"datePublished": "<?php echo substr($lastmodified, 0, 10) ?>",
> 	"dateModified": "<?php echo substr($lastmodified, 0, 10) ?>",
> 	"headline": "<?php if ( $title == 'FrontPage' ) { echo $page_title ; } else { echo $title ; } ?>",
> 	"mainEntityOfPage": "<?php echo $canonical_url ?>",
>	"publisher": {"@type": "Organization","name": "<?php echo $page_title ?>"},
> 	"description": "<?php echo $str = str_replace(array("\r\n", "\n"), '', mb_substr(strip_htmltag($body, $all = TRUE), 1, 170, "UTF-8")); /*本文の170文字を抜粋*/ ?>"
> 	}
> </script>

*パンくずリスト [#z76cecb6]

サイトに構造化データをつけることの大きなメリットの1つは、サイトの階層構造を検索エンジンに明示的に示すことができるというものです。

もちろんpukiwikiのデフォルトのtopicpathプラグインでもある程度の構造が示されて、これがGoogle検索結果画面に表示されることもあるのでGoogleはtopicpathプラグインの出力結果を読んでいるのだと思いますが、サイト構造化データをつけておくことでよりはっきりと検索エンジンbotにこれを伝えることができます。

上に示した[[自作プラグイン/jsonld.inc.php>https://pukiwiki.osdn.jp/?%E8%87%AA%E4%BD%9C%E3%83%97%E3%83%A9%E3%82%B0%E3%82%A4%E3%83%B3/jsonld.inc.php]]を使ってパンくずリストを作成しておきましょう。

なお、このプラグインが出力するパンくずリストは短縮URLに対応していませんので、パンくずリストに対応が必要な場合は[[こちら>https://oncologynote.com/?ce7e54ca7d]]を見てください。

#ogpi(https://oncologynote.com/?ce7e54ca7d)

*サイトリンク検索ボックス [#h8eba37a]

#ref(https://oncologynote.com/img/0eff11efc5.png,nolink)

JSON-LDの設定の延長で、サイトリンク検索ボックスの設定をすることができます。ただし、これが有効になるのはページ数が非常に多い大規模サイトだけのようなので、個人のpukiwikiでどの程度の効果があるのかは不明です。

#ogpi(https://oncologynote.com/?0eff11efc5)

*Schema Markup Generator (JSON-LD) | TechnicalSEO.com [#rd1ff9e3]

ネット上には様々なタイプのJSON-LDジェネレーターがありますが、その中でも多機能なのは
TechnicalSEO.comのSchema Markup Generator (JSON-LD)ではないかと思います。ArticleのJSON-LDのほかに、HowtoやFAQなども作成することができます。

#ogp(https://technicalseo.com/tools/schema-markup-generator/)

*関連記事 [#h8e6364a]

#ogpi(https://oncologynote.com/?7541d85e0f)
#pcomment