WordPressでSEOに理想的なディレクトリ構造とパンくずリストを作ってみる
連載:WordPressの理想的なURL構造を目指す

1.GOOGLEとユーザーに理想的なURL構造とその理由

GOOGLEとユーザーに理想的なURL構造にする

参考資料:GOOGLE検索エンジン最適化スターターガイド

GOOGLE検索エンジン最適化スターターガイド8ページからの内容に含まれている、ユーザーにとっても検索エンジンにとっても解りやすいURL構造を目指しましょうということで、パーマリンク構造とパンくずリスト構造の最適化は、最近ホームページのSEO的な改修を行う際は基本としてあげられる項目です。

検索エンジンがクロールしやすいurl構造スターターガイドに載っていることは要するに、右図のようにディレクトリ構造を整理し、ディレクトリ構造に合わせたURLにすることで、検索エンジンにもユーザーにも解りやすいサイトになるとの事。

まあ確かにその通りで、例えば本屋さんのサイトでURLが
/book/technical/pc/web/css/
というURLがあったとしたら、見ただけでサイトの構造が解りやすいですね。
おそらく
/book/technical/pc/web/javascript/
というURLもありそうだなと予想も付きます。
URLを見ただけでサイトの構造が分かるようなURLを目指す
したがって、上記の図の様にURLを最適化することは、ユーザーにも分かりやすく、検索エンジンにもクロールしやすいサイトにするための基本の重要な項目になります。

また、このようなURL構造は、アドレスバーを直接操作してページを開こうとするユーザーにも有効になります。
例えば
http://bookof.com/book/technical/pc/web/css/
にはcss関連の本の一覧が表示されているものとすると、アドレスバーからURLの一部を直接切り取って、
http://bookof.com/book/technical/pc/web/
としてweb関連の全ての本の一覧をみようとするユーザーが居るかもしれない。っていうか居る。

その為、絶対に避けなければならないのが、

  • ツリー構造の一部に存在しないページが含まれている状態

アドレスバーを直接書き換えた場合にも対応できるURL・サイト構造
これは避けなければならない状態ですが、WordPressではおなじみの状態です。
WordPressでサイト制作を行い、SEO的に最適化しようとするともの凄くじゃまになるcategory問題。
http://bookof.com/category/type/
のcategoryですね。

この状態は避けなければなりませんが、WordPressでは結構邪魔臭い問題です。
categoryの部分を取るだけならプラグインとか色々な方法がありますが、それでもタクソノミーやタグもあるわけで、category等の部分を全てとってしまうとカテゴリとタグが重複してしまったりと色々と邪魔臭い!

でもこれはSEO的には解決しておきたい問題ですので、今回具体的な解決方法を検証していくことにしましょう!

パンくずリストも理想的なURL構造に合わせて最適化する

次にクリアしたい問題が、理想的なURL構造に合わせたパンくずリストの作成です。
一応説明しておくと、パンくずリストとは、今居るページの階層を表すモノで、通常ページヘッダーの下辺りに位置し、ページの階層が深くなるに連れて右側にページタイトル等が追加されていく例のアレ。

ユーザーにとっては前のページに戻ったり、検索結果からサブページに直接入ってきた際に今の位置関係を把握するのにとても便利なものであります。
また、検索エンジンにとってもサイト全体の構造を把握する為にとても大きな役割を持っています。

WordPressで理想的なURL構造に最適化したら、次はそれに合わせたパンくずリストの作成を目指します。
パンくずリストは「WordPress SEO by Yoast」にもついていますが、今回は「Breadcrumb NavXT」プラグインを使って最適化していきたいと思います。

更にパンくずリストに構造化マークアップがされていたら、URLとパンくずと構造化データがぴったり一緒になるという素晴らしくバッチシな構造になることでしょう!!


Fatal error: Uncaught Error: Call to undefined function ereg() in /home/kurubusi3500/www/kurubusi/wp-content/themes/kurubusi_bootstrap_sass_01/inc/kurubusi_custom.php:553 Stack trace: #0 /home/kurubusi3500/www/kurubusi/wp-includes/shortcodes.php(319): shortcode_first_img(Array, '', 'first_img') #1 [internal function]: do_shortcode_tag(Array) #2 /home/kurubusi3500/www/kurubusi/wp-includes/shortcodes.php(197): preg_replace_callback('/\\[(\\[?)(id_url...', 'do_shortcode_ta...', '<section class=...') #3 /home/kurubusi3500/www/kurubusi/wp-includes/class-wp-hook.php(286): do_shortcode('<section class=...') #4 /home/kurubusi3500/www/kurubusi/wp-includes/plugin.php(203): WP_Hook->apply_filters('<section class=...', Array) #5 /home/kurubusi3500/www/kurubusi/wp-content/plugins/advanced-custom-fields-pro/fields/wysiwyg.php(450): apply_filters('acf_the_content', '<section class=...') #6 /home/kurubusi3500/www/kurubusi/wp-includes/class-wp-hook.php(286): acf_field_wysiwyg->format_value('<section class=...', 'serialization_8...', Array in /home/kurubusi3500/www/kurubusi/wp-content/themes/kurubusi_bootstrap_sass_01/inc/kurubusi_custom.php on line 553