Django SEO:5 种提升 SEO 的方法

2025-06-08

Django SEO:5 种提升 SEO 的方法

这周我决定研究一下如何提升我个人网站的SEO。我对此了解不多,但经过一番研究,我发现开发人员可以在他们的Django网站上做一些事情来提升SEO。

什么是 SEO?

什么是搜索引擎优化?这是一个庞大的话题,但作为一名网站开发者,你只需要知道,搜索引擎优化就是对你的网站进行一些修改(优化),让谷歌等搜索引擎更容易抓取和索引你的内容,从而让人们更容易发现你的内容。

你为什么要学习它?

开发人员应该学习SEO,这样他们在开发网页时就能有所规划。如果你不优化你的页面,它就不会出现在搜索结果中,其他人也就不知道你的网站了。对于自由职业的网页开发者来说,SEO也是一项很好的补充技能,这样他们就可以为客户提供更全面的服务。

让我们看看改善 Django 网站 SEO 的几种方法。

蛞蝓

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])
Enter fullscreen mode Exit fullscreen mode

这里我们创建一个 Post 模型,并根据发布日期和 slug 创建规范 URL,例如 /2020/04/07/post-title/

元标签

元标记向搜索引擎提供有关您网站的信息,它们应该放置<head>在 HTML 文档的标记内。

标题
当您的页面出现在搜索结果中时,这将是第一行/链接。

每个页面都应该有一个独特的标题标签,并且应该简短且具有描述性。

不要使用通用标题,或在多个页面上使用相同的标题。

<title>This is page Title</title>
Enter fullscreen mode Exit fullscreen mode

描述
这是最重要的标签,它提供了关于您网站页面的描述。Google 通常会将其用作搜索结果中的预览片段。
每个页面的描述都应该独一无二,概括页面内容,并且简短 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">
Enter fullscreen mode Exit fullscreen mode

关键词:
这是一个关键词元标签,含义不言自明。在这里,我们输入概括我们页面的关键词。

<meta name="keywords" content="seo, python, django, web development">
Enter fullscreen mode Exit fullscreen mode

作者
如果是文章或类似内容,我们在此标签中指定作者的姓名。

<meta name="author" content="Maciej Janowski">
Enter fullscreen mode Exit fullscreen mode

Open Graph 元标签

Open Graph 由 Facebook 创建,旨在通过允许粘贴的内容成为“图谱”对象,促进 Facebook 与第三方网站的集成。它可以控制信息从你的页面传输到第三方网站的方式。其他能够识别 Open Graph 元标签的网站包括 Twitter、LinkedIn 和 Google+。你可以通过以“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" />
Enter fullscreen mode Exit fullscreen mode

Twitter 标签

另一种类型的元标签是 Twitter 标签。

他们决定我们分享的链接在 Twitter 上如何以卡片形式显示。我们可以在这里测试

<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" />
Enter fullscreen mode Exit fullscreen mode

网站地图

站点地图是一个 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',
]
Enter fullscreen mode Exit fullscreen mode

现在为站点应用程序创建表

python manage.py migrate
Enter fullscreen mode Exit fullscreen mode

在你的网站应用程序(假设是“博客”)中创建一个名为 sitemaps.py 的新文件

假设我们的“博客”应用程序中有一个名为 Post 的模型

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
Enter fullscreen mode Exit fullscreen mode

最后进入项目主urls.py,添加站点地图,如下

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')
]
Enter fullscreen mode Exit fullscreen mode

现在打开后即可访问站点地图http://127.0.0.1:8000/sitemap.xml

您应该会看到类似这样的输出。 这只是 SEO 的皮毛,它还有更多内容。
站点地图预览

查看下面的工具和资源,了解有关开发人员 SEO 的更多信息。

实用工具

  • Lighthouse - 谷歌提供的用于计算 SEO、可访问性和其他一些关键指标得分的工具。
  • Google Pagespeed Insights - 另一个 Google 工具,提供我们网站或桌面和移动设备的速度分数。
  • Twitter Card Validator - 用于验证和预览 Twitter Card 的 Twitter 工具。

其他资源

鏂囩珷鏉ユ簮锛�https://dev.to/druidmaciek/seo-for-django-5-methods-to-improve-seo-625
PREV
如何使用 Webpack 设置 JavaScript 项目
NEXT
Node 项目的 Eslint 配置