爲何要SEO,SEO的做用是什麼?SEO(Search Engine Optimization)是爲了讓本身的IT產品優先能被搜索引擎找到,經過搜索引擎搜索推薦給網民瀏覽(特色就是精準找到用戶羣體)。正所謂,有用戶就有錢。大多數的網民都是經過搜索引擎來瀏覽網站,因此,網站的推廣全靠SEO。javascript
做爲程序員,有必要求瞭解SEO嗎?SEO不是應該由SEO專員去作嗎?沒錯,確實是由SEO專員去作,可是,SEO專員會技術上的SEO,顯然不會。因此程序員也必需要懂一些SEO技術。固然啦,瞭解SEO對程序員開發也是頗有幫助,讓程序員知道web應用應該如何架構,如何更好開發符合網民的需求的web應用。css
如下是總結整理的SEO方法:html
標題與內容相關性java
搜索引擎通常是抓取網頁裏面一些關鍵字,而後顯示在搜索引擎頁面的字條上面。如圖:css3
這是搜索引擎顯示網站的網頁標題與內容。程序員
點進網頁,查看源碼。web
網頁的標題算法
網頁的內容標題json
網頁的內容canvas
說明了SEO優化中,網頁的標題、內容標題與內容須要出現相同的關鍵字,最好保持一致性,切忌含糊不清,標題與內容不相符,如一些誇張的標題(本人痛恨標題黨,下載的小電影竟然是葫蘆娃)。
PS:頁面中的標題加粗,斜體,字體顏色會對搜索引擎更加友好,提升網站的收錄率。定下來以後不要隨便修改標題內容。
內容排版
咱們通常的閱讀習慣是由上到下,從左到右。(廢話,但也有特例),因此通常來講,內容應該是靠左邊的。
能夠經過SEO Browser來查看網頁搜錄狀態
PS:不要出現一些「未命名」,「aaa」的命名字眼。
網站的目錄結構
不只開發的時候須要分類目錄,也須要SEO也是須要分類目錄的。(即把image就放到image目錄,js就放到js目錄)目錄分層不宜過多,儘量控制到3-5層之間,而且注意命名,不要隨便起文件名,如abc1.html,no.html。儘量起與網頁內容相關的名字。
網站的菜單結構
搜索引擎通常會針對主頁進行收錄,不會收錄其餘頁,由於主頁是網站權重最高的地方,因此主頁上的菜單導航連接尤其重要。搜索引擎之因此能檢索到其餘頁,主要是靠主頁上的導航菜單連接、頁面標題、網站地圖。
PS:主頁的主菜單不建議使用二級菜單(下拉菜單),切忌隱藏主菜單。
網站的內容結構
搜索引擎通常會根據頁面內容中<h1>~<h6>標籤進行內容分類。
PS:<h1>標籤不建議屢次使用,是頁面的主標題。
<h2>與<h3>標籤能夠屢次使用,是頁面的副標題,但不能只有〈h3〉標籤沒有〈h2〉標籤。
<h4><h5><h6>標籤能夠不用。
必定要有自定義的錯誤頁面
站點要寫一個自定義的錯誤頁面,做用就是不只引導用戶瀏覽本身的網站,並且要引導搜索引擎抓取網站數據,不寫404錯誤頁面的話,也會阻礙搜索引擎的收錄。
添加反向連接
反向連接數量多會提升本站的排名, 反向連接包括友情連接、博客連接、留言簿。
做用就是一個利於搜索引擎抓取, 二是從其餘網站引流本身網站。(典型例子:知乎的各類大v回答都會留下各類連接)。
補充: 出站連接指本站訪問外站。(https://www.cnblogs.com/sroot -> 友情連接 -> https://www.baidu.com )
入站連接指外站訪問本站。(https://www.baidu.com -> 搜索blog -> https://www.cnblogs.com/sroot )
PS:友情連接注重質量與主題相關。
出站連接必定要新建窗口,緣由就是避免打開覆蓋本身的網站,丟失網頁流量。
記得在連接加上rel=nofollow屬性。
使用https協議(http2協議)
使用https協議的網站提升了網站的安全性,避免運營商的劫持,保證SEO不受運營商劫持影響。(劫持的話會使網頁重定向,跳到其餘網站去)
使用數字證書(CA)
使用數字證書,提升網站的權威性與安全性。(有條件下就使用數字證書)
添加app mainfest配置
<link rel="manifest" href="/manifest.json">
一份網站清單,利於移動端生成桌面圖標連接。(實驗性的seo手段)
設置meta屬性
<meta name="description" content="" />,
<meta name="keywords" content="" />,
<meta name="robots" content="all" />,
<meta property="og:XXXX" content="" />(贊成你的網頁在sns網站引用推廣)
更多meta屬性請參考w3c文檔,各大搜索引擎的meta屬性
添加alt屬性與title屬性
這種作法利於圖片SEO,(即在百度圖片搜索的時候,會找到本身網站上的圖片,經過點擊圖片連接跳轉到本身網站)
頁面避免過多js代碼
搜索引擎對javascript是很是不友好的,因此有些界面特效能用css去實現就使用css去實現,避免過多javascript代碼。這是爲何js放在html底部的另外一個緣由。
建立sitemap
生成一個網頁的路徑的地圖,讓搜索引擎瞭解站點的網頁路徑。(相似於公園的平面地圖)
建立robots.txt
生成一個robots協議文件,讓搜索引擎能抓取什麼樣的頁面,不能抓取什麼樣的頁面。
使用一些站長工具(如:谷歌分析)
根據數據分析出如何精準尋求目標用戶,查看網站排名狀況,防盜鏈。
內容要以原創爲主
下降網站頁面的類似度(搜索引擎也不喜歡),轉載需謹慎(有法律與金錢風險)。
不要把文字圖片化(把文字作成圖片)
搜索引擎不會光憑title屬性或者alt屬性來抓取網頁的內容,因此不要把文字圖片化。(更重要是影響用戶體驗)
主動提交網頁到各大搜索引擎
主動提交網站,也是SEO不可缺乏的一個步驟。
網頁禁止空連接
空連接會致使搜索引擎沒法抓取對應的頁面,從而影響收錄。
網頁使用絕對連接
避免搜索引擎泛指解析路徑,誤認爲重複內容而降權。
關鍵字選取
瞭解網頁核心關鍵字、拓展關鍵字,長尾關鍵字。(偶爾使用一下錯別字關鍵字)
網頁域名的選取
域名選取也是影響的SEO,切忌不要選取一些(如:www.smiqwjsq.com)毫無心義的域名,域名選取儘量有意義的。
顯示日期
及時更新底部版權時間,文章內容顯示時間,保持頁面內容最新。(搜索引擎會根據時間抓取網頁數據)
網站須要301重定向
防止網頁改版後或者網址變更而減小網頁權重,利於傳遞、繼承網頁權重。
PS:使用短連接來進行重定向,避免泛域名解析(如:qaz.com與www.qaz.com),不要使用302重定向。
生成RSS訂閱源
有利於爲用戶提供實時訂閱的功能。由於rss是一個xml文件,方便第三方抓取網站內容。(加快搜索引擎對網站的收錄)
避免使用flash動畫當首頁過渡動畫
搜索引擎是不會經過flash動畫找到網站首頁的。(如須要動畫,請使用css3或者canvas動畫來代替flash動畫)
避免強制登錄才能瀏覽頁面
搜索引擎是不會抓取一些不公開的頁面。(普通用戶都沒法直接瀏覽,況且搜索引擎呢)
避免url地址過於複雜
搜索引擎是不會收錄過長的url地址或者帶參數過多的url地址。
避免使用過多的子域名
搜索引擎是會防止別人使用子域名來增強網站權重。(好比:about.xxx.com等子域名)
頁面靜態化
搜索引擎通常抓取靜態頁面數據(url是固定的),不抓取動態頁面數據(url是不固定的),因此要經過頁面靜態化來讓搜索引擎收錄。
兩種方法:1、重寫url地址(僞靜態)
動態網址 www.xxx.com/xxx.jsp?id=10&class=sprot
分析:不利於seo 速度滿,容易注入,拼接字符串。
僞靜態網址 www.xxx.com/xxx-10-sprot.html 或者是 www.xxx.com/xxx/xxx
分析:利於seo,不容易注入,沒法拼接字符串。
2、生成靜態文件(真靜態)
經過服務器生成靜態文件 html/shtml
html------純靜態html文件
shtml------嵌入ssl指令的html文件(最爲廣泛)
總結,搜索引擎的算法日益更新,受多種因素影響網站排名,雖然有錢能夠買排名(百度能夠,谷歌不行),但也不必定都能排第一(事實,除非經過一些特殊手段)。所以,SEO是一門長期研究的技術。