【翻譯】SEO 對上 React:爬蟲遠比你想象的聰明

1_T1b83o47E1AI0lTpwzHVvA.png

很多人仍擔心如果使用 React、Angular、Ember 建站會有損搜索引擎的排名顷锰。

他們的想法大致是這樣:搜索引擎使用的爬蟲不能正確的爬取一個在瀏覽器里渲染的頁面,它們只能看見從后端發(fā)送過來的 HTML 代碼亡问。

如果 HTML 代碼中只有一些 meta 標簽和 script 標簽官紫,搜索引擎會認為你的頁面是空的并且給個很低的排名。

我經(jīng)持菖海看到 SEO 顧問推薦在后端渲染頁面束世,這樣爬蟲能夠爬到很好的 HTML 代碼并建立索引。

在我看來這樣的建議是完全不合理和不切實際的床玻。在2016年毁涉,用戶期盼頁面是動態(tài)的并能提供非常暢快的體驗。他們不想每次點擊之后等待著一個新的 HTML 頁面被加載锈死。

那么”客戶端渲染會降低頁面排名“說法成立嗎贫堰?

做些研究

1_WjGkGUHaw5k-LRVPXPdmdw.gif

首先聲明:我不是一個 SEO 專家。但我確實研讀了很多文章待牵,下面是我的發(fā)現(xiàn)其屏。

這是一個谷歌在其 webmaster 博客上的聲明,時間是2015年10月:

當前缨该,只要你不阻止谷歌爬蟲爬取您的的 JavaScript 或 CSS 文件偎行,我們基本上能夠渲染和理解你的頁面就像現(xiàn)代瀏覽器一樣。為了表述這些改進贰拿,我們最近更新了我們的 Webmaster 技術(shù)準則蛤袒,建議不要阻止谷歌爬蟲爬取您網(wǎng)站的 CSS 和 JS 文件。

下面是 Search Engine Land 2015年5月的文章

我們運行了一系列測試驗證了谷歌可以運用多種實現(xiàn)做到執(zhí)行并索引 JavaScript壮不。我們也同時確認谷歌可以渲染整個頁面并讀取 DOM汗盘,即使索引動態(tài)生成的內(nèi)容。

在 DOM 中 SEO 信號(標題询一,meta 標簽隐孽,規(guī)范化標簽,meta rebots 標簽等)仍然被推崇健蕊。被動態(tài)插入到 DOM中的內(nèi)容是可以爬去和索引的菱阵。另外,在某些情況下 DOM 信號甚至會優(yōu)先于 HTML 代碼造成矛盾缩功。這還需要做一些工作晴及,但確實是我們測試的一部分。

以上兩條來源的建議就是,可以確實安全的使用客戶端渲染布局度宦。

測試 Preactjs.com

我最近推了一條挽歌給那些挑剔 React 的 SEO 顧問。準確的說戳表,我正遷往 Preact蛛倦,一個輕量的臉書的 React 的替代物歌懒。拋開我在上面引用的 Search Engine Land 的文章不說,Preact 的作者 Jason Miller 給谷歌搜索推了他的項目首頁溯壶,這個樣子的:

1_BmlCGUpoCeo-M-mJh4SEmQ.png

這個頁面完全是在客戶端渲染的及皂,使用的 Preact,看一下它的代碼:

<!DOCTYPE html><html><head>
<meta charset="utf-8">
<title>Preact: Fast 3kb React alternative with the same ES6 API. Components &amp; Virtual DOM.</title>
<meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1,minimal-ui">
<meta name="mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="format-detection" content="telephone=no">
<meta name="theme-color" content="#673AB8">
<link rel="manifest" href="/manifest.json">
<link rel="icon" type="image/png" href="/assets/app-icon-192.png" sizes="192x192">
<script>(function(url){window['_boostrap_'+url]=fetch(url);})('/content'+location.pathname.replace(/^\/(repl)?\/?$/, '/index')+'.md');</script>
<link rel="shortcut icon" href="/favicon.ico">
<link href="/style.6bae35e4ff9d687cb418.css" rel="stylesheet">
</head><body>
<script>(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)})(window,document,'script','//www.google-analytics.com/analytics.js','ga');ga('create', 'UA-6031694-20', 'auto');ga('send', 'pageview');</script>
<script type="text/javascript" src="/bundle.a0afd09fd48712ed0f26.js"></script>
</body></html>

如果谷歌爬蟲不能讀懂 Preact 渲染的頁面代碼且改,它不會顯示比 meta 標簽更多的內(nèi)容验烧。
但是,下面是谷歌搜索site:preactjs.com的結(jié)果:

1_nBjY1kfpImRn2lsPdSdkGg.png

另一篇 Andrew Farmer 2016年3月的文章 警告除谷歌外的搜索引擎對 JavaScript 缺少支持:

我的研究中我不能找到任何證據(jù)表明 Yahoo又跛、Bing 或百度支持對 JavaScript 的爬取碍拆。如果在這些搜索引擎的 SEO 對你很重要,你需要使用服務端渲染效扫,未來我會再探討倔监。

