Cronでsitemapを定期更新

Cronでsitemapを定期更新

Cronでsitemapを定期更新

Cronでsitemapを定期更新

Djangoのサイトが完成したら、グーグルへ、サイトマップを送ってみましょう。
サイトマップを送ることで、クローラーの仕事が捗り、サイトがインデックスされやすくなります。

さらに、手間を省くために、cronを利用してsitemapをgoogleへ定期送信できるところまで設定します。

スポンサーさん

環境

Django 2.0 以上
sitemap.xmlが作成できている状態

sitemapを送る

djangoのサイトが完成したら、グーグルへ、サイトマップを送りましょう。
サイトマップを送ることで、クローラーの仕事が捗り、サイトがインデックスされやすくなります。

settings

プロジェクトの settings.pyファイルを開き、INSTALLED_APPSの項目に、django.contrib.sitesdjango.contrib.sitemapsを加えましょう。

INSTALLED_APPS = [
~~~
'django.contrib.sites', #追加
'django.contrib.sitemaps', #追加
~~~
 ]

sitemaps app 動作確認

sitemaps appが動いているか確認しましょう。

manage.pyのファイルのあるディレクトリに移動します。
以下のコマンドを打ちます。

python ./manage.py

すると
Available subcommands:

[auth]
changepassword
createsuperuser

[contenttypes]
remove_stale_contenttypes

[django]
check
compilemessages
createcachetable
dbshell
diffsettings
dumpdata
flush
inspectdb
loaddata
makemessages
makemigrations
migrate
sendtestemail
shell
showmigrations
sqlflush
sqlmigrate
sqlsequencereset
squashmigrations
startapp
startproject
test
testserver

[sessions]
clearsessions

[sitemaps]

ping_google



[staticfiles]
collectstatic
findstatic
runserver


なにやら、赤字で、以下のコマンドが追加されているのがわかりますね。

ping_google


ping_google

django.contrib.sitemaps が有効になっているので、manage.py のサブコマンドである ping_google が表示されていますね。
それでは、実際に以下のコマンドを打ちましょう。
python manage.py ping_google /sitemap.xml
これによって、コマンドを打って、グーグルへサイトマップが送信できるようになりました。

cron 自動化

サイトマップが送れるようになったので、次はCronで自動化していきましょう。
Cronの設定は、2段階です。

.shファイルに実行したい処理を記述する。
.shファイルを定められた時間に実行するように Crontab に記述する。

以下のコマンドで crontab を開きましょう。
crontab -e
vim の画面になりますので、以下のように記述します。
30 0 * * * path/to/yourscriptfile

スポンサーさん