精华内容
下载资源
问答
  • Hexo SEO优化

    千次阅读 2016-03-11 23:15:38
    当我们搭建一个网站之后,如果没有做一些相关的搜索引擎优化SEO,那么我们的网站是很难获取来自搜索引擎的流量的,用户很难在搜索引擎上搜索到我们网站的内容,所以接下来我们要为Hexo网站做一些简单的搜索优化。...

    原文地址

    当我们搭建一个网站之后,如果没有做一些相关的搜索引擎优化SEO,那么我们的网站是很难获取来自搜索引擎的流量的,用户很难在搜索引擎上搜索到我们网站的内容,所以接下来我们要为Hexo网站做一些简单的搜索优化。

    将网站链接提交到百度

    百度搜索引擎提交入口
    有三种验证方式,我选择Html标签验证,在themes\next\layout\_partials\head.swing中添加验证代码:

    <meta name="baidu-site-verification" content="s8Pe1TBqyy" />

    然后点击完成验证,通过即可。同理将站点链接也提交到Google和搜狗,此处不表。

    给站点添加sitemap

    1、 Hexo安装sitemap

    npm install hexo-generator-sitemap --save #sitemap.xml适合提交给谷歌搜素引擎
    npm install hexo-generator-baidu-sitemap --save #baidusitemap.xml适合提交百度搜索引擎

    2、 在站点配置文件_config.yml中添加以下代码

    # 自动生成sitemap
    sitemap:
    path: sitemap.xml
    baidusitemap:
    path: baidusitemap.xml

    3、 修改站点配置文件_config.yml

    # URL
    ## If your site is put in a subdirectory, set url as 'http://yoursite.com/child' and root as '/child/'
    url: http://yoursite

    4、 Hexo编译

    hexo clean
    hexo g

    会/public目录下生成sitemap.xmlbaidusitemap.xml,这就是你的站点地图。

    5、 提交sitemap到站长平台

    百度站长平台sitemap提交是邀请制的,并没有对所有站长开放,只有网站到一定等级百度才会在你后台开放提交sitemap的入口。

    添加蜘蛛协议robots.txt

    1、 新建robots.txt文件,添加以下文件内容,把robots.txt放在hexo站点的source文件下。

    # hexo robots.txt
    User-agent: *
    Allow: /
    Allow: /archives/
    
    Disallow: /vendors/
    Disallow: /js/
    Disallow: /css/
    Disallow: /fonts/
    Disallow: /vendors/
    Disallow: /fancybox/
    
    Sitemap: http://www.zaoanx.com/sitemap.xml
    Sitemap: http://www.zaoanx.com/baidusitemap.xml

    2、 在百度站长平台监测并更新Robots
    提示检测到您更新了Robots文件即成功。

    给出站链接添加 “nofollow” 标签

    nofollow标签是由谷歌领头创新的一个“反垃圾链接”的标签,并被百度、yahoo等各大搜索引擎广泛支持,引用nofollow标签的目的是:用于指示搜索引擎不要追踪(即抓取)网页上的带有nofollow属性的任何出站链接,以减少垃圾链接的分散网站权重。

    以hexo的NexT主题为例,需要修改两处
    1、 找到footer.swig,路径在your-hexo-site\themes\next\layout\_partials,将下面代码

    {{ __('footer.powered', '<a class="theme-link" href="http://hexo.io">Hexo</a>') }}

    改成

    {{ __('footer.powered', '<a class="theme-link" href="http://hexo.io" rel="external nofollow">Hexo</a>') }}

    将下面代码

    <a class="theme-link" href="https://github.com/iissnan/hexo-theme-next">

    改成

    <a class="theme-link" href="https://github.com/iissnan/hexo-theme-next" rel="external nofollow">

    2、 修改sidebar.swig文件,路径在your-hexo-site\themes\next\layout_macro,将下面代码

    <a href="{{ link }}" target="_blank">{{ name }}</a>

    改成

    <a href="{{ link }}" target="_blank" rel="external nofollow">{{ name }}</a>

    将下面代码

    <a href="http://creativecommons.org/licenses/{{ theme.creative_commons }}/4.0" class="cc-opacity" target="_blank">

    改成

    <a href="http://creativecommons.org/licenses/{{ theme.creative_commons }}/4.0" class="cc-opacity" target="_blank" rel="external nofollow">

    可以使用chinaz站长工具进行各项检测。

    keywords 和 description

    \scaffolds\post.md中添加如下代码,用于生成的文章中添加关键字和描述。

    keywords: 
    description: 

    \themes\next\layout\_partials\head.swig有如下代码,用于生成文章的keywords。暂时还没找到生成description的位置。

    {% if page.keywords %}
      <meta name="keywords" content="{{ page.keywords }}" />
    {% elif page.tags and page.tags.length %}
      <meta name="keywords" content="{% for tag in page.tags %}{{ tag.name }},{% endfor %}" />
    {% elif theme.keywords %}
      <meta name="keywords" content="{{ theme.keywords }}" />
    {% endif %}

    然后在\themes\next\layout\_macro\post.swig中找到这个位置:

    {% if post.description %}

    将以下代码去掉:

    {% if post.description %}
      {{ post.description }}
      <div class="post-more-link text-center">
        <a class="btn" href="{{ url_for(post.path) }}">
          {{ __('post.read_more') }} &raquo;
        </a>
      </div>

    否则首页的文章摘要就会变成文章的description

    首页title的优化

    更改index.swig文件,文件路径是your-hexo-site\themes\next\layout,将下面代码

    {% block title %} {{ config.title }} {% endblock %}

    改成

    {% block title %} {{ config.title }} - {{ theme.description }} {% endblock %}

    这时候你的首页标题会更符合网站名称 - 网站描述这习惯。

    修改文章链接

    HEXO默认的文章链接形式为domain/year/month/day/postname,默认就是一个四级url,并且可能造成url过长,对搜索引擎是十分不友好的,我们可以改成 domain/postname 的形式。编辑站点_config.yml文件,修改其中的permalink字段改为permalink: :title.html即可。

    展开全文
  • Hexo博客SEO优化

    2019-06-17 19:05:08
    HEXO SEO 高级优化 Hexo Seo优化让你的博客在google搜索排名第一 Hexo搭建博客之博客搜索引擎推广 hexo高阶教程:想让你的博客被更多的人在搜索引擎中搜到吗? 踩坑记录 使用html文件对网站进行验证时,Hexo预编译...

      今天对博客进行了SEO优化,添加了百度和谷歌对本博客网址的收录,主要参考了以下链接进行,本文章主要记录优化过程中踩过的坑。

    SEO优化参考链接

    HEXO SEO 高级优化
    Hexo Seo优化让你的博客在google搜索排名第一
    Hexo搭建博客之博客搜索引擎推广
    hexo高阶教程:想让你的博客被更多的人在搜索引擎中搜到吗?

    踩坑记录

    使用html文件对网站进行验证时,Hexo预编译验证文件造成验证不成功

    解决方法:
      通过在站点配置文件_config.yml 中对skip_render参数进行配置,添加不需要Hexo编译的文件,这样在Hexo编程生成静态博客时就不会向验证html文件添加信息。搜索网上大部分都说是通过在html文件中增加layout: false就可以实现,但是我没有测试成功。

    skip_render:
      - 'baidu_verify_6UgPtMn0rQ.html'
      - 'google84c1edd8be8df542.html'
    

    参考
    Hexo不渲染.md或者.html

    使用hexo-abbrlink对博客进行URL优化后,造成已发布博客中添加的图片无法显示

    解决方法:
      由于对博客地址进行了优化,造成原有图片地址无法解析,需要更改图片的引用方法,详细如下面所示,修改后,图片显示正常。

    原有方法:
    ![123说明](1.jpg)
    更改后:
    {% asset_img 1.jpg 123说明 %}
    

    参考
    搭建个人博客 hexo + github 传图片长久链接等

    欢迎访问我的博客:ZhaoJuntao’s Blog

    展开全文
  • HEXO SEO 高级优化

    万次阅读 热门讨论 2018-07-21 06:22:37
    个人对HEXO搭建博客的SEO优化方案进行总结,从本地的文章结构到定期推送,再到SEO关键词优化做一个全面体系的汇总,如果有更好的方法可以私聊我。 本地文章优化 添加sitemap 首先给你的文章生成sitemap文件 ...

    title: HEXO SEO 高级优化
    copyright: true
    top: 0
    date: 2018-07-19 21:17:42
    tags: SEO,HEXO,HEXO SEO优化
    categories: Debian
    permalink:
    password:
    keywords: [HEXO,HEXO SEO优化]
    description: 总结一下使用Hexo搭建博客后,SEO优化方案的总结,后期会不定期更新。

    你已经成功了,成功的人不需要流弱者的眼泪。

    个人对HEXO搭建博客的SEO优化方案进行总结,从本地的文章结构到定期推送,再到SEO关键词优化做一个全面体系的汇总,如果有更好的方法可以私聊我。

    本地文章优化

    添加sitemap

    首先给你的文章生成sitemap文件

    npm install hexo-generator-sitemap --save #sitemap.xml适合提交给谷歌搜素引擎
    npm install hexo-generator-baidu-sitemap --save #baidusitemap.xml适合提交百度搜索引擎
    

    然后在站点配置文件_config.yml中添加以下代码

    # 自动生成sitemap
    sitemap:
    path: sitemap.xml
    baidusitemap:
    path: baidusitemap.xml
    

    最后修改站点配置文件_config.yml

    # URL
    ## If your site is put in a subdirectory, set url as 'http://yoursite.com/child' and root as '/child/'
    url: http://你的网站
    

    每次hexo g后都会在/public目录下生成sitemap.xml和baidusitemap.xml,这就是你的站点地图。

    优化结构

    seo搜索引擎优化认为,网站的最佳结构是用户从首页点击三次就可以到达任何一个页面,但是我们使用hexo编译的站点打开文章的url是:sitename/year/mounth/day/title四层的结构,这样的url结构很不利于seo,爬虫就会经常爬不到我们的文章,于是,我们可以将url直接改成sitename/title的形式,并且title最好是用英文,在根目录的配置文件下修改permalink如下:

    url: http://你的网站
    root: /
    permalink: :title.html
    permalink_defaults:
    

    首页标题优化

    SEO最重要的是你的标题,一般搜索都是搜索你的标题。

    更改index.swig文件(your-hexo-site\themes\next\layout);

    将下面这段代码:

    {% block title %} {{ config.title }} {% endblock %}
    

    改成:

    {% block title %} {{ config.title }} - {{ theme.description }} {% endblock %}
    

    这时候你的首页会更符合网站名称 - 网站描述这习惯。

    进阶,做了seo优化,把关键词也显示在title标题里,可改成:

    {% block title %} {{ theme.keywords }} - {{ config.title }}{{ theme.description }} {% endblock %}
    

    注意:别堆砌关键字,整个标题一般不超过80个字符,可以通过chinaz的seo综合查询检查。

    关键词与描述

    搜索引擎除了主要抓取标题外,页面的关键词和描述也会抓取。

    在\scaffolds\post.md中添加如下代码,用于生成的文章中添加关键字和描述。

    keywords: 
    description: 
    

    在\themes\next\layout_partials\head.swig有如下代码,用于生成文章的keywords。暂时还没找到生成description的位置。

    {% if page.keywords %}
      <meta name="keywords" content="{{ page.keywords }}" />
    {% elif page.tags and page.tags.length %}
      <meta name="keywords" content="{% for tag in page.tags %}{{ tag.name }},{% endfor %}" />
    {% elif theme.keywords %}
      <meta name="keywords" content="{{ theme.keywords }}" />
    {% endif %}
    

    然后在\themes\next\layout_macro\post.swig中找到这个位置:

    {% if post.description %}
    

    将以下代码去掉:

    {% if post.description %}
      {{ post.description }}
      <div class="post-more-link text-center">
        <a class="btn" href="{{ url_for(post.path) }}">
          {{ __('post.read_more') }} &raquo;
        </a>
      </div>
    

    否则首页的文章摘要就会变成文章的description。

    举个例子:

    ---
    title: HEXO SEO优化方法总结
    copyright: true
    top: 0
    date: 2018-07-19 21:17:42
    tags: SEO
    categories: Debian
    permalink:
    password:
    keywords: [HEXO,HEXO SEO优化]
    description: 总结一下使用Hexo搭建博客后,SEO优化方案的总结,后期会不定期更新。
    ---
    

    nofollow 标签

    给非友情链接的出站链接添加 “nofollow” 标签,nofollow标签是由谷歌领头创新的一个“反垃圾链接”的标签,并被百度、yahoo等各大搜索引擎广泛支持,引用nofollow标签的目的是:用于指示搜索引擎不要追踪(即抓取)网页上的带有nofollow属性的任何出站链接,以减少垃圾链接的分散网站权重。

    以hexo的NexT主题为例,需要修改两处

    一:找到footer.swig,路径在your-hexo-site\themes\next\layout_partials,将下面代码

    hexo-seo-01

    改成:

    hexo-seo-01

    将下面代码:

    <a class="theme-link" href="https://github.com/iissnan/hexo-theme-next">
    

    改成:

    <a class="theme-link" href="https://github.com/iissnan/hexo-theme-next" rel="external nofollow">
    

    二:修改sidebar.swig文件,路径在your-hexo-site\themes\next\layout_macro,将下面代码

    <a href="{{ link }}" target="_blank">{{ name }}</a>
    

    改成:

    <a href="{{ link }}" target="_blank" rel="external nofollow">{{ name }}</a>
    

    将下面代码:

    <a href="http://creativecommons.org/licenses/{{ theme.creative_commons }}/4.0" class="cc-opacity" target="_blank">
    

    改成:

    <a href="http://creativecommons.org/licenses/{{ theme.creative_commons }}/4.0" class="cc-opacity" target="_blank" rel="external nofollow">
    

    安装nofollow插件

    减少出站链接能够有效防止权重分散,hexo有很方便的自动为出站链接添加nofollow的插件。

    npm install hexo-autonofollow --save
    

    该插件会将博客中的出站链接自动加上nofollow属性,例外请在站点配置文件_config.xml中添加如下字段

    nofollow:
        enable: true
        exclude:
        - www.langzi.fun
        - 友链地址  
    

    这样,例外的链接将不会被加上nofollow属性。

    robots.txt文件

    在source文件夹中新建文件robots.txt,可以参考我的:

    User-agent: * Allow: /
    Allow: /archives/
    Disallow: /vendors/
    Disallow: /categories/
    
    
    Sitemap: http://www.langzi.fun/sitemap.xml
    Sitemap: http://www.langzi.fun/baidusitemap.xml
    

    开启SEO优化选项

    hexo博客next提供了seo优化选项,在主题配置文件_config.yml中有个选项是seo,默认是false,改成true即开启了seo优化,会进行一些seo优化,如改变博文title等,然后相同文件下有个关键字选项keywords,填充上,写博文时最好每篇博文都加上keywords。

    我用的是next的主题,把该主题的_config.yml的默认keyword改成你的网址关键词

    # Set default keywords (Use a comma to separate)
    keywords: "langzi"
    

    开启压缩文件

    因为hexo生成的文件是静态html,里面占用了大量的空白符。使用gulp进行压缩接口提高访问速度并且降低内存。

    使用命令

    npm install gulp -g
    npm install gulp-minify-css gulp-uglify gulp-htmlmin gulp-htmlclean gulp --save
    npm install gulp-concat
    npm install gulp-imagemin
    

    在hexo blog文件夹下创建gulpfile.js:

    var gulp = require('gulp'),
        uglify = require('gulp-uglify'),
        cssmin = require('gulp-minify-css'),
        imagemin = require('gulp-imagemin'),
        htmlmin = require('gulp-htmlmin'),
    	htmlclean = require('gulp-htmlclean');
    	concat = require('gulp-concat');
    //JS压缩
    gulp.task('uglify', function() {
        return gulp.src(['./public/js/**/.js','!./public/js/**/*min.js'])//只是排除min.js文件还是不严谨,一般不会有问题,根据自己博客的修改我的修改为return gulp.src(['./public/**/*.js','!./public/zuoxi/**/*.js',,'!./public/radio/**/*.js'])
            .pipe(uglify())
            .pipe(gulp.dest('./public/js'));//对应修改为./public即可
    });
    //public-fancybox-js压缩
    gulp.task('fancybox:js', function() {
        return gulp.src('./public/vendors/fancybox/source/jquery.fancybox.js')
            .pipe(uglify())
            .pipe(gulp.dest('./public/vendors/fancybox/source/'));
    });
    // 合并 JS
    gulp.task('jsall', function () {
        return gulp.src('./public/**/*.js')
        // 压缩后重命名
            .pipe(concat('app.js'))
            .pipe(gulp.dest('./public'));
    });
    //public-fancybox-css压缩
    gulp.task('fancybox:css', function() {
        return gulp.src('./public/vendors/fancybox/source/jquery.fancybox.css')
            .pipe(cssmin())
            .pipe(gulp.dest('./public/vendors/fancybox/source/'));
    });
    //CSS压缩
    gulp.task('cssmin', function() {
        return gulp.src(['./public/css/main.css','!./public/css/*min.css'])   
            .pipe(cssmin())
            .pipe(gulp.dest('./public/css/'));
    });
    //图片压缩
    gulp.task('images', function() {
        gulp.src('./public/uploads/*.*')
            .pipe(imagemin({
                progressive: false
            }))
            .pipe(gulp.dest('./public/uploads/'));
    });
    // 压缩 public 目录 html文件 public/**/*.hmtl 表示public下所有文件夹中html,包括当前目录
        gulp.task('minify-html', function() {
          return gulp.src('./public/**/*.html')
            .pipe(htmlclean())
            .pipe(htmlmin({
                 removeComments: true,
                 minifyJS: true,
                 minifyCSS: true,
                 minifyURLs: true,
            }))
            .pipe(gulp.dest('./public'))
        });
    gulp.task('build', ['uglify', 'cssmin', 'fancybox:js', 'fancybox:css', 'jsall','images']);
    
    //, 'minify-html'
    

    在根目录下的package.json文件中生成写入scripts:

    "scripts": {
    

    “build”: "hexo clean && hexo g && gulp build "
    }

    这样每次输入npm run build就会自动清理上次生成的文件,然后生成新的文件,最后压缩文件。

    开启推送

    将网站链接提交到百度,百度搜索引擎提交入口 ,然后验证你的网站,这一点网上有很详细的教程我就不复述了,验证确认你的网站后,继续验证你的网站的robots.txt和sitemap文件是否可用,一般都是可用的。

    然后就可以开始推送了,基本上推送有三种方式:主动推送>自动推送>sitemap三种,一般主动提交比手动提交效果好。

    自动推送

    把下面的代码放到D:\lang_blog\themes\next\source\js\src目录下,文件名为bai.js

    <script>
    (function(){
        var bp = document.createElement('script');
        bp.src = '//push.zhanzhang.baidu.com/push.js';
        var s = document.getElementsByTagName("script")[0];
        s.parentNode.insertBefore(bp, s);
    })();
    </script>
    

    然后在D:\lang_blog\scaffolds目录下的post.md文件(模板文件中加入这么一行)

    <script type="text/javascript" src="/js/src/bai.js"></script>
    

    这样只要访问你的这个页面,就会自动向百度推送你的这个网页。

    手动推送

    用Python写了一个自动推送的脚本,首先你要在百度站长平台获取你的网址的token

    SEO

    #coding:utf-8
    import requests
    import time
    from bs4 import BeautifulSoup as bp
    
    print unicode('Langzi.Fun 自动推送开启....','utf-8')
    time.sleep(0.5)
    site_url = 'http://www.这里改写成你的网站.com/baidusitemap.xml'
    
    try:
        print unicode('Langzi.Fun 获取sitemap链接....','utf-8')
        data_ = bp(requests.get(site_url).content,'lxml')
    except Exception.e:
        print e
    
    list_url=[]
    
    def get_(data):
        headers={'User-Agent':'curl/7.12.1 ',
                 'Content-Type':'text/plain '}
        try:
            r = requests.post(url='http://data.zz.baidu.com/urls?site=www.这里改写成你的网站.com&token=这里改写成你的token',data=data)
            print r.status_code
            print r.content
        except Exception,e:
            print e
    
    print '---------------------------------'
    for x,y in enumerate(data_.find_all('loc')):
        print x,y.string
        list_url.append(y.string.replace('http://','http://www.'))
    
    print '---------------------------------'
    
    print unicode('Langzi.Fun 开始推送....','utf-8')
    
    for x in list_url:
        print unicode('Langzi.Fun 当前推送条目为:','utf-8') + x
        get_(x)
    

    修改完后双击启动一次即可,每次写完文章后,都启动推送一次。已经使用主动推送的站点,依然可以部署自动推送的JS代码,二者一起使用。

    获取关键词

    现在搜关键词全是广告,其实百度已经提供了一个接口,每次使用过百度搜索的时候下面的下拉条会出现一堆相关的关键词,这下关键词的权重是非常高的,采集这些关键词然后用在自己的文章中效果还可以,但是要记住不能堆砌关键词。

    接口:

    https://sp0.baidu.com/5a1Fazu8AA54nxGko9WTAnF6hhy/su?wd=
    

    比如:

    https://sp0.baidu.com/5a1Fazu8AA54nxGko9WTAnF6hhy/su?wd=langzi
    

    搜过结果:

    window.baidu.sug({q:"langzi",p:false,s:["浪子彦","朗姿女装","朗姿","朗姿唯品会","浪子彦直播","浪子心声","浪子","浪子回头","朗姿股份","浪子燕青"]});
    

    一般回显10个关键词

    提取代码如下:

    #coding:utf-8
    import requests
    import time
    
    print unicode('Langzi.Fun 关键词采集开启....','utf-8')
    #time.sleep(0.5)
    
    key = raw_input(unicode('输入关键词:','utf-8'))
    site_url = 'https://sp0.baidu.com/5a1Fazu8AA54nxGko9WTAnF6hhy/su?wd=' + (str(key))
    
    r = requests.get(site_url)
    print r.content.replace('window.baidu.sug({q:','').replace('});','').replace(',p:false,s:','').replace('"','').replace(str(key),'')
    

    网上也有很多百度下拉框工具,可以去找一下。

    站内优化

    这里就真正的涉及到SEO的相关知识了,对你的文章的结构,描述,关键词进行优化。

    title优化

    搜索引擎在抓取网页时,最先读取的就是网页标题,所以title是否正确设置极其重要。title一般不超过80个字符,而且词语间要用英文“-”隔开,因为计算机只对英语的敏感性较高,对汉语的敏感性不高。

    用法:<title>网站标题</title>
    

    注意点:

    1. 首页title写法:首页的title写法格式一般是“总标题-特别重要的关键词或者一句话含有特别重要关键词的描述”。注意这里的“-”是英文,要问我为什么呢?这个因为互联网不是我们国内开发的,汉语不是标准,计算机只对英语敏感性较高,而对汉语敏感性不太高。
    2. 栏目页title写法:栏目页title的写法有两种,关键词名称命名写法是“栏目名称-总名称”,非关键词命名写法是:“栏目名称 栏目关键词-总名称”。
    3. 分类列表页的title写法:用关键词为这个栏目起名,然后按照下列顺序填写便可了“分类列表页名称-栏目名称-总名称”。

    注意事项:

    1. 每个标题应该是根据当前内容设置的独特不重复的。
    2. 字数限制。不能太长,要不然搜索引擎结果列表会显示不全。最好不超过 25 个中文字。最好是在 10~20 之间。
    3. 切勿堆砌关键词。这是很多人常犯的错误
    4. 关键词最好出现在最前面
    5. 标题有吸引力。毕竟有吸引力的标题才能让用户点击
    6. 连词符的使用。可以使用 |->
    7. 不要使用没有意义的句子

    keywords优化

    主要作用是告诉搜索引擎,这个网站内容是什么。因为,好多站长在keywords堆砌关键词,所以好多搜索引擎不太重视keywords了。建议大家还是认真填写keywords,有的搜索引擎还是很重视的,由于现在词频和密度对于 SEO 影响不大,所以只要保持你的正文中出现 4~6 次关键词就可以了。千万不能堆砌关键词。

    注意点:

    1. 首页keywords写法:首页keywords按照选定的栏目名称,在首页的keywords中加入总名称、栏目名称和一两个关键词。
    2. 栏目keywords写法:栏目的keywords其栏目下所有分类列表的名称列出,加上栏目关键字,写法是“栏目名称,栏目关键字,栏目分类列表名称”
    3. 分类列表页keywords写法:将你这个栏目中的主要关键字写入。

    Description优化

    功能让搜索引擎是判断整个页面内容的,当中要写入的内容是你页面内容的简介。description一般不超过100个字符。对于个人站点而言,描述标签最好是一句通顺的句子,如果不能的话,则宁可不要。

    注意点:

    1. 首页description写法:description的写法就是将首页的标题、关键词和一些特殊栏目的内容融合到里面,写成简单的介绍形式,不要只写关键词。
    2. 栏目description写法:将栏目的标题、关键字、分类列表名称,尽量的写入description中,仍是尽量写成介绍形式。
    3. 分类description写法:是将你这个栏目中的主要关键字写入。

    H标签优化

    H 标签的重要性可能是仅次与页面标签。H1->H6 的重要性依次降低。

    所以建议在页面的 H1 和 H2 标签中混入关键词

    图片 ALT 文字优化

    插入图片的时候会提示输入文字,这个不能敷衍。图片 ALT 文字出现的关键词对页面相关性也有一定的影响。同样的,也不要在 ALT 上堆砌关键词。

    内部链接及锚文字优化

    内部链接对于爬行和收录具有很重要的意义。内部链接对页面关键词相关性也有影响,最主要的就是在内部链接中使用锚文字。

    锚文字是告诉搜索引擎被链接页面主题内容的最重要依据之一。我们有时候可能无法控制外部链接的锚文字,但是对于站内的内部链接锚文字我们可以控制。不过有几点需要注意:

    1. 适当出现匹配关键词的锚文字
    2. 锚文字不能集中导航或者页尾,要分散在正文中
    3. 不要过度优化锚文字,要不然有可能会被搜索引擎惩罚

    个人博客:www.langzi.fun
    欢迎交流Python开发,安全测试。

    参考文章:

    个人博客 SEO 优化

    hexo SEO

    Hexo Seo优化

    hexo 主题优化

    欢迎关注公众号:【安全研发】获取更多相关工具,课程,资料分享哦~
    在这里插入图片描述

    展开全文
  • hexo博客优化

    2021-08-17 12:30:01
    hexo博客优化 本地优化 文章链接唯一 Hexo默认使用的文章永久链接格式是: year/:month/:day/:title/ 缺点: 若标题为中文标题,则分享链接时会变成%X%X%X%之类的东西,非常难受.又臭又长,而且一旦更改标题和日期,链接...

    hexo博客优化

    本地优化

    文章链接唯一

    Hexo默认使用的文章永久链接格式是:

    year/:month/:day/:title/
    

    缺点:

    若标题为中文标题,则分享链接时会变成%X%X%X%之类的东西,非常难受.又臭又长,而且一旦更改标题和日期,链接会失效,非常不友好

    解决方法:

    采用 hexo-abbrlink插件

    1. 在博客根目录(执行hexo命令的地方)安装插件:

      npm install hexo-abbrlink --save
      
    2. 编辑站点配置文件 _config.yml

      首先注释掉原先的permalink设置

      # ======================================================= #
      # =====================abbrlink========================== #
      # ======================================================= #
      #permalink: :year/:month/:day/:title/
      # permalink_defaults:
      # pretty_urls:
      #   trailing_index: false # Set to false to remove trailing 'index.html' from permalinks
      #   trailing_html: false # Set to false to remove trailing '.html' from permalinks
      permalink: posts/:abbrlink/  
      abbrlink:
        alg: crc32      #support crc16(default) and crc32
        rep: hex        #support dec(default) and hex
        drafts: false   #(true)Process draft,(false)Do not process draft. false(default)
        # Generate categories from directory-tree
        # depth: the max_depth of directory-tree you want to generate, should > 0
        auto_category:
          enable: true  #true(default)
          depth:        #3(default)
          over_write: false
        auto_title: false #enable auto title, it can auto fill the title by path
        auto_date: false #enable auto date, it can auto fill the date by time today
        force: false #enable force mode,in this mode, the plugin will ignore the cache, and calc the abbrlink for every post even it already had abbrlink.
      
      

      项目链接: {% link hexo-abbrlink ,https://github.com/Rozbo/hexo-abbrlink %}

    3. 重新部署

      hexo clean && hexo g
      

      重新部署后,会在front-matter 字段中增加abbrlink 字段

    4. 验证查看 ,本地测试查看

      hexo s -g
      

    Gulp压缩资源

    安装gulp及相关插件

    可以直接修改 package.json 添加 gulp-replace 版本号以及gulp依赖

    修改完成后, 在blog根目录下控制台 输入: npm i 重新部署package.json

    以下是我的package.json 可供参考

    {
      "name": "hexo-site",
      "version": "0.0.0",
      "private": true,
      "scripts": {
        "rebuild": "hexo clean && hexo g && gulp",
        "rebuildJsd": "hexo clean && hexo generate --config _github.yml && gulp two",
        "deployGit": "hexo deploy --config _github.yml",
        "deployGitHub": "hexo deploy --config _githubOnly.yml",
        "deployOss": "hexo deploy --config _tencent.yml",
        "start": "hexo clean && hexo g && gulp && hexo d",
        "build": "hexo generate",
        "clean": "hexo clean",
        "server": "hexo server"
      },
      "hexo": {
        "version": "5.4.0"
      },
      "dependencies": {
        "aplayer": "^1.10.1",
        "gulp-replace": "^1.1.3",
        "hexo": "^5.0.0",
        "hexo-abbrlink": "^2.2.1",
        "hexo-autonofollow": "^1.0.1",
        "hexo-deployer-git": "^3.0.0",
        "hexo-generator-archive": "^1.0.0",
        "hexo-generator-baidu-sitemap": "^0.1.9",
        "hexo-generator-category": "^1.0.0",
        "hexo-generator-index": "^2.0.0",
        "hexo-generator-json-content": "^4.2.3",
        "hexo-generator-search": "^2.4.3",
        "hexo-generator-sitemap": "^2.1.0",
        "hexo-generator-tag": "^1.0.0",
        "hexo-renderer-ejs": "^1.0.0",
        "hexo-renderer-markdown-it": "^5.0.0",
        "hexo-renderer-stylus": "^2.0.0",
        "hexo-server": "^2.0.0",
        "hexo-theme-stellar": "^1.4.1",
        "hexo-wordcount": "^6.0.1",
        "markdown-it-emoji": "^2.0.0"
      },
      "devDependencies": {
        "gulp": "^4.0.2",
        "gulp-html-minifier-terser": "^6.0.1",
        "gulp-htmlclean": "^2.7.22",
        "gulp-htmlmin": "^5.0.1",
        "gulp-minify-css": "^1.2.4",
        "gulp-terser": "^2.0.1"
      }
    }
    
    

    编辑gulpfile.js

    blog根目录下添加gulpfile.js 文件

    添加代码

    1. 其中 minify_html_jsd 对应的是使用cdn 重定向, 后面链接对应改成自己的静态文件仓库即可
    2. pipe(replace(xxx, xxx)) 是链接重定向, 跟根据需求自定义
    var gulp = require('gulp');
    var minifycss = require('gulp-minify-css');
    var htmlmin = require('gulp-html-minifier-terser');
    // var uglify = require('gulp-uglify');
    var htmlclean = require('gulp-htmlclean');
    var terser = require('gulp-terser');
    var replace = require('gulp-replace');
    
    // 压缩css文件
    const minify_css = () => (
        gulp.src(['./public/**/*.css'])
            .pipe(minifycss({
                compatibility: 'ie8'
            }))
            // .pipe(minifycss())
            .pipe(gulp.dest('./public'))
    );
    
    // 压缩html文件
    const minify_html = () => (
        gulp.src(['./public/**/*.html','!./public/{lib,lib/**}','!./public/**.xml'])
            .pipe(replace('src="/js/', 'src="https://sizaif.com/js/'))
            .pipe(replace('href="/css/"', 'href="https://sizaif.com/css/'))
            .pipe(replace('../img/img_article', 'https://sizaif.com/img/img_article/'))
            .pipe(htmlclean())
            .pipe(htmlmin({
                removeComments: true,
                minifyJS: true,
                minifyCSS: true,
                minifyURLs: true,
            }))
            .pipe(gulp.dest('./public'))
    )
    
    const minify_html_jsd = () => (
        gulp.src(['./public/**/*.html','!./public/{lib,lib/**}'])
            .pipe(replace('src="/js/', 'src="https://cdn.jsdelivr.net/gh/sizaif/blog-cdn@main/js/'))
            .pipe(replace('href="/css/"', 'href="https://cdn.jsdelivr.net/gh/sizaif/blog-cdn@main/css/"'))
            .pipe(replace('../img/img_article', 'https://cdn.jsdelivr.net/gh/sizaif/blog-cdn@main/img/img_article'))
            .pipe(htmlclean())
            .pipe(htmlmin({
                removeComments: true,
                minifyJS: true,
                minifyCSS: true,
                minifyURLs: true,
            }))
            .pipe(gulp.dest('./public'))
    )
    
    // 压缩js文件
    const minify_js = () => (
        gulp.src(['./public/**/*.js', '!./public/**/*.min.js','!./public/{lib,lib/**}'])
            .pipe(terser())
            // .pipe(uglify())
            .pipe(gulp.dest('./public'))
    )
    
    module.exports = {
        minify_html: minify_html,
        minify_css: minify_css,
        minify_js: minify_js,
        minify_html_jsd: minify_html_jsd
    };
    
    gulp.task('one', gulp.parallel(
        minify_html,
        minify_css,
        minify_js
    ));
    
    gulp.task('two', gulp.parallel(
        minify_html_jsd,
        minify_css,
        minify_js
    ));
    
    gulp.task('default', gulp.series('one'));
    
    

    运行

    使用gulp后, 发布推送(hexo d)前需要添加一个命令

    # 不使用cdn
    $ hexo clean && hexo g && gulp && hexo d
    # 使用cdn重定向
    $ hexo clean && hexo g && gulp two && hexo d
    

    SEO-sitemap

    安装插件

    百度

    $ npm install hexo-generator-baidu-sitemap --save
    

    谷歌

    $ npm install hexo-generator-sitemap --save
    

    编辑主站_config.yml

    添加代码

    ## ======================================================= #
    ## ==三、SEO 优化二网站地图 npm install hexo-generator-sitemap --save====== #
    ## npm install hexo-generator-baidu-sitemap --save
    ## ======================================================= #
    
    sitemap:
      path: sitemap.xml
    #  tag: true
    #  category: true
    baidusitemap:
      path: baidusitemap.xml
    

    重新部署

    会在public目录下生成:

    sitemap.xml -> 谷歌

    baidusitemap.xml -> 百度

    $ hexo clean && hexo g
    

    然后分别去对于站点网站提交即可

    百度站点管理

    谷歌站点管理

    robots.txt文件

    robots.txt是一个纯文本文件,在这个文件中网站管理者可以声明该网站中不想被robots访问的部分,或者指定搜索引擎只收录指定的内容。

    当一个搜索机器人(有的叫搜索蜘蛛)访问一个站点时,它会首先检查该站点根目录下是否存在robots.txt,如果存在,搜索机器人就会按照该文件中的内容来确定访问的范围;如果该文件不存在,那么搜索机器人就沿着链接抓取。

    另外,robots.txt必须放置在一个站点的根目录下,而且文件名必须全部小写。

    source 目录下 新建 robots.txt

    域名改成自己的

    # robots.txt www.sizaif.com
    User-agent: * 
    Allow: /sitemap.xml
    Allow: /baidusitemap.xml
    Allow: /category-sitemap.xml
    Allow: /page-sitemap.xml
    Allow: /post-sitemap.xml
    Allow: /tag-sitemap.xml
    Allow: /posts/
    
    Disallow: /css
    Disallow: /js
    Disallow: /fonts
    Disallow: /img
    Disallow: /fonts
    Disallow: /page
    Disallow: /navigation
    Disallow: /tags
    Disallow: /archives
    
    Disallow: /404.html
    Disallow: /403.html
    Disallow: /update.log
    Disallow: /search.xml
    Disallow: /README.md
    
    展开全文
  • hexo默认使用文章的标题作为页面的url,这导致的问题就是如果文章标题为中文,name会发生: 对搜索引擎不友好 复制url到其他地方时,中文经过url编码会导致乱码 文章标题改动后,文章链接地址将发生改变 为了避免...
  • 前言 原文地址hexo博客优化日志 由于各种原因,网站会有各种变化以及配置的增加,以日志记下改动。 搭建教程和常见问题 2019年2月27日更新 优化首页标题 ...hexo博客seo 1.增加页面关键字,修改n...
  • 在你网站的根目录下新建文本文件,robots.txt 编写以下内容 robots.txt generated at http://tool.chinaz.com/robots/ User-agent: * Allow: / Allow: /home/ Allow: /posts/ Allow: /archives/ Allow: /tags/ ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,831
精华内容 732
关键字:

hexoseo优化