一个不断生成新页面的高度动态网站是否应该使用站点地图?如果是这样,像stackoverflow.com这样的网站如何重建站点地图?如果每次有人添加问题时不断重新生成站点地图,这似乎会耗尽宝贵的服务器资源.它是否以设定的间隔(例如每四个小时)生成一个新的站点地图?我非常好奇大型动态网站是如何实现这一目标的.
Rob*_*ino 43
在Stackoverflow(以及所有Stack Exchange站点)上,创建一个sitemap.xml文件,其中包含指向系统上发布的每个问题的链接.发布新问题时,他们只需将另一个条目附加到站点地图文件的末尾.添加到文件末尾并不是资源密集,但文件非常大.
这是Google等搜索引擎有效抓取网站的唯一方式.
杰夫阿特伍德在一篇博文中谈到了这一点:Sitemaps的重要性
在以下情况下,站点地图特别有用:
- 您的网站包含动态内容.
- 您的网站包含Googlebot在抓取过程中无法轻易发现的网页 - 例如,包含丰富的AJAX或Flash的网页.
- 您的网站是新的,并且几乎没有链接.(Googlebot通过跟踪从一个页面到另一个页面的链接来抓取网络,因此如果您的网站链接不好,我们可能很难发现它.)
- 您的网站有一个大型的内容页面存档,这些内容页面彼此之间没有很好的链接,或根本没有链接.
cee*_*yoz 13
每次发布问题时都无需重新生成Google站点地图XML.只需直接从数据库(和一点缓存)按需生成XML文件就简单得多了.
为减少负载,可以将站点地图拆分为多个站点地图.按日/月分区可让您告诉Google经常检索今天的站点地图,但只会在六个月前偶尔获取站点地图.
我想在这里分享我的解决方案,以防它也对某人有所帮助。我阅读了这个问题和许多其他问题后才决定该怎么做。
我的网站结构。
静态页面
...ETC
动态页面
我的方法。
sitemap.xml:此 url 生成<sitemapindex />第一项为 的/sitemap-main.xml. Artists、Albums等的数量Songs被计算并除以 1,000(我想要在每个站点地图中的网址数量。限制为 50,000)。我把这个数字四舍五入。
例如,1900 首歌曲 = 1.9 = 2。我生成。将 url/sitemap-songs-0.xml和添加/sitemap-songs-1.xml到索引中。我对所有其他项目重复这一点。基本上,我正在分页。
返回的输出未缓存。我希望这个永远新鲜。
sitemap-main.xml:这列出了所有静态页面。实际上,您可以为此使用静态文件,因为您只需要偶尔更新一次。
sitemap-songs-0.xml、sitemap-albums-0.xml 等:我在 SlimPhp 2 中使用单个路由。
$app->get('/sitemap-:type-:page.xml', function ($type, $page) use ($app) {...
Run Code Online (Sandbox Code Playgroud)
我使用一个简单的 switch 语句来生成相关文件。如果对于此页面,我有 1,000 个项目,即上面指定的限制,我会将文件缓存 2 周。否则,我只会缓存几个小时。
我想这可以帮助其他人实现他们自己的系统。
| 归档时间: |
|
| 查看次数: |
18545 次 |
| 最近记录: |