2007年11月24日

如何給Flash網站做搜索引擎優化(SEO)?

Flash在網站設計中經常被斥責,因為它對搜索引擎不友好,我認為這是不應該的。為什麼搜索引擎優化師們都很關注Flash,我們又將如何給Flash做搜索引擎優化呢?Flash存在的最大問題就在於搜索引擎不能解讀它,或許在將來也不可能。Flash包含邏輯,用戶可以觀看並解讀但是搜索引擎只能解讀靜態內容。Flash實際上是一個動態程序,所以比普通的靜態HTML代碼更難解讀。

作為網站開發工具的領頭羊的Adobe Dreamweaver可以把Flash嵌入到網頁中。但是它使用的代碼讓不能掌握Flash的瀏覽者和搜索引擎無法獲得。對此我的建議是不要使用缺省的代碼,而是在Flash頁面中使用原先的HTML內容和一種在插入Flash影片之前可以自動測試是否支持Flash的方法。因為Flash為裝有Flash播放器的用戶來提供了深刻的娛樂體驗,所以我們完全可以對帶有Flash的頁面內容進行搜索引擎優化,此時我們可以將Flash忽略。

2006年4月11日,微軟流行的新版IE瀏覽器「誕生」了,這個瀏覽器包含一個更新軟件"Eolas",這個"Eolas"致使基於ActiveX上的Flash不能正常運行。如果用戶試圖使用Flash,就會彈出一個工具提示:「點擊激活並使用這個調節裝置。」這是很令人心煩的事情。不幸的是,在此文章中闡述的程序技術可以解決這個Flash Eolas問題。

成功使用Flash的要求:
Flash動畫是避免冗繁內容的很好的方法,因為使用Flash動畫,Flash製作者可以將更多的內容放在有限的空間裡,可以不必頁面設計而頭疼了。對有關技術網站來說,Flash是向顧客用幻燈片或電影展示複雜產品的很理想的方法。另一方面,藝術和娛樂網站是真正需要多媒體的,而使用Flash是最理想的解決方法。

使用Flash的時候,我們希望這些方面我們都能夠做到。

設計整潔
搜索引擎優化
使用各種各樣的瀏覽器,包括屏幕閱讀機,手機。
代碼確認,規範標準
IE功能正確
SEO Flash程序

我推薦的Flash SEO的方法就是採用DIV。這個DIV是搜索引擎可以讀懂的,擁有基本內容和一個可以用來檢測瀏覽器什麼時候能夠觀看Flash 的SWFObject()功能。如果有合適版本的Flash播放器存在,Javascript就會利用頁面的DOM用Flash影片來代替原來的內容。大多數的搜索引擎蜘蛛不能掌控Flash,所以他們選擇查看原先的內容。原先的內容可能包含鏈接,標題,格式文字,圖片等等一切我們可以加在原先HTML頁面裡的東西。在原先內容中使用SEO文字編輯和代碼技術後,Flash將不再是問題。

只要原先內容和可視影片在本質上是相同的,那麼Flash可及性程序就不是胡說八道。萬維網聯盟網站可及性組織特別聲明多媒體內容應該有一個可替換版本。可及性程序具有顯示可視性信息而不失掉瀏覽者和主要依靠文本內容的搜索引擎的優點。

2007年7月,我與Google的Dan Crow討論了這個方法。他警示說在用這個方法的時候要保證替換內容忠於Flash內容,避免將這個與其他被濫用的代碼方法混淆。但是這個SEO策略沒有遭到謾罵,它是進步的,因為它被搜索引擎誤認為是隱形文本作弊方式的幾率很低。

SWF Object和UFO
請瀏覽一下Geoff Sterns的博客和deconcept。這裡有SWF Object()和下載SWF Object()需要文件的充分完整的解釋。另一個公開資源解決辦法就是使用UFO,這個可以從Bobby van der Sluis上獲得。這兩個在理論上是相同的。

