Table of Contents
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を押します。
するとgoogle*****.htmlというファイルをダウンロードして自分のサイトのトップにアップロードせよ、と言ってきます。
もちろん、言われたとおりにします。私の場合はPelicanという静的サイトジェネレーターを使っているので、参考にならないかもしれませんが、その手順を書くと、
- <blog folder>/output/にgoogle****.htmlファイルを置く
- 以下を実行して変更をプッシュする
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を選びます。
次の画面でEnter sitemap URLとあるところに、sitemap.xmlと入れてsubmitすると、Status: Successと出て、googleが当サイトの構造を認識してくれたようです。
3. 終わりに
先ほど登録したばかりなので、まだ何の効果があったのかわかりません。いや、まだ無いはず。のんびりと待つことにします。