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

搜索引擎是如何工作的

如果你有时间,可以读一下谷歌的框架:

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

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

搜索时发生什么了

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

search-engine-arch

为什么需要SEO

这是一个有趣的问题,答案总会来源于为网站带来更多的流量

爬虫与索引

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

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

我们使用许多计算机来获取(或"抓取")网站上的大量网页。执行获取任务的程序叫做 Googlebot(也被称为漫游器或信息采集软件)。Googlebot 使用算法来进行抓取:计算机程序会确定要抓取的网站、抓取频率以及从每个网站中获取的网页数量。

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

也就是如原文所说:

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

为什么谷歌上可以搜索整个互联网的内容?因为,他解析并存储了。而更有意思的是,他会为同样的内容建立一个索引或者说分类,按照一定的相关性,针对于某个关键词的内容。

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

什么样的网站需要SEO?

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

What Site Need 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动态加载出来的对于爬虫来说是不友好的。
  • 使用描述性的锚文本的网页。
  • 限制的页面上的链接数量。除去一些分类网站、导航网站之类有固定流量,要不容易被认为垃圾网站。
  • 确保页面能被索引。有一指向它的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

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

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

由社交渠道带来的流量在现在已经越来越重要了,对于一些以内容为主导的网站,而且处于发展初期,可以迅速带来流量,可以参考一下这篇文章

寻ta分析与网站内容

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

参考来源:

《SEO艺术》(The Art of SEO)

每个程序员必知之SEO相关推荐

  1. 程序员必知8大排序3大查找(三)

    前两篇 <程序员必知8大排序3大查找(一)> <程序员必知8大排序3大查找(二)> 三种查找算法:顺序查找,二分法查找(折半查找),分块查找,散列表(以后谈) 一.顺序查找的基 ...

  2. 程序员必知的操作系统知识点

    这是一本关于程序员必知的操作系统,可以看一下目录. 内容涉及 认识操作系统 进程和线程 内存管理 文件管理 I/O 死锁 操作系统面试题 操作系统核心概念 字是一个一个敲的,图是一笔一笔画的. 可以看 ...

  3. 程序员必知必会之maillist篇

    程序员必知必会之maillist篇        本文最初由恋花蝶发表于http://blog.csdn.net/lanphaday,可以随意转载,但未经同意不得增删修改,转载应保留本声明,否则追究责 ...

  4. 程序员必知必会之blog篇

    程序员必知必会之blog篇 网易广州       赖勇浩(http://blog.csdn.net/lanphaday) 本文最初发表于恋花蝶的博客(http://blog.csdn.net/lanp ...

  5. 专业程序员必知必会技巧:驯服复杂代码

    感悟:虽然不想做一个程序员,但还是自做这些事情!艺术家首先是工匠!多美妙的哲理,可是路途漫长而很多人选择了放弃,我也想放弃了.更重要的是,如果希望是一个艺术家,首先是一个NB的工程师. 原文链接:ht ...

  6. 专业程序员必知必会的技巧:驯服复杂代码

    你从入职第一天起就要应对复杂代码. 若是还未遇到过无法理解的程序,那说明你编程的年头还不够长.在行业里,要不了多久你就会碰到让人发懵的混乱代码:巨兽.面条工厂.来自地狱的遗留系统.我曾接手过一个程序, ...

  7. 程序员必知8大排序3大查找(一)

    每天都在叫嚣自己会什么技术,什么框架,可否意识到你每天都在被这些新名词.新技术所迷惑,.NET.XML等等技术固然诱人,可是如果自己的基础不扎实,就像是在云里雾里行走一样,只能看到眼前,不能看到更远的 ...

  8. python库有什么用_Python程序员必知什么 常用的Python库有哪些

    Python程序员必知什么?常用的Python库有哪些?Python有很多丰富而强大的库,这是它成为人工智能与数据分析领域强者的关键.有很多Python开发人员想知道常用的Python库有哪些,接下来 ...

  9. Python 程序员必知必会的开发者工具

    Python 程序员必知必会的开发者工具 Python已经演化出了一个广泛的生态系统,该生态系统能够让Python程序员的生活变得更加简单,减少他们重复造轮的工作.同样的理念也适用于工具开发者的工作, ...

最新文章

  1. Node.js链式回调
  2. Tomcat 7.0~10.0zip版,安装版,其他一键式全部下载
  3. Automatic IE Testing With Python
  4. day29 socket编程TCP和UDP
  5. 【java】关于Map的排序性的一次使用,有序的Map
  6. 【MySQL】MySQL 执行 PROCEDURE ANALYSE 报错 ERROR 1064 (42000)
  7. 【数据结构和算法笔记】用c和c++分别实现二叉搜索树
  8. JavaSE学习笔记(七)—— 继承final关键字
  9. [置顶] NYOJ117 求逆序数
  10. SOAPUI 安装及破解
  11. oracle基础语法(二)ORACLE查询
  12. linux 搭建FTP服务器
  13. Ceisum 计算向量夹角及垂足
  14. cdc有哪些rapper_CDC说唱会馆在圈内是一个什么样的存在
  15. 模型的评估指标(一)
  16. 从入门到进阶,Python程序员必看的6本书籍!
  17. 无代码开发平台为什么能火?它是如何收费的
  18. 就算“千夫所指”也要为自己做的10件事
  19. Linux hook系统调用open/read/write
  20. Python中使用pickle库进行数据的序列化存储

热门文章

  1. 对不起,精英主义与特斯拉精神背道而驰
  2. Thimax膳美师牛排机体验:做一份顶级牛排,简直0难度!
  3. axure中备注线_axure 备注怎么写
  4. vim方向键无效的解决方案
  5. [易语言] 六边形扫雷游戏实战开发
  6. 『Android基础入门』:EventBus实现总线数据分发
  7. 使用ivx中表格组件的经验总结
  8. 离线语音远程遥控车控门制作教程(二)
  9. 《易中天中华史 - 第五卷 从春秋到战国》读书笔记
  10. 【scala】练习题