例子:如何使Flash Home Page和Flash菜單被搜索引擎的「蜘蛛」抓取到?
下面展示的示例代碼是Marc Abrahms Photography中Flash標題和菜單代碼的一部分。這個網站的內頁已經被搜索引擎收錄,因為他們可以在主要內容中找到鏈接。










prints |
posters |
books |
my account








Flash可及性程序不能將一個網站神奇地升至搜索引擎排名前面,但是這個Flash SEO方法可以排除由於使用Flash帶來的排名難題。
例子:使搜索引擎看到Flash幻燈片顯示內容。
第二個例子是來源於Virtutech網站的。它顯示了如何在既定空間插入相當長的內容。我們使用DIV,將它的CSS屬性設為"overflow:auto",這樣來創建一個滾動文本區域。這樣可以防止替換內容顯示時頁面佈局被破壞。要看替換內容,使用喪失Javascript的瀏覽器載入Virtutech的首頁。




Simics is
used to develop the embedded
software that runs electronic devices such as:



Aerospace hardware

Automobile control systems

Telecommunications infrastructure

High-end servers



Hardware: Satellite Control
System



Challenge: Unable to test software with satellites
on orbit. How
to verify new software?



Resolution: Using Simics, the developers
can run software
quality tests on the ground, to ensure that the software works correctly
before it's installed.



Industry: Automotive


Hardware: Electronic Control
Unit



Challenge: Need to develop software now, but
the ECU won't
be available for months



Resolution: Simics enables programmers to
develop and test
the software before the hardware is available, reducing time to market.



Industry: Telecommunications


Hardware: Wireless Network Equipment



Challenge: You have twenty programmers. Each
needs a complete
system for testing. They cost MILLIONS.



Resolution: Using Simics to create a model
of the target hardware,
each programmer can have his or her own virtual device for software testing
and debugging, without breaking your budget.



Industry: Internet


Hardware: Network servers



Challenge: Software bugs keep popping up.
Some take weeks to
reproduce and fix. You are running out of time.



Resolution: With Simics, programmers can
run the program forwards
and backwards to quickly identify, recreate and repair bugs.






The CSS code:
#movieAlt {
height: 287px;
width: 497px;
overflow: auto; /*Scroll bar on HTML content div*/
}
#movieAltInner { /*For IE's faulty box model*/
padding: 10px 20px;
}
除了這些網站外,我們在其他流量很高的網站上也使用這種Flash SEO方法。這種發放被屢屢用效果良好。使用這種方法後有些只有在Flash內容中找到的關鍵字的網站也獲得了很好的排名。

全部使用Flash的網站
全部使用Flash建設的網站有個很大的缺點就是它缺乏組織內容,內部鏈接和唯一網頁標題的頁面組織結構。一個解決辦法就是創建純HTML頁面來顯示每個Flash頁面,並且在每個HTML頁面裡面加入Flash影片。如果瀏覽者訪問這個頁面,如果可以的話他們會看到Flash的,否則一個非Flash瀏覽者,例如搜索引擎就能夠「爬行」到這個網站上來。另一個解決方法就是將Flash分為片段,然後將相應片段放到每個頁面上。

如果把Flash弄成片段的話會妨礙Flash播放流暢的效果。要在這兩方面都達到理想的效果就在使用FlashVars的Flash影片中放入一個參數。在每個HTML頁面都會有同樣的影片,但是根據參數值的不同,根據頁面的需要可以在任意一個合適的地方開始播放Flash內容。要避免所有的多餘頁面但仍然可以使用Flash片段的不同部分,我們可以在每個URL後面中添加a #和一個標籤,然後把標籤放入Flash中。這種方法可以讓前進和返回按鈕很好地運行,也可以讓人們可以將Flash中特殊的部分加入到標籤頁中。

用PHP腳本從一個MySQL數據庫中將基本的HTML和Flash內容拖出來也是可以的。這種方法可以很大程度上簡化一個Flash網站的維護,因為只用儲存內容的一個代表就可以了。