免費的SEO分析-將Google搜索與Moz&nbspAPI結合

[ad_1]

我是自負盈虧的創業公司老闆。因此,在說服財務總監花掉我們來之不易的自舉資金之前,我想盡我所能。我也是一位具有數據和計算機科學背景的分析師,所以無論如何定義都有點怪胎。

我嘗試著戴上SEO分析師的頭銜,就是尋找大量免費數據來源,並將其整理成有見地的東西。為什麼?因為將客戶的建議基於猜想沒有任何價值。最好將高質量的數據與良好的分析結合起來,以幫助我們的客戶更好地了解對他們而言重要的是什麼。

在本文中,我將告訴您如何開始使用一些免費資源,並說明如何組合獨特的分析方法,這些方法可以為您的博客文章提供有用的見解(如果您是作家,則是代理機構,如果您是SEO,或者您的網站(如果您是自己進行SEO的客戶或所有者)。

我要使用的方案是,我想分析一些SEO屬性(例如,反向鏈接,Page Authority等),並查看它們對Google排名的影響。我想回答以下問題:「反向鏈接真的對進入SERP的第1頁有效嗎?」和「我真的需要在前10個結果中獲得哪種頁面權威評分?」為此,我需要結合起來來自許多Google搜索的數據,其中包含我要衡量的具有SEO屬性的每個結果的數據。

讓我們開始並研究如何結合以下任務以實現此目標,這些任務均可免費設置:

  • 使用Google自定義搜索引擎查詢
  • 使用免費的Moz API帳戶
  • 使用PHP和MySQL收集數據
  • 使用SQL和R分析數據

使用Google自定義搜索引擎查詢

我們首先需要查詢Google並存儲一些結果。為了保持Google服務條款的正確性,我們不會直接抓取Google.com,而是會使用 Google的自定義搜索 特徵。 Google的自定義搜索的主要目的是讓網站所有者在其網站上提供類似Google的搜索小部件。但是,還有一個 休息 基於 谷歌搜索API 這是免費的,可讓您查詢Google並檢索流行的結果 JSON格式。有 配額限制 但是可以對其進行配置和擴展,以提供良好的數據樣本進行處理。

什麼時候 正確配置 要搜索整個網路,您可以將查詢發送到您的自定義搜索引擎(在我們的示例中是使用PHP),並將其視為Google響應,儘管有一些注意事項。使用自定義搜索引擎的主要限制是:(i)它不使用某些Google Web搜索功能(例如個性化結果);以及(ii)如果您包含十個以上的網站,則可能包含Google索引的一部分結果。

儘管有這些限制,但仍有許多 搜索選項 可以傳遞給自定義搜索引擎以代理您可能期望Google.com返回的內容。在我們的場景中,我們在撥打電話時傳遞了以下內容:

https://www.googleapis.com/customsearch/v1?key=&userIp =
&cx&q = iPhone + X&cr = countryUS&start =
1個

哪裡:

Google說過 Google自定義搜索引擎與Google .com不同,但是在有限的產品測試中比較兩者之間的結果時,我對相似之處感到鼓舞,因此繼續進行分析。也就是說,請記住,以下數據和結果來自Google自定義搜索(使用「整個網路」查詢),而不是Google.com。

使用免費的Moz API帳戶

Moz提供了 應用程序介面 (API)。要使用它,您需要註冊一個 Mozscape API密鑰,它是免費的,但每月限制為2500行,每十秒鐘一次查詢。當前 付費計劃 給您增加的配額,起價為每月250美元。具有免費的帳戶和API密鑰,然後您可以查詢 鏈接API 並分析以下內容 指標

Moz數據欄位

Moz API代碼

描述

ueid

32

外部數量 公平 鏈接到URL

uid

2048

到URL的鏈接數(外部鏈接,外部鏈接,是否等於或不等於)

umrp **

16384

網址的MozRank,以10分標準化

umrr **

16384

網址的MozRank(原始分數)

FMRP **

32768

URL子域的MozRank(歸一化10分)

fmrr **

32768

URL子域的MozRank(原始分數)

我們

536870912

為此URL記錄的HTTP狀態代碼(如果有)

烏帕

34359738368

標準化的100分得分,表示頁面在搜索引擎結果中排名良好的可能性

pda

68719476736

歸一化的100分得分代表域在搜索引擎結果中排名良好的可能性

注意:由於捕獲了此分析,Moz記錄表明它們已棄用這些欄位。但是,在對此進行測試(15-06-2019)中,這些欄位仍然存在。

在調用Links API之前,將Moz API代碼添加在一起,如下所示:

www.apple.com%2F?Cols = 103616137253&AccessID = MOZ_ACCESS_ID&
過期= 1560586149&Signature =

哪裡:

  • http://lsapi.seomoz.com/linkscape/url-metrics/「 class =」 redactor-autoparser-object「> http://lsapi.seomoz.com/linksc … – Moz API的URL
  • http%3A%2F%2Fwww.apple.com%2F –我們要獲取數據的編碼URL
  • Cols = 103616137253 –上表中的Moz API代碼總和
  • AccessID = MOZ_ACCESS_ID – Moz訪問ID的編碼版本(可在您的API帳戶中找到)
  • Expires = 1560586149 –查詢超時-設置為未來幾分鐘
  • 簽名= – Moz訪問ID的編碼版本(可在您的API帳戶中找到)

Moz將返回類似以下JSON的內容:

數組

    (ut)=>蘋果
    (uu)=> www.apple.com/
(ueid)=> 13078035
    (uid)=> 14632963
    (uu)=> www.apple.com/
    (ueid)=> 13078035
    (uid)=> 14632963
    (umrp)=> 9
    (umrr)=> 0.8999999762
    (fmrp)=> 2.602215052
    (fmrr)=> 0.2602215111
    (我們)=> 200
    (upa)=> 90
    (pda)=> 100

有關使用PHP,Perl,Python,Ruby和Javascript查詢Moz的一個很好的起點,請參閱此 Github上的存儲庫。我選擇使用PHP。

使用PHP和MySQL收集數據

現在,我們有了Google自定義搜索引擎和Moz API,幾乎可以捕獲數據了。 Google和Moz通過JSON格式響應請求,因此許多流行的編程語言都可以查詢。除了我選擇的語言PHP外,我還將Google和Moz的結果都寫到了資料庫中,然後選擇了 MySQL社區版 為了這。也可以使用其他資料庫,例如Postgres,Oracle,Microsoft SQL Server等。這樣做可以使用SQL(結構化查詢語言)以及其他語言(例如R,我將在以後進行介紹)來實現數據的持久性和即席分析。在創建用於保存Google搜索結果的資料庫表(具有用於排名,URL等的欄位)和用於保存Moz數據欄位(ueid,upa,uda等)的表之後,我們就可以設計數據收集計划了。

Google提供了一個 慷慨的配額 使用自定義搜索引擎(每天使用相同的Google開發者控制台密鑰最多可查詢1億個查詢),但是Moz免費API的數量限制為2500。儘管對於Moz來說,根據計劃和方案的不同,付費的選擇權每月可提供12萬至4000萬行,費用範圍為每月$ 250- $ 10,000。因此,在我探索免費選項的同時,我設計了代碼,以便在2頁的SERP(每頁10個結果)中收集125個Google查詢,使我能夠保持在2500行的Moz配額之內。至於哪些搜索可以觸發Google,有很多資源可供使用。我選擇使用 蒙多沃 因為它們提供了許多類別的列表,每個列表最多500個單詞,對於實驗來說足夠了。

我還引入了一些PHP幫助程序類以及我自己的資料庫I / O和HTTP代碼。

總之,使用的主要PHP構建塊和源是:

要注意的一個因素是 兩次Moz API調用之間的間隔為10秒。這是為了防止免費API用戶過載Moz。為了用軟體處理此問題,我編寫了一個「查詢調節器」,該查詢阻止了在一個時間範圍內連續調用之間對Moz API的訪問。但是,儘管運行良好,這意味著連續撥打Moz 2500次僅需不到7個小時即可完成。

使用SQL和R分析數據

收集數據。現在,樂趣開始了!

現在該看看我們所擁有的。有時稱為 數據爭吵。我使用一種稱為的免費統計編程語言 [R 以及稱為的開發環境(編輯器) R工作室。還有其他語言,例如 斯塔塔 以及更多的圖形數據科學工具,例如 畫面,但是這些費用和Purple Toolz的財務主管不是一個可以克服的人!

我使用R已經有很多年了,因為它是開源的,並且它具有許多第三方庫,使其非常通用並且適合此類工作。

讓我們捲起袖子。

現在,我有幾個資料庫表,其中包含我在SERPS的2頁上的125個搜索詞查詢的結果(即,每個搜索詞有20個排名的URL)。兩個資料庫表保存Google結果,另一個表保存Moz數據結果。要訪問這些文件,我們需要做一個資料庫INNER JOIN,我們可以通過使用 RMySQL的 通過在R的控制台中鍵入「 install.packages('RMySQL')」,並在我們的R腳本頂部包含「 library(RMySQL)」行來載入。

然後,我們可以執行以下操作來連接並將數據獲取到名為「 theResults」的R數據幀變數中。

庫(RMySQL)
#INNER JOIN這兩個表
查詢<-「
    選擇A。*,B。*,C. *
    從
    (
        選擇
            cseq_search_id
        從cse_query
    )A-自定義搜索查詢
    內部聯接
    (
        選擇
            cser_cseq_id,
            cser_rank,
            cser_url
        來自cse_results
    )B-自定義搜索結果
    開啟A.cseq_search_id = B.cser_cseq_id
    內部聯接
    (
        選擇 *
        從莫茲
    )C-Moz數據欄位
    開啟B.cser_url = C.moz_url
    ;

#(1)連接資料庫
#用您的資料庫用戶名替換USER_NAME
#用您的資料庫密碼替換PASSWORD
#將MY_DB替換為您的資料庫名稱
theConn <-dbConnect(dbDriver(「 MySQL」),用戶=「 USER_NAME」,密碼=「 PASSWORD」,dbname =「 MY_DB」)
#(2)查詢資料庫並保存結果
結果<-dbGetQuery(theConn,theQuery)
#(3)斷開與資料庫的連接
dbDisconnect(theConn)

注意:我有兩個表來保存Google自定義搜索引擎數據。一種保存Google查詢中的數據(cse_query),另一種保存結果(cse_results)。

現在,我們可以使用R的全部統計功能來開始爭論。

讓我們從一些總結開始,以便對數據有所了解。我對每個欄位執行的過程基本相同,因此,讓我們舉例說明並使用Moz的「 UEID」欄位(外部 公平 網址鏈接)。通過在R中鍵入以下內容,我可以得到:

>摘要(theResults $ moz_ueid)
   最小第一區中位數第三區最高
      0 1 20 14709 182 2755274
>分位數(theResults $ moz_ueid,概率= c(1,5,10,25,50,75,80,90,95,99,100)/ 100)
       1%5%10%25%50%75%80%90%95%99%100%
      0.0 0.0 0.0 1.0 20.0 182.0 337.2 1715.2 7873.4 412283.4 2755274.0

觀察這一點,您會發現數據由於中位數與均值的關係而偏斜(很大),而中位數與均值之間的關係被較高四分位數範圍內的值(超過觀測值的75%的值)拉動。但是,我們可以將其繪製為 R中的盒子和晶須圖 其中每個X值都是從Google定製搜索排名1-20開始按等級排列的UEID分布。

請注意,我們在y軸上使用了對數刻度,以便我們可以顯示變化範圍很大的所有值!

Google排名在Moz UEID R中的盒須圖(註:對數刻度)

箱形圖和晶須圖很棒,因為它們在其中顯示了大量信息(請參見R中的geom_boxplot函數)。紫色方框區域表示四分位間距(IQR),它是觀測值的25%到75%之間的值。每個「框」中的水平線代表中間值(訂購時位於中間),而從框延伸的線(稱為「晶須」)代表1.5倍IQR。晶須外的點稱為「離群值」,它顯示每個等級的觀察值集的範圍。儘管有對數刻度,但我們可以看到中值從排名10上升到排名1明顯,表明股權鏈接的數量可能是Google的排名因素。讓我們進一步探討 密度圖

密度圖非常類似於分布(直方圖),但顯示的是平滑線而不是條形圖。與直方圖非常相似,密度圖的峰值顯示了數據值的集中位置,可以在比較兩個分布時提供幫助。在下面的密度圖中,我將數據分為兩類:(i)排名1-10的SERP第1頁上顯示的結果為粉紅色;以及(ii)在SERP第2頁上顯示的結果為藍色。我還繪製了兩種分布的中位數,以幫助說明Page 1和Page 2之間的結果差異。

從這兩個密度圖得出的結論是,第1頁SERP結果比第2頁結果具有更多的外部股權反向鏈接(UEID)。您還可以在下面看到這兩個類別的中值,清楚地顯示了第1頁(38)的值遠大於第2頁(11)的值。因此,我們現在有一些數字可用於反向鏈接的SEO策略。

#根據結果(cser_rank)所在的SERP頁面在R中創建一個因子
>結果$ rankBin <- paste("Page", ceiling(theResults$cser_rank / 10)) > theResults $ rankBin <- factor(theResults$rankBin) # Now report the medians by SERP page by calling 『tapply』 > tapply(theResults $ moz_ueid,theResults $ rankBin,中位數)
第1頁第2頁
    38 11

由此,我們可以推斷出股權反向鏈接(UEID)很重要,如果我根據此數據為客戶提供建議,我想說他們應該尋求38個以上基於股權的反向鏈接,以幫助他們進入SERP的第1頁。當然,這是一個有限的樣本,需要更多的研究,需要考慮更大的樣本和其他排名因素,但是您可以理解。

現在,讓我們研究另一個比UEID範圍更小的指標,然後看看Moz的UPA指標,這是頁面在搜索引擎結果中排名良好的可能性。

>摘要(theResults $ moz_upa)
   最小第一區中位數第三區最高
   1.00 33.00 41.00 41.22 50.00 81.00
>分位數(theResults $ moz_upa,概率= c(1、5、10、25、50、75、80、90、95、99、100)/ 100)
  1%5%10%25%50%75%80%90%95%99%100%
  12 20 25 33 41 50 53 58 62 75 81

UPA是提供給URL的數字,範圍為0-100。數據的表現比以前的UEID無界變數的均值和中位數靠得很近,從而表現出更「正態」的分布,正如我們通過在R中繪製直方圖看到的那樣。

莫茲的UPA得分的直方圖

我們將像以前一樣執行第1頁:第2頁的分裂和密度圖,並在將UPA數據分為兩組時查看UPA分數分布。

#調用「 tapply」按SERP頁面報告中位數
> tapply(theResults $ moz_upa,theResults $ rankBin,中位數)
第1頁第2頁
    43 39

總之,來自兩個Moz API變數的兩個分布非常不同。但是兩者都顯示出SERP頁面之間分數的差異,並且為您提供了切實的價值(中位數),可以與您合作並最終為客戶提供關於您自己的SEO的建議。

當然,這只是一個小樣本,不應該從字面上理解。但是,藉助Google和Moz的免費資源,您現在可以看到如何開始開發自己的分析功能,以使假設基於而不是接受規範。 SEO排名因素一直在變化,擁有自己的分析工具來進行自己的測試和實驗將幫助您提高信譽,甚至可能對迄今未知的事物提供獨特的見解。

Google為您提供了健康的免費配額,可從中獲取搜索結果。如果您需要的免費Moz數量超過每月2500行,則有 眾多付費計劃 您可以購買。 MySQL是一個 免費下載 並且R也是一個 免費包裝 用於統計分析(以及更多)。

去探索!

相關文章