我正在一个电子商务网站上。我以前有一个带有ID类别的站点地图,例如:

<url>
    <loc>https://my-domain.com/home/browse/2/45/139</loc>
    <changefreq>daily</changefreq>
</url>
<url>
    <loc>https://my-domain.com/home/browse/5/60/160</loc>
    <changefreq>daily</changefreq>
</url>


在上面的站点地图中,2/45/139代表一个类别:

fashion/women/tops-and-shirts


和5/60/160代表不同的类别:

sports/team-sports/football


大约3个月前,我决定更改网站的网站地图,并使用类别名称代替类别ID,因此新的网站地图如下所示:

<url>
    <loc>https://my-domain.com/home/browse/fashion/women/tops-and-shirts</loc>
    <changefreq>daily</changefreq>
</url>
<url>
    <loc>https://my-domain.com/home/browse/sports/team-sports/football</loc>
    <changefreq>daily</changefreq>
</url>


我几个月前已将新的网站地图提交给Google,工作正常...但是每次我进入Google Search Console时,都会看到Google向我显示有关具有旧站点地图结构的页面的错误...或者Google向网址中添加了随机参数,例如page = 59,然后抱怨此页面有错误...由于不存在而返回错误!



如何解决这些错误?

#1 楼

您对站点地图是个误解。

该站点地图用于审核搜索引擎机器人对站点的爬网。站点地图和爬网是两个不同且独立的事物。 Google将继续独立于任何站点地图来抓取您的网站。该站点地图将用于审核/查看Google是否能够正确抓取您的网站。例如,如果在您的站点地图中找到了页面,但Google没有看到该页面,则Google可能会将页面添加到要包含的获取队列中。

反之则不成立。如果在站点地图中找不到页面,则Google不会将其从索引中删除。为什么?因为Google是通过抓取网站来找到它的。

您似乎相信的站点地图就是一切-终止Google用于了解任何特定网站上存在哪些页面的所有权限。不是这种情况。爬网是。该站点地图只会帮助Google知道他们是否可以正确地爬网您的网站,如果不能,则应将Google缺少的页面添加到提取队列中。

您期望Google不再尝试访问页面,因为这些页面不再在您的站点地图中,这是错误的。站点地图已缓存,仅定期检查。为什么?因为这是一个审核过程。

您确实有一个实际的问题需要解决。

对于未找到的页面,您将返回500错误。这不好。您的网站应该返回404 Not Found错误。 500错误是系统错误,Google会将情况视为暂时错误。如果您的网站返回404错误,则Google会在一段时间内继续尝试该页面多次尝试,直到它确定该页面不再存在为止。如果有可能,您要对已删除的页面发出“ 410已删除”错误。如果工作过多或无法完成,随着时间的推移,404的作用将完全相同。

您确实需要修复500错误。

评论


…或更妙的是,像斯蒂芬·奥斯特米勒(Stephen Ostermiller)建议的那样,将301重定向返回到相应的新URL。这也可以帮助任何通过其他网站的旧链接或尚未更新的过时搜索引擎结果访问您网站的访问者。

–伊尔马里·卡洛宁(Ilmari Karonen)
19-10-25在13:12

值得一提的是,在某种程度上,OP可以从robots.txt中实现操作错误地从站点地图中获得的行为

– GeoffAtkins
19-10-25在13:29

在这种情况下,我不建议robots.txt。您确实希望Googlebot在实施重定向后抓取您的旧网址。 Robots.txt可以阻止爬网,但并不总是可以阻止索引。无论如何,没有一个很好的模式可以使用。最好是十个规则,例如Disallow:/ home / browse / 1,假设所有新类别都不以数字开头。

–斯蒂芬·奥斯特米勒(Stephen Ostermiller)
19-10-25在19:04

我很欣赏此答案的内容,但是却忽略了最关键的信息:OP的客户可能拥有书签或共享的页面链接,并且如果没有重定向,这些用户或其朋友将最终陷入死链接。这将导致不良的用户体验和收入损失。

–喷枪D
19-10-26在2:56



#2 楼

Closetnoc关于站点地图是正确的。不要指望它们限制Google将抓取和索引的URL。实际上,站点地图对SEO几乎没有影响。请参阅Sitemap悖论

如果您重定向旧网址,Google不会抱怨您的旧网址中的错误。当您更改站点的URL结构时,最好将所有旧URL重定向到其对应的新URL。重定向对搜索引擎而言更好,因为它可以保留您的SEO值和排名(通常)。对用户来说,这是更好的选择,因为如果它们碰巧会到达旧的URL,则会自动将它们带到新的URL。

因此,请确保您的网站实施使用“ 301永久”状态的正确重定向。 :

/home/browse/2/45/139 -> /home/browse/fashion/women/tops-and-shirts
/home/browse/5/60/160 -> /home/browse/sports/team-sports/football


Google不会在网址中添加随机参数。它搜寻到的所有URL都在某处找到。它可能在您自己的网站上找到了指向该分页的链接。 Googlebot还具有笨拙的启发式功能,可在JavaScript中扫描看起来像字符串的URL字符串文字并对其进行爬网。参数也可以来自外部链接。有时,其他站点可以以奇怪的中断方式随机链接到您的站点。

如果您不再具有分页功能,也可以重定向这些请求。即使您从未使用过分页,也可以重定向以删除分页参数。

#3 楼

您需要做两件事。



检查页面上是否有这样的链接:




这应该是:

<a href="https:domain.com/?page=59"> something </a>


这是因为您在URL中使用“ /”定界符,它是目录分隔符。 br />因此,如果Google搜寻器位于
domain / home / browse / fashion

上,并且找到该页面上的第一个链接,则它将该链接添加到此页面,而不是主域名。
因此Google会寻找:
domain / home / browse / fashion /?page = 59
,而不是:
domain /?page = 59


现在您正在使用类别名称而不是数字标识符,那么您应该将那些旧页面重定向到新页面。
这样,您将不会丢失任何搜索排名

如果不重定向,仅更改html链接和站点地图中的URL,则Google会将这些(类别名称URL)视为新页面,因此可能不会排名他们。

没有重定向,由于其他人链接到这些旧页面,您也将失去进入网站的链接汁。

500内部错误很可能是由功能损坏引起的。该函数以前需要一个数字值,但是现在您要向其传递字母值,这会导致某种致命错误。
查看错误日志以获取有关此信息的详细信息。