陈颂光
全栈工程师,能够独立开发从解释器到网站和桌面/移动端应用的各类软件。
关注我的 GitHub

浅谈SEO

搜索引擎已经成为网页流量的主要来源,因此争取更多人看到您的信息,就要让更多人通过搜索引擎发现你。在Google和百度等竞价排名搜索广告的费用远超你的负担能力的情况下,搜索引擎优化(SEO)就变得相当重要。我们不仅将简单介绍SEO最基本的原理和实践,而且还会始终立在更广阔的视野来看如何对用户友好,包括前端、后端的开发大员都应当知道的注意事项。即使你并不需要做推广,本文也能帮助你认清网络上某些乱像以便提防上当。

概述

从搜索到成为你的客户,典型地至少经过以下过程:

  1. 搜索
  2. 在搜索结果页面看到你的页面
  3. 点击进入你的页面
  4. 购买你的产品(或你想他做的其它事情)

仔细分析以上每一步,就可以得到我们的子目标:

  1. 提供用户需要的东西。用户搜索某个东西,通常表明她有某种需求,不管是有意购买产品或服务、寻求解决问题的方法还是满足八卦求知欲。因此,你提供的信息应该能满足某种需求,推广提供没有市场的信息只是枉然。
  2. 提高展现率。为了让你的页面出现在搜索结果,不仅要与潜在客户的搜索相关,而且要让搜索引擎也认为如此。但这还不够,因为通常有非常多相关页面,你的页面只有在出现在结果的首页的前几条才有最大机会被看到,会翻页的人已经少,翻到第10000页的人更是几乎不存在,于是我们需要了解搜索结果如何排名,从而设法提高排名。这又可细分为:
    • 让搜索引擎发现你的网页。搜索引擎主要通过己知页面上的链接发现新页面,但这需要较长时间(甚至永远发现不了),主动向搜索引擎提交网址有助加快收录过程。
    • 让搜索引擎认为目标关键词与你的网页相关。这通常是通过让目标关键词出现在网页中而实现的,其中出现在titlemeta元素、各级标题会受到较大重视。
    • 让搜索引擎把你的页面排在前列。在相关的前提下,流行度是搜索引擎默认排序的主要依据,而流行度主要取决于来自其它页面的链接及这些来源页面本身的流行度(数学人会想到Markov链),故争取来自权威站点的有用链接是主要难点。但部分搜索引擎已经在提升社交网站上分享或评分的重要性。
  3. 提高点击率。潜在客户看到来自你的搜索结果并不意味着她们会点击,因为她们看到标题、摘要甚至网址和修改日期就直接判断不是她们期望的。
    • 标题字数最好足以完整在结果页显示(中文不超过32字符、英文不超过65个字符),需要加网站名的最好在页面标题后面而非前面
    • 摘要有实质内容,不要全是“真相竟然是”、“我和我的小伙伴们都震惊了”、“不看后悔”、“最好”之类的空话
    • 官网认证、HTTPS网址可能可提高部分网民的信心
    • 不稳定、疑似有恶意代码之类的警告会降低网民的信心
  4. 提高转化率。当潜在客户进入你的网页后,会进一步确认你提供的是否她所需要的,然后才可能决定成为你的客户。
    • 提供充分准确的信息,足以让潜在客户作出购买(或其它行动)决定。不足够的内容使潜在客户下不了决心,如她们可能担心日本产的电器电压与国内不适配,自相矛盾的内容更会动摇潜在客户仅有的信心。
    • 提供简短的转化途径。即使你的食物能打动潜在客户,但不告诉她你的餐厅在哪她也无从光顾。类似地太麻烦的注册过程可能使潜在用户放弃使用你的论坛。

效果评价

正如软件开发有测试环节,做SEO也需要评估效果。虽然SEO通常见效较慢,但也要持续监控效果,不能漫无目的的白费功夫。

