首页 > 代码库 > 每一个程序猿必知之SEO

每一个程序猿必知之SEO

似乎由于受这篇文章的影响 http://katemats.com/what-every-programmer-should-know-about-seo/ 于是我也觉得我应该写一个每一个程序猿必知之SEO。作为一个擅长前端兼SEO的设计师。

搜索引擎是如何工作的

假设你有时间,能够读一下谷歌的框架:

http://infolab.stanford.edu/~backrub/google.html

这是一个老的,有些过时纸。但非常平易近人,甚至在我们中间的非白皮书的读者图标微笑什么每一个程序猿都应该知道的关于搜索引擎优化和他们绝对概念的解释更具体,我仅仅提一笔带过。

搜索时发生什么了

  • 用户输入查询内容
  • 查询处理以及分词技术
  • 确定搜索意图及返回相关、新奇的内容

技术分享

为什么须要SEO

这是一个有趣的问题。答案总会来源于为站点带来很多其它的流量

爬虫与索引

我们先看看来自谷歌的爬虫工作的一点内容

抓取是 Googlebot 发现新网页并更新这些网页以将网页加入到 Google 索引中的过程。

我们使用很多计算机来获取(或"抓取")站点上的大量网页。运行获取任务的程序叫做 Googlebot(也被称为漫游器或信息採集软件)。

Googlebot 使用算法来进行抓取:计算机程序会确定要抓取的站点、抓取频率以及从每一个站点中获取的网页数量。

Google 的抓取过程是依据网页网址的列表进行的,该列表是在之前进行的抓取过程中形成的,且随着站点管理员所提供的站点地图数据不断进行扩充。Googlebot 在訪问每一个站点时,会检測每一个网页上的链接,并将这些链接加入到它要抓取的网页列表中。新建立的站点、对现有站点所进行的更改以及无效链接都会被记录下 来,并用于更新 Google 索引。

也就是如原文所说:

谷歌的爬虫(又或者说蛛蛛)能够抓取你整个站点索引的全部页。

为什么谷歌上能够搜索整个互联网的内容?由于,他解析并存储了。

而更有意思的是,他会为相同的内容建立一个索引或者说分类。依照一定的相关性。针对于某个关键词的内容。

PageRank对于一个站点来说是相当重要的,仅仅是这个相比也比較复杂。包括其它站点链接向你的站点,以及流量,当然还有域名等等。

什么样的站点须要SEO?

下图是我的博客的流量来源

技术分享

正常情况下除了像腾讯这类的QQ空间自我封闭的站点外都须要SEO。或者不希望泄露一些用户隐私如Facebook人人等等

  • 假设你和我的站点一样须要靠搜索带来流量
  • 假设你仅仅有非常少的用户訪问,却有非常多的内容。

  • 假设你是为一个公司、企业工作为以带来业务。
  • 。。。

SEO与编程的不同之处

SEO与编程的最大不同之处在于

编程的核心是技术,SEO的核心是内容。

内容才是SEO最重要的组成部分。这也就是腾讯复制不了的东西。

SEO基础知识

确保站点是能够被索引的

一些常见的页面不能被訪问的原因

  • 隐藏在须要提交的表格中的链接
  • 不能解析的JavaScript脚本中的链接
  • Flash、Java和其它插件中的链接
  • PowerPoint和PDF文件里的链接
  • 指向被meta Robtots标签、rel="NoFollow"和robots.txt屏蔽的页面的链接
  • 页面上有上几百个链接
  • frame(框架结构)和iframe里的链接

对于如今的站点来还有以下的原因,通过来说是由于内容是动态生成的,而不是静态的

  • 站点通过WebSocket的方法渲染内容
  • 使用诸如Mustache之类的JS模板引擎

什么样的网页能够被索引

  • 确保页面能够在没有JavaScript下能被渲染。对于如今JavaScript语言使用越来越多的情况。在使用JS模板引擎的时候也应该注意这种问题。
  • 在用户禁用了JavaScript的情况下。保证全部的链接和页面是能够訪问的。

  • 确保爬虫能够看到全部的内容。那些用JS动态载入出来的对于爬虫来说是不友好的。
  • 使用描写叙述性的锚文本的网页。
  • 限制的页面上的链接数量。除去一些分类站点、导航站点之类有固定流量,要不easy被觉得垃圾站。

  • 确保页面能被索引。有一指向它的URL。
  • URL应该遵循最佳实践。

    如blog/how-to-driver有更好的可读性。

在正确的地方使用正确的关键词

  • 把关键词放在URL中
  • 关键词应该是页面的标签
  • 带有H1标签
  • 图片文件名称、ALT属性带有关键词
  • 页面文字
  • 加粗文字
  • Descripiton标签

