我经营一个小型电子商务网站,在过去几年中建立了合理的搜索引擎状态。
我一直在开发一个使用新网址格式的新网站,我担心如何处理所有已损坏的链接以及客户对通过搜索引擎查找过时链接的挫败感。
有人可以提供有关如何减轻/减少损害的建议吗?旧站点是在ASP.NET MVC中新增的ASP.NET中完成的。
感谢您的帮助。
答案 0 :(得分:4)
您需要某种并行结构。理想情况下,具有旧URL的旧站点在一段时间内仍然可以完全访问,但不会再被编入索引。 如果这不可行,并且因为您说该网站很小,您可以建立一个旧的URL映射,并有一个404处理程序尝试重定向到新内容。
答案 1 :(得分:2)
您应该为要保留的链接(routelevel)创建永久重定向。这样searchengines将更新他们对新位置的引用。
答案 2 :(得分:2)
正如cdonner所说,你想拥有一个处理程序,将流量重新路由到其适当的目的地。更重要的是,您想要确保在重定向客户端时,您发送的状态代码为301(永久移动)而不是404.如果您的网站上存在大量404错误,搜索引擎会对您产生负面评价你会看到你的站立减少而不是增加。
答案 3 :(得分:1)
您可以设置旧网站的.htaccess文件,以便将流量重定向到新网站。除此之外,您可以使用mod_rewrite将对旧网站上的网页的请求映射到新网站上的相同(或类似)网页。
答案 4 :(得分:1)
这是我从旧的ASP经典网站迁移的方式:
Sub Application_BeginRequest(ByVal sender As Object, ByVal e As System.EventArgs)
Dim fullOriginalpath As String = Request.Url.ToString.ToLower
If (fullOriginalpath.Contains("/viewitem.asp?itemid=")) Then
Context.Response.StatusCode = 301
Context.Response.Redirect("/item/" + getItemIDFromPath(fullOriginalpath))
ElseIf (fullOriginalpath.Contains("/search.asp")) Then
Context.Response.StatusCode = 301
Context.Response.Redirect("/search/")
ElseIf (fullOriginalpath.EndsWith("/default.asp")) Then
Context.Response.StatusCode = 301
Context.Response.Redirect("/")
End If
End Sub
答案 5 :(得分:0)
听起来你已经想通了,但只是想添加一个选项 - 规范标签 - 如果出于任何原因需要保持旧网址和新网址都有效,这可能会有优势。您可以在旧网址上创建网页副本,然后添加“规范”标记,告知搜索引擎“请将此页面的链接信用额度归功于以下页面:www.site.com/newpage"
<link rel="canonical" href="http://www.yoursite.com" /> this line goes in before </head>
例如,如果您有许多指向某些关键页面的链接,并且这些链接指向旧URL,则可能会有所帮助。
301还会重定向链接信用,并且通常移动您要使用301重定向的页面。哦,如果您使用URL重写规则和所有URL的更改方式相同,您可以在重写规则中使用正则表达式,只需一步即可处理所有这些。