This document explores what values beyond the basic URL help Google understand and index content, and what the "best possible outcome" sitemap looks like for optimal search visibility.
Key Finding: Google ignores <changefreq> and <priority> values. The only universally valuable optional field is <lastmod>, and only if it's accurate. However, sitemap extensions (image, video, hreflang) provide significant value for rich content and international sites.
| Field | Status | Notes |
|---|---|---|
<loc> | Required | The canonical URL - must be accurate and accessible |
<lastmod> | Conditional | Used IF consistently accurate; ignored if manipulated |
| Field | Status | Notes |
|---|---|---|
<changefreq> | Ignored | Google has publicly confirmed they ignore this |
<priority> | Ignored | Google has publicly confirmed they ignore this |
Source: Google Search Central Documentation
states:
"Google ignores
<priority>and<changefreq>values."
<lastmod> Matters (When Accurate)Google's documentation states:
"The
<lastmod>value should reflect the date and time of the last significant update to the page. For example, an update to the main content, the structured data, or links on the page is generally considered significant, however an update to the copyright date is not."
Critical Warning: Google will stop trusting <lastmod> if:
Dates are artificially inflated to appear "fresh"
Dates don't match actual content changes
Dates are updated without meaningful content changes
<lastmod>** as a key freshness signal for both traditional SEO and AI-based content evaluation.While the basic sitemap fields are limited, extensions provide substantial benefits for rich content discovery.
Purpose: Help Google discover images that might not be found through normal crawling (e.g., JavaScript-loaded images, images in carousels).
Namespace:
xmlns:image="http://www.google.com/schemas/sitemap-image/1.1"
Example:
<url>
<loc>https://example.com/wiki/MainPage</loc>
<lastmod>2024-11-28</lastmod>
<image:image>
<image:loc>https://example.com/attach/MainPage/diagram.png</image:loc>
</image:image>
<image:image>
<image:loc>https://example.com/attach/MainPage/photo.jpg</image:loc>
</image:image>
</url>
Benefits:
Deprecated Tags: Google no longer uses <image:caption>, <image:geo_location>, <image:title>, or <image:license>. Only <image:loc> is processed.
Source: Google Image Sitemaps Documentation
Purpose: Enable rich video search results and Video tab appearances.
Namespace:
xmlns:video="http://www.google.com/schemas/sitemap-video/1.1"
Required Tags:
<url>
<loc>https://example.com/wiki/TutorialPage</loc>
<video:video>
<video:thumbnail_loc>https://example.com/thumbnails/tutorial.jpg</video:thumbnail_loc>
<video:title>How to Use the Wiki</video:title>
<video:description>A comprehensive tutorial on wiki editing.</video:description>
<video:content_loc>https://example.com/videos/tutorial.mp4</video:content_loc>
<!-- OR -->
<video:player_loc>https://youtube.com/embed/xxxxx</video:player_loc>
</video:video>
</url>
Optional But Valuable Tags:
<video:duration>600</video:duration> <!-- Seconds -->
<video:publication_date>2024-11-01</video:publication_date>
<video:family_friendly>yes</video:family_friendly>
<video:live>no</video:live>
Benefits:
Source: XML Sitemaps Generator - Video Sitemap
Purpose: Rapid indexing for news content (articles published within last 48 hours).
Namespace:
xmlns:news="http://www.google.com/schemas/sitemap-news/0.9"
Example:
<url>
<loc>https://example.com/wiki/BreakingNews</loc>
<news:news>
<news:publication>
<news:name>Example Wiki News</news:name>
<news:language>en</news:language>
</news:publication>
<news:publication_date>2024-11-28T14:30:00+00:00</news:publication_date>
<news:title>Major Update Announcement</news:title>
</news:news>
</url>
Requirements:
<news:news> metadata
Benefits:
Source: Google News Sitemap Documentation
Purpose: Tell Google about language and regional variations of pages to serve the right version to users.
Namespace:
xmlns:xhtml="http://www.w3.org/1999/xhtml"
Example:
<url>
<loc>https://example.com/wiki/MainPage</loc>
<xhtml:link rel="alternate" hreflang="en" href="https://example.com/wiki/MainPage"/>
<xhtml:link rel="alternate" hreflang="de" href="https://example.com/wiki/de/MainPage"/>
<xhtml:link rel="alternate" hreflang="fr" href="https://example.com/wiki/fr/MainPage"/>
<xhtml:link rel="alternate" hreflang="x-default" href="https://example.com/wiki/MainPage"/>
</url>
Critical Requirements:
Language Code Format:
en, de, fren-US, en-GB, de-ATBenefits:
Source: Google Localized Versions Documentation
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
xmlns:image="http://www.google.com/schemas/sitemap-image/1.1"
xmlns:video="http://www.google.com/schemas/sitemap-video/1.1"
xmlns:xhtml="http://www.w3.org/1999/xhtml">
<!-- Main page with images and language alternates -->
<url>
<loc>https://wiki.example.com/MainPage</loc>
<lastmod>2024-11-28</lastmod>
<!-- Language alternates -->
<xhtml:link rel="alternate" hreflang="en" href="https://wiki.example.com/MainPage"/>
<xhtml:link rel="alternate" hreflang="de" href="https://wiki.example.com/de/MainPage"/>
<xhtml:link rel="alternate" hreflang="x-default" href="https://wiki.example.com/MainPage"/>
<!-- Images on this page -->
<image:image>
<image:loc>https://wiki.example.com/attach/MainPage/welcome-banner.png</image:loc>
</image:image>
</url>
<!-- Tutorial page with embedded video -->
<url>
<loc>https://wiki.example.com/GettingStarted</loc>
<lastmod>2024-11-15</lastmod>
<video:video>
<video:thumbnail_loc>https://wiki.example.com/thumbnails/getting-started.jpg</video:thumbnail_loc>
<video:title>Getting Started with Our Wiki</video:title>
<video:description>Learn the basics of navigating and editing wiki pages.</video:description>
<video:player_loc>https://www.youtube.com/embed/abc123</video:player_loc>
<video:duration>480</video:duration>
<video:publication_date>2024-11-15</video:publication_date>
</video:video>
<image:image>
<image:loc>https://wiki.example.com/attach/GettingStarted/screenshot1.png</image:loc>
</image:image>
<image:image>
<image:loc>https://wiki.example.com/attach/GettingStarted/screenshot2.png</image:loc>
</image:image>
</url>
<!-- Regular content page -->
<url>
<loc>https://wiki.example.com/Documentation</loc>
<lastmod>2024-10-20</lastmod>
</url>
</urlset>
Do NOT include in sitemap:
noindex meta tagsFor Wikantik specifically, exclude:
| Limit | Value |
|---|---|
| Maximum URLs per sitemap | 50,000 |
| Maximum uncompressed size | 50 MB |
| Recommended for performance | < 10,000 URLs |
For larger sites: Use a sitemap index file:
<?xml version="1.0" encoding="UTF-8"?>
<sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<sitemap>
<loc>https://wiki.example.com/sitemap-pages.xml</loc>
<lastmod>2024-11-28</lastmod>
</sitemap>
<sitemap>
<loc>https://wiki.example.com/sitemap-attachments.xml</loc>
<lastmod>2024-11-25</lastmod>
</sitemap>
</sitemapindex>
Use gzip compression for large sitemaps:
sitemap.xml.gzUse ISO 8601 format:
2024-11-282024-11-28T14:30:00+00:002024-11-28T14:30:00ZEnsure consistency:
<!-- GOOD -->
<loc>https://wiki.example.com/Documentation</loc>
<!-- BAD - inconsistent -->
<loc>http://www.wiki.example.com/Documentation/</loc>
Google Search Console (recommended)
robots.txt reference
Sitemap: https://wiki.example.com/sitemap.xml
Ping URL (deprecated but still works)
https://www.google.com/ping?sitemap=https://wiki.example.com/sitemap.xml
The existing SitemapServlet.java (wikantik-main/src/main/java/org/apache/wiki/ui/SitemapServlet.java) generates:
<url>
<loc>...</loc>
<lastmod>...</lastmod>
<changefreq>...</changefreq> <!-- Google ignores -->
<priority>...</priority> <!-- Google ignores -->
</url>
What it does well:
lastmod from page metadataOpportunities for improvement:
<changefreq> and <priority> (wasted bytes)// Remove these lines (Google ignores them)
// out.println( " <changefreq>" + determineChangeFreq( page ) + "</changefreq>" );
// out.println( " <priority>" + determinePriority( page ) + "</priority>" );
// Add namespace
out.println( "<urlset xmlns=\"http://www.sitemaps.org/schemas/sitemap/0.9\"" );
out.println( " xmlns:image=\"http://www.google.com/schemas/sitemap-image/1.1\">" );
// For each page, include attachments
AttachmentManager attMgr = m_engine.getManager( AttachmentManager.class );
List<Attachment> attachments = attMgr.listAttachments( page );
for ( Attachment att : attachments ) {
if ( isImageAttachment( att ) ) {
out.println( " <image:image>" );
out.println( " <image:loc>" + escapeXml( attachmentUrl ) + "</image:loc>" );
out.println( " </image:image>" );
}
}
// If wiki has language variants (e.g., /de/, /fr/ prefixes)
out.println( " <xhtml:link rel=\"alternate\" hreflang=\"en\" " +
"href=\"" + escapeXml( englishUrl ) + "\"/>" );
After implementing an optimized sitemap, monitor:
| Metric | Goal |
|---|---|
| Indexed pages | Should match or approach submitted URLs |
| Coverage errors | Should decrease over time |
| Crawl stats | Efficient crawling, no wasted requests |
| Rich results | Increased if using image/video extensions |
With basic optimized sitemap:
lastmod signals improve crawl efficiencyWith image extension:
With video extension:
With hreflang:
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
xmlns:image="http://www.google.com/schemas/sitemap-image/1.1"
xmlns:xhtml="http://www.w3.org/1999/xhtml">
<url>
<loc>{canonical URL}</loc>
<lastmod>{accurate ISO 8601 date}</lastmod>
<!-- If page has images -->
<image:image>
<image:loc>{image URL}</image:loc>
</image:image>
<!-- If page has language variants -->
<xhtml:link rel="alternate" hreflang="{lang}" href="{URL}"/>
</url>
</urlset>
<changefreq> - Google ignores it<priority> - Google ignores itThe ideal sitemap is:







