Tag Archives: google

AJAX 抓取:网站站长和开发人员指南

指鹤所在的公司非常重视SEO,但ajax对SEO极其不友好,听说了谷歌对ajax做了一些处理,于是指鹤查了一下,在谷歌的站长支持下找了一篇文章,想要了解的可以点击这里。若是链接无法访问,可以看指鹤下面copy过来的文章,样式没有原文好,但不影响浏览。 AJAX 抓取:网站站长和开发人员指南 概述 如果您通过 AJAX 应用程序处理要在搜索结果中显示的内容,我们会使用一种新的流程,它可帮助 Google(以及可能其他搜索引擎)抓取您的内容并将其编入索引。从过去的效果来看,AJAX 应用程序一直是搜索引擎难以处理的对象,因为 AJAX 内容是由浏览器动态生成的,因此抓取程序发现不了它。尽管现在有 方法可以处理该问题,但是必须定期对其进行手动维护才能确保内容最新。 相比之下,以下机制可以更好地帮助搜索引擎有效抓取内容并将其编入索引,这样就免去了网站站长定期手动维护索引内容的麻烦。如果您的 AJAX 应用程序采用此机制,其内容便可以显示在搜索结果中。该机制的原理如下: 网站采用 AJAX 抓取机制。 您的服务器为每个 AJAX 网址提供 HTML 快照,即用户(使用浏览器)看到的内容。 AJAX 网址包含哈希代码,例如 www.example.com/index.html#mystate,其中#mystate是哈希代码。HTML 快照是执行 JavaScript 后显示在网页上的全部内容。 搜索引擎会将 HTML 快照编入索引,并在搜索结果中提供原始的 AJAX 网址。 为了让此机制发挥作用,应用程序必须在 AJAX 网址中使用特定的语法(我们将其称为“漂亮网址”,您看完以下几节的介绍后就会明白为什么这样称呼它)。搜索引擎抓取工具可以将这些“漂亮网址”临时修改为“丑陋网址”,并从您的服务器上请求修改后的网址。请求“丑陋网址”可以指示服务器不要传回应在浏览器中显示的常规网页,而是传回 HTML 快照。当抓取工具获取了修改过的“丑陋网址”时,会将其内容编入索引,然后在搜索结果中显示原来的“漂亮网址”。也就是说,最终用户看到的始终是包含哈希代码的“漂亮网址”。以下示意图显示了该协议的原理: 有关详细信息,请参见AJAX 抓取常见问题解答和开发人员文档。 分步指南 1. 通知抓取工具您的网站支持 AJAX 抓取机制。 要将 AJAX 网站编入索引,第一步是通知抓取工具您的网站支持 AJAX 抓取机制。通知方法是在哈希代码中使用特殊令牌(即网址中 # 号后面的所有字符)。表示唯一页面状态的哈希代码开头必须是感叹号。例如,如果您的 AJAX 应用程序包含如下网址:www.example.com/ajax.html#mystate 它现在应变为如下形式:www.example.com/ajax.html#!mystate 当您的网站采用该机制后,便可以视为“可抓取的 AJAX”了。这表示,如果网站提供 HTML 快照,抓取工具便可以看到应用程序的内容。 2. 设置您的服务器以处理关于包含“_escaped_fragment_”的网址的请求 假设您想将 www.example.com/index.html#!mystate编入索引。客户端的协议规定为抓取工具提供该网址的 HTML 快照,以便抓取工具可以看到网页内容。服务器怎样才能知道何时该传回 HTML 快照而不是常规网页呢?答案就位于抓取工具所请求的网址中:抓取工具会修改每个 AJAX 网址,例如将 www.example.com/ajax.html#!mystate临时修改为www.example.com/ajax.html?_escaped_fragment_=mystate。我们称前一个网址为“漂亮网址”,称后一个网址为“丑陋网址”。 这是非常重要的,原因有两点: 按照规范,哈希代码绝不会作为 HTTP 请求的组成部分发送给服务器。也就是说,抓取工具需要通过某种方式让服务器知道它想获取网址www.example.com/ajax.html#!mystate下的内容。 另一方面,服务器需要知道自己必须传回 HTML 快照,而不是传回应发送至浏览器的常规网页。请记住,HTML 快照是执行 JavaScript 后在网页上显示的全部内容。服务器端协议要将 www.example.com/index.html#!mystate(即原始网址)的 HTML 快照传回到抓取工具。 注意:抓取工具在转换过程中会将代码中的某些字符转义。要重新获得原始代码,请确保反转义代码中的所有 %XX 字符(例如,%26 应变为“&”,%20应变为空格,%23 应变为 #,%25 应变为 %)。 既然您可以重新获得原始网址,并知道抓取工具请求的内容,则只需生成 HTML 快照即可。以下是几种操作方法: 如果您有大量内容是使用 JavaScript 生成的,则需要使用HtmlUnit等无头浏览器获取 HTML 快照。您还可以使用其他工具,例如crawljax或watij.com。 如果您有很多内容是使用服务器端技术(如 PHP 或 ASP.NET)生成的,您可以保留现有的代码,而仅仅将网页的 JavaScript 部分替换为静态的或在服务器端创建的 HTML。 您可以创建静态版本的离线网页。例如,许多应用程序会从数据库中提取内容,然后显示在浏览器中。而您可以为每个 AJAX 网址创建单独的 HTML 网页。这与 Google 早期的提出Hijax 建议非常相似。 3. 处理没有哈希代码的网页 您的某些网页可能没有哈希代码。例如,您可能希望首页为www.example.com,而不是 www.example.com#!home。为此,我们制定了特殊的规定来处理没有哈希代码的网页。 为了将没有哈希代码的网页编入索引,您可以将特殊的元标记添加到网页的 HTML 标头中。 重要提示:请务必仅对包含 Ajax 内容的网页采取此解决方案。将该元标记添加至非 Ajax 网页不仅不会产生任何效果,还会增加您和 Google 的服务器的额外负载。该元标记可以采用以下格式:<meta name=”fragment” content=”!”> 此标记告知抓取工具应该抓取该网页的“丑陋网址”。根据上述协议,抓取工具会临时将“漂亮网址”映射至对应的“丑陋网址”。也就是说,如果您将 <meta name=”fragment” content=”!”> 添加到 www.example.com 网页中,抓取工具会临时将该网址映射至www.example.com?_escaped_fragment_=,并从服务器上请求该网址。然后,服务器就应传回与www.example.com对应的 HTML 快照。 请注意,该元标记必须符合一个重要的限制条件:只有 “!” 是有效内容。也就是说,该元标记必须始终采用正确格式:<meta name=”fragment” content=”!”>,这是一个空哈希代码,但是可以传回 AJAX 内容。 4. 请考虑更新站点地图以列出新的 AJAX 网址 抓取工具使用站点地图 扩展自己的抓取范围。站点地图应该包含您希望在搜索结果中显示的网址版本,因此在大多数情况下,它应该是 http://example.com/ajax.html#!foo=123(而不是 http://example.com/ajax.html?_escaped_fragment_=foo=123),除非您有一个网站登录页(例如首页),您希望它显示在搜索结果中并且不带#!。例如,如果您想让搜索结果显示http://example.com/,并且站点地图中的http://example.com/含<meta name=”fragment” content=”!”>(在文档的<head>中)。有关详细信息,请查看站点地图上的其他文章。

