Silverlight的搜索引擎優化
什么是SEO,為什么它是如此重要?
SEO(搜索引擎優化)是改善交通的數量和質量,從搜索引擎網站的過程。 這意味著,做搜索引擎優化您的網站將使其更具可轉位及更多的人參觀。 下面是你的規則應該堅持以做最好的搜索引擎優化幾點:
- <title>標簽應包含有關您網站的最重要的信息
- 最重要的內容應留在本頁面(開始后<body>標記)
- 所有圖像標記號(<img />)應界定上的Alt標簽-這是搜索引擎理解什么是圖像的唯一途徑說'
簡短的開場白,RIA的世界
如今,網絡空間是完全不同的網站。 老式的HTML是慢慢地被替換為新的富互聯網應用(RIA)。 但他們為什么這么受歡迎? RIA技術的激情,它往往是改革的靜態HTML網站,以使它們看起來更像是桌面應用程序。
為什么Silverlight的?
Flash和AJAX做幾乎一樣的Silverlight做同樣的事情。 但是,Silverlight應用程序的創建與我們最喜愛的語言C#。 你可以使用任何其他語言,是用。NET框架兼容,太。 隨著XAML的力量,我們可以創造偉大的設計方案。
我需要做搜索引擎優化我的Silverlight應用程序?
這是一個沒有明確答案的問題。 如果您的網站是一個Silverlight應用程序,你需要搜索引擎索引,你一定要一個想辦法如何做搜索引擎優化。 我強烈建議不要制造整個網站使用Silverlight。 我喜歡用動畫,只在一個不尋常的方式顯示數據(它的圖表,圖形等)。 如果你需要一個特殊的Silverlight應用程序,它執行的東西,你就不會需要做在大多數情況下,搜索引擎優化。 不要忘記,Silverlight是在瀏覽器中運行,所以一切都將在本地。
什么是搜索引擎優化與RIAs和問題?
豐富的互聯網應用都是偉大的事情,但是他們的工作動態。 這句話是什么意思? 這意味著,當你加載頁面,你沒有看到,除了靜態的文字,而是一個AJAX的,這與HTML工程中的應用()。 你可以使用同樣的方法你的應用與桌面同一作品。 但是不管你做什么,當你重新加載的初始文本將被顯示網頁。 這個想法是你脫機工作。 你做的一切去當地,在您的計算機只。
互聯網用戶可以看到這些應用程序,但搜索引擎將不會看到他們,因為他們不能閱讀。 因此,這是主要的問題在您的網站時,使用區域一體化安排:如何顯示搜索機器人什么是在你的Silverlight應用程序。 在這篇文章中我將告訴你這個問題的一些解決方案。 他們中沒有一個是完美的,但你可以看到你可以“打開搜索機器人的眼睛”。
靜態文本應用在你的Silverlight
第一招是顯示在你的Silverlight應用程序的靜態文本。 這是如何實現? 下面是一個例子顯示。
<asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager>
<div id="SLHost" style="display: none;">
<asp:Xml runat="server" DocumentSource=”Page.xaml” TransformSource="XAML2XHTML.xslt" />
</div>
<asp:Silverlight ID="Xaml1" runat="server" Source="~/ClientBin/ArticleSEO2.xap" MinimumVersion="2.0.30923.0"
Width="400" Height="100" />
</form>
下面的代碼有兩個層次: SilverlightApplication (這是可見的)和 SilverlightContent<(這是看不見的)。 正常的互聯網用戶將看到一個明顯的,因此,他將看到Silverlight應用程序。 每一個瀏覽器,它支持的圖形,可以閱讀的CSS也。 因此,用戶將看不到無形層。 那么搜索機器人嗎? 正如我前面提到的,它無法理解JavaScript,CSS和Silverlight內容。 這就是為什么機器人不會“看到”的Silverlight應用程序,但它會“看到”無形層。 因此這將是一層無形的閱讀能力的內容內。 (備注:我用 有形 和無形的 ,他們為每個層的兩個在正常范圍內的互聯網用戶誰可以或內容可以不看。)
你可以看到,你可以把不同的應用包含這樣的內容里面隱藏層,以描述你的Silverlight。 這一招很簡單,當談到搜索引擎優化您的網站時,你打算使用Silverlight應用程序。 你可以看到在線演示 這里。
使用XSLT從XAML中提取文本
一個XAML文件是一個普通的XML文件。 你可以從文本中提取的XAML文件使用 XSLT轉換。 這一招幾乎是一前一樣。 它只是可以更容易地獲取文本。 在前面的例子中,你可以從數據庫的源文本或其他。 在這一次,它從你的XAML文件。
<div>
<xsl:value-of select="@Text"/>
<xsl:value-of select="text()"/>
<xsl:apply-templates select="*"/>
</div>
</xsl:template>
<xsl:template match="Run">
<span>
<xsl:value-of select="@Text"/>
<xsl:value-of select="text()"/>
</span>
</xsl:template>
服務器控件<asp:Xml>讓你轉換一個XML文件使用XSL樣式表。 這是一個非常簡單的方法來提取的Silverlight應用程序的文本。 當然,如果您的應用程序由許多的XAML文件將更加難以得到從每個文件的全部文本。
XslCompiledTransform d = new XslCompiledTransform();
d.Load("stylesheet.xsl");
using (StringWriter myWriter = new StringWriter(sb))
{
d.Transform("input.xml", null, myWriter);
}
可以通過下面的代碼轉換,也。 您可以使用 XslCompiledTransform 類來實現這一目標。
XslCompiledTransform d = new XslCompiledTransform();
d.Load("stylesheet.xsl");
using (StringWriter myWriter = new StringWriter(sb))
{
d.Transform("input.xml", null, myWriter);
}
隱藏資料核實不收錄谷歌
我最近看到 一篇文章 聲稱,谷歌機器人不索引隱藏的資料核實。 這是因為垃圾郵件發送者-他們利用這些隱藏的內容。 當然也有一些變通辦法。 您可以使用JavaScript來隱藏層,還是移動外部文件的CSS在。
另一個解決辦法是使用Silverlight.js的。 它提供了一種方法,以顯示在使用JavaScript動態頁面一個Silverlight應用程序。 這是非常方便,因為你沒有隱藏層,但你顯示在它上面的Silverlight應用程序。 在這樣的內容將根據您的申請。
您的網站是一個Silverlight應用程序
例如,您已經創建一個Silverlight的應用程序,它有幾頁,以顯示您的內容。 這不是一個好主意,讓每個網頁的整個文本和顯示它(在一個隱藏的分區頁)上的索引。 你更希望得到的查詢字符串從當前頁面。 然后你得到相應的文字到這個網頁。 你還應該包括這些網頁之間的聯系,以便在搜索機器人將能夠穿越它們。 您的應用程序也應該看看查詢字符串,以確定哪些頁面顯示。 這樣,當你在地址欄中鍵入 http://mysite.com/index.aspx?page=about,您的Silverlight應用程序就會知道哪些頁面,顯示和應用的文字背后,將由該網頁。
SilverlightSEO.com
SilverlightSEO.com是一個小項目,由約翰曼迪亞創建。 他用第二種方法,以試圖讓他的網頁的搜索引擎索引。 這里是他的工作結果:
搜索字詞 | 谷歌 | 雅虎 | 活 |
Silverlight的搜索引擎優化 | 2號出408,000 | 第十二沒有3210000 | 尚未編制索引 |
Silverlight的搜索引擎優化 | 沒有95,000 11個 | 沒有出46 482 000(不如) | 尚未編制索引 |
Silverlight的搜索引擎優化 | 沒有782,000 42 | 沒有481000 14 | 尚未編制索引 |
Silverlight的搜索引擎 | 沒有了65 215 000 | 沒有855,000 43 | 但尚未編入索引 |
這個初始頁是一個測試,看看是否可以不Silverlight的搜索引擎索引的問題。 他是用貨柜的內容(允許被打印的內容和索引),是簡單地使用Silverlight呈現的內容(類似CSS)的網頁。 沒有任何隱藏的文本(HTML是什么顯示),這給人的輕松增加非Silverlight支持通過CSS樣式(選項)。 他的試驗結果進行了展望。 索引頁包含靜態文本(從他的Silverlight應用程序的文本),這樣的搜索機器人會讀它沒有任何問題。
結論
我認為沒有最好的方式,當談到RIAs和搜索引擎優化。 如果你想搜索引擎優化-只使用靜態內容。 不要把你的Silverlight應用程序中的重要數據。 使用主要用于動畫和數據可視化,并給所包圍的靜態HTML標記文本一切。 此外,搜索引擎不只是看文字,但他們得到的HTML標記和它們之間的關系。