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

※本サイトにはプロモーション・広告が含まれています。

(最終更新月: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 cr...

筆者プロフィール

筆者プロフィールアイコン

【現職】プロダクトマネージャー

【副業】ブログ(月間20万PV)/YouTube/Web・アプリ制作

「プログラミング × ライティング × 営業」の経験を活かし、30後半からのIT系職へシフト。現在はプロダクトマネージャーとして、さまざまな関係者の間に入り奮闘してます。当サイトでは、実際に手を動かせるWebアプリの開発を通じて、プログラミングはもちろん、IT職に必要な情報を提供していきます。

【当ブログで紹介しているサイト】

当サイトチュートリアルで作成したデモ版日報アプリ

Django × Reactで開発したツール系Webアプリ

✔人に見せても恥ずかしくないコードを書こう

「リーダブルコード」は、わかりやすく良いコードの定義を教えてくれる本です。

  • 見るからにきれいなコードの書き方
  • コードの分割方法
  • 変数や関数の命名規則

エンジニアのスタンダートとすべき基準を一から解説しています。

何回も読むのに値する本なので、ぜひ手にとって読んでみてください。

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. サイトモデルクラスへ自身のサイトを登録する

となります

覚えておきましょう!

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

タイトルとURLをコピーしました