代码之家  ›  专栏  ›  技术社区  ›  Remmus

替换网站的SEO帮助

  •  1
  • Remmus  · 技术社区  · 17 年前

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

    我一直在开发一个使用新URL格式的新网站,我担心如何处理所有断开的链接以及用户通过搜索引擎发现过时链接时的沮丧情绪。

    有人能就如何减轻/减少损害提供建议吗?旧站点是在ASP.NET中完成的,新站点是在ASP.NET MVC中完成的

    谢谢你的帮助。

    6 回复  |  直到 17 年前
        1
  •  4
  •   cdonner    17 年前

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

        2
  •  2
  •   Ropstah    17 年前

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

        3
  •  2
  •   Peter Lange    17 年前

    正如cdonner所说,您希望有一个处理程序将流量重新路由到相应的目的地。但更重要的是,您要确保在重定向客户端时,发送的状态代码是301(永久移动),而不是404。如果你的网站上有大量404个错误,搜索引擎会给你负面的评价,你会看到你的排名下降而不是上升。

        4
  •  1
  •   Community Mohan Dere    9 年前

    您可以设置旧站点的.htaccess文件,将流量重定向到新站点。除此之外,你还可以使用 mod_rewrite

        5
  •  1
  •   Eduardo Molteni    17 年前

    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
    
        6
  •  0
  •   Qualsmith    17 年前

    听起来你已经弄明白了,但只是想再添加一个选项-规范标记-如果出于任何原因需要保持旧url和新url都处于活动状态,那么它可能具有优势。您可以在旧URL上创建该页面的副本,然后添加“canonical”标记,该标记告诉搜索引擎“请将此页面的链接积分计入以下页面:www.site.com/newpage”

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

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