テクニカルSEO情報
テクニカルSEO情報
サイトが長い間503や429のHTTPステータスコードを返すとインデックス削除につながる
一時的ではないから (Gary Illyes on Twitter) 海外情報
グーグル検索において、WebサイトがGooglebotに返す429と503のHTTPステータスコードの処理に関して、ゲイリー・イリェーシュ氏がツイッターで注意喚起した。
面白い事実: 429と503のHTTPステータスコードはクロール頻度を下げる。しかし、長期間にわたってそうしたステータスコードを返し続けると、いずれインデックスから削除されてしまうだろう。
Fun fact: serving 429/503 http status codes will slow down crawling, yes, but if you serve them for a longer period of time, they will remove the pages served with said codes from the index. pic.twitter.com/p4Wf6YD6SX
— Gary "鯨理/경리" Illyes (@methode) February 20, 2020
HTTPステータスコードとは、サイト訪問者(ブラウザやクローラー)にWebサーバーが返す応答の番号だ。代表的なHTTPステータスコードとしては、たとえば次のようなものがある。
今回、イリェーシュ氏が言及している「429」と「503」のコードは、次のような意味のものだ。
503は知っている人も多いだろうが(503は、SEOにおいては非常に重要なHTTPステータスコード。もしご存じなければこちらの記事を参照)、429については、筆者はこんなステータスコードがあることを知らなかった。
429は“Too Many Requests”を意味するとのことで、一定期間に一定回数以上アクセスした相手に、サーバーが応答の継続を拒否する目的で使われるようだ(503と同様に、Retry-After
ヘッダーで再リクエストまでの待機時間を指定できる)。503とは異なりサーバーに問題があるわけではなく、「60秒に100アクセスまで」のように限定する用途を想定している(「Rate Limiting」と呼ばれる)。
503にしても429にしても、その時点でGooglebotが一時的にアクセスできないだけの状態で、インデックスには変更は加えられない。ただしクロール頻度は減る。しばらくしたのち、再びクロールを試みて問題がなければ、クロール頻度は元に戻るだろう。
ところが、一時的ではなく1週間も2週間も429や503が返ってきてアクセス不可能な状態が続くと、最終的にはインデックスから消えてしまうことがある。いつまでたっても復帰しないページを検索結果に出しておくとユーザー体験を損ねるからだ。
503が長期間続くとインデックスから消滅する可能性があることは、ほかのグーグル社員も過去に注意喚起していた。
- SEOがんばってる人用(ふつうの人は気にしなくていい)
- 技術がわかる人に伝えましょう
AMPページのコメント欄は省略可能か?
可能だけれど、AMPページにもあったほうがいい (John Mueller on Twitter) 海外情報
AMPページには、対応するモバイルページと同等のコンテンツを掲載することが要求される。コンテンツが一致していないいと、「コンテンツの不一致」というAMPエラーの警告が送られてくることがある。
コンテンツにはコメントも含まれるのだろうか? モバイルページにはコメント欄があるが、AMPページではそのコメントがない場合はコンテンツの不一致になるのだろうか?
ジョン・ミューラー氏は次のように説明している。
私が知る限りでは、コメントに対してはコンテンツの不一致として今のところは違反扱いしていない。だが可能な限り一致させることを推奨する。
AMPの一般的な警告についてはこちらのヘルプページに書かれている。
Afaik we don't flag this as content mismatch at the moment, but if recommend making sure the pages are as equivalent as possible. https://t.co/fFONwERwKX has the common errors we flag.
— 🍌 John 🍌 (@JohnMu) February 4, 2020
AMPページにはコメントがなくてもとりあえずは問題視されないようだ。
それでも、ミューラー氏は次のようにも補足している。
AMPページが通常ページと同等であったほうがいいとユーザーは望んでいる。コメントがそのページの重要な部分であるなら、私ならAMPページにも掲載するがね。
Users want the amp pages to be equivalent to the normal pages, so if the comments are an important part of your pages, I'd make sure they're also on the amp version.
— 🍌 John 🍌 (@JohnMu) February 4, 2020
警告が出なかったとしても、ユーザーを第一に考えればコメントであってもAMPページに載せたほうがよさそうだ(コメントに限らず、コンテンツが大切なものでユーザーに見せたいものなら当てはまる)。
- AMP対応しているすべてのWeb担当者 必見!
リンクの否認ファイルは即座に処理されるが、否認されるのは再クロールされてから
わかるようなわからないような (John Mueller on Twitter) 海外情報
リンクの否認に関して、グーグルのジョン・ミューラー氏がツイッターでフォロワーと次のようなやり取りをしていた。
フォロワー: 否認ファイルは、追加されたあとすぐに効果が出るのですか?
ミューラー氏: 即座に処理されるが、効果を発揮するのはそのURLが再クロールされてからになる。
It's processed immediately and taken into account as the URLs are recrawled.
— 🍌 John 🍌 (@JohnMu) February 17, 2020
要は、こういうことだ:
否認ファイルそのものは、アップロード後すぐに処理される。つまり否認すべきURLをグーグルは把握する。
だが、実際に否認の処理が実行されるのは、そのURLがクロールされてから。否認リストに載り、再クロールされるまでの間は否認の効果はない。
なお再クロールまでの時間は固定ではない。そのページのもともとのクロール頻度に依存する。数日の場合もあれば、数週間や数か月かかる場合もある。残念ながら、否認ファイルに記載したURLの否認が完了したかどうかを調べる方法はない。
- ホントにSEOを極めたい人だけ
JSやCSSの更新をグーグルに確実に伝える方法
ハッシュやチェックサムをファイル名に追加する (Martin Splitt on Twitter) 海外情報
Googlebotは、ページが参照しているJavaScriptやCSSのファイルを、可能な限り使い回そうとする。そのため、「JavaScriptやCSSを更新したのに、Googlebotが古いファイルのままレンダリングしようとする」状況が発生し得る。
だから、JavaScriptやCSSを変更したときは、できるだけURLを変えることが望ましい。
こうしたTIPSを、グーグルのマーティン・スプリット氏が共有してくれた
GooglebotはJavaScriptやCSSのファイルを積極的にキャッシュする。そして、取得したページをレンダリングするときには、一度取得したJavaScriptやCSSを都度サーバーから取得するのではなく、キャッシュしたファイルを利用するのだという。
つまり、同じファイル名(URL)でJavaScriptやCSSの中身を変えても、グーグルが認識するページ表示には反映されない可能性が高いということだ。
では、ファイルが更新されたことを確実にグーグルに知らせるには、どうすればいいのだろうか。
ファイル名(URL)を変更するといい。ファイル名が変わっていると、Googlebotは、新しいJavaScriptやCSSを取得してレンダリングに使用する。
具体的にスプリット氏が推奨しているやり方は、ファイルの中身や更新日時を元にした「ハッシュ」や「チェックサム」と呼ばれる文字列をファイル名やパスに追加するやり方だ。
たとえば、元のJavaScriptが「sample.js」というファイル名だった場合、次のようにする。
例: sample.39A5E04AAFF7455D.js
実際にWebサーバー上に配置するsample.jsのファイル名を変える必要はない。Apache WebサーバーならばRewriteを活用して、たとえば次のようにすればいい(サーバーのルートに配置した.htaccessで指定する場合の記述で、ハッシュは16文字で0~9とA~Fだけを想定している)。
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{DOCUMENT_ROOT}/$1$2 -s
RewriteRule ^(.*)\.[0-9a-fA-F]{16}(\.(js|css)) $1$2 [QSA]
このようにしておけば、HTML内に記述するJavaScriptやCSSのファイル名を書き換えるだけでURLを変えられる。
URLパラメータでバージョン番号を追加するやり方もある。
例: sample.jp?v=1.2.1
一部のCDNやプロクシでは、外部向けにはパラメータを付けたURLを指定していても、元データを取得するときにはパラメータを除外したURLで処理させられるものがあり、運用が楽になる。
とはいえスプリット氏は、ファイル名にハッシュを付けるほうが堅牢性が高いと述べている。
Googlebot caches aggressively, so we recommend using hashes or checksums as part of the filename.
— Martin Splitt at 🏡🇨🇭 (@g33konaut) February 5, 2020
- SEOがんばってる人用(ふつうの人は気にしなくていい)
- 技術がわかる人に伝えましょう
グーグルさん、自社名の検索で競合他社の広告を出すのはマジやめてください
根本解決のために広告主の声をグーグルに届けよう (株式会社JADE) 国内情報
最後に、SEOではなく検索連動型広告の話題を。
固有の社名やサービスで検索すると、競合他社やそのサービスの情報が検索結果に広告として出てくることがある。グーグル広告に関して筆者は詳しくないので、ライバル企業関連の固有名詞で広告を入札しているのだとてっきり思い込んでいた。ところが、それは正しくなかった。
今のグーグル広告の「部分一致」という名のマッチング拡張システムのせいで、出稿時には一般名詞を指定していただけの広告が、競合他社の社名やサービスでの指名検索でも意図せずに出てきてしまうことがあるらしい。
こうした広告表示は、出稿側の広告主にも、検索された元の企業にも、まったく喜べない状況をもたらす。
たとえば、自社名や自社サービス名などをユーザーが検索すると競合他社の広告が出てきてしまい、広告費がかかるしクリックを奪われる。逆に出稿した覚えがないのに「◯◯社に広告を出された! 商標侵害だ!」と恨みをいだかれることもある。
場合によっては検索ユーザーにとっても、まぎらわしく混乱する状況をもたらしている可能性がある。なにしろ、検索結果の最上部に出てきたリンクをクリックしたら、検索したのと違う会社のサイトに飛ぶのだから。
このような広告主が憂う状況の背景を、JADEの小西氏が解説した。そして、グーグルに改善を迫っている。
グーグル検索の広告に関わるのは次の3者だ。
- ユーザー
- 広告主
- グーグル
自社名検索による競合他社の広告掲載で得をするのは、このなかでグーグルだけだと小西氏は指摘する。理由は、もちろん広告費を取れるからだ(一方で広告主には損しかない)。
悲しいことに、広告主が自力で対策するのは現状では難しいとのことである。根本的な解決はグーグルにしかできないようだ。多くの広告主の切実な声を聞けばグーグルが動くかもしれない。小西氏はそんな願いも込めてこの記事を書いたと思われる。
- 広告出稿しているすべてのWeb担当者 必見!
海外SEO情報ブログの
掲載記事からピックアップ
AMPとネイティブLazyloadに関する記事をピックアップ。
- AMPのCSSサイズ上限が50000バイトから75000バイトへ50%増量⬆
たったの25KBでもAMPでは嬉しい増量。
- AMP対応しているすべてのWeb担当者 必見!
- 技術がわかる人に伝えましょう
- ネイティブLazyloadを可能にするloading=lazy属性がウェブ標準に、Chrome以外のブラウザサポートに期待
Safariのサポートを切に願う
- ホントにサイト高速化を極めたい人だけ
ソーシャルもやってます!