为了比较客观地分析,我们需要获取相关数据,以下是一些来源:

  • 安装网站统计工具后可监控流量信息,如访客数量和人次、访客地理位置、访客设备类型、流量与时间关系、各页面的访问人次和停留时间、入口页面、跳出率、来源和关键字、HTTP错误。例子有:
    • 百度统计和类似工具通过在网页中插入特定Javascript代码来发送流量信息,故你不需要服务器专门支持,而且通常可得到比较详细的信息。
    • AWstats和类似工具通过分析服务器日志来得到流量信息,它可以统计到搜索引擎蜘蛛等通常不执行Javascript的机器人的来访。
  • 各大搜索引擎
    • 通过搜索关键词可得出网页数和你的网页的排名的估计
    • 通过搜索site:域名可得出收录量的估计
  • 各大搜索引擎的站长平台提供索引量、关键词与流量、抓取频次、抓取异常、入链。在使用前通常需要注册和验证你对网站的实际控制权(如通过把指定的验证码放到指定文件、在页面加入指定的meta标签或把某个指定子域名CNAME解析到指定域名):
  • 各大搜索引擎提供的关键词热度排名,另外热搜榜、相关关键词、自动补全建议之类也可参考

知己知彼,百战百胜。SEO时也要作竞争分析,了解对手的情况,在对方处于优势时可学习它成功的原因,相反则可从其薄弱之处取得流量。虽然现在搜索引擎通常不再告诉你别人的网站的链接来源和流量,但存在一些第三方工具提供一些参考数据,如反链流量

基本方法

争取收录

争取收录是其它SEO工作的前提,如前所述,搜索引擎的蜘蛛主要通过己知页面上的链接发现新页面,问题在于你要让别人链接到你的页面,退一步是让别人知道你的页面的存在(记得这时人们不能通过)。第一步是最困难的,但可以尝试:

  • 购买搜索广告
  • 向相关权威站点管理员争取链接
  • 在各种相关的论坛、百科、问答贴上你的链接,然后诱使别人在她们的网站上也链接到你的页面(由于接受用户提供内容的网站大多把链接的rel属性加上nofollow或使用过渡页302跳转以避免吸引为SEO目的制造的各种垃圾帖子,所以搜索引擎不会跟踪这类链接)

要比较快地得到收录,可以考虑主动向搜索引擎提交页面,虽然搜索引擎有权拒绝收录。各大搜索引擎都有提交链接的入口供手动提交链接,但最好在它们对应的站长平台上先验证站点,然后使用以下方式自动提交:

  • Sitemap。把静态或动态生成的sitemap.xml放到一个网址(须与其中URL有相同域名)后在站长平台告诉搜索引擎其位置或者在robots.txt中加入形如Sitemap: http://www.example.com/sitemap.xml,然后搜索引擎会定期查看sitemap并考虑收录其中的页面。sitemap.xml(最多50000个URL,至多50MB)形如:
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
   <url>
      <loc>http://www.example.com/</loc><!-- 必填:URL(含协议,不超过2048字符) -->
      <lastmod>2005-01-01</lastmod><!-- 选填:最后修改时间(W3C格式),帮助搜索引擎决定重新抓取与否 -->
      <changefreq>monthly</changefreq><!-- 选填:预期修改频率(always/hourly/daily/weekly/monthly/yearly/never),帮助搜索引擎决定抓取频率 -->
      <priority>0.8</priority><!-- 选填:页面相对于站内其它页面的重要性(0.0与1.0间,默认0.5),帮助搜索引擎在不能收敛全部页面时决定收录哪些 -->
   </url>
   <url>
      <loc>http://www.example.com/catalog?item=12&amp;desc=vacation_hawaii</loc>
      <changefreq>weekly</changefreq>
   </url>
   <url>
      <loc>http://www.example.com/catalog?item=73&amp;desc=vacation_new_zealand</loc>
      <lastmod>2004-12-23</lastmod>
      <changefreq>weekly</changefreq>
   </url>
   <url>
      <loc>http://www.example.com/catalog?item=74&amp;desc=vacation_newfoundland</loc>
      <lastmod>2004-12-23T18:00:15+00:00</lastmod>
      <priority>0.3</priority>
   </url>
   <url>
      <loc>http://www.example.com/catalog?item=83&amp;desc=vacation_usa</loc>
      <lastmod>2004-11-23</lastmod>
   </url>
