2007-09-28SEO

没有评论
2,134 views

robots.txt屏蔽搜索抓取

         搜索引擎通过一种程序robot(又称spider),自动访问互联网上的网页并获取网页信息。
          您可以在您的网站中创建一个纯文本文件robots.txt,在这个文件中声明该网站中不想被robot访问的部分,这样,该网站的部分或全部内容就可以不被搜索引擎收录了,或者指定搜索引擎只收录指定的内容。robots.txt文件应该放在网站根目录下。

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

robots.txt文件的格式:
“robots.txt”文件包含一条或更多的记录,这些记录通过空行分开(以CR,CR/NL, or NL作为结束符),每一条记录的格式如下所示:
“<field>:<optionalspace><value><optionalspace>”。

在该文件中可以使用#进行注解,具体使用方法和UNIX中的惯例一样。该文件中的记录通常以一行或多行User-agent开始,后面加上若干Disallow行,详细情况如下:

User-agent:
  该项的值用于描述搜索引擎robot的名字,在”robots.txt”文件中,如果有多条User-agent记录说明有多个robot会受到该协议的限制,对该文件来说,至少要有一条User-agent记录。如果该项的值设为*,则该协议对任何机器人均有效,在”robots.txt”文件中,”User-agent:*”这样的记录只能有一条。

Disallow:
该项的值用于描述不希望被访问到的一个URL,这个URL可以是一条完整的路径,也可以是部分的,任何以Disallow开头的URL均不会被robot访问到。例如”Disallow:/help”对/help.html 和/help/index.html都不允许搜索引擎访问,而”Disallow:/help/”则允许robot访问/help.html,而不能访问/help/index.html。任何一条Disallow记录为空,说明该网站的所有部分都允许被访问,在”/robots.txt”文件中,至少要有一条Disallow记录。如果”/robots.txt”是一个空文件,则对于所有的搜索引擎robot,该网站都是开放的。
robots.txt文件用法举例:
例1. 禁止所有搜索引擎访问网站的任何部分 下载该robots.txt文件 User-agent: * Disallow: /
例2. 允许所有的robot访问 (或者也可以建一个空文件 “/robots.txt” file) User-agent: *Disallow:
例3. 禁止某个搜索引擎的访问 User-agent: BadBotDisallow: /
例4. 允许某个搜索引擎的访问 User-agent: baiduspiderDisallow: User-agent: *Disallow: /
例5.一个简单例子  在这个例子中,该网站有三个目录对搜索引擎的访问做了限制,即搜索引擎不会访问这三个目录。  需要注意的是对每一个目录必须分开声明,而不要写成 “Disallow: /cgi-bin/ /tmp/”。  User-agent:后的*具有特殊的含义,代表”any robot”,所以在该文件中不能有”Disallow: /tmp/*” or “Disallow:*.gif”这样的记录出现. User-agent: *Disallow: /cgi-bin/Disallow: /tmp/Disallow: /~joe/

Robot特殊参数:
1. Google
允许 Googlebot:
如果您要拦截除 Googlebot 以外的所有漫游器访问您的网页,可以使用下列语法:

User-agent:Disallow:/
User-agent:Googlebot
Disallow:
Googlebot 跟随指向它自己的行,而不是指向所有漫游器的行。

“Allow”扩展名:
Googlebot 可识别称为”Allow”的 robots.txt 标准扩展名。其他搜索引擎的漫游器可能无法识别此扩展名,因此请使用您感兴趣的其他搜索引擎进行查找。”Allow”行的作用原理完全与”Disallow”行一样。只需列出您要允许的目录或页面即可。

您也可以同时使用”Disallow”和”Allow”。例如,要拦截子目录中某个页面之外的其他所有页面,可以使用下列条目:

User-Agent:Googlebot
Disallow:/folder1/
Allow:/folder1/myfile.html
这些条目将拦截 folder1 目录内除 myfile.html 之外的所有页面。

如果您要拦截 Googlebot 并允许 Google 的另一个漫游器(如 Googlebot-Mobile),可使用”Allow”规则允许该漫游器的访问。例如:

User-agent:Googlebot
Disallow:/
User-agent:Googlebot-Mobile
Allow:

使用 * 号匹配字符序列:
您可使用星号 (*) 来匹配字符序列。例如,要拦截对所有以 private 开头的子目录的访问,可使用下列条目:

User-Agent:Googlebot
Disallow:/private*/
要拦截对所有包含问号 (?) 的网址的访问,可使用下列条目:

