2

假设我们得到了这些页面:

1. http://www.mywebsite.com/users/thomas-roberts
2. http://www.mywebsite.com/pages/thomas-roberts/1
3. http://www.mywebsite.com/pages/thomas-roberts/hello-kitty-collection

是否有可能在 sitemap.xml 中执行此操作:

<?xml version="1.0" encoding="utf-8"?>

<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
    <url>
        <loc>http://mywebsite.com/users/^(\w+)$/</loc>
        <lastmod>2006-11-18</lastmod>
        <changefreq>daily</changefreq>
        <priority>1</priority>
    </url>
    <url>
        <loc>http://mywebsite.com/users/^(\w+)$/pages/^(\w+)$</loc>
        <lastmod>2006-11-18</lastmod>
        <changefreq>daily</changefreq>
        <priority>0.8</priority>
    </url>
    <url>
        <loc>http://mywebsite.com/users/^(\w+)$/pages/^(\d+)$</loc>
        <lastmod>2006-11-18</lastmod>
        <changefreq>daily</changefreq>
        <priority>0.6</priority>
    </url>
</urlset>

我希望我的示例很清楚,我们并没有真正在 sitemap.xml 文件中指定新的“url”元素,而是将正则表达式与 url 匹配,并且每次都回来更新。

如果这可能不是一个解决方案,那么 Twitter 和 Facebook 如何在 Google 中索引他们的所有页面(个人资料页面等)?他们是否会在每次创建新用户时生成新的站点地图,并在有人更新他们的页面/个人资料时更新他们的站点地图?

我非常好奇,如果我们必须以某种方式生成 sitemap.xml(其限制为 50.000 个项目和 10mb),如果内容被修改,生成站点地图会是一个好主意吗?

非常感谢。

4

3 回答 3

3

站点地图必须包含实际的 URL。正则表达式是不可接受的,而且毫无用处,因为它们不会告诉搜索引擎任何事情。

站点地图只是告诉搜索引擎在哪里可以找到您的内容。因此,如果页面的内容被修改,就搜索引擎而言,站点地图确实不会影响它。

于 2012-08-16T14:25:33.163 回答
0

不幸的是,站点地图文件中需要明确的 URL。Robots.txt 文件通过 * 和 + 符号承认某种通配符语法来表示一组 URL,但站点地图文件并非如此。

于 2012-08-17T00:51:55.590 回答
0

我认为最好的办法是使用由 cron 作业运行的脚本更新数据库(或缓存)中的 url。如果可以在服务器时间限制内生成 sitemap.xml,那么让它使用数据动态运行。请参阅此处的示例:https ://stackoverflow.com/a/29468042/4058484

但是,如果您有大量数据,那么最好将 URL 定位在多个站点地图中,只要列出 robots.txt 中指定的 sitemap.xml,就可以在此处查看详细信息: http ://www.sitemaps.org/协议.html#sitemapIndexXMLExample

于 2015-04-06T09:25:10.310 回答