所以我決定試一下其他搜索引擎對于 Preact 的搜索結(jié)果直砂。

?Bing

看來 Andrew 對 Bing 的描述是蒼白的菌仁。下面是 Bing 的搜索結(jié)果

1_bCcM0TRVImaOF_hVs8HPtg.png

?Yahoo

下面是 Yahoo 的搜索結(jié)果

1_TYNb6bd-o3jQG-sPMGVEIA.png

? Duck Duck Go

下面是 Duck Duck Go 的搜索結(jié)果

1_WjfXMyYZz_0W1q_1std4QA.png

??百度

看來百度的搜索結(jié)果有些問題:

1_LNI0cw0ZM42y-0uoYRosCQ.png

從結(jié)果看的出,除非在中國的搜索排名對你很重要静暂,不然不需要過多擔心使用 JavaScript 在客戶端渲染你的網(wǎng)頁济丘,只要遵守一些基本規(guī)則:

  • 在異步操作之前渲染你的組件。
  • 讓谷歌收錄你的每個頁面確保爬蟲能爬取頁面內(nèi)容洽蛀。

感謝閱讀摹迷!文章出處


寫在2018年6月13日,現(xiàn)在百度也可以正確讀取 Preact 的網(wǎng)站了郊供。但是對于 URL 中使用 Hash 的好像還是不可以峡碉。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市驮审,隨后出現(xiàn)的幾起案子鲫寄,更是在濱河造成了極大的恐慌,老刑警劉巖疯淫,帶你破解...
    沈念sama閱讀 206,482評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件地来,死亡現(xiàn)場離奇詭異,居然都是意外死亡熙掺,警方通過查閱死者的電腦和手機未斑,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,377評論 2 382
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來币绩,“玉大人蜡秽,你說我怎么就攤上這事府阀。” “怎么了芽突?”我有些...
    開封第一講書人閱讀 152,762評論 0 342
  • 文/不壞的土叔 我叫張陵肌似,是天一觀的道長。 經(jīng)常有香客問我诉瓦,道長川队,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,273評論 1 279
  • 正文 為了忘掉前任睬澡,我火速辦了婚禮固额,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘煞聪。我一直安慰自己斗躏,他們只是感情好,可當我...
    茶點故事閱讀 64,289評論 5 373
  • 文/花漫 我一把揭開白布昔脯。 她就那樣靜靜地躺著啄糙,像睡著了一般。 火紅的嫁衣襯著肌膚如雪云稚。 梳的紋絲不亂的頭發(fā)上隧饼,一...
    開封第一講書人閱讀 49,046評論 1 285
  • 那天,我揣著相機與錄音静陈,去河邊找鬼燕雁。 笑死,一個胖子當著我的面吹牛鲸拥,可吹牛的內(nèi)容都是我干的拐格。 我是一名探鬼主播,決...
    沈念sama閱讀 38,351評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼刑赶,長吁一口氣:“原來是場噩夢啊……” “哼捏浊!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起撞叨,我...
    開封第一講書人閱讀 36,988評論 0 259
  • 序言:老撾萬榮一對情侶失蹤金踪,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后谒所,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體热康,經(jīng)...
    沈念sama閱讀 43,476評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,948評論 2 324
  • 正文 我和宋清朗相戀三年劣领,在試婚紗的時候發(fā)現(xiàn)自己被綠了姐军。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,064評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖奕锌,靈堂內(nèi)的尸體忽然破棺而出著觉,到底是詐尸還是另有隱情,我是刑警寧澤惊暴,帶...
    沈念sama閱讀 33,712評論 4 323
  • 正文 年R本政府宣布饼丘,位于F島的核電站,受9級特大地震影響辽话,放射性物質(zhì)發(fā)生泄漏肄鸽。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,261評論 3 307
  • 文/蒙蒙 一油啤、第九天 我趴在偏房一處隱蔽的房頂上張望典徘。 院中可真熱鬧,春花似錦益咬、人聲如沸逮诲。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,264評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽梅鹦。三九已至,卻和暖如春冗锁,著一層夾襖步出監(jiān)牢的瞬間齐唆,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,486評論 1 262
  • 我被黑心中介騙來泰國打工蒿讥, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留蝶念,地道東北人抛腕。 一個月前我還...
    沈念sama閱讀 45,511評論 2 354
  • 正文 我出身青樓芋绸,卻偏偏與公主長得像,于是被迫代替她去往敵國和親担敌。 傳聞我的和親對象是個殘疾皇子摔敛,可洞房花燭夜當晚...
    茶點故事閱讀 42,802評論 2 345

推薦閱讀更多精彩內(nèi)容

  • ?前端面試題匯總 一、HTML和CSS 21 你做的頁面在哪些流覽器測試過全封?這些瀏覽器的內(nèi)核分別是什么? ...
    Simon_s閱讀 2,219評論 0 8
  • 每晚失眠的時候马昙,都是我在無限YY的時候,YY自己滿是狗血的人生刹悴,升職加薪行楞,從此走上人生巔峰,左擁右抱胡歌土匀、李易峰子房、...
    簡單的其實不簡單閱讀 228評論 0 0