本文作者:IMWeb 结一 原文出处:IMWeb社区 未经同意,禁止转载
seo本身涉及范围非常广,所包含的知识也是非常值得深入研究的一个方向,本文仅从重构侧出发聊聊最近做的一些seo实战。
TDK优化
TDK为title
,description
,keywords
三个的统称。当然title
是最有用的,是非常值得优化的;而keywords
因为以前被seo人员过度使用,所以现在对这个进行优化对搜索引擎是没用的,这里就不说了;description
的描述会直接显示在搜索的介绍中,所以对用户的判断是否点击还是非常有效的。
title优化
title
的分隔符一般有,
,_
,-
等,其中_
对百度比较友好,而-
对谷歌比较友好,第四个为空格,英文站点可以使用,中文少用。title
长度一般pc端大概30个中文,移动端20个,超过则会截断为省略号。
因为业务关系,我们做的更多的是针对百度搜索引擎的优化,所以这里把百度搜索引擎优化的建议分享下:
title
格式:
- 首页:
网站名称
或者网站名称_提供服务介绍or产品介绍
- 频道页:
频道名称_网站名称
- 文章页:
文章title_频道名称_网站名称
如果你的文章标题不是很长,还可以加入点关键词进去,如文章title_关键词_网站名称
推荐做法:
- 每个网页应该有一个独一无二的标题,切忌所有的页面都使用同样的默认标题
- 标题要主题明确,包含这个网页中最重要的内容
- 简明精练,不罗列与网页内容不相关的信息
- 用户浏览通常是从左到右的,重要的内容应该放到title的靠前的位置
- 使用用户所熟知的语言描述。如果你有中、英文两种网站名称,尽量使用用户熟知的那一种做为标题描述
description优化
description
不是权值计算的参考因素,这个标签存在与否不影响网页权值,只会用做搜索结果摘要的一个选择目标。其长度pc端大概为78个中文,移动端为50个,超过则会截断为省略号。
百度推荐做法为:
- 网站首页、频道页、产品参数页等没有大段文字可以用做摘要的网页最适合使用description
- 准确的描述网页,不要堆砌关键词
- 为每个网页创建不同的description,避免所有网页都使用同样的描述
- 长度合理,不过长不过短
下面以百度推荐的两个例子为对比,第一个没有应用meta description,第二个应用了meta description,可以看出第一个结果的摘要对用户基本没有参考价值,第二个结果的摘要更具可读性,可以让用户更了解网站的内容。
页面内容优化
使用html5结构
如果条件允许(如移动端,兼容ie9 ,如果ie8 就针对ie8引入html5.js
吧),是时候开始考虑使用html5语义化标签。如header
,footer
,section
,aside
,nav
,article
等,这里我们截图看一个整体布局
更多html5语义化标签请参考:All HTML5 Tags
唯一的H1标题
每个页面都应该有个唯一的h1标题,但不是每个页面的h1标题都是站点名称。(但html5中h1标题是可以多次出现的,每个具有结构大纲的标签都可以拥有自己独立的h1标题,如header
,footer
,section
,aside
,article
)
首页的h1标题为站点名称,内页的h1标题为各个内页的标题,如分类页用分类的名字,详细页用详细页标题作为h1标题
代码语言:javascript复制<!-- 首页 -->
<h1 class="page-tt">腾讯课堂</h1>
<!-- 分类页 -->
<h1 class="page-tt">前端开发在线培训视频教程</h1>
<!-- 详细页 -->
<h1 class="page-tt">html5 CSS3</h1>
img设置alt
属性
img
必须设置alt
属性,如果宽度和高度固定请同时设置固定的值
<img src="" alt="seo优化实战" width="200" height="100" />
nofollow
对不需要跟踪爬行的链接,设置nofollow
。可用在博客评论、论坛帖子、社会化网站、留言板等地方,也可用于广告链接,还可用于隐私政策,用户条款,登录等。如下代码表示该链接不需要跟踪爬行,可以阻止蜘蛛爬行及传递权重。
<a href="http://example.com" rel="nofollow">no follow 链接</a>
正文
内容方面考虑:
- 自然写作
- 高质量原创内容
- 吸引阅读的写作手法
- 突出卖点
- 增强信任感
- 引导进一步行为
用户体验方面考虑:
- 排版合理、清晰、美观、字体、背景易于阅读
- 实质内容处在页面最重要位置,用户一眼就能看到
- 实质内容与广告能够清晰区分
- 第一屏就有实质内容,而不是需要下拉页面才能看到
- 广告数量不宜过多,位置不应该妨碍用户阅读
- 如果图片、视频有利于用户理解页面内容,尽量制作图片、视频等
- 避免过多弹窗
URL优化
URL设计原则:
- 越短越好
- 避免太多参数
- 目录层次尽量少
- 文件及目录名具描述性
- URL中包括关键词(中文除外)
- 字母全部小写
- 连词符使用
-
而不是_
- 目录形式而非文件形式
URL静态化
以现在搜索引擎的爬行能力是可以不用做静态化的,但是从收录难易度,用户体验及社会化分享,静态简短的URL都是更有利的。
具体讨论可参考:URL静态化还是不静态化?
URL规范化
1、统一连接
代码语言:javascript复制http://www.domainname.com
http://domainname.com
http://www.domainname.com/index.html
http://domainname.com/index.html
以上四个其实都是首页,虽然不会给访客造成什么麻烦,但对于搜索引擎来说就是四条网址,并且内容相同,很可能会被误认为是作弊手段,而且当搜索引擎要规范化网址时,需要从这些选择当中挑一个最好的代表,但是挑的这个不一定是你想要的。所以最好自己就规范好。
2、301跳转
第一种是URL发生改变,一定要把旧的地址301指向新的,不然之前做的一些收录权重什么的全白搭了。
第二种是一些cms系统,极有可能会造成多个路径对应同一篇文章。如drupal默认的路径是以node/nid
,但是如果启用了path token,就可以自己自定义路径。这样一来就有两条路径对应同一篇文章。所以可以启用301,最终转向一个路径。
3、canonical
这个标签表示页面的唯一性(这个标签以前百度不支持,现在支持),用在平时参数传递的时候,如:
代码语言:javascript复制//:ke.qq.com/download/app.html
//:ke.qq.com/download/app.html?from=123
//:ke.qq.com/download/app.html?from=456
以上三个表示三个页面,但其实后两个只是想表明从哪来的而已,所以为了确保这三个为同一个页面,我们在head
上加上canonical
标签。
<link rel="cononical" href="//:ke.qq.com/download/download/app.html" />
robots
robots.txt
搜索引擎蜘蛛访问网站时会第一个访问robots.txt文件,robots.txt用于指导搜索引擎蜘蛛禁止抓取网站某些内容或只允许抓取那些内容,放在站点根目录。
以腾讯课堂的robots.txt为例:
- User-agent 表示以下规则适用哪个蜘蛛,
*
表示所有 #
表示注释- Disallow 表示禁止抓取的文件或目录,必须每个一行,分开写
- Allow 表示允许抓取的文件或目录,必须每个一行,分开写
- Sitemap 表示站点XML地图,注意S大写
下面表示禁止所有搜索引擎蜘蛛抓取任何内容
代码语言:javascript复制User-agent: *
Disallow: /
下面表示允许所有搜索引擎蜘蛛抓取任何内容
代码语言:javascript复制User-agent: *
Disallow:
注意:被robots禁止抓取的URL还是肯呢个被索引并出现在搜索结果中的。只要有导入链接指向这个URL,搜索引擎就知道这个URL的存在,虽然不会抓取页面内容,但是索引库还是有这个URL的信息。以淘宝为例:
禁止百度搜索引擎抓取
百度搜索有显示
更多关于robots.txt
请参考:如何使用robots.txt及其详解
meta robots
如果要想URL完全不出现在搜索结果中,则需设置meta robots
代码语言:javascript复制<meta name="robots" content="onindex,nofollow">
上面代码表示:禁止所有搜索引擎索引本页,禁止跟踪本页上的链接。
当然还有其他类型的content,不过各个浏览器支持情况不同,所以这里忽略。
sitemap
站点地图格式分为HTML和XML两种。
HTML版本的是普通的HTML页面sitemap.html
,用户可以直接访问,可以列出站点的所有主要链接,建议不超过100条。
XML版本的站点地图是google在2005年提出的,由XML标签组成,编码为utf-8
,罗列页面所有的URL。其格式如下:
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>//ke.qq.com</loc>
<lastmod>2015-12-28</lastmod>
<changefreq>always</changefreq>
<priority>1.0</priority>
</url>
...
</urlset>
其中urlset
,url
,loc
三个为必须标签,lastmod
,changefreq
,priority
为可选标签。
lastmod
表示页面最后一次更新时间。
changefreq
表示文件更新频率,有以下几种取值:always, hourly, daily, weekly, monthly, yearly, never。其中always表示一直变动,每次访问页面内容都不同;而never表示从来不变。
priority
表示URL相对重要程度,取值范围为0.0-1.0
,1.0
表示最重要,一般用在网站首页,对应的0.0
就是最不重要的,默认重要程度为0.5
。(注意这里的重要度是我们标记的,并不代表搜索引擎真的就完全按照我们设置的重要度来排列)
sitemap.xml
不能超过10M,而且每个sitemap文件中url的条数不要超过5万条,当你的sitemap文件很大的时候,可以分解为多个文件。如下分为两条,一条为基础,一条为产品详细页。
<sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<sitemap><loc>//ke.qq.com/sitemap-basic.xml</loc><lastmod>2015-12-28T02:10Z</lastmod></sitemap>
<sitemap><loc>//ke.qq.com/sitemap-product.xml</loc><lastmod>2015-12-28T02:10Z</lastmod></sitemap>
</sitemapindex>
SEO工具
- 百度搜索风云榜
- 百度指数
- 百度站长平台
- meta seo inspector,检查标签的,谷歌插件
- seo in china,百度收录的各种数据,谷歌插件
- check my links,检查链接,谷歌插件
- seo quake,统计各种数据,谷歌插件
最后,本文参考百度搜索引擎优化指南2.0 和zac著作《SEO实战密码》(对SEO感兴趣的同学,可以买本看看)。