おじさんのブログ

おじさんになってからPython、GAS、SEOなどを学習した内容をアウトプットするブログです。

コンテンツSEO担当者として押さえておく外部・内部リンクのポイント(草案)

コンテンツSEOを行う上ではテキストと並び、リンクも押さえておくべきだと考える(他にはCWVや構造化マークアップなど)。

知識の整理も兼ねて内部リンク、外部リンクについて殴り書きする。

外部リンクの価値

  • 外部リンクはランキングに大きく影響する
  • PageRankという概念がある
  • たくさん引用される論文はいい論文であるという考え方がベースにある
  • 昔は外部リンクの価値が強かったため、人工リンク施策が横行した→ペンギンアップデートで対策された

参考 : Google、「ペンギン・アップデート」を実行。ウェブスパム/SEOスパム対策をさらに強化

参考 : バックリンク評価なしの検索結果をGoogleは作っているか?

  • 高品質な外部リンクでないと意味がない
    • 強いドメインからのリンク
    • 関連性の高いサイトからのリンク
    • dofollow(nofollowなし)でのリンク
    • etc(アンカーテキスト、前後のテキスト、位置など)
  • 外部リンクはドメイン、ページ単位でも異なる
    • 同じドメインからよりも新規ドメインからのほうが価値が高い
      • 同一ページに対して、既存のドメインから複数の被リンクを獲得しても1リンクあたりの効果はそこまで高くない
    • ドメインごと、ページごとで別の要因となっている可能性あり

ページランク

  • ページが獲得している外部リンクの数や質に基づく指標
  • 以前はユーザーが確認できたが、今はできない
    • ただし、Googleのランキング要因としている指標とは一致はしていない
    • ユーザー側が確認できないが、今もこれに該当する概念はランキングに影響している
  • ページランクに近い概念を計測できる外部のSEOツールがある

参考 : 国内大学ページランク1位「慶応」2位「東大」【国内755大学Webサイト「ページランク調査」】

リンクジュース

  • 発リンクをした際、リンク先へ流れるSEO的価値を指す概念
  • 渡した分のリンクジュースが減るという考え方と減らないという考え方がある(Googleのみぞ知る)
  • サイト内外問わずリンクジュースは流れる
  • nofollowタグを設定するとリンクジュースを渡さない
    • ただしnofollowタグはヒントとして扱うという発表あり
  • リンクジュースのみに限った観点では発リンクは絞る&nofollowタグ設定を行い、大事な内部リンクのみに絞る&dofollowにするという考え方が有効だった(古いやり方)
    • 現在は、適切な発リンクをdofollowで行うことでプラスになるとされる
      • 公的機関やドメインの強いページなど
      • 論拠として公的機関のデータを示すようなやり方はSEO的にも人間的に信頼性を示せる
      • PDFなどの中身も見ているとされる
    • 逆に質の低いドメインやページへの発リンクはマイナスにもなり得る

リーズナブルサーファーモデル(とランダムサーファーモデル)

  • リンクジュースの流れ方の概念
  • サイドバーやフッターよりもメインコンテンツからのリンクの方が重要とみなし、リンクジュースが多く流れる
    • 位置や関連性、アンカーテキスト、前後のテキストなどさまざまな要素がある
  • 以前はリンク先へ均等に流れるランダムサーファーモデルだった

参考 : Googleがリンクの価値を決定する34の要素

参考 : クリックされる重要なリンクが評価されるリーズナブルサーファー・モデルとは

内部リンク

  • 内部リンクによってもリンクジュースが受け渡しされる
  • 質の良い外部リンクをたくさん獲得しているページからのリンクは価値が高い
  • 内部リンクがたくさん集まるページはドメイン内での序列が高まりやすい
  • トップは外部・内部ともにリンクが集まりやすく、重要度が高い

SNS

  • SNSからの被リンク自体に直接的なSEO効果がないとされるのは、aタグにnofollow属性が設定されているから
  • 拡散されることで目に触れる機会が増え、ニュースサイトやまとめサイトなどに取り上げられる可能性が増える(間接的なリンク獲得)
  • 被リンクとは異なるが、サイテーションやシェアなども順位要因となっている可能性がある

覚えておきたいこと

  • 外部リンクの価値は高いため、企画段階で常に外部りんく獲得を視野に入れる
    • 外部リンクのもらい方も考慮できるとベター
    • 特にトップにもらえると貢献度が大きい
      • サイト全体の構造上、トップからはサイト内のさまざまなページへ内部リンクが行き渡るようになっているため
  • ドメインが強いと発リンクをすると大体リンクジュースが流れる
    • 検索結果での1ドメインあたりの表示件数の関係上、相手がサブドメインだとページが入れ替わる可能性がある(影響大)
    • ドメインでなくとも相手方のページが上位にくる可能性がある
  • (現時点では)良質な発リンクはプラスが見込める
    • 発リンクする際はdofollowで
    • コンテンツの一部として捉えるぐらいで
  • 無闇にページを作ると、重要度の低いページにもリンクジュースが流れ、非効率になる
    • クロールバジェットやテーマ性にも影響する

Slack運用ルール参考記事まとめ

現職でのチームにおいて、コミュニケーションツールが乱立しており、またクローズなコミュニーケーションが多いため、チーム間ではSlackに集約を図りたい。 そのための運用ルールを提案するために、まずは模倣から始める意味で他社事例を参考にしたい。

