【Django】サイトマップ作成の4ステップ|初心者向け

Django

(最終更新月:2021年10月)

せっかくWebアプリを作ったのに誰にも気づかれない!

公開したWebアプリをもっとたくさんの人に知ってもらいたい!

という方に向けての記事となります

サイトマップを作成すると、Googleの検索エンジン等がページを特定するのがカンタンになり、検索で表示されやすくなります

当記事では、

  • Djangoでサイトマップを作成する方法

について解説していきます

サイトマップを作成するとこんな感じになります

https://itc-app.site/sitemap.xml

Djangoにはサイトマップ作成用のツールが用意されてますので、使い方をご説明していきます

サイトマップって何?」という方はこちら(sitemaps.org)をご覧ください

sitemaps.org - ホーム
The Sitemaps protocol enables webmasters to information earch engine about pages on their site that are available for crawling.

main > base.py

ローカル環境で試す場合は、local.pyで行いましょう(通常でいうsettings.pyのことです)

INSTALLED_APPに下記の2つを追加します

INSTALLED_APPS = [
    'django.contrib.sites”,#既にインストールしている人は不要
    "django.contrib.sitemaps',
]

sitesをインストールしていない方は

SITE_ID = 1

も入れましょう

main > sitemaps.py

from django.contrib.sitemaps import Sitemap
from django.urls import reverse_lazy
from nippo.models import NippoModel

class NippoModelSitemap(Sitemap):
    changefreq = "daily"
    priority = 0.8

    def items(self):
        return NippoModel.objects.filter(public=True)

    def location(self, obj):
        return reverse_lazy('nippo-detail', kwargs={"slug":obj.slug})

    def lastmod(self, obj):
        return obj.timestamp

class StaticViewSitemap(Sitemap):
    changefreq = "daily"
    priority = 0.5

    def items(self):
        return ["nippo-list"]

    def location(self, item):
        return reverse_lazy(item)

サイトマップに載せるページは下記の2種類です

  • URLが一定のリストビュー
  • 随時追加されていく日報の詳細ページ

それぞれのクラスを作成しています

main > urls.py

#...
from django.contrib.sitemaps.views import sitemap
#...

from .sitemaps import (
    NippoModelSitemap,
    StaticViewSitemap,
)

sitemaps = {
    'nippo': NippoModelSitemap,
    'static': StaticViewSitemap
}

urlpatterns = [
#  ...,
    path('sitemap.xml', sitemap, {'sitemaps': sitemaps}, name='sitemaps')
]

#...

アクセス先は、

ドメイン名/sitemap.xml

となります

仕上げ

settings.pyに変更を加えましたのでマイグレートを実行しましょう

python manage.py migrate

エラーが出なければ、そのままアドミンページへ進みましょう!

サイトが出てれば設定は成功です

このままドメインをサイトに登録しましょう!

ご自身のドメインと表示名を入力したら保存で完了です!

まとめ

サイトマップにより、Google検索エンジン等が新しいページを特定するのを手助けできます

検索エンジンが見つけやすいページというのは検索に引っかかる可能性が上がります

サイトマップの作成方法は、

  1. django.contrib.sitemapsをインストール
  2. Sitemapクラスを作成
  3. urls.pyでサイトマップをアクセス可能にする
  4. サイトモデルクラスへ自身のサイトを登録する

となります

覚えておきましょう!

さて、サイトマップの作成もすみましたので、次回の記事ではサーチコンソールに登録する方法を解説していきます

当ブログでは、日報アプリ開発を通じて、Webアプリを一から開発し公開するまでを初学者の方でもわかるようにと記事を連載しています

「Djangoでのアプリ開発を学びたい!」
「Djangoで開発したアプリをWebで公開するにはどうするの?」

という方は必見です!

【Django】チュートリアル|日報アプリの開発から公開まで
Djangoのチュートリアルをお探しですか?具体的に「手を動かして作ってみたい!」という方へ向けて、誰でもできる簡易的な日報アプリの開発を通じて、Djangoの様々な機能に触れていくシリーズとなっています。PythonでWebアプリを作りたい方、必見の記事となります!
タイトルとURLをコピーしました