在此Google帮助页面上:
https://www.google.com/webmasters/tools/docs/en/sitemap-generator.html#submitting
Google提到有一种方法可以使用HTTP请求通知他们更新的站点地图.
单击该链接后,将转到此页面:
http://www.google.com/support/webmasters/bin/answer.py?answer=34592&topic=8482&hl=en#ping
但是没有关于在何处ping什么请求的信息.
有谁知道这个地址是什么以及需要什么参数?
我正在尝试创建一个会自动更新的站点地图.我做了类似于我的RSS提要的事情,但这个网站地图拒绝工作.您可以在http://designdeluge.com/sitemap.xml上查看它.我认为主要问题是它无法识别PHP代码.这是完整的来源:
<?php
include 'includes/connection.php';
header("Content-type: text/xml");
echo '<?xml version="1.0" encoding="UTF-8" ?>';
?>
<urlset xmlns="http://www.google.com/schemas/sitemap/0.84" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.google.com/schemas/sitemap/0.84 http://www.google.com/schemas/sitemap/0.84/sitemap.xsd">
<url>
<loc>http://designdeluge.com/</loc>
<lastmod>2010-04-20</lastmod>
<changefreq>weekly</changefreq>
<priority>1.00</priority>
</url>
<url>
<loc>http://designdeluge.com/about.php</loc>
<lastmod>2010-04-20</lastmod>
<changefreq>never</changefreq>
<priority>0.5</priority>
</url>
<?php
$entries = mysql_query("SELECT * FROM Entries");
while($row = mysql_fetch_assoc($entries)) {
$title = stripslashes($row['title']);
$date = date("Y-m-d", strtotime($row['timestamp']));
echo "
<url>
<loc>http://designdeluge.com/".$title."</loc>
<lastmod>".$date."</lastmod>
<changefreq>never</changefreq>
<priority>0.8</priority>
</url>";
} ?>
</urlset>
Run Code Online (Sandbox Code Playgroud)
问题是动态URL(例如从数据库中提取的URL)没有生成,站点地图也不会验证.谢谢!
编辑:现在,我只是想让代码本身工作.我把它设置为我本地测试服务器上的PHP文件.上面的代码正在使用中.现在,屏幕上或源中没有显示任何内容.我想我的语法错误,但我找不到任何东西.任何和所有的帮助表示赞赏!
编辑2:好的,我把它整理好了.显然,我不得不用PHP回应xml声明.最终代码发布在上面.谢谢你的帮助!
我的站点地图中有一个大约150K页面的站点.我正在使用站点地图索引生成器制作站点地图,但实际上,我需要一种缓存方式,因为在我的服务器上构建每个1000个链接的150个站点地图是残酷的.[1]
我可以用memcached缓存这些站点地图页面中的每一个,这是我在网站上的其他地方使用的...但是,这是很多站点地图,它将完全填充memcached ....所以这不起作用.
我认为我需要的是一种使用数据库作为缓存的方法,并且只在它们发生变化时生成它们(由于站点地图索引意味着只更改最新的几个站点地图页面,因为休息总是一样的.)[2]但是,尽管我可以说,我只能使用django的一个缓存后端.
如何在不杀死我的数据库或memcached的情况下为Google提供这些站点地图?
有什么想法吗?
[1]我将其限制为每个站点地图页面的1,000个链接,因为生成最多50,000个链接,就是没有发生.
[2]例如,如果我有sitemap.xml?page = 1,page = 2 ... sitemap.xml?page = 50,我只需要更改sitemap.xml?page = 50,直到它满了1,000为止链接,然后我几乎可以永远,并专注于第51页,直到它已满,永远缓存,等等.
编辑,2012-05-12:这仍然是一个问题,我终于放弃了Django的站点地图框架后使用文件缓存大约一年.相反,我现在使用Solr在一个非常简单的视图中生成我需要的链接,然后我将它们传递给Django模板.这极大地简化了我的站点地图,使它们表现得很好,截至目前我已经达到了大约2,250,000个链接.如果你想这样做,只需查看站点地图模板 - 这一切都非常明显.您可以在此处查看此代码:https://bitbucket.org/mlissner/search-and-awareness-platform-courtlistener/src/tip/alert/casepage/sitemap.py
我正在创建一个应用程序,sitemap.xml每次在网站上添加或更新新内容时,该应用程序都会自动更新.
根据Google的最佳做法,<lastmod></lastmod>标记的格式应如下所示:
<lastmod>2011-06-27T19:34:00+01:00</lastmod>
我的问题涉及时间格式化本身.我理解这一2011-06-27T19:34:00部分.我不明白的是+01:00,我假设的是+/- UTC.
这是正确的假设吗?
我的时区表如下所示:

