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