一、简介

  1、何为SEO?

  SEO(search engine optimization),翻译为搜索引擎优化,是利用搜索引擎的搜索规则来提高在相关搜索引擎的排名以及访问量的方式。

  2、目的

  为了获取更多的流量、排名以及点击率从而实现品牌的推广以及营销,提高影响力。

二、如何在HTML进行代码优化

  1、为什么要进行HTML优化?

  我们做SEO,最直接的目的就是想通过搜索引擎获得好的关键词排名和流量,而搜索引擎工作又是依赖它们的“蜘蛛”程序进行的。所谓搜索引擎蜘蛛只是搜索引擎开发的“机器人”程序,简单来说,它的工作原理就是通过对网站的爬行,抓取网站的相关链接、关键词、内容,然后分配网站的权重和相应的搜索引擎排名。而这个过程,大部分工作都是在网站的HTML代码上进行的。所以,通过HTML优化,可以告诉蜘蛛哪些内容是重要的,哪些内容又是可以忽略的,以达到最佳的SEO效果。下边就开始实际分析。

  2、哪方面可以有效的达到欧优化效果?

  1)title 以及meta的使用。

  这里我把title跟meta放在第一位,说明这是非常重要的部分。

  <title>网站标题</title>

  <meta name="description" content="网站描述" />

  <meta name="keywords" content="网站关键词" />

  在网站的标题以及meta属性上写到需要加强的关键词,这样会加大搜索几率,虽然近些年来很多搜索引擎对网站关键字等没有那么重视,但是写上总比不写的好。

  2)H标签的使用。

  关于H标签的使用也有讲究。对于一个页面来说,H1标签应该是非常重要的,只能出现一次,里边放主要的标题信息,权重最高,对蜘蛛的吸引力也是最强的。其他的H2到H6这些副标题强调的作用也就相应减少,用的次数没有要求。

  3)a标签的使用

  <a href="链接地址" title="链接说明">链接关键词</a>

  站内丰富的超链接会方便蜘蛛爬行,体现网站的深度和广度,这点在SEO中至关重要。“链接地址”特别是栏目的链接地址,最佳的出现形式应该是http://你的域名/固定链接/。现在,链接的理想结构是以“/”结尾。“链接说明”,一般都是链接的关键词或是关键词相关说明文字,这点可能很多人容易忽视,建议还是写好链接说明,尤其是做外部链接的时候,这么做效果还是很不错的,对网站关键词的搜索引擎排名很有帮助。

  注意:如何是一些单页面网站用的是路由跳转,可以在a标签里href放全路径,然后padding-left:-99999px;或者absolute 把这标签扔到页面的外边不被看到就可以,但是可以被搜索到。

  4)图片img标签的使用

  <img src="图片链接地址" alt="图片说明" />

  图片说明比较重要,肯定得加上,这样就可以方便搜索引擎知道这张的图片的内容,方便搜索跟排名。

  5)strong标签的使用

  很多人多这个标签不感冒,觉得没有什么用,其实这标签是非常重要的,标签顾名思义是强调的意思,在里边放一些关键字将会起到很重要的效果。

  6)文章底部版权信息的添加。

  <div id="copyright">版权部分已经网站名称等信息</div>

  网站底部版权部分的权重越来越高了,在版权部分加上网站名称和链接或是强调一些关键词是很有必要的。

三、对单页面进行SEO优化

  单页面应用目前在市场如火如荼,三大框架angular,react,vue的使用越来越受欢迎,虽然使得开发效率提高了,但是也存在某些不足的地方,比如SEO问题,这个问题就需要去解决。

  1、使用服务器端渲染(SSR)

  vue针对SEO的问题已经出了官方SSR文档来专门解决这个问题。https://ssr.vuejs.org/zh/。当然用服务器渲染对于前端后端来说都是个挑战,无论从技术还是写法上都有很大的难度,对于前后端分离的项目而言,实现起来更加困难。有兴趣可以看下官方文档,这里将不做介绍,因为我也没研究过SSR哈哈。下面将介绍另外一种方式。

  2、预渲染

  如何你对少数的几个重要的页面进行SEO优化,预渲染将是个非常重要的操作。预渲染可以在build时对指定的路由生产静态HTML文件。使用 prerender-spa-plugin配置就可以实现预渲染。

// webpack.conf.js
var path = require('path')
var PrerenderSpaPlugin = require('prerender-spa-plugin') module.exports = {
// ...
plugins: [
new PrerenderSpaPlugin(
// 编译后的html需要存放的路径
path.join(__dirname, '../dist'),
// 列出哪些路由需要预渲染
[ '/', '/about', '/contact' ]
)
]
}

渲染出来的目录像这样子:

  3、动态添加meta信息

  有时候我们需要在应用添加一些meta信息来写一些关键字已经描述等,这时候需要到插件vue-meta-info了,这个插件可以动态设置meta的信息。

  1.安装

  npm install vue-meta-info --save

  2.全局使用vue-meta-info

  在main.js里

  import Vue from 'vue'

  import MetaInfo from 'vue-meta-info'

  Vue.use(MetaInfo);

  3、在组件内静态使用

<template>
...
</template> <script>
export default {
metaInfo: {
title: 'My Example App', // set a title
meta: [{ // set meta
name: 'keyWords',
content: 'My Example App'
}]
link: [{ // set link
rel: 'asstes',
href: 'https://assets-cdn.github.com/'
}]
}
}
</script>

  4、如果你的title或者meta是异步加载的,那么你可能需要这样使用:

