sitemapとrobots.txt

Sitemap:

https://ichinosenanami.com/tec/2021/01/29/post-276/

sitemap.xml Editorで「指定したURLにアクセスできませんでした。」とエラーがでる

URLはちゃんと「/」で終わっているのですが。。。

試しに、このブログ 「https://ichinosenanami.com/tec/」を指定しても同じエラー。

どうやらレンタルサーバーロリポップ側がアクセスを拒否しているようです・・・。

ロリポップに確認したわけではないのですが、こうなってはどんなにがんばっても無理そうなので、別のツールで作成しました。

https://www.xml-sitemaps.com/

https://www.allegro-inc.com/search-times/xml-sitemap/#xml%E3%82%B5%E3%82%A4%E3%83%88%E3%83%9E%E3%83%83%E3%83%97%E3%81%AB%E3%81%AF%E3%81%A9%E3%81%AE%E3%82%88%E3%81%86%E3%81%AA%E5%8A%B9%E6%9E%9C%E3%81%8C%E3%81%82%E3%82%8B

robots.txt

XMLサイトマップの場所をクローラーに伝えます。
GOOGLEに関しては、SEARCH CONSOLEでXMLサイトマップを登録していれば不要ですが、他の検索エンジンもあるので記述した方が良いでしょう。

User-Agent: *
Allow:
Sitemap: https://miyagi-koumuten.com/sitemap.xml

.htacsess リダイレクト サンエツ

サンエツ

この方法で合っているかわからんが、とりあえずリダイレクト設定をした。すでにインデックスされている旧ページで克つ、不要なページは関連する新ページにリダイレクトさせた。茶谷さんがwordpressで作った旧サイトとカートシステムはサーバーからは削除しない事。

/wp
/shop

 

リダイレクト参照ページ

特にこの箇所

ディレクトリ単位のリダイレクト

「old」ディレクトリにアクセスがあった際、「new」ディレクトリに転送をかけたい場合の記述です。

ディレクトリ以下にファイルがある場合は、newでもファイルを置いておかないと404エラーになってしまいます。


RewriteEngine on
RewriteRule ^old(.*)$ /new$1 [L,R=301] 

 

今回の作業のポイント

・httpにアクセスがあってもhttpsにリダイレクト


・茶谷さんが作ったページでインデックスされちゃっているディレクトリを新ページへリダイレクト

・外部サイトのカラミーへのリダイレクト

・茶谷さんが作ったカートシステムの/shop の中にも.htaccessを別個にそれ用として設置
※.htaccessは階層がちがえばたとえ上部階層に.htaccessがあっても同じディレクトリに入っている.htaccessを参照する。

.本当は不要な記述かもしれないけど茶谷さんが作っているwordpressコンテンツに悪さしないようにwordpress関連の.htaccess記述はそのままにする。

編集ファイルは /リダイレクト用/サイトチェンジ後 にある。

ルート直下に.htacess設置↓

AddHandler application/x-httpd-php53 .php

RewriteEngine On

httpsにリダイレクトさせる 。ブリカマはhttpのままだがこの設定でも大丈夫↓
# http->https Redirect 
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

# Main RewriteRule for multidomain. httpをhttpsと変更させる
RewriteCond %{HTTP_HOST} ^(sanetsu.com)
RewriteCond %{REQUEST_URI} !^/(sanetsu.com)/
RewriteRule ^(.*)$ https://www.sanetsu.com/$1 [L]

# Redirect 各コンテンツのリダイレクト設定

# Redirect
RewriteRule ^gift(.*)$ /goods$1 [L,R=301]
RewriteRule ^showroom(.*)$ /tenpo$1 [L,R=301]
RewriteRule ^contact(.*)$ /inquiry$1 [L,R=301]
RewriteRule ^policy(.*)$ /privacy$1 [L,R=301]
RewriteRule ^goodslabo/scene(.*)$ /index.html$1 [L,R=301]
RewriteRule ^goodslabo(.*)$ /index.html$1 [L,R=301]
RewriteRule ^online(.*)$ https://sanetsu.shop-pro.jp [L,R=301]
RewriteRule ^category/news(.*)$ /sanetsu-information/category/news$1 [L,R=301]
RewriteRule ^category/blog(.*)$ /sanetsu-information/category/blog$1 [L,R=301]
RewriteRule ^category/press(.*)$ /sanetsu-information/category/press$1 [L,R=301]
RewriteRule ^category/giftitem/gift(.*)$ /sanetsu-information/category/giftitem/gift$1 [L,R=301]
RewriteRule ^shop(.*)$ https://sanetsu.shop-pro.jp [R=301,L]
RewriteRule ^goodsitem(.*)$ /index.html$1 [L,R=301]
RewriteRule ^giftitem(.*)$ /index.html$1 [L,R=301]
RewriteRule ^news(.*)$ /sanetsu-information/category/news$1 [L,R=301]

