クロールとインデックス登録の制御について解説【上級SEO対策向け】
上級SEO対策ガイドラインは全部で以下のような6コンテンツで構成いたします。ご自身に必要な記事をご確認ください。
サイトマップの概要
ここでいうサイトマップとはsitemap.xmlをはじめとするクローラーに対してのサイトマップを指します。サイトマップがあることで記事URLだけではなく、動画や画像の詳細情報も伝達することができます。
サイトマップは本当に必要なのか
そもそもの話ですが、クローラーは非常に優秀ですのでページ間で適切にリンクが施されていればクロールされないということはほとんどあり得ません。もしもインデックスが進まないということであればサイトマップの有無ではなく他のことが原因である可能性が非常に高いです。
一応、適切にリンクが施されている場合であってもサイトマップがあった方が有利な場合や、意図してページ内リンクを付けていないような場合には設置したほうが良いということもありえます。
サイトマップがあった方がよい例
- 規模が非常に大きいサイト
- どこからもリンクされていないコンテンツ
- 新規サイトで外部からのリンクが極端に少ない
- 動画や画像などのリッチメディア コンテンツが多数ある
上記のような場合にはサイトマップがあった方がよいといえます。
SEO会社やサイトハック系のコンテンツではサイトマップを設置することで有利に働くという記事が目立ちますが、規模が小さいサイトであればサイトマップはなくても上位表示は可能ですし、特別な理由がなければ設置する必要はありません。
誤ったサイトマップを設置するくらいであれば無い方がよいということもあります。(正しいサイトマップを設置する場合であればどのような状況でも不利になることはありません。)
ただし、どこからもリンクされていない孤立ページがあればクローラーを助ける意味でもサイトマップがあった方がよいですし、リッチメディアコンテンツが多い場合にも有利に働くことがほとんどです。
なお、新規サイトの場合にはサイトマップを設置することでインデックスが促進されることがありますが、規模が大きいサイトに限りますので小規模サイトであれば無くても問題ありません。
サイトマップ形式
一般的にサイトマップはsitemap.xmlの形式をとりますが、Googleは以下の形式をサポートしています。
- XML
- RSS、mRSS、Atom 1.0
- テキスト
ほとんどの場合、sitemap.xmlで問題ありませんが他の形式もサポートしていますので状況に応じて使い分けてください。
XML
一般的なサイトマップの形式です。WordPressを使っている場合にはプラグインを使うことXML形式で自動的に設置することが可能です。
以下はGoogleが挙げている、1つのURLを更新日を掲載する通常の形式の例です。
<?xml version="1.0" encoding="UTF-8"?> <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"> <url> <loc>http://www.example.com/foo.html</loc> <lastmod>2018-06-04</lastmod> </url> </urlset>
RSS、mRSS、Atom 1.0
GoogleはRSSフィードやAtomフィードをサポートしています。一般にブログ機能を持つソフトウェアが自動的に設置しますので特別な設定は不要ですが、フィードでは最近のURL情報だけを提供することにご注意ください。
テキスト
あまり知られていませんが、テキストファイルであってもサイトマップとして機能します。テキストでサイトマップを作る場合には次の点に注意して作成してください。
- UTF-8エンコードを使用する
- URL以外の情報を含めない
- .txt拡張子を使用する(例:sitemap.txt)
URL以外の情報を含めませんのでテキストで作ったサイトマップは次のようになります。
- https://www.example.com/file1/
- https://www.example.com/file2/
ただし、サイトマップをテキストで作るメリットはほとんどありませんのでサイトの仕様やリソースの問題でxmlサイトマップの作成が困難な場合に対応する程度ということをご理解ください。
サイトマップ拡張機能
詳細は後述しますがサイトマップにはコンテンツURLだけではなく以下のような情報も追加することができます。テキストで作ったサイトマップには以下のような情報の詳細を掲載できませんので可能な限りXML形式で作りってください。
- 動画
- 画像
- Google ニュース
サイトマップ作成ガイドライン
サイトマップは自動で作ることも可能ですが、手動で作る場合には以下のガイドラインを守って作るようにしてください。サイトマップが誤っている場合にはインデックスされなかったり、正しい認識がされなかったりします。
正規URLのみを記載する
クローラーはサイトマップの通りに読み込みます。そのため、正規URLを正しく記載しない場合にはcanonicalしたページ以外を読み込んでしまう可能性があります。
例えば、https://www.example.comが正しいURLだとした場合には次のようなURLは載せないようにする必要があります。
- http://www.example.com(httpsになっていない)
- https://example.com(wwwがない)
- https://www.example.com/index.html(index.htmlがついている)
影響範囲は子孫ディレクトリのみ
サイトマップはどのディレクトリに置いても問題ありませんが、親ディレクトリには影響しません。そのため、一般的にはサイトのルートに設置することが推奨されます。
同様にサブドメインなどにも影響しませんので、設置個所の子孫にだけ影響するという認識が必要です。
セッションIDは記載しない
セッションIDを付けることでユーザーの動向を確認したいということがありますが、サイトマップにはセッションIDを記載しないようにしてください。セッションIDを付けてしまうと同じページが重複して認識されてしまう可能性があり、クロールバジェットの無駄になります。
代替言語を通知する
URLの代替言語バージョンを通知する場合はhreflangアノテーションを使用します。
Googleからは次のような3つの条件を満たす例を挙げていますので引用いたします。
- example.com/english/page.html(英語を話すユーザー)
- example.com/deutsch/page.html(ドイツ語を話すユーザー)
- example.com/schweiz-deutsch/page.html(ドイツ語を話すスイスのユーザー)
<?xml version="1.0" encoding="UTF-8"?> <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:xhtml="http://www.w3.org/1999/xhtml"> <url> <loc>http://www.example.com/english/page.html</loc> <xhtml:link rel="alternate" hreflang="de" href="http://www.example.com/deutsch/page.html"/> <xhtml:link rel="alternate" hreflang="de-ch" href="http://www.example.com/schweiz-deutsch/page.html"/> <xhtml:link rel="alternate" hreflang="en" href="http://www.example.com/english/page.html"/> </url> <url> <loc>http://www.example.com/deutsch/page.html</loc> <xhtml:link rel="alternate" hreflang="de" href="http://www.example.com/deutsch/page.html"/> <xhtml:link rel="alternate" hreflang="de-ch" href="http://www.example.com/schweiz-deutsch/page.html"/> <xhtml:link rel="alternate" hreflang="en" href="http://www.example.com/english/page.html"/> </url> <url> <loc>http://www.example.com/schweiz-deutsch/page.html</loc> <xhtml:link rel="alternate" hreflang="de" href="http://www.example.com/deutsch/page.html"/> <xhtml:link rel="alternate" hreflang="de-ch" href="http://www.example.com/schweiz-deutsch/page.html"/> <xhtml:link rel="alternate" hreflang="en" href="http://www.example.com/english/page.html"/> </url> </urlset>
>>ページのローカライズ版について Google に知らせる
UTF-8 エンコードで作成する
厳密にはサイトマップはUTF-8以外で作ることも可能ですが、GoogleがUTF-8としていることや世界のサイトの90%以上がUTF-8 で作られていることから統一することが望ましいです。
大きなサイトマップの分割
サイトマップには最大で5万件のURLを含むことができ、ファイルサイズの上限は50MBです。大きなサイトになるとURLが5万件を越えるケースもありえますので、サイトマップインデックスファイルを作成して複数の小さなサイトマップに分割する必要があります。
デスクトップ版とモバイル版でURLが異なる場合
デスクトップ版とモバイル版でURLが異なる場合には、どちらか片方のURLのみを記載してください。もし両方のURLを記載する場合には次の例のようにrel=”alternate”アノテーションを付ける必要があります。
<?xml version=”1.0″ encoding=”UTF-8″?>
<urlset xmlns=”http://www.sitemaps.org/schemas/sitemap/0.9″
xmlns:xhtml=”http://www.w3.org/1999/xhtml”>
<url>
<loc>http://www.example.com/page-1/</loc>
<xhtml:link rel=”alternate” media=”only screen and (max-width: 640px)”
href=”http://m.example.com/page-1″ />
</url>
</urlset>
利用されるタグと無視されるタグ
Googleでは、サイトマップ上の<priority>と<changefreq>の値を無視します。一方、<lastmod>については正確であることを確認できる場合には利用しています。
サイトマップを作成する
サイトマップを作るには大きく以下の3つの方法があります。どの方法でも問題はありませんが、自分のサイトに必要な情報が漏れなく含まれているかどうかの確認は必要です。
- CMSによる自動作成
- 手動作成
- ツールによる作成
CMSによる自動作成
WordPress、Wix、BloggerなどのCMSを利用している場合にはサイトマップの自動作成ツールがあります。コンテンツを追加するたびに自動的に追記されますので多くの場合には自動作成で問題ありません。
手動作成
表記方法に問題がなければテキストエディタを使うことで手動で作成することが可能です。しかし、表記を間違えてしまうとエラーが起こってしまうことや項目の多さを考えると100を超えるURLを記載することは現実的ではありません。
ツールによる作成
sitemap.xml Editor のようなサイトマップ作成ツールを利用することで自動的に作ることが可能です。アップロードは都度自身で行う必要がありますが、ツールを利用することでエラーや煩雑さがなくなりますのでお勧めです。
サイトマップの送信する
プラグインなどを利用している場合にはサイトマップは自動的に更新されますが、Googleがサイトマップを確認するのは通知された時のみです。そのため、最初に通知して読み込んだ後は変更の通知を送るまで確認されることはありません。
サイトマップを送信するにはいくつか方法がありますが、代表的な方法としては次の2つが挙げられます。
- サーチコンソールのサイトマップレポートを使う
- txtにサイトマップを追記する
サーチコンソールからの送信は手動ですが、robots.txtに記載しておけばrobots.txtがクロールされるたびにサイトマップが確認されますので更新頻度が多い場合に特に有効です。
サイトマップエラー
サーチコンソールのサイトマップレポートではエラーが起きた場合にはどのようなエラーなのかが表示されます。
以下にサイトマップエラーを列挙いたしますが、一般的に自動的に作成した場合にエラーが起きることはありません。手動で作成した場合、動画や画像をサイトマップに含めた場合には起こりやすいためエラーが出た場合には早い段階で修正するようにしましょう。
ただし、「一時的なエラー」だけはユーザーではなくGoogle側のエラーですので時間をおいて再送信することで問題なく送信できるはずです。
- URL にアクセスできません
- クロールが完了できなかった URL
- 空のサイトマップ
- サイトマップのファイルサイズ エラー: サイトマップのサイズが上限を超えています。
- 属性値が無効
- 無効な日付
- タグの値が無効です
- URL が無効です
- サイトマップ インデックス ファイル内の URL が無効: 不完全な URL
- 無効な XML: タグが多すぎます
- XML 属性が指定されていません
- XML タグが指定されていません
- サムネイル URL がありません
- 動画のタイトルがありません
- 解析エラー
- 一時的なエラー
- サイトマップの制限数超過(サイトマップ インデックス ファイル内)
- サイトマップ内の URL の制限数超過
- サポートされていない形式
- パスの不一致: www がない
- パスの不一致: www ががある
- 誤った名前空間
- スペースで始まっています
- HTTP エラー(特定のステータス コード)
- サムネイルが大きすぎる
- サムネイルのサイズが小さすぎる
- 動画の場所と再生ページの場所が同じです
- 動画の場所の URL が再生ページの URL です
- サイトマップには robots.txt によってブロックされている URL が含まれています
動画サイトマップのガイドライン
動画のサイトマップを作成する場合には以下の点に注意してください。
通常のサイトマップに組み込んでもよい
動画だけを記載したサイトマップを作ってもよいですし、通常のサイトマップの中に動画サイトマップを埋め込んでも構いません。
複数の動画をホストできる
1 つのウェブページで複数の動画をホストできます。
ホストページと関係ない動画は含めない
メインテキストとは無関係の動画やページの補足でしかない動画は含めないでください。
必須の値、推奨される値、省略可能な値
動画サイトマップの各エントリには必須の値、推奨される値、省略可能な値があります。特に必須な値がない場合にはエラーになりますのでタグの定義リストを確認の上で記載する必要があります。
最大URL数と最大ファイルサイズ
各サイトマップに記載できるURLは最大50,000件で、ファイルサイズの制限は圧縮していない状態で50 MBです。これらを超える場合にはサイトマップインデックスを送信するようにしてください。
アクセス権限
当然ですが、Googleがすべてのファイルにアクセスできる必要があります。robots.txtでブロックしたり、ログインが必要な場合にはアクセスができませんので解除するようにしてください。
動画サイトマップの例
次の例はGoogleが提供している動画を1 件ホストするページの動画サイトマップの例です。この例にはGoogle が使用するタグがすべて含まれています。
<urlset xmlns=”http://www.sitemaps.org/schemas/sitemap/0.9″
xmlns:video=”http://www.google.com/schemas/sitemap-video/1.1″>
<url>
<loc>http://www.example.com/videos/some_video_landing_page.html</loc>
<video:video>
<video:thumbnail_loc>http://www.example.com/thumbs/123.jpg</video:thumbnail_loc>
<video:title>Grilling steaks for summer</video:title>
<video:description>Alkis shows you how to get perfectly done steaks everytime</video:description><video:content_loc>http://streamserver.example.com/video123.mp4</video:content_loc><video:player_loc>http://www.example.com/videoplayer.php?video=123</video:player_loc><video:duration>600</video:duration><video:expiration_date>2021-11-05T19:20:30+08:00</video:expiration_date><video:rating>4.2</video:rating><video:view_count>12345</video:view_count><video:publication_date>2007-11-05T19:20:30+08:00</video:publication_date><video:family_friendly>yes</video:family_friendly><video:restriction relationship=”allow”>IE GB US CA</video:restriction><video:price currency=”EUR”>1.99</video:price><video:requires_subscription>yes</video:requires_subscription><video:uploader info=”http://www.example.com/users/grillymcgrillerson”>GrillyMcGrillerson</video:uploader><video:live>no</video:live></video:video></url></urlset>
画像サイトマップ
次の例はGoogleが提供している画像サイトマップの例です。
2つの画像を含むページのサイトマップエントリと画像と画像サイトマップのメタデータをすべて含むのエントリを示しています。
<?xml version=”1.0″ encoding=”UTF-8″?>
<urlset xmlns=”http://www.sitemaps.org/schemas/sitemap/0.9″
xmlns:image=”http://www.google.com/schemas/sitemap-image/1.1″><url><loc>http://example.com/sample1.html</loc><image:image><image:loc>http://example.com/image.jpg</image:loc></image:image><image:image><image:loc>http://example.com/photo.jpg</image:loc></image:image></url><url><loc>http://example.com/sample2.html</loc><image:image><image:loc>http://example.com/picture.jpg</image:loc><image:caption>A funny picture of a cat eating cabbage</image:caption><image:geo_location>Lyon, France</image:geo_location><image:title>Cat vs Cabbage</image:title><image:license>http://example.com/image-license</image:license></image:image></url></urlset>
画像サイトマップは動画サイトマップほど複雑ではなく、見ればおおよその意味はわかるはずですが、それぞれの意味を記しておきます。
タグ | タグの意味 |
image:caption | 画像の説明文(キャプション) |
image:geo_location | 画像の地理情報(国名や都市名など) |
image:title | 画像のタイトル |
image:license | 画像のライセンス先のURL |
WordPressでサイトマップを作るには「Google XML Sitemaps」というプラグインが有名ですが、これでは画像サイトマップを作ることはできません。
WordPressで画像サイトマップを作る場合には次のようなプラグインをご利用ください。
- Jetpack
- Udinra All Image Sitemap
なお、Udinra All Image Sitemapの有料版では動画サイトマップも自動で作成することが可能です。動画をメインコンテンツにしている場合にはご検討ください。
robots.txtの概要
robots.txt ファイルとは、検索エンジンのクローラに対してアクセスしてよいURL、アクセスしてはならないURLを伝えるファイルです。
noindexとの違い
混合されがちですが、noindexとは全く違うものですので正しい知識を身に着け、robots.txtとnoindexの両方を使うということのないようにしてください。
robots.txtはアクセスできるかできないかを制御するものであり、noindexはアクセスした上でインデックスさせない(インデックスされている場合は外してもらう)ということを意図しています。
既にインデックスされているファイルのインデックスを消したいためにrobots.txtでアクセスさせないようにして、かつ、noindexするということをするとファイルへの読み込みができないためnoindexであることを確認できず、いつまでもインデックスが残り続ける可能性があります。
robots.txtの使用目的
robots.txtは、クローラのトラフィック管理に使われますが、ファイルを非表示にするために使用されることもよくあります。
大きく次の3つの場合で使い分けられます。
- ウェブページ
- メディアファイル
- リソースファイル
ウェブページ
robots.txtはクローラからのリクエストによってサーバーに負荷が掛かりすぎている場合にクロールトラフィックを管理ために使用できます。他にも重要でないページや類似ページのクロールを回避にも利用されます。
robots.txt ファイルでブロックされている場合、検索結果にブロックされたURLが表示されることはありますが説明は表示されません。
メディアファイル
検索結果に画像、動画、音声ファイルなどが表示されないようにするためにrobots.txtが使われることがあります。
リソースファイル
重要でない画像、スクリプト、スタイルファイルなどのリソースなしにページが読み込まれても重大な影響を受けない場合にはrobots.txtを使用してブロックできます。
ただし、この使い方はブロックしたところで影響がない場合や影響が極めて小さい場合に限ります。ブロックすることで正しい分析ができなくなることを考えるとほとんどの場合で行われることはありません。本当に必要のないリソースファイルであれば削除できないかも含めて検討する余地があります。
robots.txtの制限事項
robots.txtはそもそもアクセスさせないということが可能ですので使い方次第では便利ですが、ブロックしていてもインデックスされることもありますし、ブロックされない検索エンジンもあり得ます。
制限事項があることは理解しておく必要があります。
すべての検索エンジンがrobots.txtに対応するわけではない
Googleのクローラーはrobots.txtを参照しアクセスするかどうかを判断しますが、検索エンジンによってはrobots.txtに影響されない可能性はあります。
どうしても非公開ファイルにしたい場合にはパスワードによる保護など別の方法が必要です。
構文解釈はクローラーにより異なる
多くのクローラーはrobots.txtに従いますが、クローラーによっては解釈が異なる動きをする可能性があります。
robots.txtでブロックしてもインデックスされることはある
robots.txtはアクセスをブロックすることができますが、別ページからのリンクがあることで存在を確認しインデックスに登録する(その結果、検索結果に表示される)可能性があります。
インデックスを防ぎたいのであればnoindexを利用する必要がありますのでrobots.txtと混合しないようにしてください。
robots.txtの作成
robots.txtはテキストエディタがあれば作成可能です。作成においてルールはいくつかありますが、UTF-8エンコードを利用する点は必ず認識しておいてください。
robots.txtの記述ルール
作成の際には以下のルールを守る必要があります。特に記述順序は非常に重要ですので必ず理解してから作成してください。
グループ
各グループの最初にUser-agentを含め、1行につき1つの指示を記載すること。
グループに必要な情報
- グループを適用する対象(ユーザー エージェント)
- そのエージェントによるアクセスを許可するディレクトリやファイル
- そのエージェントによるアクセスを許可しないディレクトリやファイル
処理順序
上から順処理します。順序を書き間違えるとアクセス許可とブロックが反対になることがありますので必ず動作を確認してください。
初期設定
特別な記載がない場合にはブロックされていないページやディレクトリはすべてクロール可能と解釈します。
大文字と小文字
大文字と小文字は明確に区別されます。
たとえば、disallow: /file.asp は https://www.example.com/file.asp に適用されますが、https://www.example.com/FILE.asp には適用されません。
コメント
#で始まる行はコメントと解釈され、無視されます。
robots.txt の例
Googleが挙げている例をいくつか挙げてみます。
すべてブロック
User-agent: *
Disallow: /
特定のディレクトリをブロック
User-agent: *
Disallow: /calend
特定のクローラーのみ許可
User-agent: Googlebot-newsAllow: /
User-agent: *
Disallow: /
特定のクローラーのみブロック
User-agent: Unnecessarybot
Disallow: /
User-agent: *
Allow: /
特定のページのみブロック
User-agent: *
Disallow: /useless_file.html
robots.txtのテストとキャッシュの更新
robots.txtを作成したらサーバーにアップロードするだけで完了ですが、動作確認するためにはrobots.txtテスター をお勧めします。テストが完了したらクローラーが自動的に検出して処理をしますので何もしなくても問題ありません。
自動的に検出と処理がなされますが、早急に更新する必要がある場合にはrobots.txtテスターの「送信」を押すことでクロールをリクエスト可能です。
Googleがサポートするメタタグ
以下はGoogleがサポートしているメタタグです。現在では推奨されていないものや利用機会の少ないものもありますが、ご一読ください。
name=”description”
いわゆる説明文です。検索結果に出てくる文章ですのでSEOを志しているのであれば必ず理解し設置するようにしてください。
name=”robots”
クロールとインデックスを制御するメタタグです。初期設定はindex,followですがnoindexやnofollowまたはその両方にする場合には設定が必要です。
name=”robots”はすべての検索エンジンに対してのメタタグですが、name=”googlebot”はGoogleだけに対するメタタグです。
name=”google”
Googleに対する制御をするメタタグですが、使い方によってはユーザーの利便性を損なう可能性があります。
<meta name=”google” content=”nositelinkssearchbox” />
サイトリンク検索ボックスを表示しないようにするメタタグです。
<meta name=”google” content=”notranslate” />
ページの翻訳版を提供しないようにするメタタグです。
<meta name=”google” content=”nopagereadaloud” />
Googleアシスタントの音声コマンドで読み上げないようにするメタタグです。
name=”google-site-verification”
サーチコンソールの所有権を確認するためのメタタグです。所有権の確認方法は別の方法もありますので必ずしもこの方法を取らなくても構いません。
http-equiv=”Content-Type”
コンテンツタイプと文字セットを定義するメタタグです。<meta charset=”…” >でも代用可能です。
http-equiv=”refresh”
数秒後に新しいURLに転送するメタタグです。転送には301リダイレクトを使うことが望ましく、refreshは望ましくありません。現在ではほとんど見られませんがサポートはされています。
name=”viewport”
モバイルでの表示方法を示すメタタグです。
name=”rating”
アダルトコンテンツを含むことを示すメタタグで、セーフサーチの検索結果から除外されるよう指示することができます。
noindexによるインデックスブロック
ページを検索結果に表示されないようにするには2つの方法があります。どちらも同じ効果ですのでサイトに合った方法を選んでください。
<meta> タグによるnoindex
次のどちらかのメタタグを使ってnoindexであることを宣言してください。
- <meta name=”robots” content=”noindex”>
- <meta name=”googlebot” content=”noindex”>
多くの場合は前者を使いすべての検索エンジンに対してnoindexにしますが、Googleだけに限定したい場合には後者を使うこともできます。
HTTPレスポンスヘッダーによるnoindex
HTTPレスポンスヘッダーに次のように記述してください。
HTTP/1.1 200 OK
(…)
X-Robots-Tag: noindex
(…)
Apacheの場合には.htaccessに記述することで対応可能です。
クローラーの管理
検索エンジンによるWEB集客を行う場合にはコンテンツのクロールとインデックス登録が必須です。ここでは検索エンジンのクローラーを管理する方法について解説いたします。
URLクロールのリクエスト
サイトに新規ページを作った場合や更新した場合にURLのクロールをリクエストすることができます。
ただし、URLのクロールをリクエストをしなくても検索エンジンは自動的にクロールとインデックスを行いますので新規ページの作成や更新をするたびにリクエストを送る必要はありません。もしもリクエストが常態化しているようであれば運用を見直すことをお勧めいたします。
クロールのリクエストについてのガイドライン
- リクエストを送ってもすぐにクロールされるとは限りません(数日~数週間かかる場合があります。)
- リクエストの送信数には上限があります。
- 何度リクエストしても、早くクロールされることはありません。
URL検査ツールを使ったリクエスト
リクエストはサーチコンソールのURL検査ツールを用いて送ることが可能です。URLを入力した後、「インデックス登録をリクエスト」 をクリックすることで送信可できます。
サイトマップによるリクエスト
URL検査ツールによる送信数は制限されています。そのため、リクエストを送りたいURLが多い場合にはサイトマップを読み込ませることでリクエストを送ることが可能です。
サーチコンソールからサイトマップを送信するか、robots.txtにサイトマップを記載して際クロールを促すことが可能です。
クロール頻度を下げる方法
一般にクロール頻度が多い方がインデックスが早まります。そのため、クロール頻度を下げる申請をすることは通常は行いません。サーバーへの負荷が大きすぎる場合になどに限って行うようにしてください。
※クロール頻度を下げると新規ページのインデックスが遅くなったり、削除ページが検索結果から消えるまでに長い時間がかかったりすることがあります。
サーチコンソールを使う方法
Googlebotのクロール頻度を変更するにはサーチコンソールのクロール頻度設定ページ を使うことで対応できます。サイトに対する悪影響が出る可能性があることは十分に理解した上で設定してください。
ステータスコードを利用する方法
1日~2日間のような短期間で緊急でクロール頻度を下げる必要がある場合にはステータスコード500、503、429のいずれかを返すようにしてください。これはGooglebotには500、503、429のステータスコードを検出するとクロール頻度を下げるようになっているためです。
この手法を取った後にエラーを解消すればクロール頻度は自動的に回復しますが、短期間で終わらない場合にはインデックスから削除する危険性があります。長期間にわたる場合にはこの手法は取らないようにしてください。
コンテンツの制限と削除
サイトの Google と共有する情報と検索結果に表示される情報を管理します。いくつかの理由によって、特定のコンテンツを Google と共有しないように設定することがあります。
制限する理由
通常はコンテンツはクロールしてインデックスしてもらうことに注力しますが、状況次第ではコンテンツを制限する必要も出てきます。
コンテンツを制限する理由としては以下のようなものが考えられます。
- データを非公開にするため
- 価値の低いコンテンツを非表示にするため
- 重要なコンテンツに注目できるようにするため
サイトに非公開データがあれば制限する必要がありますし、価値の低いコンテンツや重複になる可能性があるコンテンツがある場合には制限することでユーザビリティが向上したり、ランキングが上がったりする可能性があります。
また、大規模サイトであればGoogleに重要度の高いページをクロールさせるために重要度の低いページを制限することがあります。
コンテンツをブロックする方法
コンテンツをブロックするには以下のような方法が挙げられます。
- コンテンツの削除
- パスワードによる保護
- txt
- noindex
- nosnipet
- URLパラメータの利用
コンテンツを削除したり、パスワードによる保護をしてブロックする方法は代表的な方法です。robots.txtによるアクセス制限をする方法もありますが、インデックスされる可能性があることは覚えておいてください。
それ以外の方法としてはメタタグによりnoindexにして検索結果から削除する方法やnosnipetにして検索結果のスニペットを削除する方法があります。どちらも通常は必要ない方法ですが、コンテンツを制限するためには使われる手法です。
また、特殊な方法ではURLパラメータを付けて特定のパラメータがつくURLをブロックする方法が挙げられます。
コンテンツの削除
コンテンツの削除には一時的な削除、完全削除、画像の削除があります。
一時的に削除する
サーチコンソールのURL削除ツール を利用することで検索結果から迅速に削除することが可能になります。ただし、URL削除ツールによる削除は6か月間という制限がありますので一時的です。
コンテンツを完全に削除する場合にはあ次の手法を行ってください。
完全に削除する
- ページの削除
- パスワードによる保護
- noindex
ページの削除を行えば読み込むページがなくなりますのでインデックスから削除されます。パスワードで保護されたページも同様です。noindexの場合にはクロールされた後にGoogleの処理後に削除が行われます。
画像を検索結果から削除する
画像を画像検索結果から削除する場合、noindexなどの手法は使えません。ファイルはサーバーから削除すべきですが、robots.txtを使って次のように削除することが可能です。
特定の画像を除外する例
User-agent: Googlebot-Image
Disallow: /images/dogs.jpg
画像すべてを除外する例
User-agent: Googlebot-Image
Disallow: /
GIF画像のみを除外する例
User-agent: Googlebot-Image
Disallow: /*.gif$
重複したページの統合
サイトが大きくなってくると様々な理由で重複したページが出てくることがあり、この場合には検索エンジンには正規化ページを伝達する必要があります。
重複ページが出てくる理由
重複ページが出てこないようにサイト設計を行いコンテンツを配信することが望ましいですが、大型サイトになるとさまざまな理由により重複するページが存在するようになります。
以下は重複ページが出てくる代表的な要因です。
- さまざまなデバイスに対応するため
- 動的URLを有効にするため
- 複数のセクションに同じ投稿を配置したため
- wwwのありなしやhttpとhttpsのバージョン違い
- シンジケーション用に提供したコンテンツが他サイトで複製されたため
デスクトップ用とモバイル用、さらにはAMP用にページを作ることで重複してしまったり、パラメータを用いることで同じページのURLが複数発行されたりすることはよく起こり得ます。
それ以外にも大型サイトであれば複数のセクションに同じ投稿を行うということがありますし、正規化が正しくされていない場合などにも起こり得ます。
メディアサイトではシンジケーション用に作ったコンテンツが重複になるということもあります。
正規ページの指定方法
正規ページの伝達になるとcanonicalが一般的ですが、それ以外にも指定方法はあります。以下の方法を試して正規化することで評価の分散を防ぐことができるようになります。
- canonicalによる正規化
- サイトマップによる正規ページの指定
- 301リダイレクトによる重複の排除
- AMPガイドラインに則った運用
まとめ
検索エンジンのクロールとインデックスの多くはサイトマップ、robots.txt、メタタグで制御可能です。SEOの初動はクロールから始まりますので最初に見ておくことですし、まだ見ていないのであれば見直すことをお勧めします。
特にサイトマップは重要で、誤って設置することでインデックスが遅くなる可能性が高く、画像や動画サイトマップを用いることで流入増が見込めます。リッチで大型なサイトを作るほどサイトマップは重要になっていますが、小規模サイトでは必要なかったりと誤解が多くあるのも事実。
2021年からはGoogleはクロールとインデックスの方法を改めた節がありますので、この機に見直してみてください。