</urlset>
  • 自动推送。在页面中嵌入指定的Javascript代码以便在页面被访问时通知搜索引擎,这在技术上容易实现,但问题是要让第一个人访问。
  • 主动推送。让你的网站在新增或修改页面时自动通过搜索引擎的API告诉搜索引擎,从而尽快让搜索引擎知道。

另外,应该保证搜索引擎的蜘蛛没有被你的网页服务器屏蔽或者用robots.txt封杀,觉得它抓取太频繁可以在站长工具反映。如怀疑因这原因导致站点不收录的话可尝试各搜索引擎站长工具中的抓取诊断功能,例如GitHub Pages在本文写作时就经常403拒绝百度蜘蛛访问。

关键词分析

下一步是找出你的潜在客户最可能通过哪些关键词或关键词组合发现你。

决定目标关键词时一般要考虑以下因素:

  • 目标,即决定什么叫成功。常见目标有:
    • 展现,例如把关于公司的负面新闻挤出搜索结果的第一页以提高商誉
    • 点击,例如让人家知道你和你的产品
    • 转化,例如让人家购买你的产品
  • 转化率。
    • 关键词应该与你提供的产品或服务高度相关。即使你巧妙地骗取了大量来自关键词“汽车”的流量,但其实你卖的是渔船,那么你仍然不会得到太多顾客。又如你的理发店即使吸引了散布在全世界的大量零散客户的关注,但也很难吸引到太多人远道前来。
    • 通常比较具体的关键词转化率会更高,因为表现了更强烈的惠顾意向。比如搜索你的超市名的人比搜索“超市”的人更可能成为你的顾客,因为前者可能已经准备到你的超市,只是不知道地址或营业时间。同理,搜索电器型号的人比搜索电器类型的人更可能成为你的顾客,因为前者可能已经对你的产品有好感。
  • 竞争难度。由于搜索结果页中结果数有限,越多人企图争夺前排,大家也就越难争取到前排。搜索结果个数可作为竞争程度的指标。
  • 热门程度。在展现率、点击率、转化率相同的情况下,越多人搜索,转化也会越多。通常越多人搜索一个关键词,竞争难度也越大,但如果你发现一个热门但竞争小的关键词,则值得对这个关键词进行优化。

另外,由于潜在客户实际上往往不是输入第一个关键词,他们会逐渐修改关键词直到找到想要的东西或放弃。常见的修改方式有:

  • 改用相关词,潜在用户看到结果后可能会改用更专业的关键词,如用户先搜索“腹痛 恶心 呕吐”,然后看到几个结果都与盲肠炎有关,然后再搜索“盲肠炎”。这启发我们在争不了一个关键词时可以争夺它的竞争较小的近义词。
  • 收窄搜索,潜在用户觉得搜索结果太宽泛时,往往会加入更多关键字。这启发我们争取描述原对象细节特征的关键词。例如超市可能想争取“超市”与其位置(如xx街道)、商品类型(如海鲜)和特色(如通宵营业)构成的关键词组合。

如果你的网站已经运营了一段时间,则你的统计工具可能有助你找出合适的关键词。

网站建设

网站层次

