#24736 closed Cleanup/optimization (fixed)
Document how to customize the 50000 item limit in sitemaps
Reported by: | Rich Jones | Owned by: | Abhaya Agarwal |
---|---|---|---|
Component: | Documentation | Version: | dev |
Severity: | Normal | Keywords: | sitemap |
Cc: | Triage Stage: | Accepted | |
Has patch: | yes | Needs documentation: | no |
Needs tests: | no | Patch needs improvement: | no |
Easy pickings: | yes | UI/UX: | no |
Description
Hey all!
I recently ran into an interesting and reasonably soluble problem. I've switched from using a static sitemap to Django's Sitemap framework. Now, my database has a ton of items to map (>200,000), so generating the sitemap actually takes quite a long time. Unfortunately, it takes such a long time that my web server actually times out waiting for the request, which is obviously a big problem.
Rather than deal with adding exceptions in my web server or manually creating static sitemaps, I'd greatly prefer to lower the number of items on each page and have a larger number of entries on the index page.
Currently, the pagination uses a magic number of 50000, which is the maximum number of items recommended by Google. That line is here: https://github.com/django/django/blob/c2d5f2903cfaef4f8b17d86f4db706b61073a471/django/contrib/sitemaps/__init__.py#L50
I'd greatly prefer it if this was available as a configurable setting.
This would be a very simple, 2-line fix:
One to add a
SITEMAP_MAX_ITEMS = 50000
to Django's default settings,and another change the line linked about to
limit = settings.SITEMAP_MAX_ITEMS
It's a small change, but this would be greatly useful to me and other Django sites with lots of items that use the Sitemap framework. In the meantime, I'm just going try to override default Sitemap object.
What do you guys think? Does this make sense to you?
Change History (9)
comment:1 by , 10 years ago
comment:2 by , 10 years ago
Thanks for submitting this issue and patch. However, I'm -1 on adding a global settings variable if you can just override limit
on your sitemap class much like protocol
: https://docs.djangoproject.com/en/1.8/ref/contrib/sitemaps/#django.contrib.sitemaps.Sitemap.protocol. Or am I missing something?
If we're pursuing this issue I'd prefer to document limit
as public API and mention that its value shouldn't exceed 50000.
comment:3 by , 10 years ago
Version: | 1.8 → master |
---|
comment:4 by , 10 years ago
Fine by me.. that's how I actually ended up solving the problem in my application. I think that makes more sense anyway.
comment:5 by , 10 years ago
Component: | contrib.sitemaps → Documentation |
---|---|
Summary: | Replace magic 50000 Sitemap item limit with customizable value → Document how to customize the 50000 item limit in sitemaps |
Triage Stage: | Unreviewed → Accepted |
I agree as well. Requalifying as a documentation ticket and accepting.
comment:6 by , 10 years ago
Owner: | changed from | to
---|---|
Status: | new → assigned |
comment:7 by , 10 years ago
Has patch: | set |
---|---|
Type: | New feature → Cleanup/optimization |
Pull request submitted for your gracious consideration.