https://mercan.mercari.com/articles/23325/ https://mercan.mercari.com/articles/18866/ https://mercan.mercari.com/articles/2018-04-10-163322/ https://github.com/mercari/mercari-slack-guidelines/blob/master/Slack_Guidelines_Ja.md https://qiita.com/e99h2121/items/71f607a0b46de5013730 https://qiita.com/karashi39/items/7d33cf65317d4a11989d https://qiita.com/satoshiyoshinaga/items/7a6f6f4fcea7fbee3a28 https://speakerdeck.com/miyasho88/we-are-hiring?slide=56 https://blog.kyash.co/entry/2020/12/23/165623 https://note.jp/n/ne659d97c1b32 https://slack.com/intl/ja-jp/customer-stories/why-bungei-shunju-uses-slack https://qiita.com/numa08/items/d2ba7ada96b4fefe7055 https://qiita.com/yamashush/items/a401bcf6b02e86b8a58b https://qiita.com/walkers/items/8c1b63694de4f5617cee https://qiita.com/comefigo/items/8fbc4e34c07d141e328a https://qiita.com/comefigo/items/0dd629a6b27ee8cdb0a8 https://qiita.com/comefigo/items/d9c1c4051b55b99c9509

event構造化マークアップ(構造化データ)調査メモ

eventの構造化マークアップを実装しようと思い、調査したのでメモとして。

参考にしたページ

「イベント構造化データに“eventAttendanceMode”がありません」の警告がSearch Consoleから届く | 海外SEO情報ブログ

Google、新型コロナウィルス対応でイベント リッチリザルトに新しいプロパティをサポート | 海外SEO情報ブログ

Google、イベントリッチリザルトを改良。より詳細な情報を見やすく掲載 | 海外SEO情報ブログ

構造化データ マークアップ支援ツール - Search Console ヘルプ

https://developers.google.com/search/docs/advanced/structured-data/event?hl=ja

マークアップ

<script type="application/ld+json">{
    "@context" : "https://schema.org",
    "@type" : "Event",
    "name" : "あああああ",
    "description" : "いいいいいい",
    "url" : "https://hogehoge.jp",
    "startDate" : "2021-00-00T00:00+09:00",
    "endDate" : "2021-00-00T00:00+09:00",
    "eventStatus" : "https://schema.org/EventScheduled",
    "eventAttendanceMode" : "https://schema.org/OnlineEventAttendanceMode",
    "location" : {
        "@type" : "VirtualLocation",
        "url" : "https://hogehoge.jp"
    }
}
</script>

他サイトの事例

「エンジニア」セミナー・勉強会・イベント - こくちーずプロ

オンライン開催を予定している転職フェア|転職活動の歩きかた

https://evekatsu.com/gousetsu/prefectures/tokyo

東京都のイベントランキング[1~10]位|ウォーカープラス

東京のイベントランキング - じゃらんnet

ホテル イベント | ホテルニューオータニ(東京)

【ホームズ】資産運用を始めるため、東京都の不動産投資セミナー(勉強会)で賃貸経営を学ぶ

2021 Tomorrowland(トゥモローランド)のチケット購入/販売 | StubHub Japan (スタブハブ)

埼玉県のイベント一覧|フリーマーケット開催情報満載-フリマガイド


【PCの表示例】

f:id:honekawakiyoshi00:20210920200039p:plain

【SPの表示例】

f:id:honekawakiyoshi00:20210920200117p:plain

疑問、気になる点

  • 検索結果で表示されるイベントは、一覧ページの場合、上から3つのイベントが順番に表示されるとは限らない
  • 検索セントラルのページでは「スケジュールまたは複数のイベントを一覧表示するページではなく、イベント情報ページにマークアップを追加することをおすすめします」とあるが、現状では一覧ページ、詳細ページの両方に追加しているところが多い
  • 検索結果でeventのリッチリザルトが表示されるページは3つまで→3つまでとは限らないのを確認 - FAQも同じく3つまでなので似たような話?
    • 表示されるのは順位とは別の基準がある?
    • eventのリッチリザルト3件+FAQ1件という検索結果も確認
  • FAQとは異なり、2ページ目以降でも表示される方のリッチリザルトの模様
  • 必須プロパティは、location、name、startDateの3つのみの模様
    • リッチリザルトとして表示されるのは日付とイベント名のみのようだが、他はどう解釈されるのか?
    • おそらく他の構造化データと同様に、ページの理解に役立つというようなことになる?
  • サーチコンソール上で数値はどう計上されるのか?

実装してみてわかったこと(2022/01/22追記)

  • 過去のイベント情報の構造化データが残っていてもリッチリザルトには反映されない
    • 該当イベント終了時にeventStatusを変更したり、該当データを削除したりという作業を急がなくても、ユーザー体験を損ねたりはなさそう
  • 同じページでも検索クエリによってリッチリザルト表示されたり、表示されなかったりする
    • Google検索にてsiteコマンドで該当ページのURLを検索するのが良さそう
  • リッチリザルトテストで確認するのと、実際にリッチリザルト表示されるかどうかは別物

macでjupyter notebookを起動させようとして苦労した点

jupyter notebookを勉強してみようと思い、見よう見まねでanacondaをインストールし、jupyter notebookを起動させようとしたら、色々とつまづいたのでそのメモ。 例によってほぼコピペです。

ターミナルから起動させようとしたらブラウザから画面遷移しない

windowsならスタートからショートカットがあるらしいが、macはターミナルから起動させる必要があるとのこと。 ”jupyter notebook”コマンドで起動させようとすると、ブラウザの画面で、

This page should redirect you to Jupyter Notebook. If it doesn't, click here to go to Jupyter. と表示されるが全く画面遷移しないという状態になってしまった。

ターミナルに表示されているアドレスを、ブラウザのアドレスバーにコピペするとjupyter notebookがブラウザから利用できるようになった。

※参考にしたページ Jupyter Notebookを起動してもブラウザが表示され無い時の設定方法

ターミナルから直接jupyter notebookを起動させるために

$ jupyter notebook --generate-config

設定ファイルを作成し、"jupyter_notebook_config.py "というファイルをいじる必要があるらしい。 作成したファイルは”~/.jupyter/”というフォルダにあるとのことだが、隠しフォルダなので、 "command + shift + . "で隠しファイルを表示させる。

そして当該ファイルを開き、以下のように設定する。

## The IP address the notebook server will listen on.
c.NotebookApp.ip = '0.0.0.0'

これで無事にjupyter notebookを起動させることができた。

