JS腳本與SEO優(yōu)化
- 威海seo專題 威海JS腳本與seo
- 1542
讀者lin在問答板塊問了一個(gè)純技術(shù)問題,關(guān)于網(wǎng)站JavaScript的使用和SEO注意事項(xiàng)。JS的SEO是近年越來越重要的問題,以前還沒寫過這方面的話題。無論是異步調(diào)用內(nèi)容,還是增加頁(yè)面互動(dòng),現(xiàn)在的網(wǎng)站幾乎無法避免使用JS腳本。但JavaScript使用不當(dāng)?shù)脑捒赡軙?huì)對(duì)SEO造成非常大的影響。
lin的問題是:
一個(gè)網(wǎng)站,源碼都封裝在js里面,直接調(diào)用js來展示,這可咋搞
這是比較極端的情況,最后再回答。先說一下一般情況下,頁(yè)面使用JS時(shí)要考慮的SEO問題。
搜索引擎怎樣處理JS
首先,簡(jiǎn)單一句話,JS造成SEO問題的癥結(jié)在于,搜索引擎不一定執(zhí)行JS腳本。
做SEO的都知道,要有搜索流量,搜索引擎蜘蛛需要順利爬行鏈接,抓取頁(yè)面,解析并索引頁(yè)面html代碼中的內(nèi)容,然后才談得上排名和流量。在爬行、抓取、索引的過程中,如果JS造成障礙,就會(huì)導(dǎo)致問題。
瀏覽器執(zhí)行JS、渲染頁(yè)面是肯定的,使用用戶訪問一切正常。但問題就在于,搜索引擎蜘蛛抓取頁(yè)面html代碼時(shí),如果遇到JS,不一定會(huì)去執(zhí)行JS腳本,那么需要執(zhí)行JS才能看到的內(nèi)容,搜索引擎就不一定看得到。
Google遇到頁(yè)面JS時(shí),會(huì)在有計(jì)算資源、且頁(yè)面有比較高價(jià)值時(shí),嘗試執(zhí)行腳本、渲染頁(yè)面。百度則基本上不執(zhí)行JS腳本。所以做中文網(wǎng)站,使用JS上就更要謹(jǐn)慎。
重要鏈接不要用JS
搜索引擎爬行、抓取頁(yè)面是靠跟蹤鏈接的。如果重要鏈接需要運(yùn)行JS腳本才能調(diào)用或解析出來,那搜索引擎就可能無法跟蹤。
不是說鏈接就不能用JS調(diào)用,但重要的、想被收錄的頁(yè)面至少還要有最普通的<a>格式鏈接提供抓取入口。比如,調(diào)用一些相關(guān)文章、相關(guān)產(chǎn)品鏈接,可以用JS,但這些鏈接在網(wǎng)站主導(dǎo)航中都已經(jīng)有列表頁(yè)面提供了入口才行。
主導(dǎo)航、菜單系統(tǒng)、欄目/產(chǎn)品列表,不要用JS,除非你確認(rèn)有其它方法提供了入口。
想被收錄的內(nèi)容不要用JS調(diào)用
頁(yè)面上的文字內(nèi)容,凡是想被收錄的,不要用JS調(diào)用,包括文章正文,產(chǎn)品說明,產(chǎn)品圖片,評(píng)論等。
JS倒是可以用來調(diào)用那些不想被收錄的文字,比如廣告、某些側(cè)欄內(nèi)容等。
我見過用JS調(diào)用內(nèi)容的各種千奇百怪的用法,比如還有用JS調(diào)用頁(yè)面標(biāo)題標(biāo)簽的。
慎用懶加載、瀑布流
圖片懶加載,甚至文字內(nèi)容懶加載,是現(xiàn)在網(wǎng)站經(jīng)常使用的方法,在一定程度上有利于提高頁(yè)面速度。但要注意,用JS實(shí)現(xiàn)懶加載時(shí),是否需要用戶互動(dòng)才能加載,比如點(diǎn)擊“更多”鏈接,或者向下拉頁(yè)面,搜索引擎蜘蛛是不會(huì)做這些動(dòng)作的,不會(huì)點(diǎn)擊按鈕,也不會(huì)下拉頁(yè)面,所以就可能看不到懶加載后的內(nèi)容。無論懶加載的是更多本頁(yè)內(nèi)容,還是更多其它頁(yè)面列表,都可能造成爬行、索引問題。
列表頁(yè)面使用瀑布流是社交媒體網(wǎng)站的主流方式,用戶已經(jīng)習(xí)慣,有的普通網(wǎng)站也學(xué)這種方式。同樣,要考慮到社交媒體網(wǎng)站經(jīng)常是主動(dòng)屏蔽搜索引擎的,不想讓搜索引擎索引,普通網(wǎng)站大概率是想被索引的,使用瀑布流時(shí)要想一想有沒有提供搜索引擎可以跟蹤鏈接的其它入口。
注意速度
一般來說,使用JS會(huì)拖慢頁(yè)面打開和響應(yīng)速度。
通常下載JS文件倒還不算大問題,除非用了幾MB的JS文件。但瀏覽器執(zhí)行JS有可能會(huì)很耗費(fèi)設(shè)備資源,設(shè)計(jì)不周的JS可能會(huì)執(zhí)行好幾秒鐘,瀏覽器在執(zhí)行JS時(shí)不能處理其它事情,造成腳本阻塞,對(duì)用戶來說就是個(gè)頁(yè)面空白或卡死數(shù)秒鐘的狀態(tài),這是非常急人的。
所以,盡量刪除執(zhí)行時(shí)間過長(zhǎng)的JS,執(zhí)行超過1-2秒的腳本需要慎重考慮。盡量合并JS腳本,減少<script>數(shù)量。
盡量減少JS數(shù)量,包括第三方JS。我看過很多網(wǎng)站頁(yè)面需要執(zhí)行幾十個(gè)JS腳本,包括很多第三方腳本。問一下自己,這些JS都是必須的嗎?真的必須嗎?寧可拖慢頁(yè)面幾秒鐘、跳出率大幅提高也要用?對(duì)信息類頁(yè)面,除了顯示文章內(nèi)容,其它都不是必須的。對(duì)電商網(wǎng)站,除了購(gòu)物車,其它都不是必須的。
除了用戶體驗(yàn),頁(yè)面速度也是搜索排名的重要因素。
服務(wù)器端渲染
如果可能的話,可以考慮JS在服務(wù)器端渲染,而不是客戶端(瀏覽器)渲染。雖然這會(huì)增加技術(shù)難度,服務(wù)器響應(yīng)也會(huì)變慢一點(diǎn),但服務(wù)器性能一定是超過用戶設(shè)備的,再加上緩存等方法,總體上是會(huì)比瀏覽器執(zhí)行JS、渲染頁(yè)面快很多的。
怎樣檢查JS是否造成SEO問題
幾個(gè)小方法供讀者參考。
一是瀏覽器禁用JS,看一下訪問頁(yè)面時(shí)是什么情況。如果禁用JS后重要內(nèi)容看不到了,那么搜索引擎也可能看不到。不要寄希望于搜索引擎會(huì)青睞你的網(wǎng)站而去執(zhí)行JS。
第二個(gè)是檢查頁(yè)面的快照,尤其是純文字版的快照。搜索引擎快照在很多情況下就是搜索引擎索引的頁(yè)面內(nèi)容。
如果某些內(nèi)容必須用JS調(diào)用,但又希望搜索引擎索引,還可以搜索一下被調(diào)用的內(nèi)容,如果能搜索到,說明搜索引擎執(zhí)行了JS,索引到了內(nèi)容。我想不到為什么必須用JS調(diào)用,但很多技術(shù)人員對(duì)使用JS是比較執(zhí)著的。
最后回到lin的問題,如果頁(yè)面源碼都封裝在js里面,直接調(diào)用js來展示,這樣的網(wǎng)站沒辦法做SEO,說服老板和技術(shù)改程序吧。
來源:SEO每天一貼 Zac 昝輝