使用javascript (或jQuery)對SEO影響的迷思
| 2009/10/19 | 8 則迴響
最近遇到想做SEO的客戶,因為該客戶現有的網站選單,主要以Flash製作,觀看網站的原始碼就很容易了解spider應該很難分析全站的架構。不過因為該站經營三、四年了,除了要修改選單為適合SEO的方式,我想最好也要保持選單與視覺設計的一致性,除了不要破壞視覺識別,也希望讓操作性的影響降到最低。
很直覺的,我使用jQuery設計了一組選單,在色系與動畫的呈現上幾乎與原先的Flash選單有90%的相似度,當然原始碼呈現出來的是完整的選單結構,也使用了標準的HTML。
客戶一開始被CSS的把戲搞混了,宣稱這些選單使用的是圖片,後來經過一番解釋才說服他 (我請他另存圖檔下來寄給我,但這當然辦不到,因為那是用CSS做的效果。)後來,客戶也許出於擔心又問了:這樣符合SEO的原則嗎?
我想說的是,相較於原本 Flash選單的設計,當然更有利於SEO。因為選單從無法分析的swf檔,成了網頁文件的一部份(DOM),以<ul>和<li>構成階層關係及連結,讓spider更容易分析整個網站的架構。只是為了要呈現動畫效果,我們還必須增加<script>標籤,寫一些javascript。
的確,對SEO有概念的人都知道,spider不會剖析javascript的內容。遇到script標籤,spider會停工直到遇見script的結尾標籤,spider很忙很忙的,它根本不想看這麼一堆跟網站架構無關的code。因為這種特性,出現了「如何擺放script標籤」的說詞,有人宣稱放在head,先讓spider看到的話,它會比較不愛這個頁面,也會對script接下來真正的網頁資訊感到興趣缺缺,所以可以將script放在body。
將script放在body一樣是可以運作的,但這種說法是不可信的,因為spider會先取得整個page的資訊,才開始進行分析,之所以專家建議將script放在head,是一種類似coding standard的習慣,讓code整齊乾淨兼易讀。
所以,如果有一大串javascript需要匯入使用,像是使用jQuery這種函式庫,該怎麼維持SEO呢?通常我們要用內容較多的js檔時,會將它設為外部檔案再行匯入,jQuery也不例外,使用語法如下:
[js]
<script type=’text/javascript’ src=’外部JS檔.js’></script>
[/js]
如果網頁的內容與架構不是儲存在外部的.js檔內,那您大可放心,spider會看的是接下來的網頁內容,它不會理會script標籤。但是呢,因為spider真的很忙很忙,如果要它對你的網站印象好一點,不妨撰寫robots.txt放在網站的根目錄,指出這個外部js檔不需spider分析了,幫助它減輕工作負擔,我想對SEO也是有莫大的幫助。
標籤:javascript, jQuery, SEO, 網路行銷
分類:JavaScript技巧, 網站設計, 網路行銷
本文作者是Audi Lu
8 則留言
哈哈,學到啦!
您好,其實我有點看不到懂。您的意思是,Jquery 可以改善 Spider 對 javascript
Albert您好,
這篇文章的原文的確寫得不是很清楚,因此又稍稍增加了一些內容來輔助說明。我主要想表達的是,使用 javascript/jQuery 搭配HTML DOM的互動操作,比起Flash是更利於SEO的,但其中在使用script標籤時有些爭議,那麼在安排script標籤的內容及位置上,我想討論是否有個最利於SEO的方式。
如果用jquery调用外部html,会对seo有影响吧?怎么让爬虫能爬到这个外部调用的html内容呢?
您好,我想您所謂調用外部html,應該是指使用ajax的方式吧?我個人覺得是有影響的,而要讓spider可以爬進去,我覺得比較好的作法是在調用外部html後去改變URL的內容,並且讓這段URL的連結也有顯示在頁面上的機會。相關技術可見html5的history api。
谢谢。好高级。能解释一下这个站的技术吗www.zoo.ad。点击每个按钮的时候页面貌似没有刷新,但url地址栏里的链接改变了
Hi, 這使用的也是類似History API的效果,它用的是 http://www.unfocus.com/projects/historykeeper/ 這個插件,一樣是在作ajax調用時,去更新History State,讓網址改變。
wow!高手!谢谢你!以后有问题就像你请教。你是台湾的吧,我是大陆的。哈哈哈哈哈哈