sitemap django seo   0   5575
How to create sitemap of Django website

A site map is a list of a website's content designed to help both users and search engines navigate the site.

A site map can be a hierarchical list of pages, an organization chart, or an XML document that provides instructions to search engine crawl bots.


Why sitemaps are required:

XML Sitemaps are important for SEO because they make it easier for Google to find your site's pages—this is important because Google ranks web PAGES, not just websites. There is no downside of having an XML Sitemap and having one can improve your SEO, so we highly recommend them.


Example:

The sitemap for this blog can be found at http://thepythondjango.com/sitemap_index.xml . 

creating sitemap of dynamic urls in your django application


Steps to add Sitemaps to your Django Application:

Add 'django.contrib.sitemaps' to the list of installed apps in settings.py file.

Create a file sitemap.py in your app.

Create two different classes in sitemap.py file, one for static pages and another for Dynamic URLs.

Let's assume your website sell some product where product details are stored in the database. Once a new product is added to the database, you want that product page to be searchable by search engines. We need to add all such product pages/URLs to sitemaps.


Static Sitemap:

Define a class StaticSitemap in your sitemap.py file. Define the mandatory function items in it which will return the list of objects.

These objects will be passed to the location method which will create URL from these objects. 

from django.contrib.sitemaps import Sitemap
from django.core.urlresolvers import reverse

class StaticSitemap(Sitemap):

    def items(self):
        return [
            'myapp:terms_and_conditions',
            'myapp:contact_us',
            'myapp:about_us'
        ]

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


Here in items function, we are returning appname:url_name which will be used by the location method to convert into an absolute URL.

Refer you app's urls.py file for URL names.


Dynamic Sitemap:

Similarly, we will create Dynamic sitemap by fetching values from DB. 

from mystore.models import ProductDetailsModel


class ProductSitemap(Sitemap):

    def items(self):
        return ProductDetailsModel.objects.all()

    def location(self, item):
        return reverse('myapp:product', args=[item.product_id])


Here we are getting all products from the database and generating URLs like http:example.com/product/12.



Adding sitemaps in URLconf:

Now add these sitemap class in URLconf. Edit the project's urls.py  file and add below code in it.

from mystore.sitemap import  StaticSitemap, ProductSitemap
from django.contrib.sitemaps.views import sitemap


sitemaps = {
 'pages': StaticSitemap,
 'products': ProductSitemap,
}

urlpatterns += [
    url(r'^sitemap.xml$', sitemap, {'sitemaps': sitemaps})
]

 

Now reload your server and go to localhost:8000/sitemap.xml and you will be able to see your sitemap there.  


Reference : 
https://docs.djangoproject.com/en/2.0/ref/contrib/sitemaps/   

Host your Django App for Free.

sitemap django seo   0   5575
0 comments on 'How To Create Sitemap Of Django Website'
Login to comment


Related Articles:
Creating sitemap of Dynamic URLs in your Django Application
Creating sitemap for your Django application, Improve SEO of your Django website by generating Sitemap.xml file, Generate sitemap from Dynamic URLs in Django Application, Create Sitemap for static pages in your Django application, Sitemap xml file in Django Applications,...
Creating a bar chart in Django Application
Minimal example of how to create a bar chart or pie chart in Django application using Charts.js. Drawing Analytics charts in Django application. Using charts and graphs to make your Django application visually appealing. Creating Dashboards using Charts.js in Django to convey the information more visually....
Django application to automate the WhatsApp messaging
Django application with REST API endpoints to automate the WhatsApp messaging. Automating WhatsApp web using selenium to send messages. Using selenium to automate whatsapp messaging. Sending bulk messages via whatsapp using automation. Source code Django application Whatsapp Automation...
Python Snippets - A mini project  built using Django - Github Repository made public
mini project, python snippet sharing website, Django project free, Final year project free, Python Django project free,...
DigitalOcean Referral Badge

© 2022-2023 Python Circle   Contact   Sponsor   Archive   Sitemap