Django의 검색 엔진 최적화: 검색 엔진 최적화를 개선하는 5가지 방법

13559 단어 djangoseopythonwebdev
이번 주에 나는 내 개인 사이트의 검색 엔진 최적화를 어떻게 개선하는지 연구하기로 결정했다.나는 그것에 대해 많이 알지 못하지만, 몇 가지 연구를 통해 개발자들이 그들의 Django 사이트에서 당신의 SEO를 개선하기 위해 일을 할 수 있다는 것을 발견했다.

검색 엔진 최적화란 무엇입니까?


검색 엔진 최적화란 무엇입니까?이것은 커다란 화제이지만, 인터넷 개발자로서 당신이 알아야 할 것은 당신의 사이트를 변경(최적화)하여 구글 등 검색엔진이 당신의 내용을 더욱 쉽게 캡처하고 색인할 수 있도록 함으로써 사람들이 당신의 내용을 더욱 쉽게 발견할 수 있도록 하는 것이다.

너는 왜 그것을 배우려고 하느냐?


개발자는 웹 개발을 위해 기획할 수 있도록 검색 엔진 최적화를 배워야 한다.만약 당신이 페이지를 최적화하지 않는다면, 그것은 검색에 나타나지 않을 것이며, 다른 사람들은 당신의 사이트가 존재하는 것을 알지 못할 것이다.자유직업의 웹 개발자에게도 좋은 보충 기능이기 때문에 그들은 고객에게 더욱 전면적인 서비스 패키지를 제공할 수 있다.
Django 웹 사이트의 검색 엔진 최적화를 향상시키는 몇 가지 방법을 살펴보겠습니다.

노루


Django는 모델에 SlugField를 제공합니다.Slug는 문자, 숫자, 밑줄 또는 하이픈만 포함하는 짧은 레이블입니다.Slug 필드를 기반으로 URL을 만들어야 합니다.Post 모형을 위한 규범 URL을 만들기 위해 Django 약정을 사용하여 URL을 만드는 방법을 추가합니다get_absolute_url().
from django.db import models
from django.utils import timezone


class Post(models.Model):
    title = models.CharField(max_length=250)
    slug = models.SlugField(max_length=250, unique_for_date=publish)
    publish = models.DateTimeField(default=timezone.now)    

    def get_absolute_url(self):
        return reverse(blog:post_detail,
                            args=[self.publish.year,
                                    self.publish.month,
                                    self.publish.day, self.slug])
여기에서 우리는 게시 날짜와 slug에 따라 규범 URL을 만들 포스트 모델을 만들었습니다. 예를 들어/2020/04/07/포스트 title/

메타 레이블


메타 태그는 HTML 문서의 <head> 태그에 포함되어야 하는 웹 사이트에 대한 정보를 검색 엔진에 제공합니다.
제목
페이지가 검색 결과에 나타나면 첫 번째 줄/링크가 됩니다.
모든 페이지에는 유일한 제목 라벨이 있어야 하며, 간단명료하고 묘사성이 있어야 한다.
공통 제목을 사용하거나 여러 페이지에서 같은 제목을 사용하지 마십시오.
<title>This is page Title</title>
묘사
이것은 가장 중요한 라벨로 사이트 페이지에 대한 설명을 제공한다.구글은 검색 결과에서 그것들을 미리 보기 세션으로 자주 사용한다.
모든 페이지의 묘사는 독특해야 한다. 이 페이지의 내용을 정리하고 1-2문장을 간단하게 해야 한다.제목과 마찬가지로 일반화하거나 페이지에서 반복하지 마십시오.
<meta name="description" property="og:description" content="This article looks at 6 methods developers can use to improve SEO of their Django Website">
키워드
이것은 키워드의 원 표시로 해석하기 쉽다.여기서 요약 페이지의 키워드를 입력합니다.
<meta name="keywords" content="seo, python, django, web development">
저자
만약 문장이나 유사한 것이라면, 우리는 이 라벨에 작가의 이름을 지정합니다.
<meta name="author" content="Maciej Janowski">

그래픽 메타태그 열기