内容

对于技术博客而言。内容才是最须要考虑的因素。

能够考虑一下这篇文章,尽管其主题是以SEO为主 用户体验与站点内容

不可忽略的一些因素是内容才是最优质的部分。没有内容一切SEO都是无意义的。

复制内容问题

一个以用户角度考虑的问题

用户须要看到多元化的搜索结果

所以对于搜索引擎来说。复制带来的结果:

  • 搜索引擎爬虫对每一个站点都有设定的爬行预算,每一次爬行都仅仅能爬行trpgr页面数。
  • 连向复制内容页面的链接也浪费了它们的链接权重。
  • 没有一个搜索引擎详解它们的算法如何选择显示页面的哪个版本号。

于是上文说到的作者给了以下的这些建议:

避免从网上复制的内容(除非你有非常多其它的内容汇总。以使它看起来不同 - 我们做头条。对我们的产品页面的新闻片段的方式) 。这当然强烈适用于在自己的站点页面以及。内容反复能够混淆搜索引擎哪些页面是权威(它也可能会导致罚款。假设你仅仅是复制粘贴别人的内容也行) ,然后你能够有你自己的网页互相竞争排名!

假设你必须有反复的内容,利用相对=规范,让搜索引擎知道哪个URL是一个他们应该被视为权威。可是。假设你的页面是还有一个在网络上找到一个副本?那么開始想出一些策略来添加很多其它的文字和信息来区分你的网页,由于这样反复的内容是决不可能得到好的排名。

——待续。

保持更新

谷歌对于一个一直在更新的博客来说会有一个好的排名,当然仅仅是相对的。

对于一个技术博客作者来说。一直更新的优点不仅能够让我们不断地学习很多其它的内容。

也能够保持一个良好的习惯,而对于企业来说更是如此。假设我们每天去更新我们的博客,那么搜索引擎对于我们站点的收录也会变得越来越加频繁。

那么,对于我们的排名及点击量来说也算是一个好事。当我们能够获得足够的排名靠前时,我们的PR值也在不断地提高。

很多其它内容能够參考:Google Fresh Factor

站点速度

谷歌曾表示在他们的算法页面载入速度问题,所以一定要确保你已经调整您的站点,都服从最佳做法,以使事情迅速

过去的一个月里,我试着提高自己的站点的速度。有一个相对好的速度。可是受限于域名解析速度以及VPS

站点速度分析与traceroute

UX与站点速度优化——博客速度优化小记

Nginx ngx_pagespeed nginx前端优化模块编译

保持耐心

这是有道理的,假设你在须要的谷歌机器人抓取更新的页面。然后处理每一个页面,并更新与新内容相应的索引的时间因素。

而这可能是相当长一段时间。当你正在处理的内容PB级。

SEO是一个长期的过程。非常少有站点能够在短期内有一个非常好的位置,除非是一个热门的站点。然而在它被发现之前也会一个过程。

链接

在某种意义上,这个是提高PR值,及站点流量的另外一个核心。除了内容以外的核心。

每一个程序猿必知之SEO

  • 链接建设是SEO的基础部分。除非你有一个异常强大的品牌。不须要干什么就能吸引到链接。
  • 链接建设永不停止。这是不间断营销站点的过程。

关于链接的内容有太多,并且当前没有一个好的方法获取链接尽管在我的站点已经有了

Links to Your Site

Total links

5,880

同一时候寻求很多其它的链接是更有利更相关的链接能够帮助一样多。假设你有你的内容的分销合作伙伴,或者你建立一个小工具,或其它不论什么人都会把链接回你的站点在网络上 - 你能够通过确保各个环节都有最佳的keyword锚文本大大提高链路的相关性。您还应该确保全部链接到您的站点指向你的主域( http://www.yourdomain.com 。像http://widget.yourdomain.com不是一个子域) 。另外,你要尽可能多的联系,以包括适当的替代文字。

你的想法。

另外。或许不太明显的方式,建立链接(或者至少流量)是使用社交媒体 - 所以设置你的Facebook 。Twitter和谷歌,每当你有新的链接一定要分享。这些通道也能够作为一个有效的渠道,推动很多其它的流量到您的站点。

由社交渠道带来的流量在如今已经越来越重要了。对于一些以内容为主导的站点。并且处于发展初期。能够迅速带来流量,能够參考一下这篇文章

寻ta分析与站点内容

一些更简单的办法就是交换链接,总之这个话题有些沉重。可能会带来一些负面的影响,如黑帽SEO。。

。。

參考来源:

《SEO艺术》(The Art of SEO)

每一个程序猿必知之SEO