wordpressトラブル wordpress障害

All in One SEO で自動生成のディスクリプションが空白になるのを発見

SEOで頼っているAll in one seoなんですが、ディスクリプションは自動生成して、本文を使用にしています。

オールインワンエスイーオーの設定

All in one seoの設定画面の「詳細設定」

記事を書いているとAll in One SEOでのディスクリプションの自動生成がうまくいっていない記事があることが判明しました。

つまり、記事下のAll in One SEO Packの設定で、「説明」部分が空白になっていて、ソースを見てもディスクリプションのmetaが生成されていませんでした。

ここは、本文を書いて「下書きとして保存」か「投稿」すると本文から読み取って入ってくれるはずなんです。

ディスクリプション設定

上記はテスト記事ですが、タイトルは自動で入っています(薄いグレー)が、「説明」(ディスクリプションで使用される)部分は空白で本文が読み取られていないことが分かります。

記事をコピペしたり、別のテーマのブログに入れてみたり、色々と試しましたがテーマを変えても同じように説明が空白になる、という現象が再現されました。

先人の知恵を借りようと検索してみましたが、同じような現象の方で

・冒頭行で半角の空白があると説明が空白になる

という方を見つけましたが、私の場合、冒頭行を変えても変化はなしでした。

ちなみに「All in One SEO ディスクリプション 反映されない」などで検索すると、大体が使っているテーマのソースでmetaのdescriptionが2重になっているとか、逆に吐き出すためのソースが入っていない、というような記述がありますが、私の場合はテーマやソースレベルの問題ではなく、あくまでAll in One SEOが本文をうまく読み取ってくれない、というような問題です。

All in One SEO Packでディスクリプションが空白になるには、ある条件下で発生することが判明

  • 設定が悪い?
  • テーマの問題?
  • header.phpの記述の問題?
  • 他のプラグインの干渉?
  • コピペが悪かった?
  • WPのバージョンの問題?

など、いろんなことを考えて試したのですが、ある条件下でどんなバージョンのWPでもどんなテーマを使っていても再現することが分かりました。

 

本文に日本語URLを日本語のまま書いた記述がある

こと。

つまり、ワードプレスの記事URLが記事タイトルをそのまま使う日本語のパーマリンクになっていて、そのURLを日本語のままコピペして記事内に入れた、というような状態です。

以下、この状態を“日本語のままURL”ということにします。

本文を使った「説明」が空白になっていた記事は、記事下に「○○に関してはこちらにどうぞ」というように同WPの別記事へ誘導していて、URLをコピペして、WPのブログカードで表示されていた部分です。

例)

https://hogehoge.com/お問い合わせはこちら

みたいな。

※最近のWPでは、記事にURLを入力するだけで、その先がWPであればブログカードといって、枠で囲まれたアイキャッチ入りのデザインを挿入してくれます。

ブログカード式に表示されていたので、原因が特定しにくなっていました。

 

記事下に毎度入れて使い回しにしていたので、ある時点から自動生成されていないことに気が付きました。

そして、日本語URLを外してみると、通常通りにディスクリプションが入ることが分かりました。

日本語URLってブラウザのアドレスでも日本語で表示されるし、WP上の「パーマリンク」も日本語で表示されますから、ついつい記事中にも入れてしまいがちですが、本来は日本語は半角英数に変換されたURLが正式なんです。

例)
この記事のひとつ前の記事の日本語のままURL
 

https://wp.web-fan.info/wp-trouble/投稿画面や生成ページの上部が少し下がる現象が/

          

は、正式なURLは

https://wp.web-fan.info/wp-trouble/%e6%8a%95%e7%a8%bf%e7%94%bb%e9%9d%a2%e3%82%84%e7%94%9f%e6%88%90%e3%83%9a%e3%83%bc%e3%82%b8%e3%81%ae%e4%b8%8a%e9%83%a8%e3%81%8c%e5%b0%91%e3%81%97%e4%b8%8b%e3%81%8c%e3%82%8b%e7%8f%be%e8%b1%a1%e3%81%8c/

長い・・

ちなみにWP自体では、日本語のURLを“日本語のまま”張り付けても、ブログカードも入れてくれますし、リンク外れを起こすこともありません。

All in One SEOの機能が“日本語のままURLリンク”を読み取れず、なんらかの問題でディスクリプションとして読み取れなくなっていた、のだと思います。

いつかプラグインの更新で直るかな~なんて思いましたが、日本語URLのことですから・・・海外のプラグインでは想定外でしょう。。ね。

バージョンアップ期待は薄いし、こんな風な現象に陥った人も珍しいのではないでしょうか?

でも、ディスクリプションが生成されないって相当困る現象なので、もし気が付いた人は本文をもう一度見直してみてください。

まとめ:All in One SEOで本文を自動生成し、本文を使用する設定をしていた上で、ディスクリプションが生成されないのならこれをしよう!

  • まず、全部の記事がそうなのか、一部の記事がそうなのか確認しよう!
  • 本文の冒頭一行目に半角空白がないか確認しよう!→私の場合は大丈夫だったけど、全角に変えよう
  • 本文の中に“日本語のままURL”が入っていないか確認しよう→ブラウザから直接コピペして、半角英数のURLに変えよう
  • 一度、本文のリンクや画像類を消してみよう→何が原因か特定できるかも!
  • 記事のソースを見て<head>~</head>内の<meta name="description" ・・・>がどうなっているか確認しよう!

もし、本文に“日本語のままURL”を見つけてしまったら・・

日本語のままURLってクセになっていると、結構いろんなところで使ってしまいがちなのではないでしょうか?

WPの記事内で複数使ってしまっていたのでしたら、プラグインを使って検索→置換 で一括で変更しましょう!

WPダッシュボード→プラグイン→新規追加、をして、検索ボックスに「Search Regex」と検索し、インストール&有効化

ダッシュボード→ツール→「Search Regex」で

Search Pattern:間違った日本語のままURLを

Replace pattern:正式なURL

として、「Replace&Sava」ボタンをクリックすると、一括で記事中の改編ができます。

Search Regexの設定

今回の「説明」の自動生成に失敗する、には関係はありませんが、Search Regexは、ウィジェットやテーマに直接書かれたURLなどは検索対象にならないので、最後に自分のサイトに検索ボックスがあるのでしたら“日本語のままURL”で検索をかけて拾っておくことをオススメします。

 

 

-wordpressトラブル, wordpress障害
-, , , ,

© 2020 wordpressやってみた