※参考にしたページ jupyter notebook で外部からの接続を許可する - Qiita

jupyter notebookを終了させるために

終了させるためにはターミナルからjupyter notebook本体を終了させる必要がある。 具体的にはターミナルで”control + c”を押下する。そして5秒以内にyを押してreturnで終了する。

GoogleフォームからSlack投稿(のコピペ)

会社で「Googleフォーム→Slack連携」をやろうとしていた(&うまく動作しなかった)人がいたので、自分もと思い調べてみた。 ありがたいことに、ググってすぐに出てくるページで書かれているコードをコピペするだけで完結してしまった。 (すぐ下位のページにあるコードもほぼ同じだったので、この用途なら誰がやってもこうなる?)。

Googleformからのslack通知設定方法 - Qiita

いつもながら、情報をシェアしてくださるエンジニアさんの文化には感謝するばかり。

会社の人のコードのどこに問題があったのかあとで見せてもらおう。

function sendToSlack(body, channel) {
  var url = "***";
  var data = { "channel" : channel, "userfuga" : "Googleフォーム Bot", "text" : body, "icon_emoji" : ":hoge: " };
  var payload = JSON.stringify(data);
  var options = {
    "method" : "POST",
    "contentType" : "application/json",
    "payload" : payload
  };
  var response = UrlFetchApp.fetch(url, options);
}

function test() {
  sendToSlack("テスト通知確認です", "#練習用");
}

function onFormSubmit(e){

  var body = "Slack通知テストフォームが来たよ!\n"; 
  var applicant = "";
  var itemResponse = e.response.getItemResponses();

  for (var j = 0; j < itemResponse.length; j++){    
    var formData = itemResponse[j];
    var title = formData.getItem().getTitle();
    var response = formData.getResponse();

    switch (title) {
      case "Q1. ほげほげ":
        hoge = response;
        break;
      case "Q2. ふがふが":
        fuga = response;
        break;
      default:
        break;
    }
  }
  var bodyPublic =  body + "Q1. ほげほげ:" + hoge + "\nQ2. ふがふが:" + fuga ;
  sendToSlack(bodyPublic, "#練習用");
}

トップレベルドメインとSEO的な影響(ウェブマスター オフィスアワー 2019/12/05より)の個人メモ

元ネタは「Japanese Webmaster Office Hours(ウェブマスター オフィスアワー 2019 年 12 月 05 日)」であった「『.mu』ドメインを使ってブログを運営しているが、検索で不利になるのか」という質問と回答。

参照 : https://www.youtube.com/watch?v=BNXO2mgoTt0&list=PLKoqnv2vTMUM8wruZ8n9hmv8951fFmxok&index=6&t=1780s

「note」が2019年11月25日に「note.mu」から「note.com」へのドメイン変更を行ったが、目的の一つに順位改善があったようなので、効果があったかどうかその整理として。

参照 :決死の覚悟でのぞんだnoteのドメイン移行。検索流入急落からの復活劇|note株式会社

ざっくりまとめ

事実としては、放送内で以下のような旨の発言があった。

  • 「マイナーかどうか」という見方は難しい
  • CCTLDは地域に結びついており、Google側は言語と地域の関係性は見ている
  • (金谷さんからすれば)別の国を指定しているCCTLDは基本的に使わない

これを踏まえ「note」の事例を解釈するならば、以下のようになると個人的には解釈した。

「note」の事例でもそうだが、ドメイン変更はかなり影響範囲が大きいため、気軽にやれる施策ではない。 ただし、競合サイトでの順位変動を考察する際や新規サイトを立ち上げる際には影響するので覚えておきたい。 また明言はされていないものの、被リンクの際にも影響しそうなので頭の片隅にはおいておきたい。

「マイナーなドメインは検索に不利?」への回答まとめ

  • 「マイナーかどうか」という見方は難しい
  • 言語と地域に密接な関係がある
  • それによって見せる情報が変わってくる
    • ex.観光系のサイト
      • ブラジルにいる、ポルトガル語を喋るブラジル人に向けてコンテンツを作る場合→ex. 日本の観光での見所紹介
      • 日本にいる、ポルトガル語を喋るブラジル人に向けてコンテンツを作る場合→ ex. 何か催しの会場までのアクセスの仕方
  • いくつかのトップレベルドメインは特定の地域に強く結びついている(ex. 「.jp」)
  • 「.jp」を使う→日本を指定しているのが明確
  • 「.jp」上で英語のコンテンツを作る
  • 「.mu」はモーリシャスに結びついている
    • モーリシャスという地域をターゲットとしたサイトだとGoogleは解釈する
    • 言語としては日本語で運営されている場合に、モーリシャスの人だけにしか表示されない訳ではないので日本語で検索しても表示はされるが…
  • CCTLDはきちんとのそのルールに沿って運用されるのが良い
  • (金谷さんからすれば)別の国を指定しているCCTLDは基本的に使わない
  • どのトップレベルドメインを使うかは、ユーザーから見たときの信頼性にも影響するはずなのでよく考えて設計するべき

ドメイン」関連用語の個人メモ

一口にドメインと行ってももう少し細かい分類があり、今回はトップレベルドメインの話であり、それに紐づく用語の理解が曖昧だったため拝見したページ。 属性型JPドメイン名(ac.jp、co.jp、or.jpなど)、汎用JPドメイン名(hatelabo.jp、dailyportalz.jp、omocoro.jp/など)あたりもよくわかっていなかったのでいい勉強になった。

トップレベルドメイン(TLD)とは - IT用語辞典 e-Words

ccTLD(nTLD)とは - IT用語辞典 e-Words

gTLD(ジェネリックトップレベルドメイン)とは - IT用語辞典 e-Words

サブドメインとは - IT用語辞典 e-Words

HowTo構造化マークアップ調査メモ

HowTo構造化マークアップの実装を考えているので、そのための調査メモ。