因此,如果该网站位于#4阿富汗,那么正确的时间将是:
2011-06-27T19:34:00+04:00
如果该网站位于#6阿拉斯加标准时间,那么正确的时间将是: 2011-06-27T19:34:00-09:00
我的假设是正确的还是我没有正确理解+01:00?
我应该将PDF添加到我的XML站点地图吗?
我想知道Google是否会抓取PDF.
我按照django网站上的站点地图激活步骤,但我不断收到"TemplateDoesNotExist"错误.也许我是误解,但不是应该生成页面的genericview?
########### url.py #############################3
.........
from django.contrib.sitemaps import FlatPageSitemap, GenericSitemap
........
........
info_dict = {
'queryset': Bookmark.objects.all(),
'date_field': 'added'
}
sitemaps = {
'bookmarks': GenericSitemap(info_dict, changefreq = 'never', priority=0.6),
}
urlpatterns = patterns('',
.............
url(r'^$', 'microblogging.views.public', name="home"),
(r'^sitemap.xml$', 'django.contrib.sitemaps.views.sitemap', {'sitemaps': sitemaps}),
.............
)
if settings.SERVE_MEDIA:
urlpatterns += patterns('',
(r'^site_media/(?P<path>.*)$', 'misc.views.serve')
)
############# error #############################
TemplateDoesNotExist at /sitemap.xml
sitemap.xml
Request Method: GET
Request URL: http://localhost:8000/sitemap.xml
Exception Type: TemplateDoesNotExist
Exception Value:
sitemap.xml
Exception Location: /usr/lib/python2.5/site-packages/django/template/loader.py in find_template_source, line 73
Python Executable: /usr/bin/python2.5 …Run Code Online (Sandbox Code Playgroud) 我有一个SitemapActionResult覆盖了ActionResult,并在点击http://www.sprelle.no/Home/SiteMap时提供了一个SEO sitemap.xml .到现在为止还挺好.
不过,我想要的是在Google访问/sitemap.xml时提供sitemap.xml.为了实现这一点,我需要一个看到"sitemap.xml"并指向/ Home/Sitemap的路线.
如何创建此映射(在Routes表中)?
我有一个(简单的)站点地图,我试图找出为什么某个子菜单始终可见.
<?xml version="1.0" encoding="utf-8" ?>
<siteMap xmlns="http://schemas.microsoft.com/AspNet/SiteMap-File-1.0" >
<siteMapNode url="~/Login.aspx" title="Home" description="RivWorks" roles="*">
<siteMapNode url="" title="Dashboard" description="" roles="campaigns, auto_negotiation">
<siteMapNode url="CampaignBuilder.aspx" title="Campaign Manager" description="Manage your campaign settings" roles="campaigns" />
<siteMapNode url="ProductManager.aspx" title="Negotiation Manager" description="Manage your product and negotiation settings" roles="auto_negotiation" />
</siteMapNode>
<siteMapNode url="" title="Support Options" description="" roles="customers, customer_super, riv_admins, riv_super">
<siteMapNode url="ChangePassword.aspx" title="Change Password" description="" roles="customers, customer_super, riv_admins, riv_super" />
<siteMapNode url="http://rivworks.zendesk.com/requests/anonymous/new" title="Submit a Support Ticket" description="" roles="customers, customer_super, riv_admins, riv_super" />
<siteMapNode url="http://rivworks.zendesk.com/forums/49919/entries" title="Tips & Tricks" …Run Code Online (Sandbox Code Playgroud) 我有列表页面,在网址上采用页面参数,如下所示:
http://www.domain.com/foo/bar/?page=7
Run Code Online (Sandbox Code Playgroud)
我应该只包含没有参数的URL,还是应该列出我的sitemap.xml中的所有页面?
分页内容是列表,就像索引一样.因此,他们的内容也(详细地)在详细页面中找到.但这些分页的是获取详细信息页面的唯一方法.
我的Google站点地图通过XSLT很好地呈现,而没有<urlset>元素中的xmlns ="http://www.sitemaps.org/schemas/sitemap/0.9",但是当包含时,我的foreach语句不起作用,并且没有任何渲染在模板中.我的代码如下.谢谢你的帮助.
XML
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>{site_url}</loc>
<lastmod>{current_time format="%Y-%m-%d"}</lastmod>
<changefreq>monthly</changefreq>
<priority>0.5</priority>
</url>
</urlset>
Run Code Online (Sandbox Code Playgroud)
XSL
<xsl:template match="/">
<html>
<body>
<h2>Sitemap</h2>
<table border="1">
<tr bgcolor="#9acd32">
<th>Location</th>
<th>Last Modified</th>
<th>Update Frequency</th>
<th>Priority</th>
</tr>
<xsl:for-each select="urlset/url">
<tr>
<td><xsl:value-of select="loc"/></td>
<td><xsl:value-of select="lastmod"/></td>
<td><xsl:value-of select="changefreq"/></td>
<td><xsl:value-of select="priority"/></td>
</tr>
</xsl:for-each>
</table>
</body>
</html>
Run Code Online (Sandbox Code Playgroud) sitemap ×10
xml ×3
django ×2
asp.net ×1
asp.net-mvc ×1
caching ×1
memcached ×1
optimization ×1
pagination ×1
pdf ×1
php ×1
seo ×1
sitemap.xml ×1
xslt ×1