跳转到主要内容

Pelican插件,用于提升SEO(搜索引擎优化)以在搜索引擎中获得较高排名。

项目描述

SEO插件为Pelican 🇫🇷

Build Status PyPI Version

此插件帮助您提升Pelican站点的SEO(搜索引擎优化),以在搜索引擎中获得较高排名。要查看此SEO插件能为您做什么,请访问使用说明部分。

作者 GitHub
Maëva Brunelles https://github.com/MaevaBrunelles

为何使用此插件?

如果

  • 您不熟悉SEO
  • 您想要一种简单的方法来应用SEO基础
  • 您需要帮助提升您的Pelican站点的SEO

…那么这个插件就是为您准备的!

SEO提供了两个功能来帮助您

  • SEO报告 — 基于文章分析生成HTML报告,指示什么做得好,什么可以改进,什么有问题。如果您想提高文章的排名,这很有用。
  • SEO增强器 — 生成机器人索引指南、HTML标签、结构化数据,如果启用,则生成Open Graph标签。如果您想控制您的网站在搜索引擎结果和社交媒体中的显示方式,这将非常有用。

安装

可以通过以下方式安装此插件:

python -m pip install pelican-seo

要求

上述安装步骤应自动安装Beautiful Soup 4,这是SEO插件所必需的。以下命令将手动安装此依赖项:

python -m pip install beautifulsoup4

请注意,为了使此插件按预期工作,必须在Pelican设置中定义SITEURL设置。

使用方法

您可以通过在Pelican设置中将它们设置为TrueFalse来启用/禁用父功能。默认情况下,两个都为True

# settings.py
SEO_REPORT = True  # To enable this feature
SEO_ENHANCER = False  # To disable this feature
SEO_ENHANCER_OPEN_GRAPH = False # The default value for this feature
SEO_ENHANCER_TWITTER_CARDS = False # The default value for this feature