chrome插件源代码查看

2014.7.28 学习chrome插件开发时,指鹤觉得从看其他人写的源码是一个不错的开始,至于如何拿到chrome源码?很简单,安装一个简单的chrome插件,然后到如下路径便可以找到安装了的插件源码。 路径 C:\Users\自己的账户名字\AppData\Local\Google\Chrome\User Data\Default\Extensions,目录下有很多文件夹,都是以一长串字符命名的,这个命名与浏览器插件页面chrome://extensions/下,每一个插件下的字符相对应的。 注:有些文件是隐藏的,要设置为显示隐藏文件及文件夹。

chrome在新标签页打开连接

2014.7.25 google搜索结果页最近改成默认在本页打开新连接,刚用起来有些不习惯,于是指鹤搜了一下,看能不能找到一些设置更改,后来发现谷歌搜索结果页改成在本页面打开连接还是有一定道理的,而且它早就提供了在新页面打开新连接的方法。如下三种不管连接是否设置了target=”_blank”,新连接都会在新页面打开。 1.用鼠标中键(也就是滚轮)打开链接。 2.按住Ctrl键的同时单击链接。 3.右键单击链接,选择你喜欢打开的方式。 最后,再附上一个chrome的快捷键,ctrl+shift+t,能够打开最近关闭的页面,貌似最多可以打开十个。

浅谈google web fonts

由于项目需求,指鹤了解了一下google web fonts 初级了解,不过也在这里和大家分享一下吧。 google web fonts能够引入一些操作系统不支持的字体,让页面变得更加不一样,但是它的缺点就是会影响到页面加载(毕竟加载了字体文件),指鹤利用公司的vpn测试的话,加载一个Arvo字体大概花费了200ms。google fonts库也有这样一行字。 Tip: Using many font styles can slow down your webpage, so only select the font styles that you actually need on your webpage. 大概介绍完google web fonts,简要说一下怎么使用吧。 1、google web fonts的地址:https://www.google.com/fonts 2、进去之后挑选自己喜欢的字体,选中之后,点击字体右侧的第二个按钮(hover上去有Quick-use,按钮上方有一个—>),进去之后下拉页面,到条目三,google给我们提供了link/@import,还有js的引用方式,最后条目四给出了css的样式写法。 指鹤觉得引用google web fonts的方法很简单,用不用的关键权衡点应该就在页面加载性能与特殊字体的必要程度上了。 PS:国内被墙比较严重,目前不建议使用google web fonts。

