[TOC]

注意:本文分享给安全从业人员,网站开发人员和运维人员在日常工作中使用和防范恶意攻击,请勿恶意使用下面描述技术进行非法操作。

0.SEO 介绍与分类

Q:什么是SEO?
A:SEO是Search Engine optimization的缩写,SEO是指通过对网站进行站内优化(网站结构调整、网站内容建设、网站代码优化等)和站外优化,从而提高网站的关键词排名以及公司产品的曝光度。
说简单的其实SEO它就是一种无处不在的产品制造推销理论,制造一个让用户知道-喜欢-购买的东西的传统思维过程;seo制造的是网页网站,面对的用户是搜索引擎:且狭义的seo面向的用户是搜索引擎(发现你的网站→哟,还不错,抓取了→排名中展示你),广义的seo面向的是搜索引擎和广大用户(涉及用户体验)。

方式:利用搜索引擎的规则提高网站在有关搜索引擎内的自然排名。
目的:为网站提供生态式的自我营销解决方案,让其在行业内占据领先地位,获得品牌收益

Q:为什么要做SEO?SEO的优势?
A: S有如下几点

  • 做SEO能来客户终极目标是能来带销售。从百度获取的流量比今日头条等媒体更精准,因为是用户主动发起,反应的是即时需求,转化率高。
  • 流量精准,能变成付费用户的可能性大。因为根据相关的关键词,可以找到非常精准的流量。
    举个例子,一家北京饭店,在搜索词“北京美食“的内容里排到第一的话,会带来多少精准流量?
  • 企业付出的成本比较低。只需要进行一些内容、网站上的优化,但是可能带来的流量不论质量还是数量都是非常之高的。
  • 一劳永逸,长期有效。一旦占据了高位,就很难下去了;只要及时的进行优化,那么起码是会很长时间占据首位的。

Q:做SEO的手段、方法有那些?
(1) 白帽SEO
(2) 黑帽SEO
(3) 通过互联网上的搜索引擎。(常见的搜索引擎:百度、谷歌、雅虎、360搜,soso等等)
(4) 站内SEO : 一是针对个人网站的页面排版进行SEO的优化;二是针对搜索引擎进行主动的优化。
(5) 站外SEO :

Q:百度的搜索内容是如何呈现的呢?
A:详细过程如下

  • 第一步百度的机器人会在网上对网站进行爬行和抓取,将网页内容和HTML代码收录到百度的数据库中。
  • 第二步预处理,会对网页提取文字,分词,去停止词、消噪、去重,提取关键词建立索引,最终根据这些内容计算出网页的权重,网页权重决定了网页在搜索当中的排序。
  • 第三步就是排名,百度会对数据库中的网页,根据计算出的权重进行排名,

seo工作的基本内容:

  • 内容建设:是不是当前广大用户需求的内容
  • 竞争对手:对手都是怎么在做的?我们如何差异化
  • 协调资源:我们该协调那些资源来促成这次seo修改
  • 站内优化:把你的seo细节做到极致,网站代码标签结构。
  • 站外优化:网站上线,如何推广、链接建设促进收录和排名
  • 迭代优化:数据分析促进页面体验的不断完善修改

1.正常SEO介绍

在网站内部优化中做SEO最重要的三个点。

#author:WEIYIGEEK
<title>网站标题</title>
<meta name="Keywords" content="关键字" />
<meta name="Description" content="简介" />
<img class="avatar" src="/images/header.jpg" alt="图片介绍">

#页面URL分析:
URL长度:建议不要超过255byte
静态页参数:在静态页面上使用动态参数,会造成spider多次和重复抓取

#页面内容分析
Meta及标题信息:搜索引擎优化的关键
Frame信息:搜索引擎抓取不到Frame的内容
Flash文字描述:Flash描述能让搜索引擎了解该Flash信息
图片ALT信息:通过ALT让搜索引擎了解该图片信息


网站标题
网站标题的选取的字数最好不要超过40-80,当然字数在10~25之中是最好的;

  • 把核心的关键词放在前面
  • 标题简单具有表达性,诱惑性

标题中为了增加精确性可以选择性加入地方词,标题中使用的符号要比较简单具有清晰的,不要使用特殊符号。

#常用符号
_ - | !


关键词
关键词分成三种,核心关键词、扩展关键词、分布关键词。其中最重要的还是核心关键词。

选择方向上要与网页内容相关、尽量选择搜索次数多,竞争小的,要避免太多宽泛也不能太特殊、偏门。

使用关键词与简介的总结:
1.关键词超过7个;关键词设置的页面建议是放到主页、目录页;关键词不要是长尾词;主页最少出现核心关键词:
2.简介/描述词的字最好不要超过100个,简介也不要利用长尾词(常用词).