Open Graph和Twitter Cards选项是SEO增强器功能的一部分,可以启用以生成社交标签。请注意,

  • SEO_ENHANCER设置必须启用才能使用此功能
  • SEO_ENHANCER_OPEN_GRAPH设置必须启用才能使用SEO_ENHANCER_TWITTER_CARDS(请参见原因

SEO插件在您生成您的网站时运行。如果您想在控制台输出中看到SEO日志,请将--verbose选项添加到您的pelican调用中。

$ pelican content --verbose
-> SEO plugin initialized
-> SEO plugin - SEO Report: seo_report.html file created
-> SEO plugin - SEO Enhancement: robots.txt file created
-> Writing /output/my-first-review.html
-> SEO plugin - SEO Enhancement: Done for /output/my-first-review.html
Done: Processed 1 articles, 0 drafts, 0 pages, 0 hidden pages and 0 draft pages in 0.17 seconds.

SEO报告

SEO插件分析您所有的文章和页面,并在您的Pelican项目根目录生成SEO HTML报告:seo-report.html

示例

SEO report example

您可以在插件settings.py中设置文章和页面分析的限制。默认情况下,它设置为10篇文章和10个页面。

SEO_ARTICLES_LIMIT = 10
SEO_PAGES_LIMIT = 10

SEO分析从根据date元数据排序的最新的文章/页面开始,重点关注以下标准:

  • 页面标题:<title></title>
  • 页面描述:<meta name="description" content="" />
  • 标题内容:<h1></h1>
  • 内部网站链接:<a href="SITEURL/..."></a>

上述信息定义在您的源内容中,如下面的Markdown文件示例所示:

Title: Page Title
Description: Page Description

# Heading Content

[Internal link](https://example.com/about.html)

一旦SEO分析生成了报告,请根据报告的建议优化您的文章和页面,然后重复分析以查看是否一切正常。

SEO增强器

SEO增强器模块为您生成以下内容:

  • robots文件
  • HTML增强
  • 结构化数据
  • Open Graph标签(如果启用)
  • Twitter Cards标签(如果启用)

Robots.txt文件

生成的robots.txt文件指示搜索引擎应索引哪些页面。默认情况下,搜索引擎爬虫允许爬取和索引所有页面。

User-agent: *

要阻止爬取和/或禁止索引特定的文章/页面,请将以下内容添加到您的文章/页面元数据中:

Disallow: True
Noindex: True

将生成robots.txt文件,位于您的网站根目录中,按照OUTPUT_PATH设置(Pelican的默认值为output/)。

# robots.txt
User-agent: *

Disallow: example.html
Noindex: other-example.html

规范URL标签

SEO增强器会自动将规范链接元数据添加到<head>标签中,以避免向搜索引擎展示重复内容。

  1. 如果您已声明了:external_canonical:元数据字段,SEO增强器将使用它。它期望一个URL,例如https://www.example.com/external_canonical_article.html。如果您从第三方那里分发内容或希望包含已经在其他地方托管的自家帖子,则可以使用它。SEO增强器将优先于:save_as:元数据字段。
  2. 如果您已声明了:save_as:元数据字段,SEO增强器将使用它来构造规范链接。但如果设置了:external_canonical:,则忽略:save_as:字段。
  3. 如果同时缺少 :external_canonical::save_as: 元数据字段,它将使用生成的输出文件名构建规范链接。

示例

# article.md
External_Canonical: https://www.example.com/external_canonical_article.html

# article.rst
:external_canonical: https://www.example.com/external_canonical_article.html

这将导致在 <head> 标签中添加以下内容

<link rel="canonical" href="https://www.example.com/external_canonical_article.html" />

在其他所有情况下,SEO 提升器将生成以下内容

<link rel="canonical" href="<SITEURL>/example.html" />

结构化数据

SEO 提升器自动在 <head> 标签中添加结构化数据,以改善搜索引擎中结果片段的显示。文章将同时具有文章架构和面包屑架构,而页面则只有面包屑架构。

结构化数据基于 Schema.org 词汇表,以 JSON-LD 编码。请注意,默认生成的架构符合 Schema.org,但默认情况下不符合 Google 标准。后者需要额外的元数据。

面包屑架构

基于 BreadcrumbList 架构

{
    "@context": "https://schema.org",
    "@type": "BreadcrumbList",
    "itemListElement": [
        {
            "@type": "ListItem",
            "position": :n=1:,
            "name": :Sitename:,
            "item": :SITEURL:
        },
        {
            "@type": "ListItem",
            "position": :n+1:,
            "name": :name:,
            "item": :url:
        },
        {
            "@type": "ListItem",
            "position": :n+x:,
            "name": :name:,
            "item": :url:
        }
    ]
}

每个路径元素都有一个 ListItem,即使是文件夹,因此最好为这些创建一个用户友好的页面(否则您将获得服务器的默认页面)。

文章架构

基于 Article 架构

{
    "@context": "https://schema.org",
    "@type": "Article",
    "author": {
        "@type": "Person",
        "name": :author:
    },
    "publisher": {
        "@type": "Organization",
        "name": :sitename:,
        "logo": {
            "@type": "ImageObject",
            "url": :logo:
        }
    },
    "headline": :title:,
    "about": :category:,
    "datePublished": :publication_date:,
    "image": :image:
}

:logo::image: 字段不是 Schema.org 所必需的,但 Google 需要。

要填充 :logo: 字段,请将包含到您的网站标志图像的绝对链接的 LOGO 设置添加到您的 Pelican 设置文件中

# pelicanconf.py
LOGO = "https://www.example.com/logo.jpg"

要填充 :image: 字段,请将图像元数据字段添加到您的 Markdown/reST 内容中

# article.md
Image: https://www.example.com/article-image.jpg

# article.rst
:image: https://www.example.com/article-image.jpg

Open Graph

基于 Open Graph 协议,SEO 插件实现了所需属性和一些附加属性

<meta property="og:url" content=":fileurl:" />

:fileurl::使用 SITEURL 设置和文件 URL 构建的绝对 URL。

<meta property="og:type" content=":type:" />

:type::可以是 articlepage

<meta property="og:title" content=":title:" />
<meta property="og:description" content=":description:" />
<meta property="og:image" content=":image:" />

:title::description::image::如果您需要优化您的社交链接,可以在文件元数据中写入专门的 Open Graph 内容,如下所述

og_title: Specific title for Open Graph
og_description: Specific description
og_image: https://www.example.com/og-image.jpg

如果没有声明这些元数据,则 :title::description::image: 将由默认的 TitleDescription(Pelican 元数据)和 Image(插件元数据)填充,如果它们存在。

<meta property="og:locale" content=":language:">

:language::在 LOCALE Pelican 设置中定义的站点语言。如果没有填写,它将尝试获取默认系统区域设置。

Twitter Cards

Twitter Cards 功能需要 Open Graph 功能才能正常工作。为了避免类似标签的重复,如果 Twitter 标签不存在,Twitter 会回退到一些 Open Graph 标签。

基于 Twitter 指南,SEO 插件实现了 Summary Card。

<meta name="twitter:card" content="summary" />
<meta name="twitter:site" content=":tw_account:" />

:tw_account::要链接到卡的 Twitter @帐户。您可以在文件元数据中填写,但这不是必需的属性。

其他 Twitter 所需的属性是通过 Open Graph 功能创建的。

贡献

欢迎并非常感谢贡献。每一点都很有帮助。您可以通过改进文档、添加缺失的功能和修复错误来做出贡献。您还可以通过审查和评论 现有问题 来帮忙。

要开始为该插件做出贡献,请审查 为 Pelican 做出贡献 文档,从 贡献代码 部分 开始。

项目详情


下载文件

下载适用于您平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。

源分布

pelican-seo-1.2.2.tar.gz (26.7 kB 查看哈希值)

上传于

构建分布

pelican_seo-1.2.2-py3-none-any.whl (33.3 kB 查看哈希值)

上传于 Python 3

由以下支持

AWSAWS云计算和安全赞助商DatadogDatadog监控FastlyFastlyCDNGoogleGoogle下载分析MicrosoftMicrosoftPSF赞助商PingdomPingdom监控SentrySentry错误记录StatusPageStatusPage状态页面