每一個程序員必知之SEO

彷佛由於受這篇文章的影響 http://katemats.com/what-every-programmer-should-know-about-seo/ 因而我也以爲我應該寫一個每一個程序員必知之SEO,做爲一個擅長前端兼SEO的設計師。html

搜索引擎是如何工做的

若是你有時間,能夠讀一下谷歌的框架:前端

http://infolab.stanford.edu/~backrub/google.htmlnginx

這是一個老的,有些過期紙,但很是平易近人,甚至在咱們中間的非白皮書的讀者圖標微笑什麼每一個程序員都應該知道的關於搜索引擎優化和他們絕對概念的解釋更詳細,我只提一筆帶過。git

搜索時發生什麼了

  • 用戶輸入查詢內容
  • 查詢處理以及分詞技術
  • 肯定搜索意圖及返回相關、新鮮的內容

search-engine-arch

爲何須要SEO

這是一個有趣的問題,答案總會來源於爲網站帶來更多的流量程序員

爬蟲與索引

咱們先看看來自谷歌的爬蟲工做的一點內容github

抓取是 Googlebot 發現新網頁並更新這些網頁以將網頁添加到 Google 索引中的過程。web

咱們使用許多計算機來獲取(或"抓取")網站上的大量網頁。執行獲取任務的程序叫作 Googlebot(也被稱爲漫遊器或信息採集軟件)。Googlebot 使用算法來進行抓取:計算機程序會肯定要抓取的網站、抓取頻率以及從每一個網站中獲取的網頁數量。算法

Google 的抓取過程是根據網頁網址的列表進行的,該列表是在以前進行的抓取過程當中造成的,且隨着網站管理員所提供的站點地圖數據不斷進行擴充。Googlebot 在訪問每一個網站時,會檢測每一個網頁上的連接,並將這些連接添加到它要抓取的網頁列表中。新創建的網站、對現有網站所進行的更改以及無效連接都會被記錄下 來,並用於更新 Google 索引。編程

也就是如原文所說:網絡

谷歌的爬蟲(又或者說蛛蛛)可以抓取你整個網站索引的全部頁。

爲何谷歌上能夠搜索整個互聯網的內容?由於,他解析並存儲了。而更有意思的是,他會爲一樣的內容創建一個索引或者說分類,按照必定的相關性,針對於某個關鍵詞的內容。

PageRank對於一個網站來講是至關重要的,只是這個相比也比較複雜。包括其餘網站連接向你的網站,以及流量,固然還有域名等等。

什麼樣的網站須要SEO?

下圖是個人博客的流量來源

What Site Need SEO

正常狀況下除了像騰訊這類的QQ空間自我封閉的網站外都須要SEO,或者不但願泄露一些用戶隱私如Facebook人人等等

  • 若是你和個人網站同樣須要靠搜索帶來流量
  • 若是你只有不多的用戶訪問,卻有不少的內容。
  • 若是你是爲一個公司、企業工做爲以帶來業務。
  • 。。。

SEO與編程的不一樣之處

SEO與編程的最大不一樣之處在於

編程的核心是技術,SEO的核心是內容。

內容纔是SEO最重要的組成部分,這也就是騰訊複製不了的東西。

SEO基礎知識

確保網站是能夠被索引的

一些常見的頁面不能被訪問的緣由

- 隱藏在須要提交的表格中的連接 - 不能解析的JavaScript腳本中的連接 - Flash、Java和其餘插件中的連接 - PowerPoint和PDF文件中的連接 - 指向被meta Robtots標籤、rel="NoFollow"和robots.txt屏蔽的頁面的連接 - 頁面上有上幾百個連接 - frame(框架結構)和iframe裏的連接

對於如今的網站來還有下面的緣由,經過來講是由於內容是動態生成的,而不是靜態的

- 網站經過WebSocket的方法渲染內容 - 使用諸如Mustache之類的JS模板引擎

什麼樣的網頁能夠被索引

- 確保頁面能夠在沒有JavaScript下能被渲染。對於如今JavaScript語言的使用愈來愈多的狀況下,在使用JS模板引擎的時候也應該注意這樣的問題。 - 在用戶禁用了JavaScript的狀況下,保證全部的連接和頁面是能夠訪問的。 - 確保爬蟲能夠看到全部的內容。那些用JS動態加載出來的對於爬蟲來講是不友好的 - 使用描述性的錨文本的網頁 - 限制的頁面上的連接數量。除去一些分類網站、導航網站之類有固定流量,要不容易被認爲垃圾網站。 - 確保頁面能被索引。有一指向它的URL - URL應該遵循最佳實踐。如blog/how-to-driver有更好的可讀性 ##在正確的地方使用正確的關鍵詞 - 把關鍵詞放URL中 - 關鍵詞應該是頁面的標籤 - 帶有H1標籤 - 圖片文件名、ALT屬性帶有關鍵詞。 - 頁面文字 - 加粗文字 - Descripiton標籤

內容

對於技術博客而言,內容纔是最須要考慮的因素。

能夠考慮一下這篇文章,雖然其主題是以SEO爲主
用戶體驗與網站內容

不可忽略的一些因素是內容纔是最優質的部分,沒有內容一切SEO都是無心義的。

複製內容問題

一個以用戶角度考慮的問題

用戶須要看到多元化的搜索結果

因此對於搜索引擎來講,複製帶來的結果:

- 搜索引擎爬蟲對每一個網站都有設定的爬行預算,每一次爬行都只能爬行trpgr頁面數 - 連向複製內容頁面的連接也浪費了它們的連接權重。 - 沒有一個搜索引擎詳細解釋他們的算法怎樣選擇顯示頁面的哪一個版本。

因而上文說到的做者給了下面的這些建議:

避免從網上覆制的內容(除非你有不少其餘的內容彙總,以使它看起來不一樣 - 咱們作頭條,對咱們的產品頁面的新聞片斷的方式) 。這固然強烈適用於在本身的網站頁面以及。內容重複能夠混淆搜索引擎哪些頁面是權威(它也可能會致使罰款,若是你只是複製粘貼別人的內容也行) ,而後你能夠有你本身的網頁互相競爭排名!

若是你必須有重複的內容,利用相對=規範,讓搜索引擎知道哪一個URL是一個他們應該被視爲權威。可是,若是你的頁面是另外一個在網絡上找到一個副本?那麼開始想出一些策略來增長更多的文字和信息來區分你的網頁,由於這樣重複的內容是決不可能獲得好的排名。

——待續。

保持更新

谷歌對於一個一直在更新的博客來講會有一個好的排名,固然只是相對的。

對於一個技術博客做者來講,一直更新的好處不只可讓咱們不斷地學習更多的內容。也能夠保持一個良好的習慣,而對於企業來講更是如此。若是咱們天天去更新咱們的博客,那麼搜索引擎對於咱們網站的收錄也會變得愈來愈加頻繁。那麼,對於咱們的排名及點擊量來講也算是一個好事,當咱們能夠得到足夠的排名靠前時,咱們的PR值也在不斷地提升。

更多內容能夠參考:Google Fresh Factor

網站速度

谷歌曾表示在他們的算法頁面加載速度問題,因此必定要確保你已經調整您的網站,都服從最佳作法,以使事情迅速

過去的一個月裏,我試着提升本身的網站的速度,有一個相對好的速度,可是受限於域名解析速度以及VPS

網站速度分析與traceroute

UX與網站速度優化——博客速度優化小記

Nginx ngx_pagespeed nginx前端優化模塊編譯

保持耐心

這是有道理的,若是你在須要的谷歌機器人抓取更新的頁面,而後處理每個頁面,並更新與新內容對應的索引的時間因素。

而這多是至關長一段時間,當你正在處理的內容PB級。

SEO是一個長期的過程,不多有網站能夠在短時間內有一個很好的位置,除非是一個熱門的網站,然而在它被發現以前也會一個過程。

連接

在某種意義上,這個是提升PR值,及網站流量的另一個核心,除了內容之外的核心。

- 連接建設是SEO的基礎部分。除非你有一個異常強大的品牌,不須要幹什麼就能吸引到連接。 - 連接建設永不中止。這是不間斷營銷網站的過程

關於連接的內容有太多,並且當前沒有一個好的方法獲取連接雖然在個人網站已經有了

Links to Your Site

Total links

5,880

同時尋求更多的連接是更有利更相關的連接能夠幫助同樣多。若是你有你的內容的分銷合做夥伴,或者你創建一個小工具,或其餘任何人都會把連接回你的網站在網絡上 - 你能夠經過確保各個環節都有最佳的關鍵字錨文本大大提升鏈路的相關性。您還應該確保全部連接到您的網站指向你的主域( http://www.yourdomain.com ,像http://widget.yourdomain.com不是一個子域) 。另外,你要儘量多的聯繫,以包含適當的替代文字。你的想法。

另外,也許不太明顯的方式,創建連接(或者至少流量)是使用社交媒體 - 因此設置你的Facebook ,Twitter和谷歌,每當你有新的連接必定要分享。這些通道也能夠做爲一個有效的渠道,推進更多的流量到您的網站。

由社交渠道帶來的流量在如今已經愈來愈重要了,對於一些之內容爲主導的網站,並且處於發展初期,能夠迅速帶來流量,能夠參考一下這篇文章

尋ta分析與網站內容

一些更簡單的辦法就是交換連接,總之這個話題有些沉重,可能會帶來一些負面的影響,如黑帽SEO。。。。

參考來源:

《SEO藝術》(The Art of SEO)

歡迎訪問個人Github,也許,你會遇到你也心儀的項目。

相關文章
相關標籤/搜索