Open Graph는 페이스북에서 만든 것으로 붙여넣은 내용이'그래픽'대상이 될 수 있도록 함으로써 페이스북과 제3자 사이트 간의 통합을 추진한다.그것은 정보가 어떻게 당신의 페이지에서 제3자 사이트로 전파되는지 제어할 수 있습니다.개방형 그래픽을 식별하는 다른 사이트는 트위터, 링크드 인, 구글 +가 있다."og:"속성을 통해 식별할 수 있습니다
<meta property="og:url" content="https://janowski.dev/blog/2020/04/05/Intresting-article" />
<meta property="og:title" content="Intresting Article" />
<meta property="og:image" content="https://janowski.dev/static/cover.png" />
<meta property="og:image:alt" content="A green cover image with Django logo" />

트위터 태그


또 다른 원 표기는 트위터 표기다.
그들은 우리가 링크를 공유할 때 링크가 어떻게 트위터에 트위터 카드로 표시되는지 결정하기로 했다.저희가 테스트를 해볼 수 있어요.
<meta name="twitter:image" content="https//example.com/image.png" />
<meta property="twitter:image:alt" content="Description of the image" />
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:site" content="@MaciejJanowski" />

사이트 맵


사이트 맵은 XML 파일로 검색엔진 사이트의 페이지, 그것들의 관련성, 업데이트 빈도를 알려준다.사이트 지도를 사용하면 당신의 사이트를 검색엔진 순위에서 더욱 볼 수 있습니다. 왜냐하면 사이트 지도는 파충류가 당신의 사이트 내용을 색인하는 데 도움이 되기 때문입니다.
Django는 사이트 맵 프레임워크를 제공하여 사이트 맵을 동적으로 생성할 수 있도록 합니다.
Sitemap 프레임워크를 설치하려면 [settings.py](http://settings.py) 를 열고 django.contrib.sitesdjango.contrib.sitemaps 설정을 INSTALLED_APPS 설정에 추가하고 사이트에 새 ID를 정의합니다.
SITE_ID = 1

INSTALLED_APPS = [
   ...
    'django.contrib.sites',
    'django.contrib.sitemaps',
]
사이트 응용 프로그램에 대한 테이블을 만듭니다.
python manage.py migrate
사이트의 응용 프로그램, 예를 들어 "blog"에서sitemaps라는 새 파일을 만듭니다.회사 명
"블로그"응용 프로그램에 포스트라는 모델이 있다고 가정해 보세요.
from django.contrib.sitemaps import Sitemap

from .models import Post

class PostSitemap(Sitemap):
        changefreq = "weekly"
        priority = 0.9

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

        def lastmod(self, obj):
                return obj.updated
마지막으로 주 URL로 이동합니다.사이트 맵을 다음과 같이 추가합니다.
from django.urls import path, include
from django.contrib.sitemaps.views import sitemap

from blog.sitemaps import PostSitemap

sitemaps = {
        "posts": PostSitemap,
}

urlpatterns = [
        path('blog/', include('blog.urls', namespace='blog')),
        path('sitemap.xml', sitemap, {'sitemaps': sitemaps},
                        name='django.contrib.sitemaps.views.sitemap')
]
현재 당신은 오픈 후 사이트 지도를 방문할 수 있습니다http://127.0.0.1:8000/sitemap.xml유사한 출력을 보실 수 있을 것입니다.

이것은 단지 SEO의 표면에 닿았을 뿐, 더 많은 내용이 있다.
다음 도구와 자원을 보고 개발자에게 검색 엔진 최적화에 대한 더 많은 정보를 제공합니다.

유용한 도구


  • Lighthouse - 구글이 제공하는 도구로 검색엔진의 최적화, 접근성 및 기타 몇 가지 관건적인 지표의 점수를 계산하는 데 사용된다.

  • Google Pagespeed Insights - 또 다른 구글 도구로 우리 사이트의 속도 점수나 데스크톱과 휴대전화를 제공한다.

  • - 트위터 카드를 확인하고 미리 볼 수 있는 트위터 도구입니다.
  • 기타 리소스

  • Beginner Guide to SEO
  • Best SEO Practices for Developers
  • Try Except Pass Episode 10 - Studies in Search Engine Optimization And Why Developers Should Care
  • Try Except Pass Episode 11 - Studies in Search Engine Optimization: 13 Essential Practices for Developers
  • 좋은 웹페이지 즐겨찾기