User-agent:*
Disallow:/*?*

使用 $ 匹配网址的结束字符
您可使用 $ 字符指定与网址的结束字符进行匹配。例如,要拦截以 .asp 结尾的网址,可使用下列条目:

User-Agent:Googlebot
Disallow:/*.asp$
您可将此模式匹配与 Allow 指令配合使用。例如,如果 ? 表示一个会话 ID,您可排除所有包含该 ID 的网址,确保 Googlebot 不会抓取重复的网页。但是,以 ? 结尾的网址可能是您要包含的网页版本。在此情况下,可对 robots.txt 文件进行如下设置:

User-agent:*
Allow:/*?$
Disallow:/*?
Disallow:/ *?一行将拦截包含 ? 的网址(具体而言,它将拦截所有以您的域名开头、后接任意字符串,然后是问号 (?),而后又是任意字符串的网址)。

Allow: /*?$ 一行将允许包含任何以 ? 结尾的网址(具体而言,它将允许包含所有以您的域名开头、后接任意字符串,然后是问号 (?),问号之后没有任何字符的网址)。

Sitemap 网站地图:
对网站地图的新的支持方式,就是在robots.txt文件里直接包括sitemap文件的链接。
就像这样:
Sitemap: http://www.etcis.com/sitemap.xml
目前对此表示支持的搜索引擎公司有Google, Yahoo, Ask and MSN。
不过,我建议还是在Google Sitemap 进行提交,里面有很多功能可以分析你的链接状态。

Robots.txt带来的好处:
1. 几乎所有的搜索引擎Spider都遵循robots.txt给出的爬行规则,协议规定搜索引擎Spider进入某个网站的入口即是该网站的robots.txt,当然,前提是该网站存在此文件。对于没有配置robots.txt的网站,Spider将会被重定向至404 错误页面,相关研究表明,如果网站采用了自定义的404错误页面,那么Spider将会把其视作robots.txt——虽然其并非一个纯粹的文本文件——这将给Spider索引网站带来很大的困扰,影响搜索引擎对网站页面的收录。

2. robots.txt可以制止不必要的搜索引擎占用服务器的宝贵带宽,如email retrievers,这类搜索引擎对大多数网站是没有意义的;再如image strippers,对于大多数非图形类网站来说其也没有太大意义,但却耗用大量带宽。

3. robots.txt可以制止搜索引擎对非公开页面的爬行与索引,如网站的后台程序、管理程序,事实上,对于某些在运行中产生临时页面的网站来说,如果未配置robots.txt,搜索引擎甚至会索引那些临时文件。

4. 对于内容丰富、存在很多页面的网站来说,配置robots.txt的意义更为重大,因为很多时候其会遭遇到搜索引擎Spider给予网站的巨大压力:洪水般的Spider访问,如果不加控制,甚至会影响网站的正常访问。

5. 同样地,如果网站内存在重复内容,使用robots.txt限制部分页面不被搜索引擎索引和收录,可以避免网站受到搜索引擎关于 duplicate content的惩罚,保证网站的排名不受影响。

robots.txt带来的风险及解决:
1. 凡事有利必有弊,robots.txt同时也带来了一定的风险:其也给攻击者指明了网站的目录结构和私密数据所在的位置。虽然在Web服务器的安全措施配置得当的前提下这不是一个严重的问题,但毕竟降低了那些不怀好意者的攻击难度。

  比如说,如果网站中的私密数据通过www.yourdomain.com/private/index.html 访问,那么,在robots.txt的设置可能如下:

User-agent: *
Disallow: /private/

  这样,攻击者只需看一下robots.txt即可知你要隐藏的内容在哪里,在浏览器中输入www.yourdomain.com/private/ 便可访问我们不欲公开的内容。对这种情况,一般采取如下的办法:

设置访问权限,对/private/中的内容实施密码保护,这样,攻击者便无从进入。
另一种办法是将缺省的目录主文件index.html更名为其他,比如说abc-protect.html,这样,该内容的地址即变成www.yourdomain.com/private/abc-protect.htm,同时,制作一个新的index.html文件,内容大致为“你没有权限访问此页”之类,这样,攻击者因不知实际的文件名而无法访问私密内容。
2. 如果设置不对,将导致搜索引擎将索引的数据全部删除。

User-agent: *
Disallow: /
上述代码将禁止所有的搜索引擎索引数据。

目前看来,绝大多数的搜索引擎机器人都遵守robots.txt的规则,而对于Robots META标签,目前支持的并不多,但是正在逐渐增加,如著名搜索引擎GOOGLE就完全支持,而且GOOGLE还增加了一个指令“archive”,可以限制GOOGLE是否保留网页快照。例如:

<META NAME=”googlebot” CONTENT=”index,follow,noarchive”>

表示抓取该站点中页面并沿着页面中链接抓取,但是不在GOOLGE上保留该页面的网页快照。

阿里巴巴新产品SEO分析

阿里巴巴新业务SEO分析 

    阿里巴巴最近又有大动作,对旗下的诚信通进行了产品升级,升级举措主要是为诚信通用户申请国际域名邦定到客户的诚信通公司主页上。对于用户来说,这样的举措肯定是受到欢迎,毕竟有阿里巴巴来帮我宣传,何乐而不为,用户高兴阿,以后可以不用自己的网站了!先不谈这个举措给用户和阿里带来的好处如何,下面以一个商铺为例子:咱们先谈谈SEO方面的问题

阿里的商铺域名:http://sodr2000.cn.alibaba.com/

阿里送给用户的:http://www.asura-china.cn/

     阿里巴巴推出的新服务,赠送用户的URL与原来的商铺的URL的相似度就是100%相同了,那么肯定会造成其中一个域名的或阿里巴巴的整个产品的域名在搜索引擎的权重下降!或者人为的删除网页。

第一:复制内容网页。很多转载或抄袭的内容会被标为补充材料。因为Google也没办法判断哪一个是原创的,所以有时候原创者也会遭殃。

第二:网页上相同或相似的内容太多。比如导航系统占网页内容比例比较大,而正文部分比较小。从上面这几种情况来看,补充材料在大部分情况下和网页内容重复或类似有关。而阿里巴巴推出的新服务,赠送用户的URL与原来的商铺的URL的相似度就是100%相同了,那么肯定会造成其中一个域名的或阿里巴巴的整个产品的域名在搜索引擎的权重下降!

不过最近GOOGLE会逐渐取消补充材料这一点。 由于“补充材料”和常规结果之间的差距越来越小,因此Google觉得不必要再特地将来自补充索引数据库的网页标记为“补充材料”,于是它决定停止了这一做法。换言之,“补充材料”将成为历史。这意味着以后我们在Google上面进行搜索,将得到更准确及更全面的搜索结果,因为Google的两大索引数据库正在融合。

 针对这一问题如:http://www.asura-china.cn/robots.txt

打开这个URL你会看到

User-agent:*

Disallow:/

说明:robots.txt文件的格式“robots.txt”文件包含一条或更多的记录,这些记录通过空行分开(以CR,CR/NL, or NL作为结束符),每一条记录的格式如下所示:“<field>:<optionalspace><value><optionalspace>”。在该文件中可以使用#进行注解,具体使用方法和UNIX中的惯例一样。该文件中的记录通常以一行或多行User-agent开始,后面加上若干Disallow,详细情况如下:User-agent:
  该项的值用于描述搜索引擎robot的名字,在“robots.txt”文件中,如果有多条User-agent记录说明有多个robot会受到该协议的限制,对该文件来说,至少要有一条User-agent记录。如果该项的值设为*,则该协议对任何机器人均有效,在“robots.txt”文件中,“User-agent:*”这样的记录只能有一条。Disallow:该项的值用于描述不希望被访问到的一个URL,这个URL可以是一条完整的路径,也可以是部分的,任何以Disallow开头的URL均不会被robot访问到。例如“Disallow:/help”/help.html /help/index.html都不允许搜索引擎访问,而“Disallow:/help/”则允许robot访问/help.html,而不能访问/help/index.html。任何一条Disallow记录为空,说明该网站的所有部分都允许被访问,在“/robots.txt”文件中,至少要有一条Disallow记录。如果“/robots.txt”是一个空文件,则对于所有的搜索引擎robot,该网站都是开放的。

robots.txt文件用法举例:
1. 禁止所有搜索引擎访问网站的任何部分下载该robots.txt文件 User-agent: * Disallow: /
2. 允许所有的robot访问 (或者也可以建一个空文件
“/robots.txt” file) User-agent: *Disallow:
3. 禁止某个搜索引擎的访问
 User-agent: BadBotDisallow: /
4. 允许某个搜索引擎的访问 User-agent: baiduspiderDisallow: User-agent: *Disallow: /

    阿里巴巴的策略就是选择在新域名中使用robots.txt文件了来禁止搜索引擎抓取页面,robots.txt的使新域名不被搜索引擎收录,蜘蛛基本不会抓取新域名内容。

    阿里巴巴的产品都相当的清晰,在做任何调整的时候都会考虑到SEO的因素,策略和产品,还有营销,每一项用户体验的提升都必须把SEO 的因素考虑进去,自从阿里被降权以后,采用许多策略,能不能把排名提升呢,我们拭目以待!

作者:阿猎
原载:阿猎的SEO博客
版权所有,转载请以链接形式注明作者及原始出处。

2007-09-26SEO

没有评论
1,496 views

SEO软件:SEOM,免费下载

本帖随新版本发布即时更新,敬请关注!纯绿色软件,无需要安装,无需要注册,完全免费

  使用SEOM,随时查询你指定的关键词在搜索引擎搜索结果中的排名情况,可以查询一个关键词的排名,也可以添加批量关键词,批量查询。

  批量查询时,系统会自动记录历次查询的最佳排名,与本次查询结果对比显示,让你随时了解关键词排名的升降情况。

  使用SEOM,轻松掌握SEO工作阶段性的情况和成果。

下载地址:www.etcis.com/seom.exe

作者:阿猎
原载:阿猎的SEO博客
版权所有,转载请以链接形式注明作者及原始出处。

2007-09-23google

没有评论
995 views

GOOGLE 对垃圾网站的人工干预

自从谷歌中文网站管理员博客开站以来,感觉的到谷歌跟站长们的沟通越来越近,不象以前那样跟google反垃圾组沟通总是觉得怎么遥远。最近谷歌中文网站管理员博客发了一篇《我们怎样处理垃圾网站举报?》,以下是官方站点内容:

发表者 谷海一粟, WebSpam 组
转载自谷歌中文网站管理员博客

谷歌网站管理员工具不仅能帮助我们和网站管理员沟通,也提供了举报垃圾网站的在线渠道。感谢我们的用户,我们收到了很多垃圾网站举报。这些举报对我们改进搜索质量,给出更相关、有用的结果有很大帮助。谷歌用户可以很方便地通过两个渠道(认证的和不需认证的)进行垃圾网站举报。我们往往优先处理通过认证的渠道(譬如站长工具)递交的垃圾网站。当然,你也可以提交未经认证报告。由于未经认证报告是匿名举报,我们给他们赋予的优先级会相对较低。

这里我们想讲一讲我们是如何处理从站长管理员工具得到的垃圾网站举报的。

我们评估垃圾网站举报

我们非常重视垃圾网站的举报,并有专门人员及时处理。

我们主要根据我们的网站管理员指南来处理垃圾网站举报,确定是否赞同或不赞同用户的举报。

垃圾站点通常使用作弊手法来误导搜索引擎使之错误地把用户带入某些网站。谷歌网站管理员指南包含大部分(但不是全部)常见形式的欺骗性或操纵行为。我们建议你经常阅读我们网站管理员帮助中心上的网站管理员指南。该指南内容将不但帮助你创建一个对搜索引擎友好的网站,而且避免了谷歌和你的用户把你的网站看作是垃圾网站。

在有些情况下,我们并不赞同用户的举报内容,被举报的网站将不会受到任何影响。对确认作弊的垃圾网站我们会将他们转交给我们的软件工程师作出相应的惩罚。

我们对确认的垃圾网站进行惩罚

对确认作弊的网站,我们会人工地或从算法上采取一些行动。当然,我们对作弊网站的惩罚度会视网站违反质量指南的严重程度而定,也就是说,对确认作弊的网站并不总是把他们全部从我们的索引中移去。

改进反垃圾网站算法
反垃圾网站算法是我们打击垃圾网站最有效的方法。对某一网站的举报可能改进我们对所有类似垃圾网站的处理算法。当然,在我们使用我们的新代码之前,我们会大量地测试新代码。这个过程需要时间。当人们问”为什么我举报的网站没有受到惩罚?”,如果是我们确认的垃圾网站举报,很可能是我们正在给出,或者将会给出一个算法上的处理。

人工处理一个垃圾站点
我们也可能人工处理一个确认了的垃圾网站。这个过程显然要快得多,但它并不是一个健全的方法。我们更愿意使用算法改善我们的搜索质量。

我们可能联系网站管理员,让他们改正他们的网站

如果我们发现一个被举报的垃圾站点可能无意中违反了谷歌网站管理员指南,我们会试图联络网站管理员来以纠正他们的错误。我们可能通过电子邮件来联系网站管理员。如果他们已经在网站管理员工具上确认了他们的网站,我们会通过信息中心来传递我们的信息。

我们的宗旨是为用户提供最相关的结果。我们希望我们的用户和网站管理员继续举报垃圾网站。它对我们改进算法和改善搜索质量是有很大帮助的。如果您还不了解什么是垃圾网站,请访问我们的帮助中心或者在我们的讨论组上发表你的问题。当然,如果你发现一个垃圾网站,请告诉我们

2007-09-18SEM

没有评论
1,339 views

搜索引擎营销思维为先还是技术为先?

伴随着中国SEO市场的火热和各种SEO个人和团队破土而出,中国SEOer们又开始一轮新的市场竞争。但在竞争之余,也会有很多疑问,在点石互动,点石的论坛以及各大BBS里,讨论最多的除了技术还有如何从搜索引擎优化过渡到搜索引擎营销的过程,其实个人认为,任何SEO,不管是白帽还是黑帽在做到后期,会遇到一个发展的瓶颈,就是:“我的技术已经很好了,但为什么企业还是不感兴趣?”?“下一步我究竟还能做什么”?“搜索引擎优化从业人员究竟需要什么样的素质?”

在这里我不想谈及过多的技术问题,我只想给大家讨论下,究竟在搜索引擎优化或者搜索引擎营销中思维为先还是技术为先?

点石小鹏认为在所有的营销手段中,搜索引擎优化是一个最有效的营销手段之一,他实现的是精确匹配,效果量化,目标是针对目前的有效客户群体的有效争夺,但这些并不足以成为销售的利器和成功的法宝,阿里巴巴战略的成功不仅仅来自于搜索引擎优化,而在于其他手段来说搜索引擎营销的策略。

在SES大会上,给我耳目一新的是谢文怡女士的创意营销,虽然这种方式可能对于一些小企业来说是不能企及的东西,但这种形式和思维确实给目前的一些营销思维带来了一定的冲击。为什么要限于技术上的局限呢?就像我在很多场合表示,没有任何的技术可以保持永远的领先,领先的永远的是思维和意识。

在所有获得长期的搜索引擎营销成功的案例中,都始终灌输着一个理念:SEO策略与执行应该是与SEO项目中的主体,即网站背后的定位,运营作为主要因素挂钩,如果单纯的SEO来制定,没有深入了解实际的需求,大量的只考虑用户的来源,并没有相应的栏目和方法留住客户,也就是网站的实际商业流量和有效流量没有,那么流量再大效果再好也是无用的。

不能不承认很多新技术的使用给我们搜索引擎营销工作中带来了便利和实惠,但在我看来,一个良好的技术应用一定要建立在广阔的用户需求环境之内,如百度,初期百度的成功,利用的是百度MP3搜索,扩展到百度的网页搜索,当大量用户群体被建立以后百度开始帖吧用户的培养和百度地图等等。为什么很多从业人员觉得百度很强大,没有为什么?先进的理念加上成熟的技术以及抓住用户群体的需求,就是成功的关键。大量的事实在证实我们任何搜索引擎优化或者搜索引擎营销的重点 每时都在变化之中。是不变还是变则通,通则灵,我相信大家都有自己的判断。

那么我们回到我们搜索引擎营销的人员素质上来,究竟我们需要锻炼我们的什么?什么才是搜索引擎优化的核心与重点?

搜索引擎营销人员的素质和个人的分工有着密切的关系,在面向未来的搜索引擎营销竞争市场上的争夺,可能再也不是一把刀就能走天下,需要一个组合,需要一个强有力的团队,那么你如何去适应你的团队,或者将你的团队如果你是一名程序出身的seoer,重要的是锻炼你的文案、锻炼你的外联、锻炼你对搜索引擎未来走势的一个判断,锻炼你面向客户交谈,从用户的需求中寻找到可靠的增长点的能力等;如果你是美工出身,需要你对程序的了解,对网页结构上的认知,包括对用户访问的跟踪,程序的理解等;如果你是策划,你需要学习项目的运作,团队的管理,目标态势的把握等等。

每个人都会遇到瓶颈,每个人都会遇到对自己能力和环境的质疑,只不过看待的方法不同,不要一味的钻在一个点,这样会使得自己止步不前。在搜索引擎营销这条道路上,其实没有技术和思维谁先谁后,只有不停的思考,才会获得最后的升华。

作者: 搜索引擎营销—小鹏 
原载: 点石互动搜索引擎优化博客

2007-09-13杂文

1条评论
1,231 views

不说话,坚决不说话……

QQ在国内已经流行快10年了,我使用有8年了.使用QQ或者MSN超过5年的朋友都会觉得没有了当年上网就打开QQ看留言,回复的心态了,不是一个值得去天天泡她的宠物了,跟当今的手机电话簿是类似的,在紧迫的工作压力和生存压力的今天,受各种各样的环境的影响,每个人的价值观产生了很多的差异。 
  我用QQ已经8年多了,因为好友太多登录速度慢,今天清理了一下好友列表。想到了一个问题,像丁磊、周鸿袆、刘韧、陈天桥等等这些人,他们会和谁在网上聊天呢?我们有没有可能加丁磊的QQ或MSN,问他“丁总,今天的邮箱怎么打开比较慢”?不可能,因为价值观不一样。如果你想和丁磊聊天,你必须有和他一样的价值观,比如你现在能给网易提供什么新方案。同样,也有很多人在寻求高手来回答一些问题。其实,世界上没有高手,只有专业人士。论坛上的“高手”,是出于兴趣,在论坛上帮助别人,也可以自身学习。但因为工作压力和生存压力,在论坛上多数不会超过2年。所以很多人就去找他们的QQ,在QQ上来问,这些高手就成了第三方的免费客服。 
  现在是一个资源的时代,时间是资源,人际关系是资源。也许你会慢慢发现,别人对你渐渐失去了兴趣,你对别人也渐渐失去了兴趣,这就是价值观的转变。像上面提到的,怎样才可以不去问别人呢?可以自己学习、研究。Keso在《三言二拍:孤独的人是可耻的》中说“那些IM们似乎很清楚,一个小小的软件,就可以把我们套牢,因为我们如此害怕孤独,竭力避免可耻”。
   我的一位同学说“每个人都玩着五个球,分别是:你的工作、健康、家庭、朋友、灵魂。这五个球只有一个是用橡胶做的,掉下去会弹出来,那就是工作,另外四个球都是玻璃做的,掉了,就碎了”。在这个资源时代,只有工作才可以让我们生存,有句名言“唯有埋头,才有出头”。这样,你会发现,以前的一些朋友似乎已经变得不重要了。如果你想认识更多的朋友,首先应该在这个圈子里有所成就。 如果别人真心诚意地与你交谈,而你没有回复,别人可能会认为是很不礼貌的;但如果你马上不断地回复,可能又会偏离你的价值观,人家以为你很闲。为了缓合这种状况,就是在工作的时候克制自己彻底远离IM软件。价值观的巨大差异,是可悲的。 

2007-09-12杂文

没有评论
1,287 views

我想你了,真的

前两天在QQ上看到一个MM的个人签名:想你了, 真的!!! 就问了一句:

”想谁了?”

“想你了啊!”

“你这撒谎也不带这样的吧, 张嘴就来啊?”

“那你有没有想我啊?”

“说实话, 没有!”

“滚吧! 我白想你了!“

…………. 无语 ……

2007-09-08SEO方案

没有评论
8,827 views

转:Discuz论坛SEO方案

假设discuz已启用伪静态功能,使用5.0/5.5 GBK 版本;

1、meta,content 优化
2、内容页的网页复制问题
3、robots.txt使用及其它

更新
discuz5.5的robots.txt问题
DZ 禁止一个版面帖子的收录的补充

一、meta的优化

discuz的后台可以对meta信息进行设置,甚至可以添加自己的头部信息,但它的设置都是针对于所有页面的,全部页面都拥有相同的keywords和description是SEO所不赞成的。

方案一:删除meta

修改页头模板文件 templates/default/header.htm:将meta的keywords和description标签删除。

这两个标签作用很小了,而且还有discuz自带的一些无用信息,用得不好反而会有坏作用,因此宁缺勿滥。

方案二:定制meta

本部分实现了将内容页keywords设为帖子标题,description为内容前100字;也实现了主页与各版列表页meta的单独设置(不同版的不同,同一版各列表页相同)。

1.修改页头模板文件 templates\default\header.htm:将meta的keywords和description标签改为如下形式

<meta name=”keywords” content=”{$metakeywords}$seokeywords” />
<meta name=”description” content=”$seodescription” />
这里的$seokeywords、$seodescription就是后台设置的那个值,下面说怎么定制这个值;{$metakeywords}是奇虎的关键字,留下以后处理

2.内容页(viewthread)设置keywords为帖子标题,description为内容前100字

2.1修改 viewthread.php 文件:
在 include template(’viewthread’); (更新:dz5.5为iinclude template($iscircle ? ’supesite_viewthread’ : ‘viewthread’); ) 语句的上面加入一行:
require_once DISCUZ_ROOT.’./include/bmt.thread.inc.php’;

2.2创建 include/bmt.thread.inc.php 文件,内容为

<?php
if(!defined(’IN_DISCUZ’)) { exit(’Access Denied’); }

$seokeywords = strip_tags($thread['subject']); //关键字设为帖子的标题
//(已更新: nethome 提出问题,当启用主题分类并允许按类别浏览时,原来代码会有问题。所以加了标签过滤,本来在viewthread.php中改更好,为以后升级方便,还是放在这里吧,subject很短,不会影响效率)

$seodescription = current( $postlist );//description取文章内容的前100字
$seodescription = mb_substr( $seodescription['message'],0,100,”gb2312″ );
$seodescription = htmlspecialchars( strip_tags($seodescription) );
?>
*此处数字和个别函数适用于GBK版本

最后一行作用是过滤内容中的html,否则在meta中会引起语法错误。先是去除HTML标签,但因为这里是前100字,有可能html标签已经被截断了,所以又用了htmlspecialchars转义一下,有可能会有些垃圾信息。
当然也可以在截取之前用strip_tags去除html标签,可能效率会差了。

*所以此处表达式您需要根据自己的情况修改。
我目前用的是preg_replace( ‘/[^\xa1-\xff]/’, ”, $seodescription ),即过滤汉字以外的所在内容,但这样会损失英文关键字。

别外说明,此处数据都是viewthread.php已取好的,所以不会产生额外的数据库操作,只是做了字符串处理,不会引响效率。

3.列表页(forumdisplay)设置不同的keywords和description

3.1修改 forumdisplay.php

文件,在 include template(’forumdisplay’); 语句上面添加
require_once DISCUZ_ROOT.’./include/bmt.forum.inc.php’;

3.2创建 include/bmt.forum.inc.php 文件,内容为

<?php
if(!defined(’IN_DISCUZ’)) { exit(’Access Denied’); }
$seokeywords = $forum['name'];
$seodescription = $forum['description'];

switch ( $forum['fid'] ){
   case 1: //此数字为版的ID号,不同版设置不同的meta
       $seokeywords = ‘key1,key2,…’;
       $seodescription = ‘xxxx xxxx xxxx’;
       break;
   case 2:
       $seokeywords = ‘key1,key2,…’;
       $seodescription = ‘xxxx xxxx xxxx’;
       break;

}
?>
//更新:一般情况下可以不用switch和case,列表页的关键字为版名,说明为版的说明,若要对某个版设置特殊的关键字和说明,可以设置case。这样解决了版面很多时要设置很多case语句,加快了程序执行速度(不了解php,JAVA的 case进行了优化,执行很快)

使用修改文件来实现,每版的meta改起来不方便,感觉有些弱智,呵呵。但没有改数据库,用了两个单独的文件,修改了两个文件也很简单,这样升级或迁移更方便吧

case虽然多了一些,但比起读数据库的记录,速度应该快很多

4.主页meta
在后台设置即可。(如果2、3不做,则meta也同主页)

content的优化
discuz有个archiver,一是URL容易收录,二是页面比较干静,还有description会从正文中取内容,但archiver没有对内容中[b][url]之类的解析,那些标签起不到作用,原样显示还会增加垃圾信息。
本部分主要做两方面的优化,一是去除内容页的无用信息,二是给标题加上

<h1>

。加上伪静态和上篇meta的优化,效果就超过了archiver,因此可以在后台禁用它,还减少了复制网页。

实施方案

1.隐藏内容页(viewthread)中的无用信息:
修改内容页模板文件 templates/default/viewthread.htm:

用<!–{if $discuz_uid}–>   <!–{/if}–>将要隐藏的信息包含起来。

准确的说是当游客(bots)访问时,隐藏那些信息,当用户登录后是正常的,所以不影响使用。
这些信息主要指的是左侧用户信息栏、(资料 个人空间 主页 短消息 等等)、用户的签名(隐藏后不怕签名的内容影响正文,链接也不起作用了:P)
以住相关文章

2.为标题加上

<h1>

标签
修改内容页模板文件 templates/default/viewthread.htm:

将 <span class=”bold”>$post[subject]</span><br><br> 替换为
<h1>$post[subject]</h1>

定制“本帖最后由 XXX 于 xxxxxx 编辑”内容

修改文件 templates/default/misc.lang.php:将下面两行改成您喜欢的内容:

‘post_edit’ => ‘\n\n[[i]] 本帖最后由 $editor 于 $edittime 编辑 [/i]]’,
‘post_edit_regexp’ => ‘/\n{2}\[\[i\] 本帖最后由 .*? 于 .*? 编辑 \[\/i\]\]$/s’,
比如我改成 [ 网站名 URL xxx 于 xxxx 编辑]。改程序无聊时的自娱,呵呵
注意上下两个表达式要匹配。为了防止解析方括号是全角,不要复制后在文件中查找。

二、内容页的网页复制问题

看看内容页的URL大家就知道了:thread-(tid)-(page)-(forumdisplay page).html,可以看出最后一节表示的是此帖在列表页的第几页。所以,当您的帖子越来越多,这个帖就会由第一页到第二页…,它的URL就会不断的变化。其实打开一个列表页就可以看出来,第2页的帖子链接的最后数字都是2,第3页的都是3,只是很少注意它。我是在SE的收录中发现复制网页越来越多,才对最后的数字注意的。

解决方法
修改 forumdisplay.php 文件:

将 $extra = rawurlencode(”page=$page$forumdisplayadd”); 语句替换为
$extra = rawurlencode(”page=1$forumdisplayadd”);
语句中的page就是forumdisplay page,这样改后不管帖子在列表页的第几页,这个数都是1。

功能损失:当用户编辑帖子或版主管理帖子后,有个提示跳转页:选择转入列表页还是主题页,这时转入列表页的话,只能转到列表页第一页,而不管您原来停留在第几页。

redirect的301重定向

在discuz论坛中可以看到类似redirect.php?tid=xxx&goto=lastpost#lastpost这样的链接,它的功能是实现“最新发表、最后发表、上一主题、下一主题“功能,仅这一个功能就可以给同一个内容页造成四份复制网页,因此将这样的链接301永久重定向到帖子的静态地址。

解决方法
修改 redirect.php 文件:

将前两个 require_once DISCUZ_ROOT.’./viewthread.php’; 语句替换为
$bmt_url=’Location:/thread-’.$tid.’-’.$page.’-1.html’;
header(’HTTP/1.1 301 Moved Permanently’);
header( $bmt_url );
将后两个 require_once DISCUZ_ROOT.’./viewthread.php’; 语句替换为
$bmt_url=’Location:/thread-’.$tid.’-1-1.html’;
header(’HTTP/1.1 301 Moved Permanently’);
header( $bmt_url );
dz5.5的引用处也有个跳转,也可以做301:

将 dheader(”Location: viewthread.php?tid=$post[tid]&page=$page#pid$pid”);替换为
$bmt_url=’Location:/thread-’.$post[tid].’-’.$page.’-1.html#pid’.$pid;
header(’HTTP/1.1 301 Moved Permanently’);
header( $bmt_url );
***注意此处直接转到了静态地址,没有做判断是否开启伪静态功能,所以不开启会有问题

功能损失:转向到静态地址后,动态地址中类似#lastpost的锚点将无法起作用了,可能要手动滚屏了
???好像没有影响锚点

提示信息页的网页复制

这个问题和内容页也有着很大的关系,呵呵。如管理员设置允许游客浏览列表,而禁止浏览内容时,这些内容页都将返回一没有权限的提示信息页,但它们的URL 是不同的,这样就形成了严重的网页复制,此外还有其它形成的无权操作等。别一种提示信息如帖子不存在等,数量大了也会形成网页复制。这两种提示信息,都是通过showmessage函数分别调用nopermission.htm和showmessage.htm两个模板实现的。

解决方法
1.创建另一个头模板文件 templates/default/header_disbots.htm
内容同 header.htm 文件,但加入meta robot标签,如下

<meta name=”robots” content=”noindex,nofollow” />

2.分别修改 templates/default/nopermission.htm 和 templates/default/showmessage.htm 文件
将它们第一行的 {template header} 替换为 {template header_disbots}

虽然对meta robots标签支持的不是很广泛,但这是比较省事的方法
因为是提示信息页,用301来实现的话,还要传给转到的页好多信息,修改起来比较麻烦

三、robots.txt使用

User-agent: *

#禁止一个版面的收录
#如果有个水版,不想禁止游客权限,也不想SE收录,已免影响网站质量,可以用如下方法
Disallow: /forum-1-

#数字即为要禁止版块的ID。
#注意数字最后的 – 不要省略,否则连ID为11,12等1开头的版都禁了
[更新]补充方法:再给内容页加meta robot禁止

#再禁网页复制
Disallow: /viewthread.php
#这个是内容页的动态形式,前面对伪静态做了优化并修改了很多的复制网页,因此这里动态形式如打印页等一定要禁止

Disallow: /forumdisplay.php
#这个要慎重:列表页的动态形式,还包括精华、活动、投票等形式。我发现5.0的静态化不彻底,它的上一页下一页翻页仍是动态,这样如果禁止了,十页之后的内容就不能通这索引了。所以如果您站内的交差链接不丰富的话,不要在此禁止,以免影响收录。

hekaiyu说没有这个问题,去官方看了下5.5的确没问题(也许我的5.0本来没问题,也许官方在新版本中完善了正则表达式的替换规则),这样更好了,禁止它,又干净了好多

#禁止其它无用内容
Disallow: /profile
#用户信息,不知为什么discuz也静态化了,一律禁止
Disallow: /relatethread
Disallow: /post
Disallow: /blog
Disallow: /member
Disallow: /misc
Disallow: /faq
Disallow: /my
Disallow: /pm
Disallow: /digest
Disallow: /status
# … … 等等
# —– robots.txt end ——
[更新]dz5.5的robots.txt后部分给出的Disallow: post.php等是不合规范的,一定要在前面加上”/”。>>详细说明

首页URL问题

后台基本设置->首页文件名如果不设置,会默认为index.php。所以站内到首页的链接为形式为http: //domain/index.php。而我们一般引用论坛首页或交换链接的形式一般是http://domain/。实际是一样的,但SE可认为是两个 URL,而且一个拥有很多的内部链接,一个拥有较多的外部链接,所以哪个被降级都不是好事情,最好统一起来。这里的修改目标是http: //domain/的形式。

1.进入后台,基本设置->首面文件名 设置为: /
2.修改文件 member.php 将 header(”Location: {$boardurl}”.$indexname); 替换为

if( $indexname==’/'){
   header(”Location: {$boardurl}”);
}else{
   header(”Location: {$boardurl}”.$indexname);
}
[更新]dz5.5为dheader

此修改处的功能是清除cookies后返回到首页,如不修改域名后就有两个/。暂时未发现使用/当首页文件名的其它问题

结 束

除了文件的修改,有些地方要配合后台设置,前面都提到了,这里总结一下。主要有:1.URL静态化,只启用普通页面静态化就可以了;2.不要启用 Archiver功能;3.后台的keywords和description设置只是针对首页的(如果您没做列表页和内容页的meta修改则也应用到它们);4.后台首页文件名为/(当然您也可以设置自己特定的)

返回顶部