Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537
網絡中每個網站是一個孤島,日常生活中通過搜索引擎的作用把他們串聯起來形成一個完整的網絡系統,每個網站又是由很多的網絡單頁匯總而成。網站單頁是網站的根基,今天聊聊網站單頁的優化細節。
一、標簽使用
h標簽:每個頁面只能有一個h1標簽
b標簽:字體加粗,有人用strong標簽(常見于文章小標題)
I標簽:字體斜體
alt標簽:圖片處理方式
二、正文優化
1、詞頻、密度
詞頻指的是關鍵詞出現的次數;
密度:關鍵詞出現次數/頁面可見文字總數 3%~8%;
分布:均勻分布,不要堆砌以及集中;
2、前50~100漢字
正文前50~100個詞出現的關鍵詞權重比較高,一般要求第一句話盡量出現一次關鍵詞,前50~100個字的錨文本鏈接權重也最高;
3、關鍵詞變化形式
同義詞、近義詞、同一件事物不同稱呼等;
樣例:電腦和計算機是同義詞;
減肥和瘦身是近義詞;
主機、服務器、網站空間是一回事;
4、關鍵詞臨近度
例如:目標關鍵詞是“seo操作方法” seo和操作方法盡量是零距離(完全匹配);
5、詞組的拆分出現
完整匹配效果雖然最佳,但是頻次和密度太高會導致關鍵詞堆砌,被拆分開分布在正文中單獨出現也會給權重;
6、語義分析
蘋果:圓圓的,有汁,水果
語義分析模擬人為思考來判斷語義相關;
例如:蘋果、橘子、菠蘿經常同時出現在一個文檔中,搜索引擎會判斷他們為一類詞;
例如:“蘋果”和“手機”也屬于語義相關詞;
場景1:可能你在搜索引擎搜索“飯館”的時候會出現好多餐廳的排名,甚至沒有飯館這個詞,這就是語義算法在起作用;
場景2:你在搜索易建聯的時候,推薦內容可能是中國運動員,籃球運動員,近期易建聯參與的體育賽事;
7、分類頁面說明文字
頻道和分類頁面優化,由于全部是調取內容,導致頁面優化難度大,頁面可以用手動撰寫說明文字來彌補;
8、排版及用戶體驗
(1)排版合理、清晰、美觀、字體、顏色、背景燈易于閱讀;
(2)實質內容處于頁面最重要位置,用戶一眼就能看到;
(3)實質內容與廣告能夠清晰區分;
(4)第一屏就有實質內容,而不是需要下拉頁面才能看到;
(5)廣告數量不宜過多,位置不應該妨礙用戶閱讀;
(6)如果圖片、視頻有利于用戶理解頁面內容,盡量制作圖片、視頻;
(7)避免過多彈窗;
三、代碼優化
1、css:使用css定義文字字體、顏色、尺寸、頁面排版,不要css和stype、font同時使用,造成代碼冗余;
2、使用外部文件:將css、javascript放在外部文件中,頁面只需放一句調用代碼就可以了;
3、減少注釋;
4、減少表格;
文件大小最好限制在100k以下,頁面鏈接數100以下;
四、鏈接處理
1、導入鏈接
百度通過導入頁面內容相關性,鏈接錨文字來判斷頁面主題;
2、導出鏈接
有的人認為沒有導出鏈接最好,頁面導出到權威頁面對網站權重也是一個加分項;
五、其他
1、頁面更新
頁面的更新也能提高排名或者至少能幫助保持排名;
頁面更新頻率也是吸引搜索引擎蜘蛛返回抓取的因素之一;
2、社會化分享
百度口碑:百度口碑評論對排名有一定影響;
百度分享:既為百度提交數據,又方便用戶分享何樂而不為;
樂于分享,每日分享,這里有產品、運營最新的干貨原創文章,轉載請注明,閱讀求關注!贈人玫瑰,手留余香。
在從事web相關工作的小伙伴們你們是否知道什么是單頁面應用,是否知道該如何構建單頁面web應用?下面就來和我一起來看一看吧!
首先我們來看一看單頁應用是什么?
所謂單頁應用,指的是在一個頁面上集成多種功能,甚至整個系統就只有一個頁面,所有的業務功能都是它的子模塊,通過特定的方式掛接到主界面上。它是AJAX技術的進一步升華,把AJAX的無刷新機制發揮到極致,因此能造就與桌面程序媲美的流暢用戶體驗。
其實單頁應用我們并不陌生,很多人寫過ExtJS的項目,用它實現的系統,很天然的就已經是單頁的了,也有人用jQuery或者其他框架實現過類似的東西。用各種JS框架,甚至不用框架,都是可以實現單頁應用的,它只是一種理念。有些框架適用于開發這種系統,如果使用它們,可以得到很多便利。
一、開發框架
ExtJS可以稱為第一代單頁應用框架的典型,它封裝了各種UI組件,用戶主要使用JavaScript來完成整個前端部分,甚至包括布局。隨著功能逐漸增加,ExtJS的體積也逐漸增大,即使用于內部系統的開發,有時候也顯得笨重了,更不用說開發以上這類運行在互聯網上的系統。
jQuery由于偏重DOM操作,它的插件體系又比較松散,所以比ExtJS這個體系更適合開發在公網運行的單頁系統,整個解決方案會相對比較輕量、靈活。
但由于jQuery主要面向上層操作,它對代碼的組織是缺乏約束的。如何在代碼急劇膨脹的情況下控制每個模塊的內聚性,并且適當在模塊之間產生數據傳遞與共享,就成為了一種有挑戰的事情。
為了解決單頁應用規模增大時候的代碼邏輯問題,出現了不少MV*框架,他們的基本思路都是在JS層創建模塊分層和通信機制。有的是MVC,有的是MVP,有的是MVVM,而且,它們幾乎都在這些模式上產生了變異,以適應前端開發的特點。
這類框架包括Backbone、Knockout、AngularJS、Avalon等。
二、組件化
這些在前端做分層的框架推動了代碼的組件化,所謂組件化,在傳統的Web產品中,更多的指UI組件,但其實組件是一個廣泛概念,傳統Web產品中UI組件占比高的原因是它的厚度不足,隨著客戶端代碼比例的增加,相當一部分的業務邏輯也前端化,由此催生了很多非界面型組件的出現。
分層帶來的一個優勢是,每層的職責更專一了,由此,可以對其作單元測試的覆蓋,以保證其質量。傳統UI層測試最頭疼的問題是UI層和邏輯混雜在一起,比如往往會在遠程請求的回調中更改DOM,當引入分層之后,這些東西都可以分別被測試,然后再通過場景測試來保證整體流程。
三、代碼隔離
與開發傳統頁面型網站相比,實現單頁應用的過程中,有一些比較值得特別關注的點。
從單頁應用的特點來看,它比頁面型網站更加依賴于JavaScript,而由于頁面的單頁化,各種子功能的JavaScript代碼聚集到了同一個作用域,所以代碼的隔離、模塊化變得很重要。
在單頁應用中,頁面模板的使用是很普遍的。很多框架內置了特定的模板,也有的框架需要引入第三方的模板。這種模板是界面片段,我們可以把它們類比成JavaScript模塊,它們是另一種類型的組件。
模板也一樣有隔離的需要。不隔離模板,會造成什么問題呢?模板間的沖突主要存在于id屬性上,如果一個模板中包含固定的id,當它被批量渲染的時候,會造成同一個頁面的作用域中出現多個相同id的元素,產生不可預測的后果。因此,我們需要在模板中避免使用id,如果有對DOM的訪問需求,應當通過其他選擇器來完成。如果一個單頁應用的組件化程度非常高,很可能整個應用中都沒有元素id的使用。
四、代碼合并與加載策略
人們對于單頁系統的加載時間容忍度與Web頁面不同,如果說他們愿意為購物頁面的加載等待3秒,有可能會愿意為單頁應用的首次加載等待5-10秒,但在此之后,各種功能的使用應當都比較流暢,所有子功能頁面盡量要在1-2秒時間內切換成功,否則他們就會感覺這個系統很慢。
從這些特點來看,我們可以把更多的公共功能放到首次加載,以減小每次加載的載入量,有一些站點甚至把所有的界面和邏輯全部放到首頁加載,每次業務界面切換的時候,只產生數據請求,因此它的響應是非常迅速的,比如青云的控制臺就是這么做的。
通常在單頁應用中,無需像網站型產品一樣,為了防止文件加載阻塞渲染,把js放到html后面加載,因為它的界面基本都是動態生成的。
當切換功能的時候,除了產生數據請求,還需要渲染界面,這個新渲染的界面部件一般是界面模板,它從哪里來呢?來源無非是兩種,一種是即時請求,像請求數據那樣通過AJAX獲取過來,另一種是內置于主界面的某些位置,比如script標簽或者不可見的textarea中,后者在切換功能的時候速度有優勢,但是加重了主頁面的負擔。
在傳統的頁面型網站中,頁面之間是互相隔離的,因此,如果在頁面間存在可復用的代碼,一般是提取成單獨的文件,并且可能會需要按照每個頁面的需求去進行合并。
單頁應用中,如果總的代碼量不大,可以整體打包一次在首頁載入,如果大到一定規模,再作運行時加載,加載的粒度可以搞得比較大,不同的塊之間沒有重復部分。
五、路由與狀態的管理
我們最開始看到的幾個在線應用,有的是對路由作了管理的,有的沒有。
管理路由的目的是什么呢?是為了能減少用戶的導航成本。比如說我們有一個功能,經歷過多次導航菜單的點擊,才呈現出來。
如果用戶想要把這個功能地址分享給別人,他怎么才能做到呢?
傳統的頁面型產品是不存在這個問題的,因為它就是以頁面為單位的,也有的時候,服務端路由處理了這一切。
但是在單頁應用中,這成為了問題,因為我們只有一個頁面,界面上的各種功能區塊是動態生成的。所以我們要通過對路由的管理,來實現這樣的功能。
具體的做法就是把產品功能劃分為若干狀態,每個狀態映射到相應的路由,然后通過pushState這樣的機制,動態解析路由,使之與功能界面匹配。
有了路由之后,我們的單頁面產品就可以前進后退,就像是在不同頁面之間一樣。
其實在Web產品之外,早就有了管理路由的技術方案,Adobe Flex中,就會把比如TabNavigator,甚至下拉框的選中狀態對應到url上,因為它也是單“頁面”的產品模式,需要面對同樣的問題。
當產品狀態復雜到一定程度的時候,路由又變得很難應用了,因為狀態的管理極其麻煩,比如開始的時候我們演示的c9.io在線IDE,它就沒法把狀態對應到url上。
六、緩存與本地存儲
在單頁應用的運作機制中,緩存是一個很重要的環節。
由于這類系統的前端部分幾乎全是靜態文件,所以它能夠有機會利用瀏覽器的緩存機制,而比如動態加載的界面模板,也完全可以做一些自定義的緩存機制,在非首次的請求中直接取緩存的版本,以加快加載速度。
甚至,也出現了一些方案,在動態加載JavaScript代碼的同時,把它們也緩存起來。比如Addy Osmani的這個basket.js,就利用了HTML5 localStorage作了js和css文件的緩存。
在單頁產品中,業務代碼也常常會需要跟本地存儲打交道,存儲一些臨時數據,可以使用localStorage或者localStorageDB來簡化自己的業務代碼。
七、服務端通信
傳統的Web產品通常使用JSONP或者AJAX這樣的方式與服務端通信,但在單頁Web應用中,有很大一部分采用WebSocket這樣的實時通訊方式。
WebSocket與傳統基于HTTP的通信機制相比,有很大的優勢。它可以讓服務端很便利地使用反向推送,前端只響應確實產生業務數據的事件,減少一遍又一遍無意義的AJAX輪詢。
由于WebSocket只在比較先進的瀏覽器上被支持,有一些庫提供了在不同瀏覽器中的兼容方案,比如socket.io,它在不支持WebSocket的瀏覽器上會降級成使用AJAX或JSONP等方式,對業務代碼完全透明、兼容。
八、內存管理
傳統的Web頁面一般是不需要考慮內存的管理的,因為用戶的停留時間相對少,即使出現內存泄漏,可能很快就被刷新頁面之類的操作沖掉了,但單頁應用是不同的,它的用戶很可能會把它開一整天,因此,我們需要對其中的DOM操作、網絡連接等部分格外小心。
九、樣式的規劃
在單頁應用中,因為頁面的集成度高,所有頁面聚集到同一作用域,樣式的規劃也變得重要了。
樣式規劃主要是幾個方面:
1、基準樣式的分離
這里面主要包括瀏覽器樣式的重設、全局字體的設置、布局的基本約定和響應式支持。
2、組件樣式的劃分
這里面是兩個層面的規劃,首先是各種界面組件及其子元素的樣式,其次是一些修飾樣式。組件樣式應當盡量減少互相依賴,各組件的樣式允許冗余。
3、堆疊次序的管理
傳統Web頁面的特點是元素多,但是層次少,單頁應用會有些不同。
在單頁應用中,需要提前為各種UI組件規劃堆疊次序,也就是z-index,比如說,我們可能會有各種彈出對話框,浮動層,它們可能組合成各種堆疊狀態。新的對話框的z-index需要比舊的高,才能確保蓋在它上面。諸如此類,都需要我們對這些可能的遮蓋作規劃,那么,怎樣去規劃呢?
了解通信知識的人,應當會知道,不同的頻率段被劃分給不同的通信方式使用,在一些國家,領空的使用也是有劃分的,我們也可以用同樣的方式來預先分段,不同類型的組件的z-index落到各自的區間,以避免它們的沖突。
十、單頁應用的產品形態
我們在開始的時候提到,存在著很多新型Web產品,使用單頁應用的方式構建,但實際上,這類產品不僅僅存在于Web上。點開Chrome商店,我們會發現很多離線應用,這些產品都可以算是單頁應用的體現。
除了各種瀏覽器插件,借助node-webkit這樣的外殼平臺,我們可以使用Web技術來構建本地應用,產品的主要部分仍然是我們熟悉的單頁應用。
單頁應用的流行程度正在逐漸增加,大家如果關注了一些初創型互聯網企業,會發現其中很大一部分的產品模式是單頁化的。這種模式能帶給用戶流暢的體驗,在開發階段,對JavaScript技能水平要求較高。
單頁應用開發過程中,前后端是天然分離的,雙方以API為分界。前端作為服務的消費者,后端作為服務的提供者。
在此模式下,前端將會推動后端的服務化。當后端不再承擔模板渲染、輸出頁面這樣工作的情況下,它可以更專注于所提供的API的實現,而在這樣的情況下,Web前端與各種移動終端的地位對等,也逐漸使得后端API不必再為每個端作差異化設計了。
十一、部署模式的改變
在現在這個時代,我們已經可以看到一種產品的出現了,那就是“無后端”的Web應用。這是一種什么東西呢?基于這種理念,你的產品很可能只需要自己編寫靜態Web頁面,在某種BaaS(Backend as a Service)云平臺上定制服務端API和云存儲,集成這個平臺提供的SDK,通過AJAX等方式與之打交道,實現注冊認證、社交、消息推送、實時通信、云存儲等功能。
我們觀察一下這種模式,會發現前后端的部署已經完全分離了,前端代碼完全靜態化,這意味著可以把它們放置到CDN上,訪問將大大地加速,而服務端托管在BaaS云上,開發者也不必去關注一些部署方面的繁瑣細節。
假設你是一名創業者,正在做的是一種實時協同的單頁產品,可以在云平臺上,快速定制后端服務,把絕大部分寶貴的時間花在開發產品本身上。
十二、單頁應用的缺陷
單頁應用最根本的缺陷就是不利于SEO,因為界面的絕大部分都是動態生成的,所以搜索引擎很不容易索引它。
十三、產品單頁化帶來的挑戰
一個產品想要單頁化,首先是它必須適合單頁的形態。其次,在這個過程中,對開發模式會產生一些變更,對開發技能也會有一些要求。
開發者的JavaScript技能必須過關,同時需要對組件化、設計模式有所認識,他所面對的不再是一個簡單的頁面,而是一個運行在瀏覽器環境中的桌面軟件。
構建單頁應用應該是web前端開發人員的必備技能,對于初學者而言也許有些難度,但只要加強練習,掌握這個技能不在話下。如果你在學習web前端過程中遇到了什么難題,加入465042726,關于前端方面的更多問題我們可以一起交流!
頁網站SEO的優勢是什么?單頁網站就是一個由圖片、文字、視頻和代碼組成的純靜態的HTML頁面。單頁網站SEO就是利用SEO技術做單頁的關鍵詞排名。雖然我們常見的網站大都是多頁面網站,但是單頁網站依然是有不少。所以,做好單頁SEO也是很重要的,而相比多頁面的網站,單頁網站SEO的優點有以下這些:
1. 單頁面網站因為只有一個頁面,更容易設計和開發,而且也更容易維護。在做單頁網站優化過程中,相比很多頁面的網站,很多工作量能夠解放出來。
2. 單頁面網站的所有內容、關鍵詞、外鏈等等都是圍繞這個頁面來做,因此單頁面的網站相關相關性更高。
3. 單頁面網站便于推廣,做外鏈建設的時候全都指向這個頁面,利于集中網站權重,而且相比多頁面的網站,權重的提升會很快。
當然,單頁網站SEO優化有利有弊,缺陷就是比較難獲得大量流量、不利于多種關鍵詞優化、內部優化難度和跳出率高等等。因此,有一些優化方法在網頁網站優化過程中是不適用的,那么究竟單頁網站SEO怎樣做才有效果呢?
TDK優化在單頁網站依然是很重要的工作,這里面涉及到了網站的標題、描述、關鍵詞。標題應該簡潔明確,且包含關鍵詞和點名主題;描述在做到詳盡的同時,要突出網站的核心賣點;關鍵詞定位要明確,把握數量,避免關鍵詞堆砌。
因為單頁網站自身的的特點,不能使用貓文本,但是我們能夠使用錨鏈接,在特點的地方留下錨鏈接能方便用戶進入特定的區域。
單頁面網站權重集中可以說是其最大優勢,因此做好外鏈建設對于快速提高網站權重有很多的幫助,但是要注意不要內容單一。
無論是單頁網站還是其他網站,網站內容始終是網站的核心,因此一定要注意自己網站內的內容質量,這樣才能有利于網站優化。
對于單頁網站能用CSS就盡量不用JS,畢竟JS對于搜索引擎而言并不友好,另外一定要避免全是圖片站長,這不利于搜索引擎的爬取和收錄。
以上就是關于單頁網站SEO的方法和技巧的分享了,單頁網站的內容單一也比較固定和簡單,是優勢也是劣勢,因此有一定的優化難度。所以大家在優化的時候,一定要注重細節方面的優化。
*請認真填寫需求信息,我們會在24小時內與您取得聯系。