Skip to content

Date Range Filter Options#

Example#

The date range of the SitemapFilter is a powerful way to control which URLs are submitted to IndexNow based on their <lastmod> date. This is particularly useful for ensuring that only relevant and recent content is submitted.

Let's image that we have a sitemap with three URLs, each with different last modified dates:

sitemap.xml
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
    <url>
        <loc>https://example.com</loc>
        <lastmod>2025-01-01</lastmod>
        <changefreq>always</changefreq>
        <priority>1.0</priority>
    </url>
    <url>
        <loc>https://example.com/page1</loc>
        <lastmod>2025-02-01</lastmod>
        <changefreq>hourly</changefreq>
        <priority>0.8</priority>
    </url>
    <url>
        <loc>https://example.com/page2</loc>
        <lastmod>2025-03-01</lastmod>
        <changefreq>daily</changefreq>
        <priority>0.5</priority>
    </url>
</urlset>

Using the LaterThanAndIncluding date range, we can target any URLs with a last modified date of March 1, 2025 or later:

Python
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
from datetime import datetime
from index_now import LaterThanAndIncluding, SitemapFilter, submit_sitemap_to_index_now, IndexNowAuthentication

march_2025_or_later = LaterThanAndIncluding(datetime(2025, 3, 1))
filter = SitemapFilter(date_range=march_2025_or_later)

authentication = IndexNowAuthentication(
    host="example.com",
    api_key="a1b2c3d4",
    api_key_location="https://example.com/a1b2c3d4.txt",
)

submit_sitemap_to_index_now(
    authentication, "https://example.com/sitemap.xml", filter)

This will effectively filter out URLs outside of this date range, ensuring that only the URL https://example.com/page2 is submitted to IndexNow.

Documentation#

DateRange#

A date range for filtering sitemap URLs.

Parameters:

Name Type Description Default
start datetime

The start date of the range.

required
end datetime

The end date of the range.

required
Example
Python
1
2
3
4
5
6
7
8
9
from datetime import datetime
from index_now import DateRange, SitemapFilter

january_2025 = DateRange(
    start=datetime(2025, 1, 1),
    end=datetime(2025, 1, 31),
)

filter = SitemapFilter(date_range=january_2025)

Between#

A date range between two not included dates for filtering sitemap URLs.

Parameters:

Name Type Description Default
start datetime

The start date of the range (not included in evaluation).

required
end datetime

The end date of the range (not included in evaluation).

required
Example
Python
1
2
3
4
5
6
7
8
9
from datetime import datetime
from index_now import Between, SitemapFilter

january_2_to_30_2025 = Between(
    start=datetime(2025, 1, 1),
    end=datetime(2025, 1, 31),
)

filter = SitemapFilter(date_range=january_2_to_30_2025)

Today#

Today as range for filtering sitemap URLs.

Example
Python
1
2
3
4
5
from index_now import Today, SitemapFilter

today = Today()

filter = SitemapFilter(date_range=today)

Yesterday#

Yesterday as range for filtering sitemap URLs.

Example
Python
1
2
3
4
5
from index_now import Yesterday, SitemapFilter

yesterday = Yesterday()

filter = SitemapFilter(date_range=yesterday)

Day#

A specific date for filtering sitemap URLs.

Parameters:

Name Type Description Default
day datetime

The specific day to filter sitemap URLs.

required
Example
Python
1
2
3
4
5
6
from datetime import datetime
from index_now import Day, SitemapFilter

new_year_2025 = Day(datetime(2025, 1, 1))

filter = SitemapFilter(date_range=new_year_2025)

DaysAgo#

A number of days ago from today as range for filtering sitemap URLs.

Parameters:

Name Type Description Default
days_ago int

The number of days ago to filter sitemap URLs.

required
Example
Python
1
2
3
4
5
from index_now import DaysAgo, SitemapFilter

two_days_ago = DaysAgo(2)

filter = SitemapFilter(date_range=two_days_ago)

LaterThan#

Period of time after a specific date as range for filtering sitemap URLs.

Parameters:

Name Type Description Default
date datetime

The specific date to filter sitemap URLs.

required
Example
Python
1
2
3
4
5
6
from datetime import datetime
from index_now import LaterThan, SitemapFilter

after_new_year_2025 = LaterThan(datetime(2025, 1, 1))

filter = SitemapFilter(date_range=after_new_year_2025)

LaterThanAndIncluding#

Period of time after and including a specific date as range for filtering sitemap URLs.

Parameters:

Name Type Description Default
date datetime

The specific date to filter sitemap URLs.

required
Example
Python
1
2
3
4
5
6
from datetime import datetime
from index_now import LaterThanAndIncluding, SitemapFilter

new_year_2025_or_later = LaterThanAndIncluding(datetime(2025, 1, 1))

filter = SitemapFilter(date_range=new_year_2025_or_later)

EarlierThan#

Period of time before a specific date as range for filtering sitemap URLs.

Parameters:

Name Type Description Default
date datetime

The specific date to filter sitemap URLs.

required
Example
Python
1
2
3
4
5
6
from datetime import datetime
from index_now import EarlierThan, SitemapFilter

before_2025 = EarlierThan(datetime(2025, 1, 1))

filter = SitemapFilter(date_range=before_2025)

EarlierThanAndIncluding#

Period of time before and including a specific date as range for filtering sitemap URLs.

Parameters:

Name Type Description Default
date datetime

The specific date to filter sitemap URLs.

required
Example
Python
1
2
3
4
5
6
from datetime import datetime
from index_now import EarlierThanAndIncluding, SitemapFilter

new_year_2025_or_before = EarlierThanAndIncluding(datetime(2025, 1, 1))

filter = SitemapFilter(date_range=new_year_2025_or_before)