如果你有一个网站想要跟踪给你带来流量的关键词排名的话是个不错的注意。
有些人使用商业软件来完成这些工作,一些人使用其他的在线服务,但是这里我们有一个免费的方法来实现它。但是前提你需要已经安装了Microsoft Excel,当然在天朝,这些都不是问题。
在我们开始前,我得向站长世界的guys道歉拿你的网站来做实验。这个网站在所有的词语排名都很好,因此拿来做例子很合适。
如果你想使用这个表格,可以下载附件。
1、在B2表格内输入网站地址
2、在B4、C4、D4或者更多的输入搜索词
3、如所图显示选择5—12行,按下Del键清除内容
4、按下CTRL-SHIFT-U刷新结果
如果一切顺利的话,一个新列将会添加,曲线也会更新,就像施魔法一样(注意如果宏代码同一天运行多次的话,她不会再执行其他东西。)
关于这个解决方法,我们默认使用的是默认的搜索结果页(每页10个结果)而不是100的结果页面,由于谷歌的算法所导致的一个网站可能在同一关键词拥有2次排名,这样会曲解排名,我们想要模拟真人搜索的结果。
HTTP User agent是IE7.这样做是因为默认的WinHTTP User agent 参数被谷歌所阻止了。他们不想机器人使用他们的服务即便是合法的。
我们使用一个配置参数GOOGLE_WEBSERVER,因此你们可以选择那一个谷歌服务来抓取你的服务。如果你用来跟踪的是来自不同国家的潜在消费者。比如我在UK但是我的大部分消费者在USA,因此我需要看下我自己以外的数据中心。你可以使用本地服务像 www.google.com.hk 或者通过代理IP定位在其他国家。
最后为了保证事情运转迅速和简单,这个宏代码只查看前三个页面。这个是人工限制可以通过修改GetCurrentRanking参数来增加。如果你的网站在前三个结果页面都没有找到的话,将会显示0.
如果你查看宏代码的话,会看到后台大量的数据在运行,但是它是相当简单的。
我们必须要做的是搜刮搜索结果,然后查看返回的内容有没有我们网站链接。这个方法是可以很有用的因此值得研究。
宏代码
宏代码的子程序AddCurrentRankingsRow首先取回网站的URL,然后定位表格中的数据。接着它为今天的日期添加一个新行,然后运行相关栏:
term = sheet.UsedRange.Cells(4, col).Text rank = GetCurrentRanking(term, myurl, 3) sheet.Cells(newRow, col).Formula = rank |
While pagenum < maxpages pagenum = pagenum + 1 url = BuildSERPURL(term, start) page = FetchPage(url) If FindRank(page, myurl, count) Then GetCurrentRanking = start + count Exit Function End If start = start + count Wend |
GetCurrentRanking使用一下三个功能:
1、BuildSERPURL-这个将会为搜索词产生一个搜索URL
2、FetchPage-使用微软的WinHttp来执行HTTP的“GET”请求和抓取搜索结果页面的HTML内容
3、FindRank-查找网站在自然搜索结果页面的排名
FindRank是一个专门针对谷歌搜索结果的。他会忽略掉付费广告然后计算链接。自然搜索结果的链接是这个样子的
<h3 class="r"><a href=http://www.chinaz.com/Webbiz/Exp/"URL">... |
因此这个功能只是专门来从这些URL中提取链接的。这个功能可以很简单的修改为其他的搜索引擎像百度等,需要一点编程知识来调试它成功。
怎样自动运行宏代码
如果你不想按下CTRL-SHIFT-U这样来自动运行的话,可以添加如下代码在整个代码结尾添加如下代码
Private Sub Workbook_Open() AddCurrentRankingsRow End Sub |
这样你每次打开文件的时候,宏代码就会自动运行了,这就意味每次打开都看到的是更新的数据。
希望熟悉宏代码的童鞋可以修改下更适合大家的使用,诸如如何使用开启宏代码大家还是自行搜索解决吧。
英文出处http://www.searchenginepeople.com/blog/
译文出处:http://www.gnbase.com/thread-333-1.html
译者:zhipeng 转载请注明出处链接及作者