给hexo博客中每篇文章设置关键词和摘要

本文介绍如何给hexo博客中每篇文章设置不同的keywords关键词和description描述,来优化seo的方法。

使用hexo搭建的博客,大部分主题模板是不对文章页面设置关键词和摘要的。导致所有页面的关键词和描述未被单独设置,都使用的hexo主要config文件中填写的关键词和描述。

不能给每个文章设置不同的关键词和摘要,导致很多文章的关键词和摘要与正文内容不能精准匹配,非常不利于各个独立文章页面的SEO,搜索引擎收录索引的几率不高,或者收缩索引精确度不高,无法形成有效的引流。

通过在网络搜索,找到了一些解决方法,可以在任何主题模板中通过修改代码,实现每篇文章单独配置关键词和摘要的效果。

第一步

\scaffolds\post.md中添加keywords和description属性,这样在新建文章时,在文章头部Front-matters中可以单独输入关键词和摘要。

第二步

在hexo博客主题模板的_partial\head.ejs文件中,添加文章关键词keyswords、描述description相关的代码,然后通过添加if语句,判断文章中描述和关键词属性是否为空。如果为空,则显示的是博客config文件中默认的关键词和描述。如果不为空,则将每篇文章中单独录入的设置的keywords和description属性值,设定未当前页面的关键词和摘要,帮助搜索引擎更准确的收录索引相关页面的内容。

具体代码如下:

<title><% if (title) { %><%= title %> | <% } %><%= config.title %></title>
    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=0" >
    <% if(page.keywords){ %>
        <meta name="keywords" content="<%- page.keywords %>" >
        <% } else { %>
            <meta name="keywords" content="<%- theme.SEO.keywords %>" >
        <% } %>

    <% if(page.description){ %>
        <meta name="description" content="<%- page.description %>" >
        <% } else { %>
           <meta name="description" content="<%- theme.SEO.description %>" >
       <% } %>

这样就实现了hexo博客中,每个post页面meta标签中自动生成关键词和摘要了。

实践结果

上述方法参考网络资料,适用于主题采用ejs写的head代码。

NXT主题使用的页面生成代码是njk,需要修改代码符合njk规范才能生效。

希望能够有哪位大佬指导一二…

参考文章链接:

https://www.butterpig.top/blog/hexo-set-keywords-and-description/