如何清除chrome的dns缓存

chrome的默认dns预解析以及dns缓存在一定程度上提高了用户体验,令访问页面变得更加顺畅了,但同时也引出了一些问题,尤其是对测试人员,需要根据切换host来切换到不同的测试环境之中。原先这种情况除了使用chrome插件,犹如host管理工具等,但这些插件有些时候会把host的文件格式改了,后面就用的少了。不用chrome插件之后,每次修改完host文件之后,由于dns缓存的问题,需要现将浏览器关掉,再从新打开才能到想要去的ip地址,感觉后头疼,所以指鹤今天google了一下,找到了一个方法,分享如下: 可以在设置中禁 DNS 缓存. Chrome – > 扳手 – > 选项 – > 高级选项 – > 去勾 “用预提取 DNS 提高网页载入速度” 还有一个地方可以清除 DNS 缓存: chrome://net-internals/#dns 希望能够帮到各位。 2014.7.24日,第二种方法已经亲测可以达到效果。

强大到让人窒息的chrome

Chrome 有很多的特性在界面菜单中是没有体现的,你可以通过 chrome:// 命令来访问。本文介绍 12 个非常有用的 chrome:// 命令: 1. chrome://flags 可用来启用或者关闭某些 chrome 的体验特性   2. chrome://dns 该命令将显示浏览器预抓取的主机名列表   3. chrome://downloads 该命令同时也可以从菜单中的下载来访问,其快捷键是 Ctrl + J   4. chrome://extensions 该命令等同于菜单 – 工具 – 扩展   5. chrome://bookmarks 改名了等同于菜单-书签-书签管理器,快捷键 Ctrl+Shift+O   6. chrome://history 该命令可从菜单-历史直接访问,快捷键 Ctrl+H   7. chrome://memory 该命令将重定向到 “chrome://memory-redirect/”. 它将显示浏览器使用内存的情况,以及系统中运行的其他浏览器,包括 firefox。同时还显示浏览器进程的详细信息。   8. chrome://net-internals 该命令显示网络相关信息,用来捕获浏览器生成的网络事件,可导出数据,可查看 DNS 主机解析缓存。 其中一个很重要的功能就是“测试”,如果你无法访问某个网址,那么可以使用 “chrome://net-internals” -> 点击“Tests” tab -> 输入网址,并点击开始测试,Chrome 将报告具体的问题所在。   9. chrome://quota-internals 该命令用来显示浏览器所使用磁盘空间配额的情况。   10. chrome://sessions 该命令用来显示当前运行的浏览器的会话信息数以及详细列表   11. chrome://settings 该命令可通过菜单-选项直接访问,可用来控制浏览器各项设置值   12. chrome://sync-internals 用来显示 chrome 的同步状态   最后,如果你想查看 chrome 所有的命令,可使用 chrome://about/   另外,请注意,上面提及的所有命令也可使用 about:xxx 命令,将会自动重定向到 chrome://,例如: about:dns chrome://dns

如何用好 Google 等搜索引擎

