Insight Internet frontier information
洞悉互聯(lián)網(wǎng)前沿資訊/探尋網(wǎng)站優(yōu)化規(guī)律發(fā)表日期:2019-05-18 00:00文章編輯:九天網(wǎng)絡(luò)編輯瀏覽次數(shù):0
一個(gè)臭名昭著的單頁(yè)面應(yīng)用(SPA)開(kāi)發(fā)領(lǐng)域是SEO。根據(jù)您的要求,搜索引擎抓取客戶(hù)端呈現(xiàn)的內(nèi)容要么完全正常,只要它是同步的,或者根本不是很好。
由于所有這些相互矛盾的建議引起的混亂,我經(jīng)??吹絾?wèn)題“我的Vue SPA是否適合SEO?” 來(lái)自像Vue.js Developers Facebook小組,Vue.js論壇和Reddit上的r / vuejs這樣的地方。
在本文中,我們將挑戰(zhàn)流行的觀點(diǎn),做一些基本的測(cè)試,并嘗試總結(jié)一些明智的建議,建立SEO友好的SPA。
客戶(hù)端呈現(xiàn)內(nèi)容的問(wèn)題
單頁(yè)面應(yīng)用程序的標(biāo)準(zhǔn)實(shí)現(xiàn)為瀏覽器提供了一個(gè)頁(yè)面“shell”,而不包含任何有意義的內(nèi)容。而是使用AJAX從服務(wù)器按需加載內(nèi)容,然后通過(guò)JavaScript將其添加到頁(yè)面。
這允許用戶(hù)在沒(méi)有頁(yè)面刷新的情況下查看SPA站點(diǎn)的“頁(yè)面”,從理論上改進(jìn)UX。
雖然這種架構(gòu)適用于在瀏覽器中查看頁(yè)面的人類(lèi)用戶(hù),但搜索引擎爬蟲(chóng)呢?抓取工具可以運(yùn)行JavaScript嗎?如果是這樣,他們會(huì)在抓取頁(yè)面之前等待AJAX調(diào)用完成嗎?
重要的是要知道這一點(diǎn),因?yàn)樗梢源_定網(wǎng)站建設(shè)的內(nèi)容是否可以被搜索引擎索引,同樣重要的是,它的內(nèi)容排名是多少。
Googlebot
由于Google是全球領(lǐng)先的搜索引擎,因此我們的調(diào)查應(yīng)專(zhuān)注于Google搜索引擎抓取工具Googlebot。
在網(wǎng)絡(luò)發(fā)布初期,Googlebot只會(huì)抓取頁(yè)面中提供的靜態(tài)HTML。然而,2014年宣布,Googlebot現(xiàn)在會(huì)嘗試在開(kāi)始抓取之前呈現(xiàn)JavaScript。
為了幫助調(diào)試渲染經(jīng)JavaScript修改的頁(yè)面的任何問(wèn)題,Google為網(wǎng)站管理員提供了Google抓取工具,該工具會(huì)顯示Googlebot在特定網(wǎng)址上看到的內(nèi)容的快照。
一個(gè)常見(jiàn)的誤解是Googlebot不會(huì)抓取異步JavaScript。這篇文章在破壞它方面做得很好。TLDR; Googlebot會(huì)等待至少20秒才能完成異步調(diào)用!
Googlebot如何看待SPA
典型的Vue.js SPA示例是Vue HackerNews Clone 2.0。這是Vue團(tuán)隊(duì)提供的一個(gè)開(kāi)源項(xiàng)目,用于演示Vue的全部功能和有效的設(shè)計(jì)模式。
我將此應(yīng)用程序部署到Heroku實(shí)例并通過(guò)Fetch As Google運(yùn)行。在下圖中,左側(cè)的屏幕截圖顯示了Googlebot如何看到它,右側(cè)的屏幕截圖顯示了用戶(hù)將如何看到它。它們似乎完全相同。
許多開(kāi)發(fā)人員看到谷歌2014年關(guān)于JavaScript渲染的公告是對(duì)SEO內(nèi)容的SEO擔(dān)憂(yōu)的終結(jié)。實(shí)際上,無(wú)法保證Googlebot會(huì)正確呈現(xiàn)網(wǎng)頁(yè),如果確實(shí)如此,它仍然可能會(huì)將網(wǎng)頁(yè)排名低于競(jìng)爭(zhēng)網(wǎng)站中的靜態(tài)HTML網(wǎng)頁(yè)。