以下做法是值得鼓励的:

  • 网站结构清晰,适度扁平化,所有页面链接到主页,从主页出发可到达站点所有公开页面
  • 维护及时的sitemap,最好也也有供人阅读的网页地图
  • URL结构清晰,最重要的关键词放在URL中有利于吸引来自inurl搜索的流量
  • 适当的更新频率有助保证抓取频率
  • 地方性网站放在同一地方的域名、服务器,并以该地方主流的语言显示
  • 移动友好。对于屏幕小、带宽有限的移动设备,只为PC端而设计的网页在移动端看起来效果很差,因此现在在移动端使用搜索时,搜索引擎会明显降低潜在非移动友好网页的排名。因此,应该保证网页符合移动友好的规范,或者向搜索引擎另外提交移动版本网站。可使用各大搜索引擎提供的移动友好检测。
  • 全站HTTPS认证。通过使用广泛认可的SSL证书正确配置HTTPS,并把全部HTTP流量301重定向到对应的HTTPS页面,不仅有助保障用户隐私,而且可能有助提高排名。
  • 官网认证。通过各搜索引擎的官网认证,在搜索结果中标记为“官网”可能有助增加网民信心,从而增加点击率。

以下情况则是应当避免的:

  • 站点有大量已经无法访问的死链。死链可以通过统计或站长工具发现,应该尽快删除死链并在站长平台向搜索引擎反映。网站维护或迁移导致死链前宜先通过站长平台告知搜索引擎,并在稍后301重定向到迁移后页面位置。
  • 同一服务器、域名上有大量垃圾页面
  • 访问速度缓慢或频繁下线
  • 恶意SEO
    • 大量购买或交换链接
    • 等网站被收录后再以其它页面替换该网站

出现上述问题可能导致以下惩罚:

  • 在搜索结果加上警告
  • 降低排名
  • 减少收录
  • 撤销收录

页面层次

以下做法是值得鼓励的:

  • <title></title>间的内容通常被用作搜索结果的标题,对计算与关键词的相关性相当重要,还能通过intitle:搜索过滤,故对SEO极为重要。出于相关性考虑,应该富含目标关键词,但出于点击率考虑,必须同时保持可读性。应当把标题字数限制到足以完整地在结果页显示(如中文不超过32字符、英文不超过65个字符),需要加网站名的最好在页面标题后面而非前面。
  • <meta name="description" content="简介">中简介可能作为搜索结果的介绍呈现,和title类似,要富含关键词同时简明扼要,能够在结果中完整显示(中文80字符内,英文字符160字符内)。
  • <meta http-equiv="content-language" content="en">指定内容语言
  • 页面中各级标题依次放在h1h6中,其中内容对相关性计算有一定影响,一页只应有一个h1
  • 在内容中提及目标关键词的同义词或近义词
  • img标签加上alt属性描述图片的独特之处
  • a中富关键词地描述目标,不要用“点击这里”,并确保链接同样是高质量的
  • 争取从其它网站指向页面的链接,最好不要是nofollow的(nofollow的虽然不会直接提升权重,但至少可能带来直接流量)
  • 设立导航以便读者发现网站其它内容
  • 增加分享到社交平台的链接,因为分享次数可能是排序指标之一
  • 保证在CSS不工作时内容仍然能阅读,不妨尝试在w3m之类的命令行浏览器中看你的页面什么样子
  • 避免使用Javascript及其它插件呈现内容
  • 绝不使用Flash、Java Applet及其它插件呈现内容

以下情况则是应当避免的:

  • 含有大量妨碍正常阅读的广告、过渡页
  • 每页很少内容,疑似骗按展示付费广告的广告费
  • 含有疑似恶意内容或指向恶意内容的链接
  • 大量重复网络上已有信息或者机器生成的无意义内容
  • 恶意SEO
    • 向用户和搜索引擎呈现不同内容,比如:
      • 对搜索引擎的User-Agent提供定制页面,或者使用脚本控制浏览器跳转而让搜索引擎不跳转
      • 通过把文本设为背景色、超小号字体、隐藏、出界或用其它内容阻挡企图让搜索引擎看到人看不到的内容
      • 通过把文本做成图片,或以脚本、插件提供,企图让人看到搜索引擎看不到的内容
    • 关键词堆积或关键词与内容无关