<template>
...
</template> <script>
export default {
name: 'async',
metaInfo () {
return {
title: this.pageName
}
},
data () {
return {
pageName: 'loading'
}
},
mounted () {
setTimeout(() => {
this.pageName = 'async'
}, 2000)
}
}
</script>

四、就给大家介绍到这里,谢谢。

SEO页面优化以及如何对单页面应用进行SEO优化的更多相关文章

  1. 详解H5中的history单页面,手动实现单页面开发,细说h5单页面原理

    就目前来看,前端的单页面开发占了很大一部分,一方面无刷新的切换增强了体验,并且浏览器记录依然存在,前进后退都没问题,在之前我们通地址栏中的hash改变来触发onhashchange方法来实现单页面应用 ...

  2. .htaccess A网站单页面301到B网站单页面

      .htaccess 301问题 A网站  a.com/a.html 301到 B网站 b.com/b.html   RewriteRule ^a.com/a.html$ http://www.b. ...

  3. vue单页面应用项目优化总结(转载)

    转载自:https://blog.csdn.net/qq_42221334/article/details/81907901这是之前在公司oa项目优化时罗列的优化点,基本都已经完成,当时花了点心思整理 ...

  4. 大型vue单页面项目优化总结

    这是之前在公司oa项目优化时罗列的优化点,基本都已经完成,当时花了点心思整理的,保存在这里,方便以后其他项目用到查漏补缺. 1.打包文件中的app.js文件放入cdn,加快页面首次加载速度 2.提取公 ...

  5. 详细解剖大型H5单页面应用的核心技术点

    项目 Xut.js 阐述下开发中一个比较核心的优化技术点,这是一套平台代码,并非某一个插件功能或者框架可以直接拿来使用,核心代码大概是6万行左右(不包含任何插件) .这也并非一个开源项目,不能商业使用 ...

  6. 使用react-router实现单页面应用路由

    这是Webpack+React系列配置过程记录的第二篇.其他内容请参考: 第一篇:使用webpack.babel.react.antdesign配置单页面应用开发环境 第二篇:使用react-rout ...

  7. Vue单页面应用

    单页面应用指一个系统只加载一次资源,然后下面的操作交互.数据交互是通过router.ajax来进       行,页面并没有刷新:<1>在vue搭建的环境里面怎么有没有公用的css和js? ...

  8. Vue-cli创建项目从单页面到多页面2-history模式

    之前讲过怎样将vue-cli创建的项目改造成多页面(vue-cli创建项目从单页面到多页面),今天说一下怎样在多页面的前提下使用history模式. 如何使用history模式 因为vue默认的has ...

  9. Vue-cli创建项目从单页面到多页面4 - 本地开发服务器设置代理

    前后端分离开发时,有时候会遇到跨域的情况:只在开发的时候存在跨域,项目上线后,由于配置的域名相同,跨域就会不存在. 这个时候,有两种方案可以比较快的解决: 1.利用h5的特性,使用cors,在ngni ...

随机推荐

  1. 关于解决Git项目本地修改代码之后执行pull操作之后报错的问题

    解决办法: 注意!该方法执行后会导致远程仓库覆盖本地仓库的文件,如果不需要对本地文件进行保存,可以无视,若之后还需要用到,请备份所报错文件! 1.Eclipse中选中项目右键-->Team--& ...

  2. BASH 学习笔记小结

    1. Linux 脚本编写基础 1.1 语法基本介绍 1.1.1 开头 程序必须以下面的行开始(必须方在文件的第一行): #!/bin/sh 符号#!用来告诉系统它后面的参数是用来执行该文件的程序.在 ...

  3. SpringMVC框架学习笔记(1)——HelloWorld

    搭建SpringMVC框架 1.添加jar包 jsp-api.jar servlet-api.jar jstl.jar commons-logging-1.1.1.jar spring-beans-4 ...

  4. 无序列表li横向排列的间隙问题

    今天在写页面的时候,无意中遇到这样一个问题,就是无序列表li横向排列即做成导航栏时,列表项间有间隙. 如: 将列表项li变成列表块后(即将li标签设置为,display:inline-block后), ...

  5. parse_url   解析 URL,返回其组成部分

    parse_url - 解析 URL,返回其组成部分 array parse_url ( string $url [, int $component = -1 ] ) 本函数解析一个 URL 并返回一 ...

  6. thinkphp操作完提示信息该怎么弄成弹出层啊?

    http://www.thinkphp.cn/topic/21929.html 浏览:11879 发布日期:2014/08/22 分类:求助交流 关键字: thinkphp success跳转 弹出层 ...

  7. VUE之ECMAScript6(es6)

    es6:es:EMCAScript 6 (es2015)Emca:国际标准组织 1.常量和变量 const a = "hello" let:定义一个块级作用域的变量 需要先定义再使 ...

  8. servlet多线程问题

    Servlet本身是单实例的,这样当多个用户同时访问某个Servlet时,会访问该唯一的Servlet实例中的成员变量,如果对成员变量进行写入工作,那就会导致Servlet的多线程问题,即数据不一致. ...

  9. 【笔记】css 实现宽度自适应屏幕 高度自适应宽度

    如果说宽高自适应屏幕尺寸那么大家可能会想到 div{ width: 100%; height: 100% } 但是如果我要自适应屏幕尺寸的同时还要变成正方形呢?(高度和宽度相等而高度不能写死) 那就要 ...

  10. 前端之CSS介绍--选择器

    一.CSS简介 介绍 css我们称呼层叠样式表(英文全称:Cascading Style Sheets).它是一种用来表现HTML(标准通用标记语言的一个应用)或XML(标准通用标记语言的一个子集)等 ...