1

我经营着一个小型电子商务网站,该网站在过去几年中建立了合理的搜索引擎地位。

我一直在开发一个使用新 URL 格式的新站点,我担心如何处理所有断开的链接和用户通过搜索引擎查找过时链接的挫败感。

任何人都可以就如何减轻/减少损害提供建议吗?旧站点在 ASP.NET 中完成,新站点在 ASP.NET MVC 中完成

感谢您提供的任何帮助。

4

6 回答 6

4

您将需要某种并行结构。理想情况下,具有旧 URL 的旧站点在一段时间内仍可完全访问,但不再被索引。如果这不可行,并且由于您说该站点很小,您可以建立一个新旧 URL 映射并拥有一个 404 处理程序来尝试重定向到新内容。

于 2009-06-04T23:11:59.833 回答
2

您应该为要保留的链接创建永久重定向(路由级别)。这样,搜索引擎将更新他们对新位置的引用。

于 2009-06-04T23:11:00.630 回答
2

正如 cdonner 所说,您希望有一个处理程序将流量重新路由到其适当的目的地。更重要的是,您要确保在重定向客户端时发送状态代码 301(永久移动)而不是 404。如果您的网站上有很多 404 错误,搜索引擎会对您进行负面评价你会看到你的地位减少而不是增加。

于 2009-06-04T23:26:33.470 回答
1

您可以设置旧站点的 .htaccess 文件以将流量重定向到新站点。除此之外,您可以使用mod_rewrite将旧站点上的页面请求映射到新站点上的相同(或相似)页面。

于 2009-06-04T23:10:37.510 回答
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
于 2009-07-16T12:37:05.933 回答
0

听起来您已经想通了,但只是想再添加一个选项 - 规范标签 - 如果出于任何原因您需要同时保持旧 URL 和新 URL 处于活动状态,这可能会有优势。您可以在旧 URL 处创建该页面的副本,然后添加“规范”标签,该标签告诉搜索引擎“请将此页面的链接信用归功于以下页面:www.site.com/newpage”

<link rel="canonical" href="http://www.yoursite.com" /> this line goes in before </head>

例如,如果您有很多指向某些关键页面的链接,并且这些链接指向旧 URL,这可能会有所帮助。

301 还会重定向链接信用,并且通常移动页面您会想要使用 301 重定向。哦,如果您使用 URL 重写规则并且所有 URL 的更改都以相同的方式,您可能可以在重写规则中使用正则表达式来在一个步骤中处理所有这些。

于 2009-06-10T06:23:21.403 回答