出现上述问题可能导致以下惩罚:

  • 在搜索结果加上警告
  • 降低排名
  • 减少收录
  • 撤销收录

防止自相残杀

如果你有多个高度相似页面,则它们可能会互相竞争排名,其后果很可能是每个页面都得不到好排名,而有两个第二页的结果远不如有一个第一页的结果。以下对可能导致出现同一页面的常见原因给出实用的解决方案:

  • 使用GET参数跟踪用户。通常不提倡这样跟踪,但改不了的话,部分搜索引擎在站长平台可设置忽略个别参数。
  • 使用多个域名呈现相同内容,最常见是同时有www子域名和原域名。这时可以用301把其中一个域名重定向到一个的对应页面。
  • 同时使用HTTP和HTTPS。这时可以用301把其中HTTP流量重定向到对应HTTPS页面。
  • 伪静态URL中把路径当查询用。

一般的解决方案是,在多个URL中选定一个规范URL,然后在页面加入<link rel="canonical" href="规范URL">,这在不能配置服务器的情况下也可用。

至于用robots.txt屏蔽并不是好方法,因为会浪费指向被屏蔽页面的入链。

垂直搜索

除了网页搜索外,还有一些更专门的搜索,技术上与网页搜索大致类但通常比较简单。另外,对于新闻、下载、视频、小说、博客、论坛、普通网页、商品、图片、文档、音乐,通过提供提供结构化元数据,有助获得第三方搜索引擎收录。现在,主要搜索引擎已经默认采用把网页搜索与各种垂直搜索整合起来成为综合搜索,所以在垂直搜索的展现机会也会影响在综合搜索的展现机会。

图片搜索

由于人们一般用文本去搜图片,而搜索引擎难以仅从图片本身就得到对应的关键词,所以搜索引擎只能凭图片附近的文字去猜。其中img标签的alt属性至为重要,应当是对图片富含关键词的描述,不要用“图片”、“图1.1”之类的。

图片一般随着它所在的网页而被收录,该网页的流行度对图片的流行度有重大影响。

视频搜索

视频搜索已经成为网页搜索以外最多的搜索。与图片搜索类似,搜索引擎不太能从视频本身总结出关键词,因此要依赖于作者提供元数据。由于视频大多放在少数几个大型视频网站上,它们容许上传者提供一些标准的元数据,这些信息对于计算相关性是重要的。除了要给出节目名称(完整及简称)、集数等能惟一标识作品的信息外,提供语言、演员、制作人、制作方、首播时间、地点、分类和简要的亮点也有助吸引长尾关键词。观众评论、标签、弹幕也可能有SEO价值。

按照搜索引擎提供的过滤器和排序器,可以对以下指标进行优化:

  • 发布时间,如最早发布或最迟发布
  • 视频长度,如提供比同类视频长一点的完整版(没有的话强行插入点东西),或特别短的精华版
  • 画质,如提供特别高清的版本
  • 播放量,刷播放量

另外,对于连续的一系列视频,最好在每一集附上到上一集、下一集和目录的链接,这有助于避免观众流失。

新闻搜索

首先要让主要搜索引擎收录你的新闻源:

  • 向360提交新闻源
  • 向搜狗提交新闻源
  • 向必应提交新闻源 新闻源被收录(特别是级别高时)有助通过搜索和推送(门户网站/应用)获取大量流量,而且抓取频率会比较高,对传播时效性强信息十分有利。不过,各大搜索引擎对新闻源的要求比较严格,通常会人工审查,收录难度要相应高一些。

在被收录后,工作就与普通网页SEO类似。不过,由于大量新闻源会发布同样的新闻,而搜索引擎会去重复,故抢先发布独家新闻是一个制高点。做不到这点的话至少应有一个独特但简明扼要的标题,并稍为编辑一下内容,如摘要或加上扩展阅读。不是太建议重发旧新闻来抢按时间倒序排序的首位,虽然有不少人这样干。

