【问题标题】:How do search engines index MVC pages?搜索引擎如何索引 MVC 页面?
【发布时间】:2015-06-04 16:52:49
【问题描述】:

您可以手动在您的目录中制作 PHP 页面。 例如

  • Index.php
  • 关于.php
  • Contact.php

但是对于像 Laravel 这样的 PHP 框架,页面不存在于文件中,它们存在于数据库中,并在用户访问页面时被调用。 例如

如果有人访问http://mywebsite.com/contact,框架将在数据库中查找名为“联系人”的页面,然后将其输出给用户。

但是,如果这些页面仅存在于数据库中,Google(或其他搜索引擎)如何找到这些页面呢?

【问题讨论】:

  • Google 像用户一样调用页面(不完全像用户那样,但为简单起见,我们会说它确实如此)。

标签: php laravel model-view-controller search-engine


【解决方案1】:

Google 可以很好地索引这些内容,因为它们是“服务器端”生成的。文件不需要存在以便 Google 能够索引它们,只存在于服务器端级别。

如果您的网站是基于“客户端”并使用 AJAX 之类的东西将内容拉入浏览器,那么 Google 的索引存在问题。搜索引擎蜘蛛无法执行 JavaScript,因此它们永远找不到内容。但是,Google 已经为人们定义了一些指南,以便在他们的Web Masters Guide 中索引这些内容。

【讨论】:

  • 赞成,因为这是迄今为止触及“服务器端”与“客户端”概念的唯一答案,这似乎是 OP 误解的核心。
【解决方案2】:

您有一个静态网站地址 www.domain.com,这是真实的,所以一旦 google 知道有一个名为 www.domain.com 的网站,它就会访问该网站,现在 google 爬虫就在您的网站上将寻找 www.domain.com 主页上可用的链接,因此它们将被抓取。很简单

【讨论】:

    【解决方案3】:
    1. 在 Laravel 中,页面不存在于数据库中,尽管它们可能是动态生成的。
    2. 正如@expodax 指出的那样, Google 将为您的 Web 应用程序索引 LINKS,并根据您的 routes.php 文件生成链接 (URI)(在 app/Http/routes.php 中找到) 从本质上讲,Google 会为最终用户提供可用的链接/URI 索引,它不依赖于您在网络应用中组织文件的方式。

    有关 Laravel 中路由的详细文档(如何生成或使用它们),请查看此处。 http://laravel.com/docs/5.0/routing

    【讨论】:

      【解决方案4】:

      站点地图是一个文件,您可以在其中列出您网站的网页,以告知 Google 和其他搜索引擎您网站内容的组织结构。像 Googlebot 这样的搜索引擎网络爬虫会读取此文件以更智能地爬取您的网站。 more info

      如果您想为您的 laravel 应用程序生成站点地图,您可以手动完成,也可以使用如下包:https://github.com/RoumenDamianoff/laravel-sitemap

      【讨论】: