這裡說的404錯誤不是網站內部產生的404,而是由於外鏈中存在指向本站的錯誤URL從而到了蜘蛛爬取錯誤,生成了404相應代碼。我們要采取的就是將這些404頁面301轉向正常可訪問的頁面,使權重可以得到正常的傳遞。
在我們創作高質量內容時,總會遇到采集或者轉載卻不留版權信息的情況。更可惡的是,有些采集或轉載的網站,為了防止自身網站的權重外流,在正常URL中隨機假如了一些字母和數字,導致蜘蛛在網站中順著鏈接進行爬取時,生成了404相應。通過下圖我們可以看到:
這個404錯誤,就是由“鏈接到您網站網頁的域”中URL的錯誤導致的。再查看了Webmaster Tool中一系列404提示後,我們可以確定這個URL不是由於書寫錯誤導致,而是由對方站點故意生成干擾字母或數字造成的。
遇到這樣的狀況,我們可以采取的措施有:
1,像百度和谷歌舉報(效果不好,同時有損RP)
2,裝作沒看見,什麼事情都沒有發生(心情會受影響)
3,合理運用技術,拿回屬於自己的東西(也是本文撰寫的內容)
301重定向404為外鏈的原理解釋
這裡我們需要用到的就是301重定向了。做SEO的人都知道,301是永久重定向的意思,同時可以將舊URL中的權重傳遞給新的URL。
這裡,我們可以將出現404錯誤的頁面看作舊URL,而將網站上存在的頁面看作新URL。拿上圖中的URL為例,就是:
將惡意指向不存在頁面的URL(產生了404錯誤):
http://www.***.com/rich-snippets.htmlGFQ
通過301的方式,指向網站上原本存在的URL:
http://www.***.com/rich-snippets.html
這樣,蜘蛛在訪問對方網站錯誤的URL(上例中後綴GFQ的URL)後,會被重定向到正確的URL頁面。從而達到幫助我們回復權重傳遞的作用。
301重定向404為外鏈的具體操作
這裡我們以采用Apache服務器的網站為例,通過mod_rewrite來做URL的重寫與轉向。
1,首先我們查看網站根目錄下是否存在.htaccess文件,如果做過偽靜態,那麼這個文件已經存在(也不排除通過httpd.conf實現偽靜態,那麼則需要新建一個.htaccess)。在文件中寫入以下代碼:
RewriteEngine on
RewriteBase /
如果你的博客或網站采用的是一級目錄的形式,則需要注意RewriteBase的路徑。大家可以在網上查找相關教程。這裡不再多述。
2,如果網站中的來自外部的404錯誤不多,只有個別幾個,那麼可以通過使用以下字符來實現(以上文中的錯誤為例):
RewriteRule ^rich-snippets.htmlGFQ$ rich-snippets.html [R=301,L]
3,但往往這些404錯誤都是大批量出現的,且還會新增。那麼我們就要觀察404錯誤的規律,然後通過通配的方式來實現重定向。
還是以本文URL為例,我們看到圖中錯誤產生404頁面的URL一般都為加入了3位數字和字母的後綴:
防范於未然,我們將所有.html後的所有有可能出現的字符的URL,都跳轉到.html以前的URL,使用的代碼是:
RewriteRule ^([\w-]+)\.html.+$ $1.html [R=301,L]
需要注意的是,我個人博客文章頁面的URL是以 http://www.seoyangs.com/404-to-links.htm 形式出現的。原因可以參考我之前的一篇文章《WordPresss SEO-新博客網站的優化》。但其他很多博主或者網站,在文章頁上面還有一個或多個目錄層級。那麼就可以用
RewriteRule ^你的目錄名稱/([\w-]+)\.html.+$ $1.html [R=301,L]
這樣的方式進行重定向。
現在我們嘗試訪問之前報404錯誤的URL鏈接:http://www.***.com/rich-snippets.htmlGFQ
即可正常訪問正確的URL,同時應該屬於我們的權重也通過鏈接的傳遞到達了我們的頁面。
本文主要介紹的是一種SEO的思路,實施辦法還需要根據網站的特殊情況具體對待。