商品搜索

入驻电商平台后,问题就是如何让买家发现你的商店及其商品。通常来说,会有很多人在卖与你卖的东西差不多的东西,所以要设法加入与众不同的长尾关键词。例如争取“长裤”的前排很困难,实际上许多买家想对“长裤”设限来收窄搜索,所以加入材质、颜色、尺码、面向人群、细节特征等作为关键词可增加买家发现你的机会。SEO从根本上要求设身处地了解用户的要求是什么,不是闭门造车,其实产品设计、生产与采购又何尝不是,这就是我们强调SEO是一个手段而不是最终目的的原因,为SEO而SEO不是好策略。

此外,设置发货地、包邮和关于商品的各种元数据模板可让买家用过滤器时能发现你的产品。

至于下列排序指标,可以用来刷,只是不要太过分(如一些搜索引擎会屏蔽不合理低价的产品):

  • 销量,刷单已经是臭名昭著的,但在电商税务征收完善之前仍然会继续泛滥
  • 点击量
  • 收藏量
  • 用户评分
  • 价格,如让价格低到或高到按价格可排到首页,一个伎俩是把不同价格的商品放到同一页作为诱饵

另外,搜店也可能值得SEO。

地图搜索

首先要让主要地图收录你的地点并确保资料正确:

至于相关度,地名和简介自然可应用标准的关键词技术。

至于流行度,以下指标可能有影响:

  • 收藏数
  • 分享数
  • 用户评分
  • 评论数
  • 附近人流

值得注意的是,可以协助标注附近更有吸引力的地点作为诱饵来吸引流量。比如你在一个景区卖小吃,则不妨先SEO该景区,等景区人流上去了,小吃销量也就上去了。

为提高转化率,加入图片和前往路线是有有益的。

论文搜索

各大论文网站已经成为传播学术论文的重要途径。要增加论文的展现机会,首先要保证它被目标数据库收录(通常意味着发表在知名的期刊、会议、网站、专利局或标准化组织),然后仍然要关注相关度和流行度两个方面:

在相关度方面,目标关键词应出现在标题,相关关键词应出现在摘要。在出现大量结果时,读者还可能会用学科、期刊、出版社、基金、单位、作者、导师粗暴地过滤结果,后面几个与声誉有关的因素难以在短时间内提高,改变它们也不是随心所欲的,但保证学科分类号正确是最起码的,期刊和单位名称与论文内容相符也是合理的要求。另外,发布时间也很重要。

在流行度方面,被引量和下载量是主要因素,期刊的流行度对于新文章也有影响。对于过时的以字母顺序排序的系统,让挑选文章标题以“AAA”开始也许有点用。

社会化搜索

各大社交平台已经成为传播时效性强信息的重要途径。在社交平台中要增加信息的展现机会,无论是搜索排序还是自动推送,仍然要关注相关度和流行度两个方面:

在相关度方面,发布者昵称和信息中应出现目标关键词或相关关键词,发布时间也很重要(新的通常排在前面)。

在流行度方面,社交平台中很可能用的指标比较明确:

  • 发布者
    • 粉丝数
    • 粉丝数与关注数之比
    • 发帖量
    • 等级
    • 认证
  • 信息的内容
    • 转发数
    • 评论数
    • 赞同数
    • 阅读量或阅读时间

自然,早期网页搜索优化的作弊方式变种也就应运而生,如购买或利诱粉丝、互相转发和赞同、堆积关键词和定时重发。然而,以后网页搜索的反作弊手段也可能用于这些社交平台,实际上微博等平台已经取消了不少API并加入实名认证就可能是为了防范机器人,Pagerank也可能被用于识别僵尸粉,所以不建议做得太过份。

关键词 SEO web