他サイトの事例

  • やり方系は動画が多い?(HowToを実装しているページがあまりない?)
  • やり方にFAQを入れているところもいくつかある(実装が簡単だから? SPのみだから?)
  • あえてHowToを使うのならば画像・動画を使えるという点を活かした方が良さそう

シャンパン、スパークリングワインの開け方を教えてください。 サントリーお客様センター

"シャンパン開け方"で出てくる https://www.google.com/amp/s/www.suntory.co.jp/customer/faq/amp/001832.html

<script type="application/ld+json">
  {
    "@context": "http://schema.org",
    "@type": "HowTo",
    "name": "シャンパン、スパークリングワインの開け方",
    "description": "シャンパン、スパークリングワインを上手くあけるコツをお伝えします。まずはじめに、以下の点にご注意ください。【シャンパン・スパークリングワイン開栓時の注意事項】・開ける前には十分に冷やしてください(7℃ぐらい)。・開ける直前まで、口金ははずさないでください。・開ける前に瓶をゆすらないでください。・瓶口は絶対に他人や自分の顔、あるいはこわれ物の方に向けないでください。・破瓶の恐れがあるためワインオープナーなどの器具は絶対に使用しないでください。・開栓後は、決して再栓しないでください。(飲み残した場合は、専用のシャンパンストッパーをお使いください。)・瓶のお取扱いには十分ご注意ください。",
    "tool": "ナプキン",
    "step":[
    {
    "@type": "HowToStep",
    "text": "栓を覆っているシールをはがす。",
    "image": "https://www.suntory.co.jp/customer/upload/sparkring_wine_step01.png"
    }, {
    "@type": "HowToStep",
    "text": "片手で瓶の首を握り、親指で栓をしっかり押さえながら、針金をゆるめる。",
    "image": "https://www.suntory.co.jp/customer/upload/sparkring_wine_step02.png"
    }, {
    "@type": "HowToStep",
    "text": "吹きこぼれや、栓が飛んだときの危険防止のために栓の部分をナプキンで覆う。",
    "image": "https://www.suntory.co.jp/customer/upload/sparkring_wine_step03.png"
    }, {
    "@type": "HowToStep",
    "text": "瓶を立てたまま、ナプキンの上から栓の部分をしっかり握る。また、もう片方の手で、瓶の下のほうを握り、ゆっくり瓶を回す。",
    "image": "https://www.suntory.co.jp/customer/upload/sparkring_wine_step04.png"
    }, {
    "@type": "HowToStep",
    "text": "栓が中のガス圧で自然に持ち上がってきたら、栓を押さえつけるようにしつつ静かに抜いていき、最後に栓を少し傾けるようにして、隙間からガスを逃がす。",
    "image": "https://www.suntory.co.jp/customer/upload/sparkring_wine_step05.png"
    }
    ]
  }
</script>

ヘッドマッサージのやり方|手技とヘッドマッサージ機のまとめ | 美的.com

"ヘッドマッサージやり方"で出てくる https://www.biteki.com/hair/trouble/356170

<script type="application/ld+json">
  {
  "@context": "http://schema.org",
  "@type": "HowTo",
  "image": {
      "@type": "ImageObject",
      "url": "https://www.biteki.com/wp-content/uploads/2019/01/headmassage_catch.jpg"
    },
  "name": "ヘッドマッサージのやり方|手技とヘッドマッサージ機のまとめ",
  "description": "美容のプロが教えるヘッドマッサージのやり方(手技)をマスターすればリフトアップやシワに効果あり。頭皮のこりをほぐして育毛を促進!おすすめのヘッドマッサージ機を使うのもおすすめです。",
          "step": [
          {"@type": "HowToStep",
        "name": "5指を使ってマッサージをしてほぐす",
          "text": " 5指を使ってほぐす。両手の5本の指の腹を使い、カチューシャゾーン→こめかみゾーン→ザビエルゾーン→サイドバックゾーンの順に、頭皮を押すようにマッサージし てほぐします。各ゾーン15秒ずつ、気持ちいいと感じる程度の強さで押して。",
          "image": "https://www.biteki.com/wp-content/uploads/2018/07/p123-1.jpg",
          "url": "https://www.biteki.com/hair/trouble/356170#heading0001"
          },
          {"@type": "HowToStep",
        "name": "手根を使ってのばす",
          "text": "手根を使ってのばす。両手の5指は真っすぐのばしたまま、こめかみゾーンに手根(手のひらの下部)を当て、上に向かってゆっくりと頭皮を動かしながら、頭筋の可動域を広げてのばします。5~10秒行って。",
          "image": "https://www.biteki.com/wp-content/uploads/2018/07/p123-4.jpg",
          "url": "https://www.biteki.com/hair/trouble/356170#heading0001"
          },
          {"@type": "HowToStep",
        "name": "ナックリングで鍛える",
          "text": "ナックリングで鍛える。5指を使ったマッサージより、もっと強い力で刺激を与えられるのがナックリング。両手をグーにして、人差し指・中指・薬指の第一関節と第二関節の間の面をマッサージしたい部位に当て、ギューッと押しながら回して鍛えます。マッサージする順番は、カチューシャゾーン→こめかみゾーン→ザビエルゾーン→サイドバックゾーン。",
          "image": "https://www.biteki.com/wp-content/uploads/2018/07/p123-6.jpg",
          "url": "https://www.biteki.com/hair/trouble/356170#heading0001"
          },
          {"@type": "HowToStep",
        "name": "手のひら全体で引き上げる",
          "text": "手のひら全体で引き上げる。両手の親指と人差し指の間でV字を作り、耳を挟むようにハンドプレスしながら5~10秒間、グーッと引き上げます。これは「形成」と呼ばれ、引き上げた顔の皮膚を定着させる効果が。頭筋ストレッチの最後にこの「形成」をじっくり行うことが成功のカギ。",
          "image": "https://www.biteki.com/wp-content/uploads/2018/07/p123-8.jpg",
          "url": "https://www.biteki.com/hair/trouble/356170#heading0001"
          }
      ]
  }
</script>

