使用Google抓取方式,測試React驅動的網站SEO
我最近進行了一項測試,它有關客戶端渲染的網站是否能避免被搜尋引擎的機器人爬取內容。就如我此文所述,React
並不會破壞搜尋引擎的索引。
現在,我開始實施我的下一個步驟。為了瞭解 Google
到底能爬取和索引哪些內容,我建立了一個 React
的沙盒專案。
建立一個小型的網頁應用程式
我的目標只是建立一個單純的 React
應用程式,用最少的時間配置 Babel
, webpack
和其他一些工具。之後,我會盡可能快地把這個應用程式部署到公網環境。
我也想能在幾秒內就把更新部署到生產環境中。
考慮到要實現這些目標,理想的工具是 create-react-app
和 GitHub Pages
。
有了 create-react-app,我能在 30 分鐘內建立一個小型的 React
應用程式。只需要輸入這些指令:
create-react-app seo-sandbox
cd seo-sandbox/
npm start
我更改了預設的文字和 logo
,修改了一些格式,然後瞧瞧看 —— 一個 100% 由客戶端程式渲染的網頁完成了,讓Googlebot
好好琢磨一下。
你可以訪問我 Github 上的專案工程瞭解更多。
部署到 GitHub Pages
create-react-app 非常有用。簡直和我心有靈犀。在我執行了 npm run build 指令後,它就識別出我準備計劃在 GitHub Pages
上釋出我的專案,並且告訴我應該這麼做:
這是我託管在 GitHub Pages
上的 SEO
沙盒
我把這個網站的名字設定為 "Argelpargel"
,因為這個詞從未被 Google
收錄過。
配置 Google
搜尋終端
Google
為網站所有者提供了一份免費的套件工具叫做 Google 搜尋終端,它可以被用於測試他們的網站。
為了建立這個服務,我為這個網站增加一個稱為 property
的東西:
為了證明我就是這個網站的所有者,我不得不向 Google
上傳一個特別的檔案來找到這個網站。多虧了這個有用的方法 npm rum deploy,讓我在很快的時間內就完成了。
Google
眼中我們網站長什麼樣
環境配置完畢以後,我現在能使用 "Fetch as Google"
工具,用 Googlebot
的方式看看我們的 SEO
沙盒頁面:
當我點選 "Fetch and Render"
按鈕,就能檢查到由 React
驅動的頁面上哪一部分能真正被 Googlebot
檢索到:
目前我所發現的
發現 #1: Googlebot
以非同步載入的形式來閱讀內容
我想最先測試的是 Googlebot
會不會對非同步渲染的內容進行檢索或者爬取。
在頁面被載入完畢後,我的 React
應用程式為資料傳送了一個 Ajax
請求,並用這些資料更新了部分頁面上的內容。
為了模擬這個過程,我為應用程式的元件增加了一個構造器,它通過使用一個 window.setTimeout 方法為元件設定狀態。
constructor(props) {
super(props);
this.state = {
choMessage: null,
faq1: null,
faq2: null,
faq3: null
};
window.setTimeout(() => this.setState(Object.assign(this.state, {
choMessage: `yada yada`
})), 10);
window.setTimeout(() => this.setState(Object.assign(this.state, {
faq1: `bla bla`
})), 100);
window.setTimeout(() => this.setState(Object.assign(this.state, {
faq2: `shoo be doo`
})), 1000);
window.setTimeout(() => this.setState(Object.assign(this.state, {
faq3: `yacketiyack`
})), 10000);
}
我使用了 4 種超時時間,10 毫秒, 100 毫秒, 1 秒 和 10 秒。
結果表明,Googlebot
只會在 10 秒的超時時間上失敗。但是其他 3 個超時時間都成功了,並且對應的文字塊都會顯示在"Fetch as Google"
窗體內。
React Router
讓 Googlebot
迷了眼
我把 React Router
(version 4.0.0-alpha.5) 新增到網頁應用程式中,它能建立一個選單條載入不同的子頁面(從他們的文件裡直接複製貼上過來):
太出乎意料了 – 當我點選了 “Fecth As Google”
後,我只看到了一片綠色背景的頁面:
以客戶端渲染的介面使用 React Router
影響了搜尋引擎的友好性。但這是否只是 React Router 4
上的問題仍舊需要觀察,或者 React Router 3
穩定版本上也存在這樣的問題。
相關文章
- 如何快速抓取網站SEO元素網站
- Hoic對網站的測試使用網站
- 使用 nlmon 驅動抓取 netlink 報文的原理
- TestComplete使用關鍵字測試的資料驅動測試(三)
- 使用 `useServerSeoMeta` 最佳化您的網站 SEOServer網站
- 談談如何抓取ajax動態網站網站
- 啟動 Google 生產:Google 的網站可靠性工程團隊如何使用 GoGo網站
- 例項:使用puppeteer headless方式抓取JS網頁JS網頁
- 談“測試驅動的開發”
- golang 表格驅動測試Golang
- 面試官:網站的SEO你怎麼處理啊?面試網站
- 使用Apache自帶的ab命令測試網站效能Apache網站
- 使用httpstat測試網站響應時間HTTP網站
- 有哪些好的免費seo網站 白狐公羊SEO網站
- 網站建設中如何測試完成的網站?網站
- golang 表格驅動測試案例Golang
- Google:全球使用Android驅動的裝置達30億臺GoAndroid
- 網站測試中需要測試的三個方面網站
- 獨立網站SEO之路網站
- Laravel 測試驅動開發 -- 正向單元測試Laravel
- 軟體測試之網站測試如何進行?網站測試方案2022最新報價網站
- 2019 Google 排名因素清單:網域名稱與 SEO 的關聯性 — Whoops SEOGoOOP
- 基於事件驅動的測試框架ETS事件框架
- 使用 enzyme + jest 測試 React 元件React元件
- 變異測試是測試驅動開發(TDD)的演變
- 使用Spring Boot REST API進行測試驅動開發Spring BootRESTAPI
- 關鍵字WebElement 驅動測試Web
- 網站如何避免谷歌SEO的懲罰?網站谷歌
- iOS自動化測試驅動工具探索iOS
- SEO優化如何提高網站使用者體驗?優化網站
- 新網站如何做好SEO網站
- 網站seo最佳化技巧網站
- 網站頁面載入速度在 2019 年對於 Google SEO 排名的影響 - TechMoon 科技月球網站Go
- RQM — 需求驅動的測試管理工具
- beescms網站滲透測試網站
- 使用 TDD 測試驅動開發來構建 Laravel REST APILaravelRESTAPI
- 使用代理抓取網頁的原因網頁
- 網站seo優化中,如何保持SEO排名穩定?網站優化
- Google開發新的Aspeed控制驅動程式Go