2010-03-30 25 views
1

我在彈出這裏和超級用戶之間彈跳。請原諒,如果你覺得這不屬於這裏。如何在向用戶提供用戶友好的內容的同時返回適當的404 for google?

我正在觀察描述的行爲here - Googlebot正在我的網站上請求隨機的網址,例如aecgeqfx.htmlsutwjemebk.html。我確信我不會在我的網站上的任何地方鏈接這些網址。

我懷疑這可能是谷歌探索我們如何處理不存在的內容 - 從答案的鏈接的問題舉:

[google is requesting random urls to] see if your site correctly 
handles non-existent files (by returning a 404 response header) 

我們有一個不存在的內容自定義頁面 - 一風格的網頁說:「內容沒有找到,如果你認爲你錯了,請聯繫我們「,有幾個內部鏈接,(自然地)用200 OK服務。該URL直接提供(不重定向到單個網址)。

恐怕這可能會歧視網站在谷歌 - 他們可能不會將用戶友好頁面解釋爲404 - not found,並可能認爲我們正在嘗試僞造某些內容並提供重複內容。

我應該如何着手確保谷歌不會認爲該網站是假的,同時爲用戶提供用戶友好的信息,以防他們偶然點擊死鏈接?

回答

6

最好的做法是用一個404響應代碼返回用戶友好的404頁,而不是200。您的Web服務器應該處理這個給你相對容易。

+0

謝謝,我不知道這件事。我將學習如何在仍然提供內容的同時返回404 – Marek 2010-03-30 18:10:18

+0

如何在ASP.NET MVC中提供內容時返回404狀態碼:Response.StatusCode = 404; Response.TrySkipIisCustomErrors = true;返回View(); – Marek 2010-04-01 10:10:50

2

您仍然可以發送404狀態並在同一響應中爲死鏈接提供用戶友好的消息。即使「普通用戶」也應該獲得404狀態,即使頁面看起來不像典型的失敗頁面。攔截請求的方式取決於您的Web服務器。這比檢測用戶代理和爲Googlebot做一些不同的事情要容易得多。

2

使用的ErrorDocument在阿帕奇

ErrorDocument 500 http://foo.example.com/cgi-bin/tester 
ErrorDocument 404 /cgi-bin/bad_urls.pl 
ErrorDocument 401 /subscription_info.html 
ErrorDocument 403 "Sorry can't allow you access today" 

錯誤文檔可以是你想什麼。當然,如果你使用的是PHP,你可以創建一個名爲error404.php像這樣的文件:

<?php 
header("HTTP/1.0 404 Not Found"); 

echo 'Hi, this page does not exist...<img src="nice-logo.png" alt="logo" />' 


?> 

這是唯一重要的是,響應必須包括頭正確的代碼404 - 阿帕奇輸出,PHP或任何其他動態腳本。

的滑稽404例:http://www.northernbrewer.com/brewing/weekly_fermenterd

相關問題