※articleBodyに記事本文もマークアップしている(狙いはよく分からない)

夜会巻きのコツ|コームなしでも簡単にできる!ショート・ミディアム・ロングの長さ別のやり方 | 美的.com

"夜会巻きやり方"で出てくる https://www.biteki.com/hair/hair-arrange/369907

<script type="application/ld+json">
  {
  "@context": "http://schema.org",
  "@type": "HowTo",
  "image": {
      "@type": "ImageObject",
      "url": "https://www.biteki.com/wp-content/uploads/2019/02/201601g_hair_longnightparty-0.jpg"
    },
  "name": "夜会巻きのコツ|コームなしでも簡単にできる!ショート・ミディアム・ロングの長さ別のやり方",
  "description": "夜会巻きは難しそう、というイメージありませんか?銀座のママ並みのきっちりしすぎ・盛りすぎの夜会巻きではなくコームなしでも簡単にでき、オフィスやパーティーにもぴったりなカジュアルダウンしたまとめ髪として日常使いできます!大人の色気がプラスされる夜会巻きアレンジ、是非トライしてみてください♪",
          "step": [
          {"@type": "HowToStep",
        "name": "毛束を取って外側にねじり、コテで挟んで外巻きに",
          "text": "全体を外巻きにする。細めに毛束を取って外側にねじり、コテで挟んで外巻きに。ニュアンスをつけるだけなので、キレイに仕上げなくてOK。多少巻いていない毛束があっても大丈夫!",
          "image": "https://www.biteki.com/wp-content/uploads/2017/11/6ac2397867767a902ce2217f0a58282f.jpg",
          "url": "https://www.biteki.com/hair/hair-arrange/369907#heading0001"
          },
          {"@type": "HowToStep",
        "name": "トップの表面を軽く巻きふわっとボリュームを出す",
          "text": "トップの表面を軽く巻く。せっかくのアレンジも、トップがペタっとしていると完成度が急降下。ふわっとボリュームを出すために、ガイド部分の毛束を細かく取り、写真のようにひと巻きして!",
          "image": "https://www.biteki.com/wp-content/uploads/2017/11/f6f77a1616e27fc34eb1a81aa7dc6262.jpg",
          "url": "https://www.biteki.com/hair/hair-arrange/369907#heading0001"
          },
          {"@type": "HowToStep",
        "name": "セミウエットスプレーを",
          "text": "セミウエットスプレーを振る。アレンジをおしゃれに見せるキモは、後れ毛&結んだときに表面に出る毛束感。必ずスタイリング剤を仕込むのを忘れずに。表面だけでなく、内側からもスプレーを。",
          "image": "https://www.biteki.com/wp-content/uploads/2017/11/4d2898cc519c4468d541cbcfe0072ef6.jpg",
          "url": "https://www.biteki.com/hair/hair-arrange/369907#heading0001"
          },
          {"@type": "HowToStep",
        "name": "髪全体になじませるようにもみ込む",
          "text": "くしゃっともみ込む。3のスタイリング剤を髪全体になじませるように、くしゃっともみ込む。これをすることで、ゴムやピンの留まりが良くなり、アレンジに適した質感に。",
          "image": "https://www.biteki.com/wp-content/uploads/2017/11/6929b940e4802cf13960acbb172247c2.jpg",
          "url": "https://www.biteki.com/hair/hair-arrange/369907#heading0001"
          }
      ]
  }
</script>

テザリングとは?テザリングの仕組みと使い方を解説~Android編~ | 【しむぐらし】BIGLOBEモバイル

"テザリングやり方"で出てくる(コードはよく分からない)

<script type="application/ld+json" class="saswp-schema-markup-output">
  [{"@context":"http:\/\/schema.org",
  "@type":"HowTo",
  "@id":"https:\/\/join.biglobe.ne.jp\/mobile\/sim\/gurashi\/android_tethering171214\/#HowTo",
  "name":"Android\u30b9\u30de\u30db\u3067\u30c6\u30b6\u30ea\u30f3\u30b0\u3059\u308b\u65b9\u6cd5\uff08Wi-Fi\u63a5\u7d9a\uff09",
  "datePublished":"2019-10-10T00:00:00Z",
  "dateModified":"1970-01-01T00:00:00Z",
  "description":"SIM\u304c\u5dee\u3057\u8fbc\u307e\u308c\u3066\u3044\u308b\u30e2\u30d0\u30a4\u30eb\u30c7\u30fc\u30bf\u901a\u4fe1\u3067\u304d\u308b\u30b9\u30de\u30db\u3092\u89aa\u6a5f\u3068\u3057\u3001\u30a4\u30f3\u30bf\u30fc\u30cd\u30c3\u30c8\u306b\u63a5\u7d9a\u3057\u305f\u3044\u7aef\u672b\u3092\u5b50\u6a5f\u3068\u3057\u3066\u89e3\u8aac\u3057\u307e\u3059\u3002\u203b\u30e1\u30cb\u30e5\u30fc\u540d\u306f\u7aef\u672b\u306b\u3088\u3063\u3066\u7570\u306a\u308a\u307e\u3059\u3002",
  "image":{
    "@type":"ImageObject",
    "url":"https:\/\/join.biglobe.ne.jp\/mobile\/sim\/gurashi\/wp-content\/uploads\/2019\/10\/tethering_howto.jpg",
    "height":"350",
    "width":"350"},
    "step":[
      {"@type":"HowToStep",
      "url":"https:\/\/join.biglobe.ne.jp\/mobile\/sim\/gurashi\/android_tethering171214\/#step1",
      "name":"1. \u89aa\u6a5f\u306e\u8a2d\u5b9a",
      "itemListElement":[
        {"@type":"HowToDirection",
          "text":"\u89aa\u6a5f\u3068\u306a\u308bAndroid\u7aef\u672b\u3067\u300c\u8a2d\u5b9a\u300d\u304b\u3089\u300c\u7121\u7dda\u3068\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u300d\uff1e\u300c\u30c6\u30b6\u30ea\u30f3\u30b0\u3068\u30dd\u30fc\u30bf\u30d6\u30eb\u30a2\u30af\u30bb\u30b9\u300d\uff1e\u300c\u30dd\u30fc\u30bf\u30d6\u30ebWi-Fi\u30a2\u30af\u30bb\u30b9\u30dd\u30a4\u30f3\u30c8\u300d\u306e\u9806\u306b\u30bf\u30c3\u30d7\u3002"
        },[]
      ],
      "image":{
        "@type":"ImageObject",
        "url":"https:\/\/join.biglobe.ne.jp\/mobile\/sim\/gurashi\/wp-content\/uploads\/2019\/10\/howto01.jpg",
        "width":"350","height":"350"
        }},
        {"@type":"HowToStep",
        "url":"https:\/\/join.biglobe.ne.jp\/mobile\/sim\/gurashi\/android_tethering171214\/#step2",
        "name":"2. \u30a2\u30af\u30bb\u30b9\u30dd\u30a4\u30f3\u30c8\u306e\u8a2d\u5b9a",
        "itemListElement":[
          {"@type":"HowToDirection",
            "text":"\u30a2\u30af\u30bb\u30b9\u30dd\u30a4\u30f3\u30c8\u540d\u30fb\u6697\u53f7\u5316\u30bf\u30a4\u30d7\u30fb\u30d1\u30b9\u30ef\u30fc\u30c9\u3092\u767b\u9332\u3002"
          },[]
        ],
        "image":{
          "@type":"ImageObject",
          "url":"https:\/\/join.biglobe.ne.jp\/mobile\/sim\/gurashi\/wp-content\/uploads\/2019\/10\/howto02.jpg",
          "width":"350",
          "height":"350"
        }},
        {"@type":"HowToStep",
          "url":"https:\/\/join.biglobe.ne.jp\/mobile\/sim\/gurashi\/android_tethering171214\/#step3",
          "name":"3. Wi-Fi\u30a2\u30af\u30bb\u30b9\u30dd\u30a4\u30f3\u30c8\u3092ON",
          "itemListElement":[{"@type":"HowToDirection",
          "text":"\u3053\u308c\u3067\u89aa\u6a5f\u306e\u8a2d\u5b9a\u306f\u5b8c\u4e86\u3002"},[]],
          "image":{
            "@type":"ImageObject",
            "url":"https:\/\/join.biglobe.ne.jp\/mobile\/sim\/gurashi\/wp-content\/uploads\/2019\/10\/howto03.jpg",
            "width":"350",
            "height":"350"}
          },{
            "@type":"HowToStep",
            "url":"https:\/\/join.biglobe.ne.jp\/mobile\/sim\/gurashi\/android_tethering171214\/#step4",
            "name":"4. \u5b50\u6a5f\u306e\u8a2d\u5b9a",
            "itemListElement":[{
              "@type":"HowToDirection",
              "text":"\u5b50\u6a5f\u306e\u8a2d\u5b9a\u753b\u9762\u300c\u7121\u7dda\u3068\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u300d\u3067Wi-Fi\u3092ON\u306b\u3002"},[]],
              "image":{
                "@type":"ImageObject",
                "url":"https:\/\/join.biglobe.ne.jp\/mobile\/sim\/gurashi\/wp-content\/uploads\/2019\/10\/howto04.jpg",
                "width":"350",
                "height":"350"}
              },{
                "@type":"HowToStep",
                "url":"https:\/\/join.biglobe.ne.jp\/mobile\/sim\/gurashi\/android_tethering171214\/#step5",
                "name":"5. \u89aa\u6a5f\u3092\u9078\u629e\u3057\u3066\u63a5\u7d9a",
                "itemListElement":[{
                  "@type":"HowToDirection",
                  "text":"\u5229\u7528\u53ef\u80fd\u306a\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u306e\u3046\u3061\u3001\u89aa\u6a5f\u3092\u9078\u629e\u3057\u3066\u3001\u30d1\u30b9\u30ef\u30fc\u30c9\u3092\u5165\u529b\u3057\u305f\u3089\u5b8c\u4e86\u3002"
                },[]]}],
                "totalTime":"PT1M"}]
</script>

排水溝つまりの直し方(台所・お風呂場・洗面所など) | 生活救急車

"排水溝つまり"で出てくる https://sq.jbr.co.jp/library/521

<script type="application/ld+json">
  {
  "@context": "http://schema.org",
  "@type": "HowTo",
  "name": "排水溝つまりの直し方",
  "description": "排水溝つまりのトラブルで困っていませんか?台所、お風呂場、洗面所など、水まわりの設備には排水溝が設置されていますが掃除をきちんとしていてもつまってしまうことはありますよね。また、そういったつまりを直そうと思っても専用の道具がなくて諦めたり、自分でどうやって直したらいいのかわからなくて水道業者にいきなり電話してしまうという人も多いと思います。そこで今回は、台所、お風呂場、洗面所などの排水溝つまりを自分で直す方法や水道業者に依頼した場合の料金などをご紹介したいと思います。",
  "step": [
  {
     "@type": "HowToStep",
     "name": "バケツを排水パイプの下に置く",
     "itemListElement": [{
          "@type": "HowToDirection",
          "text": "既に詰まりが発生している場合は、排水パイプを取り外す際に大量の水が流れてくることがあります。そのため、作業前に排水パイプのしたにバケツを置いておきましょう。飛び散りが気になる場合は、雑巾などを敷いておくのもいいでしょう。"
     }]
  },
  {
     "@type": "HowToStep",
     "name": "パイプを固定しているナットを外す",
     "itemListElement": [{
          "@type": "HowToDirection",
          "text": "ウォーターポンププライヤーを使って、パイプを固定しているナットを取り外しましょう。"
     }, {
          "@type": "HowToDirection",
          "text": "金属製のもので、錆びて取り外しがしにくい場合は錆び取りスプレーなどを使ってから作業するととりやすくなります。"
     }]
  },
  {
     "@type": "HowToStep",
     "name": "パイプを取り外す",
     "itemListElement": [{
          "@type": "HowToDirection",
          "text": "ナットを取り外したら、パイプを取り外します。"
     }]
  },
  {
     "@type": "HowToStep",
     "name": "パイプのヌメリや汚れなどを掃除する",
     "itemListElement": [{
          "@type": "HowToDirection",
          "text": "パイプのトラップ部分で詰まりが発生している場合、ひどいヌメリや汚れが発生しているかと思います。それらを、ブラシなどを使ってきれいに掃除します。"
     }]
  },
  {
     "@type": "HowToStep",
     "name": "元に戻す",
     "itemListElement": [{
          "@type": "HowToDirection",
          "text": "パイプの掃除が終わったら、逆の手順でパイプを元に戻して完了です。"
     }, {
          "@type": "HowToDirection",
          "text": "念のため、水をしばらく流して水漏れが起こっていないか確認しておきましょう。"
     }]
  }
  ]
  }
