E1 · Three dates
20 minPick 3 URLs from your sitemap and compare each lastmod with the date of that page's last real change.
Done when: the 3 dates match, or you noted where the generator gets the date and what to change.
Lesson 5 · 15 min
The sitemap is the list of pages you hand to the search engine. It only helps if it tells the truth: the pages that exist and the date each one actually changed. If your site has versions in other languages, hreflang says which is which, and that opens up a whole market.
Start the lesson
Goal: generate the sitemap from the same data as the pages, with the real change date and reciprocal hreflang when there is a translation.
Tap each block.
A hand-written sitemap goes out of date on day one. A sitemap generated from the data doesn't lie.
Tap each step.
Many website platforms generate the sitemap on their own. Find out where it's generated and what data it comes from.
If the sitemap was written by hand, replacing it is the first thing to do.
Open the sitemap and look at three URLs. Does the date match the last real change to that page?
If every date is today, the generator is using the build time.
The generator takes the date from the catalog, with the comment "never use the build time" in the code.
For each translated page: the PT version points to EN and ES, and each one points back. Include x-default.
It can go in each page's HTML or in the sitemap. The X-ray shows both: the page's hreflang line and the count in the sitemap.
In Spanish, the competition is usually smaller. Translate only the text; structure, images, and code are reused.
The page /es/aprender-inteligencia-artificial/ was indexed on 10/03/2026. The following week it already had 5 to 10 impressions on each Spanish query, in positions 29 to 61.
The sitemap format with hreflang, the generator pattern, and the check command.
<?xml version="1.0" encoding="UTF-8"?> <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:xhtml="http://www.w3.org/1999/xhtml"> <url> <loc>https://www.seusite.com/</loc> <xhtml:link rel="alternate" hreflang="pt-BR" href="https://www.seusite.com/" /> <xhtml:link rel="alternate" hreflang="en" href="https://www.seusite.com/en/" /> <xhtml:link rel="alternate" hreflang="es" href="https://www.seusite.com/es/" /> <xhtml:link rel="alternate" hreflang="x-default" href="https://www.seusite.com/" /> <lastmod><yyyy-mm-dd of the last change></lastmod> </url> </urlset>
// the date comes from the data; never the build time
const languages = { 'pt-BR': `${SITE_URL}/`, en: `${SITE_URL}/en/`, es: `${SITE_URL}/es/`, 'x-default': `${SITE_URL}/` }
return ['/', '/en/', '/es/'].map(path => ({
url: `${SITE_URL}${path}`,
lastModified: latest,
alternates: { languages },
}))x=$(curl -4 -m 20 -s https://www.seusite.com/sitemap.xml) echo "$(echo "$x" | grep -c '<loc>') URLs, $(echo "$x" | grep -c 'hreflang') hreflang annotations" echo "$x" | grep -oE '<lastmod>[^<]*' | sort | uniq -c | sort -rn | head
First URL in the www.inema.club sitemap on 10/19/2026:
<loc>https://www.inema.club/</loc> <xhtml:link rel="alternate" hreflang="pt-BR" href="https://www.inema.club/" /> <xhtml:link rel="alternate" hreflang="en" href="https://www.inema.club/en/" /> <xhtml:link rel="alternate" hreflang="es" href="https://www.inema.club/es/" /> <xhtml:link rel="alternate" hreflang="x-default" href="https://www.inema.club/" /> <lastmod>2026-10-19</lastmod>
The home page changes when the catalog changes, so its date is the catalog's date.
Use the Sitemaps blocks from your raio-x.txt.
Pick 3 URLs from your sitemap and compare each lastmod with the date of that page's last real change.
Done when: the 3 dates match, or you noted where the generator gets the date and what to change.
If your site has translations, open a page in each language and check that each one lists all the versions. With no translation, write "not applicable" and the language that would make sense.
Done when: the round trip was checked across the versions, or the "not applicable" is noted with the reason.
The explanation appears after you answer.
Question 1 of 4
All the URLs in your sitemap have today's date. What does that suggest?skill
Question 2 of 4
Where does hreflang go?
Question 3 of 4
Why generate the sitemap from the same data as the pages?
Question 4 of 4
What does the INEMA Spanish page case show?
Pick an answer. The explanation appears after you try.