この投稿は、どうすれば検索の上位に表示されるのか、調べたり試してみたことのメモである。 参考になったブログ記事や試行錯誤したこと等をメモしておく。
今のところの結論
バックリンク、内部リンクなど、リンクに関して試行錯誤してみた。しかし、バックリンクが多いからといって検索の上位に来ることは無いように思えた。
SEO 対策とは、小手先の対応はあるとしても、最終的には、ページの内容になるのではないかと思う。
サイトへのアクセス数が増えない
site 検索で表示されるようになったもののアクセスが無い場合は、コンテンツに問題があるのだろう。
EPIC CCONTENT を作る
非常に参考になった。
英語がそれほど得意というわけではないので、EPIC CONTENT をうまく訳せない。他を圧倒するコンテンツという感じだろうか。
触りだけメモしておく。記事の中にはもっと深く書かれているので Google などで翻訳して読んでも参考になると思う。
EPIC CONTENT とは次のようなものらしい。
- 長さ。最良の方法ではないが、はっきりと識別できる方法。最低でも 1000 word。2000-5000 word は通常。英語と日本語、どちらが長い?にあるように、1単語4文字程度だとすると、最低4000字、通常8000-20000字ということになるだろうか。
- 究極のガイド。〜に関する100の方法、など。
- 深さ。長いからといって、EPIC CONTENT とは言えない。深掘りすると EPIC CONTENT になる可能性がある。
- リスト。定番で古典的な方法。しかし、10とか20とかいう数ではない。50 は、まあよい。100以上は EPIC CONTENT。
- インタビュー特集。ある特定のトピックについてアドバイスしてくれる人を何人か探し出し、回答を集め、編集し、公開する。全ての人が返事をくれるわけではないので、可能な限り大きなリストを作って集める。 B
- 物語。上記のものに比べると才能が必要。
ただ、こんなことが書いてある。
Let me repeat this: it is not just the size that makes a post epic. It’s the content. The content takes you over.
ある投稿を EPIC CONTENT にするのは、長さではなく、内容であり、(Deepl翻訳によると)コンテンツに引き込まれるもの、ということらしい。
キーワードが適切なのか?
サーチコンソールの検索パフォーマンスを確認する。
- 表示回数が少ない場合は、キーワードに対する需要が少ない。
- 表示回数の割にクリック数が小さい場合は、他のサイトに負けている。
記事を書く時点で、ubersuggest やラッコキーワードなどで計画して、書くべきかどうか考えるべきだろう。
そうは言っても、新規のキーワードで検索されるのが10%だったか、その程度はあったと思うので、キーワード調査して書くのが正しいのかどうか、私にはよくわからない。
ページが Google に認識されていない場合の対策
人間が見て、トップページから辿りやすいところにページがあるのだろうか。
site 検索をすると、どの記事が Google に登録されているかがわかる。(google の検索欄に site:kizamiudn.xyz などのように入力して検索する)
サーチコンソールで見ると、3段階あるようだ。
- そもそも、URL が Google に発見されていない(「URL が Google に認識されていません」)
- URL が Google に発見されたが、読まれていない(検出-インデックス未登録)
- URL が Google に発見され、読まれたものの登録されなかった(クロール済み-インデックス未登録)
URL が Google に認識されていません
- 記事の URL が発見されやすいか?(自サイト、外部サイトからリンクがあるかなど)
- 検索エンジンが一度に読み出す URL に限りがある(クロールバジェット)ようなので、既存ページやサイトマップから辿れるとしても、時間がかかる?
Google はインデックス済みのページを何度も見に来ているように思う。既にインデックスされているページにコンテンツを追加するのが有効なのだろうか。
また、クロールバジェットを考慮すると、複数のページを一つにまとめる、などが有効なのだろうか。そう考える理由。
- アクセスログを見ていると、作ったばかりのサイトだと、Googlebot は1日に1〜数個の URL にアクセスされているだけだった。
- one page theme などで検索すると、1ページ構成のテーマも存在する。
- Why 100% indexing isn’t possible, and why that’s OK などの記事
トップページを Google に認識してもらう(中古ドメインなどを使用)
試したところ、中古ドメインを使って、トップページだけでもインデックスさせたほうが良いのではないか、と感じている。
中古ドメインを本サイトにリダイレクトさせても効果があるかもしれない。
次のようなところから中古ドメインを取得することができる。
Expired Domains.net は期限切れしたドメインの一覧なので、実際には、ドメインを取得する必要がある。
トップページはインデックスされる?1ページだけのサイトも有効かも
トップページはそれほど苦労せずにインデックスには登録されるように思える。
トップページだけのサイト、といった方法も有効なのかもしれない。
Googlebot が見に来ているページからリンクされているページはインデックスされやすいかも?
中古ドメインを使うと、Googlebot が過去に存在していた記事にアクセスしにくる。 この Googlebot が見に来ているページからリンク、もしくは、リダイレクトしたページはインデックスされやすいのが私の感じたところ。
また、Googlebot が見にくるようになったページにあるリンクを Googlebot がたどった場合は、インデックスされる可能性が高いように思える。(関連記事としてリンクを設置する、なども有効?)
URL が Google に発見されたが、読まれていない(検出-インデックス未登録)
待っておくしかないように思える。
しかし、ずっとこの状態のままということが結構ある。Google に登録されたページがあるのであれば、そのページに情報を追記するほうが良いのではないかと思う。
URL が Google に発見され、読まれたものの登録されなかった(クロール済み-インデックス未登録)
ページ品質の問題と思える。
コンテンツがあまりに短かすぎると登録されないように思えた。
内容が無いと登録されないのか、という印象。
あまり効果があるように思えなかった対策
サイトマップ送信には期待できない?
サイトマップを送信しても、インデックスに登録されると感じたことはなかった。
サイトマップに関する私の理解。
- サイトマップ送信を実行すると、実行した時点でサイトマップを取りにくる。
- サイトマップインデックスを送信した場合は、しばらくすると、サイトマップ本体も読み込まれている模様。
- サイトマップ内の URL にはすぐにアクセスはなさそう。
- site 検索で表示される記事でも、しばらく、カバレージに表示されない期間がありそう。
- サイトマップを使わなくても、URL は認識される。
- サイトマップがチェックされる頻度は、1週間程度(サイトの更新頻度にもより違うかもしれない)。クロールの度にチェックされるわけではない。
インデックス登録リクエストには期待できない?
URL 検査をして、Google に登録されていない場合、「インデックス登録をリクエスト」することができる。
- インデックス登録をリクエストすると、実行した時点で、Googlebot が URL にアクセスする。
- すぐにインデックスに登録されるわけでもなければ、必ずインデックスに登録されるわけでもない。
結局はページの内容、ということなのだろうか。
効果不明なもの
リンクテキスト、もしくは、URL の問題?(検証中)
Google にクロールされないのは、リンクテキストか URL に、適当なキーワードが含まれていないからかもしれない。URL は qiita が検索上位に来ることを考えると、意味がなくても良いのかもしれない。
そう考えた根拠:
- トップページにある記事を必ずクロールするわけではない。(リンクテキストか URL で判定している?)
- サイトマップを送信していなくてもインデックスには登録される。(サイトマップの有無はインデックスに無関係だし、サイトマップがクロールに影響するとすれば、URL しか判断材料がない)
WebSub を使えば、インデックスが速くなるのだろうか?
さて、WebSub(PubSubHubbub) で通知するとインデックスに登録されるのが速い、と聞くが、 WebSub で通知すると Google は読みに来るのだろうか。
WebSub の設定
rss フィード(index.xml) に以下を追加した。
<atom:link href="https://pubsubhubbub.appspot.com" rel="hub" />
<atom:link href="https://pubsubhubbub.superfeedr.com" rel="hub" />
<atom:link href="https://websubhub.com/hub" rel="hub" />
次に、以下のようなプログラムで通知してみた。(url は引数にしたほうがよいと思うが。)
#!/usr/bin/env python3
# PubSubHubbub
# https://pubsubhubbub.appspot.com/
import requests
import datetime
print(datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S'))
hubs = ['https://pubsubhubbub.appspot.com/', 'https://websub.superfeedr.com', 'https://websubhub.com/hub']
websub_req = {'hub.mode': 'publish', 'hub.topic': 'https://kizamiudn.xyz/index.xml'}
for hub in hubs:
r = requests.post(hub, data = websub_req)
print(r)
実行すると、204、202 などのレスポンスが返ってくる。 websubhub.com は時々 500 エラーレスポンスを返してくることがあった。
アクセスログには次のようなアクセスが記録されていた。 ほぼ実行した直後にアクセスが来ていた。
74.125.151.47 - - [09/Jun/2022:14:04:27 +0900] "GET /index.xml HTTP/1.1" 200 20476 "-" "FeedFetcher-Google; (+http://www.google.com/feedfetcher.html)"
198.58.103.36 - - [09/Jun/2022:14:04:28 +0900] "GET /index.xml HTTP/1.1" 200 20476 "-" "Superfeedr bot/2.0 http://superfeedr.com - Make your feeds realtime: get in touch - feed-id:1400485732"
159.223.112.59 - - [09/Jun/2022:14:04:29 +0900] "GET /index.xml HTTP/1.1" 200 20476 "-" "hackney/1.18.0"
1
WebSub は効果が不明
WebSub で通知すると、pubsubhubbub(Feedfetcher)、superfeedr、websubhub(hackney) が rss を取りにくる。
<link rel="alternate" type="application/rss+xml" title="RSS Feed for kizamiudn.xyz" href="https://kizamiudn.xyz/index.xml" />
を設定しているからなのか、superfeedr は、通知後、一日に一回程度、見に来ているようだ。pubsubhubbub、websubhub については不明。
これがインデックスと関係があるかはよくわからなかった。
WebSub を使ったからといって、インデックスが速くなるわけではないように思える。
WebSub を使って誰かが記事を見つけてくれて、記事がニュースサイト上にリンクされて、その結果、インデックスされやすくなる、という順番なのではないだろうか。
indexing api は使えない?
検索セントラルの左下のほうに、search apiというのが4つほどある。このあたりが、検索がらみの API なのだろうか。ちょっと眺めてみて使えそうなのは、indexing API のように思う。
この API、以下のような説明がある。
現在、Indexing API は、JobPosting または BroadcastEvent が VideoObject に埋め込まれたページをクロールするためにのみ使用できます。
ただ、ググってみると、求人以外にも使えるとか書いてある記事もあるし、どのような動きをするのかはよくわからない。とりあえず、叩いてみることにした。
indexing api を使ったサンプルプログラム
github に gindex として置いたので、参考にしてほしい。exe ファイルも置いた。(実行ディレクトリに search-console-api.json を置いておかないとエラーになるので注意。) どうなるかは、今のところわからない。
indexing api は効果がなさそう?
効果は不明。少なくとも即効性は無かった。