</script>

ざっくりとした進め方

  • 概要を情報収集
  • 他サイト事例を集める
  • プランニング
    • HowTOに落とし込めそうな内容を考える
    • 生かせるページを考える(新規/既存)
  • 実装
  • 具体的なテキストをライティング
  • 構造化マークアップを施す
  • 構造化テストツールで確認
  • 本番へ反映させて実装

参考ページ

ハウツー | Google 検索デベロッパー ガイド https://developers.google.com/search/docs/data-types/how-to?hl=ja

HowTo (ハウツー) 構造化データを設定する方法(このページ自体がHowTo構造化データあり) https://ischool.co.jp/20191106-howto-how-to-set-up-structured-data/

FAQとHow-toのリッチリザルトをGoogleが正式公開 #IO19 | 海外SEO情報ブログ https://www.suzukikenichi.com/blog/google-introduces-two-new-rich-results-faq-and-how-to/

調査メモ

  • 2020年3月時点では反映されるのはSPのみ

    ハウツーのリッチリザルトは現在、Google 検索を利用できるすべての言語と国で表示されています。この機能はモバイル デバイスでのみ利用でき、デスクトップでは利用できません。

  • 1つのページに複数のHowToを入れてはいけない

  • 「原材料」(supply)と「ツール」(tool)は区別する
    • ネクタイの結び方の例でいうと、ネクタイとシャツが原材料、鏡がツール
  • マークアップするのはステップ部分のみ
  • 「最終画像」(画像を使用して最終結果を的確に表現できる場合)と「最後のステップの画像」は一致させる(画像で表現できない場合は気にせずともOK?)

    画像を使用して最終結果を的確に表現できる場合は、必ずその画像をページに表示し、image プロパティを使用して HowTo マークアップに含めてください。この画像は、最後のステップでマークアップするものと同じものになります。

  • 「HowTo→HowToStep」とするか「HowTo→HowToSection→HowToStep」とするかは任意でよいらしい

Google公式ページのサンプルコード

全て公式ページに記述あり。

標準的なハウツーのリッチリザルト

https://developers.google.com/search/docs/data-types/how-to?hl=ja#standard

  • 画像は完了時の状態を示すものが1つのみ
  • ステップが展開される
