如何处理谷歌索引不存在的“页面”


How to handle Google indexing 'pages' that not exists

我构建动态网站,其中结构分层保存在数据库(自己的CMS)中。我正在使用邻接模型来管理此数据库表(PHP和Mysql通过PDO)

我检测到谷歌正在索引不应该索引的页面。

用于导航的树结构示例:

home
  about us
  products
    productgroup 1
    productgroup 2
  contact
    support
    sales

在带有页面链接的下拉菜单中想象这种结构。当我选择产品>产品组 1 时,我得到一个类似于 www.domain.com/products/productgroup-1 的 URL,它从数据库中提取数据(基于最后一个 uri 元素:productgroup-1,标题的 slug 版本)并将其显示在我的模板中。我不查询所有元素,只查询最后一个元素(我知道我应该)。

目前为止,一切都好。谷歌正在按预期将此页面编入索引:

http://www.domain.com/products/productgroup-1

但。。。当我使用Google网站管理员工具时,我看到很多页面都与404一起索引,例如:

http://www.domain.com/products
http://www.domain.com/contact

如此坚固。

这些页面为空,并且在导航结构中没有链接。

我设计了我的结构,以便这些页面返回 404 错误。网站管理员工具证实了这一点,但会继续将这些页面编入索引。我知道我可以使用机器人.txt不允许谷歌的搜索机器人保持索引网址。有没有其他方法可以做到这一点?我应该生成 403 而不是 404 吗?

我在这里一无所知。

你应该做几件事:

  1. 使用 301 永久重定向将此空白页面定向到相关页面:

    • 即使 Google 不抓取 http://www.domain.com/products,有些人仍可以通过从浏览器中移除网址中的最后一个片段来访问此链接。 您可能不想向他们展示 404,而是一些相关信息。

    • 例如,您可以将 http://www.domain.com/products 和 http://www.domain.com/products/重定向到 http://www.domain.com/products/productgroup-1

    • 了解有关来自 Moz 的 301 重定向的更多信息

    • 可以使用 mod-rewrite 来执行 301 重定向,而不是在代码级别执行。

  2. 向 Google 网站站长工具提交站点地图。

    • 这是您网站中网址的明确列表。

    • 拥有站点地图会注意到移除已在 Google 上编入索引的 404 个网址列表,但会告知 Google 您网站中的所有"官方"网址以及预期的抓取频率。

    • 在此处阅读有关 Google 网站站长工具的更多信息。

  3. 检查您的 HTML 代码中是否有对"/products"或"/contact"的引用。 否则,Googlebot 将不会抓取这些网址。

> 301重定向是您不想要页面的最佳选择,您也可以在robots.txt页面中分配这些页面。