1、双引号 把搜索词放在双引号中,代表完全匹配搜索,也就是说搜索结果返回的页面包含双引号中出现的所有的词,连顺序也必须完全匹配。bd和Google 都支持这个指令。例如搜索: “seo方法图片” 2、减号 减号代表搜索不包含减号后面的词的页面。使用这个指令时减号前面必须是空格,减号后面没有空格,紧跟着需要排除的词。Google 和bd都支持这个指令。 例如:搜索 -引擎 返回的则是包含“搜索”这个词,却不包含“引擎”这个词的结果 3、星号 星号*是常用的通配符,也可以用在搜索中。百度不支持*号搜索指令。 比如在Google 中搜索:搜索*擎 其中的*号代表任何文字。返回的结果就不仅包含“搜索引擎”,还包含了“搜索收擎”,“搜索巨擎”等内容。 4、inurl inurl: 指令用于搜索查询词出现在url 中的页面。bd和Google 都支持inurl 指令。inurl 指令支持中文和英文。 比如搜索:inurl:搜索引擎优化 返回的结果都是网址url 中包含“搜索引擎优化”的页面。由于关键词出现在url 中对排名有一定影响,使用inurl:搜索可以更准确地找到竞争对手。 5、inanchor inanchor:指令返回的结果是导入链接锚文字中包含搜索词的页面。百度不支持inanchor。 比如在Google 搜索 :inanchor:点击这里 返回的结果页面本身并不一定包含“点击这里”这四个字,而是指向这些页面的链接锚文字中出现了“点击这里”这四个字。 可以用来找到某个关键词的竞争对收,而且这些竞争对手往往是做过SEO 的。研究竞争对手页面有哪些外部链接,就可以找到很多链接资源。 6、intitle intitle: 指令返回的是页面title 中包含关键词的页面。Google 和bd都支持intitle 指令。 使用intitle 指令找到的文件是更准确的竞争页面。如果关键词只出现在页面可见文字中,而没有出现在title 中,大部分情况是并没有针对关键词进行优化,所以也不是有力的竞争对手。 7、allintitle allintitle:搜索返回的是页面标题中包含多组关键词的文件。 例如 :allintitle:SEO 搜索引擎优化 就相当于:intitle:SEO intitle:搜索引擎优化 返回的是标题中中既包含“SEO”,也包含“搜索引擎优化”的页面 8、allinurl 与allintitle: 类似。 allinurl:SEO 搜索引擎优化 就相当于 :inurl:SEO inurl:搜索引擎优化 9、filetype 用于搜索特定文件格式。Google 和bd都支持filetype 指令。 比如搜索filetype:pdf SEO 返回的就是包含SEO 这个关键词的所有pdf 文件。 10、site site:是SEO 最熟悉的高级搜索指令,用来搜索某个域名下的所有文件。 11、linkdomain linkdomain:指令只适用于雅虎,返回的是某个域名的反向链接。雅虎的反向链接数据还比较准 确,是SEO 人员研究竞争对手外部链接情况的重要工具之一。 比如搜索 linkdomain:http://cnseotool.com -site:http://cnseotool.com 得到的就是点石网站的外部链接,因为-site:http://cnseotool.com 已经排除了点石本身的页面,也就是内部 链接,剩下的就都是外部链接了。 12、related related:指令只适用于Google,返回的结果是与某个网站有关联的页面。比如搜索 related:http://cnseotool.com 我们就可以得到Google 所认为的与点石网站有关联的其他页面。 这种关联到底指的是什么,Google 并没有明确说明,一般认为指的是有共同外部链接的网站。 上面介绍的这几个高级搜索指令,单独使用可以找到不少资源,或者可以更精确地定位竞争对 手。把这些指令混合起来使用则更强大。 inurl:gov 减肥 返回的就是url 中包含gov,页面中有“减肥”这个词的页面。很多SEO 人员认为GVM和学校网 站有比较高的权重,找到相关的GVM和学校网站,就找到了最好的链接资源。 下面这个指令返回的是来自.中国教育和科研计算机网CERNET,也就是学校域名上的包含“交换链接”这个词的页面: inurl:.中国教育和科研计算机网CERNET 交换链接 从中SEO 人员可以找到愿意交换链接的学校网站。 或者使用一个更精确的搜索: inurl:.中国教育和科研计算机网CERNET intitle:交换链接 返回的则是来自中国教育和科研计算机网CERNET 域名,标题中包含“交换链接”这四个字的页面,返回的结果大部分应 该是愿意交换链接的学校网站。 再比如下面这个指令: inurl:中国教育和科研计算机网CERNET*register 返回的结果是在.中国教育和科研计算机网CERNET 域名上,url 中包含“forum”以及“register”这两个单词的页面,也就是 学校论坛的注册页面。找到这些论坛,也就找到了能在高权重域名上留下签名的很多机会。 下面这个指令返回的是页面与减肥有关,url 中包含links 这个单词的页面: 减肥 inurl:links 很多站长把交换链接页面命名为links.html 等,所以这个指令返回的就是与减肥主题相关的交换 链接页面。 下面这个指令返回的是url 中包含http://gov.cn 以及links 的页面,也就是GVM域名上的交换链接页面: allinurl:gov.cn+links 最后一个例子,在雅虎搜索这个指令: linkdomain:http://cnseotool.com -linkdomain:http://cnseotool.com 返回的是链接到点石网站,却没有链接到我的博客的网站。使用这个指令可以找到很多连向你 的竞争对手或其他同行业网站,却没连向你的网站的页面,这些网站是最好的链接资源。 高级搜索指令组合使用变化多端,功能强大。一个合格的SEO必须熟练掌握这几个常用指令的 意义及组合方法,才能更有效率地找到更多竞争对手和链接资源。 找外链的时候你可以用这几种命令组合,例如site:.com inurl:blog “post a comment” -”comments closed” -”you must be logged in” “输入你的关键词“, site:.com 是 指, 只显示.com的网站。 如果你想要 org的链接,就换成 site:.org,inurl:blog 是指博客。 “post a comment” -”comments closed” -”you must be logged in” 是指, “能够写评论的” 减去“ 关闭评论的” 再减去“ 必须要登录才能写评论的”。 转自知乎:http://www.zhihu.com/question/20161362