Daydreaming in Brookline, MA

Google Search Consoleに当ブログを登録する

1 はじめに

ブログは作りましたが、検索エンジンがまだ私のブログの存在を認識していないので、訪問者数は自分を除くとゼロの記録を更新中です。とても寂しいので、いつもお世話になっているgoogleに認識していただくことにしました。それでも3ヶ月〜半年くらいは寂しい状況が続くようですが。。。

今回は短い単発ネタな上に、pelicanサイトジェネレーター + github pagesでブログを公開している私の環境を前提に書いているので、ほとんど参考にならないかもしれません。まあ、訪問者数ゼロなので実害は無いでしょうか。

2 Google Search Console

何はともあれ、"google search console"をgoogleで検索して(ここからです 笑)、サイトに行ってみます。

https://search.google.com/search-console/welcome

2.1 サイトを登録する

お持ちのgoogleアカウントでログインしている場合、以下のような画面が出るので、右側の入力欄に自分のサイトのURLを入れてcontinueを押します。

gsctop.png

するとgoogle*****.htmlというファイルをダウンロードして自分のサイトのトップにアップロードせよ、と言ってきます。

gschtml.png

もちろん、言われたとおりにします。私の場合はPelicanという静的サイトジェネレーターを使っているので、参考にならないかもしれませんが、その手順を書くと、

  1. <blog folder>/output/にgoogle****.htmlファイルを置く
  2. 以下を実行して変更をプッシュする
ghp-import output
git push https://github.com/achiwa912/achiwa912.github.io.git gh-pages:master

無事にgoogle****.htmlファイルがプッシュされた気がします。

そして、先ほどの画面でverifyをクリックすると、googleが私のサイトを認識してくれました。

2.2 サイトマップを登録する

なんだか、いろいろググっていると、google search consoleに登録しただけでは駄目で、更にsitemapなるものを用意しないといけないようです。これがあると、googleのcrawlerが優先的に見に来てくれるという噂です。取りこぼしが無いように、サイトの構造を教えているだけな気もしますが。。。

Pelicanには簡単にsitemapを出力できるプラグインが用意されています。以下のようにpalicanconf.pyを変更するだけなのですが、SITEURL変数を設定するとローカルでの作業時にリンクがgithub.ioを見に行ってしまうという副作用が出てしまいました。

逆にSITEURLを設定しないと、生成されるsitemap.xmlのURLが相対アドレスになってしまい、google search consoleが読めずにエラーとなってしまいます。

PLUGINS = ['org_reader', 'sitemap']
SITEMAP = {
    'format': 'xml',
    'priorities': {
	'articles': 1,
	'indexes': 0.5,
	'pages': 0.5,
    },
    'changefreqs': {
	'articles': 'always',
	'indexes': 'hourly',
	'pages': 'monthly'
    }
}
SITEURL = 'https://achiwa912.github.io'

そこで解決策を1時間ほどググって、ようやく以下のページを見つけました。解決策を提示くださって、どうもありがとうございます。

pelicanでのSitemap.xmlの生成方法 https://github.com/getpelican/pelican/wiki/Tips-n-Tricks#generate-sitemapxml

まずは、使用しているテーマのtemplatesディレクトリにsitemap.htmlとして以下のファイルを作成します。私の環境では: themes/pelican-octopress-theme-master/templates/sitemap.html

<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">

{% for article in articles %}
  <url>
    <loc>{{ ROOTURL }}/{{ article.url }}</loc>
    <priority>0.8</priority>
  </url>

  {% for translation in article.translations %}
  <url>
    <loc>{{ ROOTURL }}/{{ translation.url }}</loc>
    <priority>0.8</priority>
  </url>
  {% endfor %}
{% endfor %}

{% for page in pages %}
  <url>
    <loc>{{ ROOTURL }}/{{ page.url }}</loc>
    <priority>1.0</priority>
  </url>

  {% for translation in page.translations %}
  <url>
    <loc>{{ ROOTURL }}/{{ translation.url }}</loc>
    <priority>1.0</priority>
  </url>
  {% endfor %}
{% endfor %}

</urlset>

そして、以下をpelicanconf.pyに追記します。

ROOTURL = 'https://achiwa912.github.io'
DIRECT_TEMPLATES = ('index', 'tags', 'categories', 'archives', 'sitemap')
SITEMAP_SAVE_AS = 'sitemap.xml'

pelicanコマンドでmakeして確認したところ、ちゃんとsitemap.xml内のURLは正しく設定されているようです。<loc>の行に注目。

<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">

  <url>
    <loc>https://achiwa912.github.io/googlesc.html</loc>
    <priority>0.8</priority>
  </url>
snip

ローカルでの作業時に、リンクはきちんとローカルのページに飛びます。うまく行きました。

これで先ほどと同じようにgithub pagesのサイトにプッシュします。

ghp-import output
git push https://github.com/achiwa912/achiwa912.github.io.git gh-pages:master

最後にgoogle search consoleに登録します。 google search consoleの左上にある、3本横線のメニューアイコンをクリックし、sitemapsを選びます。

gscmenu.png

次の画面でEnter sitemap URLとあるところに、sitemap.xmlと入れてsubmitすると、Status: Successと出て、googleが当サイトの構造を認識してくれたようです。

gscsitemap.png

3 終わりに

先ほど登録したばかりなので、まだ何の効果があったのかわかりません。いや、まだ無いはず。のんびりと待つことにします。

Tech Tech