长尾关键词(Long Tail Keyword): 是指网站上的非目标关键词但与目标关键词相关的也可以带来搜索流量的组合型关键词。
长尾关键词特征:比较长,往往是2-3个词组成甚至是短语,存在于内容页面中和内容页的标题里面。 搜索量非常少,并且不稳定。


robots.txt
描述:robots是网站跟爬虫间的协议,搜索引擎通过一种程序robot(又称spider),自动访问互联网上的网页并获取网页信息.他使用简单直接的txt格式文本方式告诉搜索引擎爬虫被允许爬取的范围,就是说robots.txt(常规小写)是搜索引擎中访问网站的时候要查看的第一个文件;根据robots文件里面的语法,进行分析哪个目录或者哪个链接是不可以收录的。

Q:为什么要使用robots.txt?
A:因为有些网站他是具有敏感性的,比如:后台、数据库、常见的一些网站漏洞、0ody等等也是为了安全嘛。

robots.txt 语法:

User-agent: * 这里的*代表的所有的搜索引擎种类,*是一个通配符
Disallow: /admin/ 这里定义是禁止爬寻admin目录下面的目录
Disallow: /require/ 这里定义是禁止爬寻require目录下面的目录
Disallow: /ABC/ 这里定义是禁止爬寻ABC目录下面的目录
Disallow: /cgi-bin/*.htm 禁止访问/cgi-bin/目录下的所有以".htm"为后缀的URL(包含子目录)。
Disallow: /*?* 禁止访问网站中所有包含问号 (?) 的网址
Disallow: /.jpg$ 禁止抓取网页所有的.jpg格式的图片
Disallow:/ab/adc.html 禁止爬取ab文件夹下面的adc.html文件。
Allow: /cgi-bin/ 这里定义是允许爬寻cgi-bin目录下面的目录
Allow: /tmp 这里定义是允许爬寻tmp的整个目录
Allow: .htm$ 仅允许访问以".htm"为后缀的URL。
Allow: .gif$ 允许抓取网页和gif格式图片
Sitemap: 网站地图告诉爬虫这个页面是网站地图

#实例讲解
#禁止所有搜索引擎访问网站的所有部分。
User-agent:*
Disallow:/

#禁止百度索引你的网站。
User-agent:Baiduspider
Disallow:/

#禁止Google索引你的网站。
User-agent:Googlebot
Disallow:/

#禁止除百度以外的一切搜索引擎索引你的网站。
User-agent:Baiduspider
Disallow:
User-agent:*
Disallow:/

#禁止和允许搜索引擎访问某个目录,如:禁止访问admin目录;允许访问images目录。
User-agent:*
Disallow:/admin/
Allow:/images/

#禁止和允许搜索引擎访问某个后缀,如:禁止访问admin目录下所有php文件;允许访问asp文件。
User-agent:*
Disallow:/admin/*.php$
Allow:/admin/*.asp$

#禁止索引网站中所有的动态页面(这里限制的是有“?”的域名,如:index.php?id=8)。
User-agent:*
Disallow:/*?*

#其他的影响搜索引擎的行为的方法包括使用robots元数据:
<meta name="robots" content="noindex,nofollow" />
# 出站链接添加 “nofollow” 标签
# nofollow 标签是由谷歌领头创新的一个“反垃圾链接”的标签,并被百度、yahoo 等各大搜索引擎广泛支持,引用 nofollow 标签的目的是:用于指示搜索引擎不要追踪(即抓取)网页上的带有 nofollow 属性的任何出站链接,以减少垃圾链接的分散网站权重。
<p>ICP备案:<a href="http://www.miibeian.gov.cn/" rel="external nofollow"><%= theme.footer.ICP %></a></p>


#
# robots.txt for WeiyiGeek Blog By Hexo
#
User-agent:*
Allow: /
Allow: /archives/
Allow: /about/
Disallow: /images/
Disallow: /fonts/
Disallow: /.js$
Disallow: /.css$

Sitemap: http://weiyigeek.github.io/sitemap.xml
Sitemap: http://weiyigeek.github.io/baidusitemap.xml

Q:使用注意误区二在robots.txt文件中设置所有的文件都可以被搜索蜘蛛抓取,这样可以增加网站的收录率?
A:网站中的程序脚本、样式表等文件即使被蜘蛛收录,也不会增加网站的收录率,还只会浪费服务器资源,因此必须在robots.txt文件里设置不要让搜索蜘蛛索引这些文件。


权重值
Q: 什么是权重值?
A:表示页面的重要性的,如前文所说权重值是决定网页在搜索结果中的排名顺序的;百度的叫做权重值,谷歌的叫做pr值;

权重值是由1-10,数值越高,权重越大。
权重值除了有分析网页内容、结构得出外,优质的反向链接的数量,也会提高权重值。

Q:如何提高权重值?
A:提高权重值就要从内部和外部分别进行优化。

  • 内部优化:内容优化以及结构优化;
  • 外部优化:外链优化;
    其中内容优化一般由运营人员负责,而结构优化就需要技术人员和运营人员一同协作了;外链方面最主要的还是需要友情链接,就比较篇BD方向(通常也是由运营方面负责)。

总结:所以做SEO优化,也就是在想办法提高权重值。

常见的SEO工具:

  1. 网站管理员工具:百度站长平台,搜狗站长平台,360站长平台
  2. 网站外链查询工具
  3. SEO综合查询工具:爱站网,站长工具.
  4. 关键词挖掘工具:
  5. 网站关键词查询工具:百度指数,Google AdWords关键字工具
  6. 网站安全检测:百度安全检测,安全宝,腾讯电脑管家安全检测;
  7. 网站统计工具:百度统计,腾讯分析
  8. 广告联盟:百度联盟,谷歌联盟,创宇信用
#常用站长工具
http://zhanzhang.so.com/
http://fankui.help.sogou.com/

2.黑帽SEO介绍

描述:黑帽SEO操作手法不符合搜索引擎规定,利用不正当手段进行牟利,快速获取流量,它是一种作弊手段。

技术分类:
(1) 隐藏文字
(2) 垃圾链接
(3) 网页快照劫持
(4) 关键词堆积
(5) 权重PR劫持
(6) 挂黑链
(7) 泛站群
(8) 友情链接欺骗
(9) 批量页面轮链

0x00 隐藏文字

其实就是利用改变网站中文字颜色,文字大小,CSS属性,文字定位等等,示例代码如下:

<html>
<body>
<div style="color:white">
SEO文字颜色
</div>
<div style="font-size:1px">
SEO文字大小
</div>
<div style="display:none">
SEO文字显示CSS
</div>
<div style="position: absolute;left:-10000px;top: -100px;">
SEO文字绝对定位
</div>
</body>
</html>

0x01 内嵌网页

使用方法如下:

//#方法1
<IFRAME frameBorder=0 scrolling=no width='0' height='0' src="http://baidu.com"></IFRAME>

//#方法2
<div id="site"></div>
<script>
document.getElementById('site').innerHTML = "<IFRAME frameBorder=0 scrolling=no width='100' height='100' src='http://baidu.com'></IFRAME>"
</script>

0x02 劫持某度快照

某度搜索引擎的快照劫持操作,各个脚本语言有各个脚本的劫持快照的方法:

//案例1:ASP
<%
function Getbot()
dim s_agent
GetBot=""
s_agent=Request.ServerVariables("HTTP_USER_AGENT")
if instr(1,s_agent,"googlebot",1) > 0 then
GetBot="google"
end if
if instr(1,s_agent,"baiduspider",1) > 0 then
GetBot="baidu"
end if
end function
if GetBot="baidu" or GetBot="google" then
url="http://www.baidu.com" '跳转网址
Response.Status = "301 Moved Permanently"
Response.AddHeader "Location", url
else
Response.Write"<meta http-equiv='refresh' content='0;URL=http://www.baidu.com'>"
end if
%>

0x03 轮链SEO

Q:什么是轮链?
A:在一个网站目录生成大量的页面,百万的页面,相互轮链,提升内链而达到排名;简单的说就是几个页面相互进行a标签链接,轮链一般是新手操作比较好/容易简单。

Q:轮链是不寄生虫?
A:不是

0x04 寄生虫

Q:什么是寄生虫?
A:寄生虫页面不多且比较寄生虫专业

原理:他这个程序跟轮链是不一样的,寄生虫他页面也就几个十多个,有蜘蛛访问,他会持续的生成一些页面等等比如:本来是10个页面的 1个蜘蛛来访后、他就自动生成到20个。

0x05 地区流量劫持

描述:其实就是通过js来判断IP来源,进行跳转的,当然方法坑定不止这些

<script src="判断用户地区的JS脚本" charset="GB2312" ></script>
<script type=text/javascript>
if(remote_ip_info.province =='广西'){
4pass
}else{
window.location.href="IT综合网"
}
</script>

0x06 301劫持PR

描述:其实与元数据meta http-equiv=’refresh’使用差不多,也能通过脚本进行301跳转

#案例1:
<%
Response.Status="301 Moved Permanently"
Response.AddHeader "Location","http://WWW.baidu.COM"
Response.End
%>