how to create sitemap on web application?
SEO 기본 / 웹사이트 노출
포털사이트에 SITEMAP 등록이 필수다
구글 서치콘솔에 웹 애플리케이션을 등록하면,
주기적으로 트래픽 현황을 관리할 수 있다. 구글
서치콘솔에서 내 사이트를 방문해서 어떤 키워드로
유입이 되었고 몇명의 방문자가 카운팅 되었는지
무료로 서비스를 제공하고 있다.
구글 서치콘솔에 웹애플리케이션의 URL 소유를
인증하고 나서 가장 먼저 해야 하는 것이 sitemap
등록이다. 웹 애플리케이션이 단순히 1개의 페이지만
있다면 모르겠지만, 통상 여러개의 URL주소를 가지고
있기 때문에 하부 URL들을 모두 등록해줘야 정확한
집계가 가능하기 때문이다.
Django Framework에서는 sitemap을 생성하고
path로 연결하는 기능을 기본 제공하고 있다.
마지막으로 데이터베이스에 sites를 마이그레이션하면
모든 과정이 종료된다.
stiemap 생성
1. settings.py 추가 INSTALLED_APPS 부분 추가
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'django.contrib.sites', # 추가 'django.contrib.sitemaps', # 추가 ] | cs |
위 소스가 추가되면 SITE_ID를 INSTALLED_APPS 바로 밑에
추가해준다. settings.py 파일 내 어떤 위치에 넣어줘도 무방하다.
1 2 | SITE_ID = 1 # sitemap | cs |
2. PROJECT 디렉토리 내에서 sitemaps.py을 생성해준다.
sitemap 생성에 핵심적인 부분이다.
Django에서 기본 제공하는 Sitemap 클래스를 상속받아서
새로운 클래스를 만들어준다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | from django.urls import reverse from django.contrib.sitemaps import Sitemap class StaticViewSitemap(Sitemap): priority = 0.5 changefreq = 'weekly' def items(self): return [ 'index', 'example1', 'example2', 'example3', ] def location(self, item): return reverse(item) | cs |
Django Sitemap Documentation
위에 Django 문서에 보면 다양한 옵션이 있다.
필수적인 옵션만 넣어도 stiemap은 생성이 된다.
priority는 클래스의 우선순위를 의미한다.
0~1 사이 값을 가지게 되고, 사이트맵이 여러개일
경우 사이트 클로러에게 제공할 우선순위를 의미한다.
기본값은 0.5로 설정되어 있다.
changfreq는 검색엔진에 sitemap의 내용변동 주기를
의미한다. daily, weekly, never, always등의 옵션이
있다. 변동하는게 크게 의미는 없다.
items 함수가 리턴하는 값은 app의 urls.py에서 설정한
url-namespace 값을 입력해준다. sitemap에 제공할
url의 이름값들을 넣어주면 sitemaps.py가 완성된다.
3. urls.py 수정하기
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | #project/urls.py from .sitemaps import * from django.contrib.sitemaps.views import sitemap sitemaps = { 'static':StaticViewSitemap, } urlpatterns = [ ... sitemap path('sitemap.xml', sitemap, {'sitemaps': sitemaps}, name='sitemap'), ... ] | cs |
PROJECT 디렉토리 내에서 urls.py에 위 코드를 추가
해준다.
stiemaps 딕셔너리 데이터를 추가해주고,
url에 sitemap.xml에 접속했을 때 연결해줄
path을 추가해준다.
4. migrate sites
이제 sitemap 생성 및 추가도 완료되었고, PROJECT setting도
완료되었다. 마지막으로 데이터베이스에 site 를 추가해주면
django_site 항목이 추가된다.
1 2 | ./manage.py migrate sites ./manage.py migrate | cs |
만약 데이터베이스에 site를 추가해주지 않고, 서버에 접속하면
아래 에러가 발생한다. 이 에러가 발생한다는 것은 데이터베이스에
Django가 참조할 sties가 존재하지 않는다는 것이다.
relation "django_site" does not exist
5. sitemap.xml 확인
서버 URL/sitemap.xml로 접속하면 정상적으로 XML페[이지가
렌더링된다. 자세히 보면 서버 URL이 www.example.com으로
되어 있다.
Django admin 으로 접속해서 SITE 항목을 서버 도메인 주소로
수정해주면 모든 과정이 끝이 난다.
이제 구글/빙/네이버/다음 등등 포털 사이트에서 웹 사이트를 노출
시킬 sitemap 준비가 완료되었다.
'Programming' 카테고리의 다른 글
웹 애플리케이션 서비스 1인 기업의 시작 (0) | 2022.01.30 |
---|---|
urllib.error.HTTPError: HTTP Error 429: Too Many Requests HTTP 429 에러 해결하는 방법 (0) | 2022.01.28 |
Django Web Application robots.tst 생성&적용 방법 (0) | 2022.01.27 |
Django Web application Timezone setting (0) | 2022.01.25 |
AWS EC2 프리티어 메모리 부족 서버 터짐 해결방법 swap memory 사용하는 방법 (0) | 2022.01.25 |
AWS server CRONTAB cache 삭제 / ubuntu linux root 계정 권한 얻는 방법 (0) | 2022.01.24 |
댓글