<html>
  <head>
    <title>How to tile a kitchen backsplash</title>
    <script type="application/ld+json">
    {
      "@context": "http://schema.org",
      "@type": "HowTo",
      "name": "How to tile a kitchen backsplash",
      "description": "Any kitchen can be much more vibrant with a great tile backsplash. This guide will help you install one with beautiful results, like our example kitchen seen here.",
      "image": {
        "@type": "ImageObject",
        "url": "https://example.com/photos/1x1/photo.jpg",
        "height": "406",
        "width": "305"
      },
      "estimatedCost": {
        "@type": "MonetaryAmount",
        "currency": "USD",
        "value": "100"
      },
      "supply": [
        {
          "@type": "HowToSupply",
          "name": "tiles"
        }, {
          "@type": "HowToSupply",
          "name": "thin-set mortar"
        }, {
          "@type": "HowToSupply",
          "name": "tile grout"
        }, {
          "@type": "HowToSupply",
          "name": "grout sealer"
        }
      ],
      "tool": [
        {
          "@type": "HowToTool",
          "name": "notched trowel"
        }, {
          "@type": "HowToTool",
          "name": "bucket"
        },{
          "@type": "HowToTool",
          "name": "large sponge"
        }
      ],
      "step": [
        {
          "@type": "HowToStep",
          "url": "https://example.com/kitchen#step1",
          "name": "Prepare the surfaces",
          "itemListElement": [{
            "@type": "HowToDirection",
            "text": "Turn off the power to the kitchen and then remove everything that is on the wall, such as outlet covers, switchplates, and any other item in the area that is to be tiled."
          }, {
            "@type": "HowToDirection",
            "text": "Then clean the surface thoroughly to remove any grease or other debris and tape off the area."
          }],
          "image": {
            "@type": "ImageObject",
            "url": "https://example.com/photos/1x1/photo-step1.jpg",
            "height": "406",
            "width": "305"
          }
        }, {
          "@type": "HowToStep",
          "name": "Plan your layout",
          "url": "https://example.com/kitchen#step2",
          "itemListElement": [{
            "@type": "HowToTip",
            "text": "The creases created up until this point will be guiding lines for creating the four walls of your planter box."
          }, {
            "@type": "HowToDirection",
            "text": "Lift one side at a 90-degree angle, and fold it in place so that the point on the paper matches the other two points already in the center."
          }, {
            "@type": "HowToDirection",
            "text": "Repeat on the other side."
          }],
          "image": {
            "@type": "ImageObject",
            "url": "https://example.com/photos/1x1/photo-step2.jpg",
            "height": "406",
            "width": "305"
          }
        }, {
          "@type": "HowToStep",
          "name": "Prepare your and apply mortar (or choose adhesive tile)",
          "url": "https://example.com/kitchen#step3",
          "itemListElement": [{
            "@type": "HowToDirection",
            "text": "Follow the instructions on your thin-set mortar to determine the right amount of water to fill in your bucket. Once done, add the powder gradually and make sure it is thoroughly mixed."
          }, {
            "@type": "HowToDirection",
            "text": "Once mixed, let it stand for a few minutes before mixing it again. This time do not add more water. Double check your thin-set mortar instructions to make sure the consistency is right."
          }, {
            "@type": "HowToDirection",
            "text": "Spread the mortar on a small section of the wall with a trowel."
          }, {
            "@type": "HowToTip",
            "text": "Thinset and other adhesives set quickly so make sure to work in a small area."
          }, {
            "@type": "HowToDirection",
            "text": "Once it’s applied, comb over it with a notched trowel."
          }],
          "image": {
            "@type": "ImageObject",
            "url": "https://example.com/photos/1x1/photo-step3.jpg",
            "height": "406",
            "width": "305"
          }
        }, {
          "@type": "HowToStep",
          "name": "Add your tile to the wall",
          "url": "https://example.com/kitchen#step4",
          "itemListElement": [{
            "@type": "HowToDirection",
            "text": "Place the tile sheets along the wall, making sure to add spacers so the tiles remain lined up."
          }, {
            "@type": "HowToDirection",
            "text": "Press the first piece of tile into the wall with a little twist, leaving a small (usually one-eight inch) gap at the countertop to account for expansion. use a rubber float to press the tile and ensure it sets in the adhesive."
          }, {
            "@type": "HowToDirection",
            "text": "Repeat the mortar and tiling until your wall is completely tiled, Working in small sections."
          }],
          "image": {
            "@type": "ImageObject",
            "url": "https://example.com/photos/1x1/photo-step4.jpg",
            "height": "406",
            "width": "305"
          }
        }, {
          "@type": "HowToStep",
          "name": "Apply the grout",
          "url": "https://example.com/kitchen#step5",
          "itemListElement": [{
            "@type": "HowToDirection",
            "text": "Allow the thin-set mortar to set. This usually takes about 12 hours. Don’t mix the grout before the mortar is set, because you don’t want the grout to dry out!"
          }, {
            "@type": "HowToDirection",
            "text": "To apply, cover the area thoroughly with grout and make sure you fill all the joints by spreading it across the tiles vertically, horizontally, and diagonally. Then fill any remaining voids with grout."
          }, {
            "@type": "HowToDirection",
            "text": "Then, with a moist sponge, sponge away the excess grout and then wipe clean with a towel. For easier maintenance in the future, think about applying a grout sealer."
          }],
          "image": {
            "@type": "ImageObject",
            "url": "https://example.com/photos/1x1/photo-step5.jpg",
            "height": "406",
            "width": "305"
          }
        }
      ],
      "totalTime": "P2D"
    }
    </script>
  </head>
  <body>
  </bod__y>
</html>

ステップごとの画像を含むハウツーのリッチリザルト

https://developers.google.com/search/docs/data-types/how-to?hl=ja#visual

  • 各ステップが画像+若干のテキストで構成され、カルーセルになっている
<html>
  <head>
    <title>How to tie a tie</title>
    <script type="application/ld+json">
    {
      "@context": "http://schema.org",
      "@type": "HowTo",
      "image": {
        "@type": "ImageObject",
        "url": "https://example.com/1x1/photo.jpg"
      },
      "name": "How to tie a tie",
      "description": "The four-in-hand knot is a great look for any occasion. From formal suits to casual jacket and tie affairs, it’s a simple way to quickly look great. Once you have mastered the knot you can tie it in just a minute, so it’s also great when you’re in a pinch too. ",
      "totalTime": "PT2M",
      "video": {
        "@type": "VideoObject",
        "name": "Tie a Tie",
        "description": "How to tie a four-in-hand knot.",
        "thumbnailUrl": "https://example.com/photos/photo.jpg",
        "contentUrl": "http://www.example.com/videos/123_600x400.mp4",
        "embedUrl": "http://www.example.com/videoplayer?id=123",
        "uploadDate": "2019-01-05T08:00:00+08:00",
        "duration": "P1MT10S"
      },
      "supply": [
        {
          "@type": "HowToSupply",
          "name": "A tie"
        }, {
          "@type": "HowToSupply",
          "name": "A collared shirt"
        }
      ],
      "tool": [
        {
          "@type": "HowToTool",
          "name": "A mirror"
        }
      ],
      "step":[
        {
          "@type": "HowToStep",
          "name": "Preparations",
          "text": "Button your shirt how you’d like to wear it, then drape the tie around your neck. Make the thick end about 1/3rd longer than the short end. For formal button down shirts, it usually works best with the small end of the tie between 4th and 5th button.",
          "image": "https://example.com/1x1/step1.jpg",
          "url": "https://example.com/tie#step1"
        }, {
          "@type": "HowToStep",
          "name": "Crossing once",
          "text": "Cross the long end over the short end. This will form the basis for your knot.",
          "image": "https://example.com/1x1/step2.jpg",
          "url": "https://example.com/tie#step2"
        }, {
          "@type": "HowToStep",
          "name": "Second crossing",
          "text": "Bring the long end back under the short end, then throw it back over the top of the short end in the other direction.",
          "image": "https://example.com/1x1/step3.jpg",
          "url": "https://example.com/tie#step3"
        }, {
          "@type": "HowToStep",
          "name": "Loop in",
          "text": "Now pull the long end through the loop near your neck, forming another loop near your neck.",
          "image": "https://example.com/1x1/step4.jpg",
          "url": "https://example.com/tie#step4"
        }, {
          "@type": "HowToStep",
          "name": "Pull and tighten",
          "text": "Pull the long end through that new loop and tighten to fit!",
          "image": "https://example.com/1x1/step5.jpg",
          "url": "https://example.com/tie#step5"
        }
      ]
    }
    </script>
  </head>
  <body>
  </body>
</html>