ErrorDocument 404 https://www.sanetsu.com

# Main RewriteRule for multidomain. ブリカマはSSLしないのでそのまま変更なし↓
RewriteCond %{HTTP_HOST} ^(www.burikama.com)
RewriteCond %{REQUEST_URI} !^/(www.burikama.com)/
RewriteRule ^(.*)$ /%{HTTP_HOST}/$1/ [L]

# Main RewriteRule for multidomain.
RewriteCond %{HTTP_HOST} ^(burikama.com)
RewriteCond %{REQUEST_URI} !^/(burikama.com)/
RewriteRule ^(.*)$ http://www.burikama.com/$1 [L]

# BEGIN WordPress 一応残しておく↓
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ – [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress

 

shop (茶谷さんカート)下に.htaccess設置↓

RewriteEngine On

RewriteRule gift.php$ https://www.sanetsu.com/goods/index.html
RewriteRule ^(.*)$ https://sanetsu.shop-pro.jp/

[R=301,L]

 

 

 

旧ページのいらない物をgoogleインデックスから削除するためにインデックス削除申請。

 

 

 

不要なページをクローラーされないようにrobots.txtをアップ

User-agent:*
Disallow: /giftlabo/
Disallow: /shop/
Disallow: /wp/
Disallow: /giftitem/
Disallow: /goodsitem/

 

robots.txt

https://bazubu.com/robots-txt-16678.html

 

robots.txtの書き方

robots.txtの基本の型は以下の通りだ。

User-Agent:*
Disallow:

Sitemap:http://example.com/sitemap.xml

また、各項目の簡単な役割説明は以下となる。

命令 説明
User-agent 命令を与えるクローラーを「ユーザーエージェント」を使って指定する
Disallow クロールをブロックするディレクトリやページを記入する
Allow クロールを許可するディレクトリやページを記入する(基本的に使用しない)
Sitemap sitemap.xmlのURLを記入する事で、sitemapの場所をクローラーに知らせる

では実際に、各項目の詳しい書き方を見ていこう。

User-Agent

この項目は「どのクローラーの動きを制御するか」を指定するものだ。
基本的には、全てのクローラーへの指示を表す「*」と記入しておけば問題ない。

より細かい設定を行いたい場合は、以下のサイトを参考にしよう。

Googleのクローラー一覧:「Googleのクローラ(ユーザーエージェント)
その他クローラー一覧:「クローラ(ロボット)のユーザーエージェント(UA)一覧

Disallow

この項目は、クローラーのアクセスを制御するページを指定するものだ。

パターンが多いので順番に紹介していく。

  • サイト全体のブロック:スラッシュのみ

Disallow: /

  • 特定のディレクトリとその中身を全てブロック:ディレクトリ名の後にスラッシュを入力

Disallow: /junk-directory/

  • 特定のページをブロック:ブロックしたいページを指定

Disallow: /private_file.html

  • 特定のファイル形式(例:.gifファイル)をブロック:以下の記法で指定

Disallow: /*.gif$

  • 特定の文字列(例:?)を含む全てのURLをブロック:以下の記法で指定

Disallow: /*?

より豊富な実例はGoogleが提供するこちらのページ内で解説されている。(robots.txtファイルを作成する)

Allow

この項目はクロールを許可するページを指定するものため、使う事は少ない。

使うケースとしては「クロールを制御しているディレクトリ下の特定のページだけはクローラーが回るようにしたい場合」だ。

例えば「http://example.com/sample」下の全ページをブロックするが、例外として「http://example.com/sample/important.html」のみクロールを許可したいという場合は、以下のように記述する。(AllowはDisallowよりも優先される。)

Disallow:/sample/
Allow:/sample/important.html

Sitemap

この項目にサイトマップのURLを記載する事で、クローラーがサイトマップにアクセスしやすくなる。

サイトのクローラビリティに繋がるので必ず記載しておこう。(記載は以下のように絶対パスで行う。)

Sitemap : https://samplle.com/sitemap.xml

robots.txt

http://www.asahi-net.or.jp/~ax2s-kmtn/ref/robots.html

http://www.seotemplate.biz/free-seo/2107/

特定のディレクトリやページを指定して拒否

User-agent: *
Disallow: /seo/
Disallow: /123456.html

特定のディレクトリやURLを指定してクロールを拒否する場合にはこのような記述になります。

拒否したディレクトリ内の特定のディレクトリのみ許可する

User-agent: *
Disallow: /seo/
Allow: /seo/tips

これでseoディレクトリは拒否されて、seoディレクトリ内のtipsディレクトリのみ許可することになります。

 

https://www.suzukikenichi.com/blog/how-to-create-robotstxt/

 

User-Agent: *
Disallow: /

最初の「User-Agent」は、クローラの指定です。
「*(アスタリスク、ワイルドカード)」は、すべてのクローラを表します。

Googleのクローラは「googlebot」、Yahoo!のクローラは「Slurp」、MSN Live Searchのクローラは「msnbot」で指定できます。

「Disallow」は、「アクセス拒否」を表します。
アクセスを許可するときは、「Allow」ですが、Disallowの記述がなければアクセスするので、わざわざAllowを指定する必要はありません。

Disallow(Allow)の後に続くのは、アクセスを制御するディレクトリまたはファイルです。

例の「/(スラッシュ)」は「ルートディレクトリ」を表します。

「ルートディレクトリ」とは、いちばん上の階層のフォルダです。
ディレクトリを指定すると、その中にあるすべてのファイルと、サブディレクトリがあるときはサブディレクトリの中のすべてのファイルがアクセス制御対象になります。

「/secrets/」とすると、ルートディレクトリの中にある「secrets」というディレクトリの中のファイルをアクセス制御できます。

「/onlyyou/himitsu.html」とすると、ルートディレクトリの中にある「onlyyou」というサブディレクトリの中の「himitsu.html」というファイルへのアクセスを制御できます。

以上を踏まえて、サンプルのrobots.txtを解釈してみましょう。

User-Agent: *
Disallow: /

「すべてのクローラ(User-Agent: *)は、ルートディレクトリ配下の全てのファイル(/)に、アクセスしてはいけません(Disallow)」という意味になります。

つまり、インデックスの完全拒否ですね。

別のサンプルです。

User-Agent: *
Disallow: /secrets/

すべてのクローラは、「secrets」フォルダのすべてのファイルにアクセスしてはいけません、という命令になります。

「secrets」フォルダはURLで表すと、「http://www.sample.com/secrets/」になります。

「http://www.sample.com/secrets/noaccess/」にアクセスさせたくなければ、

User-Agent: *
Disallow: /secrets/noaccess/

になります。

ルートディレクトリの直下にある「secrets」フォルダの中の「ihateyahoo.html」ファイルを、Yahoo!の検索結果にだけ表示させたくなければ、次のようになります。

User-Agent: Slurp
Disallow: /secrets/ihateyahoo.html

 

 

 

4−1.robots.txtは絶対に必要か

サイト内の全てのページにクローラーを巡回させたい場合はrobots.txtはなくても良い。しかし、Matt Cuttsはその場合でも、robots.txtがあった方が1%程度は有利だと答えている。

Allow:

基本的には使わないが、もしクロールを制御しているディレクトリ下の特定のページだけはクローラーが回るようにしたい場合に使う。例えば、「http://example.com/sample」はブロックするが「http://example.com/sample/important.html」はクロールを許可したいという場合だ。

その場合は以下のように記述すれば良い。(AllowはDisallowよりも優先される。)

Disallow:/sample/
Allow:/sample/important.html

Sitemap:

robots.txtにSitemap:を明記することはGoogleがサポートしている。記述しておくとSitemapを積極的に読むようになってくれるので必ず記載しておこう。

3−2−4.サーバーに設置する前に確認しよう

 

 

フィールド名 定義
User-agent このフィールドの値には、対象となるロボット名を記述します。
値としてアスタリスク(*)を記述すると、全てのロボットを対象とします。
Disallow このフィールドの値には、ロボットに訪問させたくないURLを記述します。記述した値で始まるURLが対象となります。
値はフルパス名でも部分パス名でもかまいません。例えば「Disallow: /search」と記述すると「/search.html」や「/search/index.html」などを排除しますが、「Disallow: /search/」と最後にスラッシュを付けて記述すると「/search/index.html」は排除しますが「/search.html」は排除しません。
値を記述せずに「Disallow:」のみを記述した場合は、全てのURLに対して訪問を許します。