<?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">
  <url><loc>https://pageutil.com/</loc><lastmod>2026-10-05</lastmod></url>
  <url><loc>https://pageutil.com/guides/</loc><lastmod>2026-10-05</lastmod></url>
  <url><loc>https://pageutil.com/privacy/</loc><lastmod>2026-10-05</lastmod></url>
  <url><loc>https://pageutil.com/about/</loc><lastmod>2026-10-05</lastmod></url>
  <url><loc>https://pageutil.com/network-tools/</loc><lastmod>2026-10-05</lastmod></url>
  <url><loc>https://pageutil.com/security-tools/</loc><lastmod>2026-10-05</lastmod></url>
  <url><loc>https://pageutil.com/formatters/</loc><lastmod>2026-10-05</lastmod></url>
  <url><loc>https://pageutil.com/text-tools/</loc><lastmod>2026-10-05</lastmod></url>
  <url><loc>https://pageutil.com/media-tools/</loc><lastmod>2026-10-05</lastmod></url>
  <url><loc>https://pageutil.com/calculators/</loc><lastmod>2026-10-05</lastmod></url>
  <url><loc>https://pageutil.com/time-tools/</loc><lastmod>2026-10-05</lastmod></url>
  <url><loc>https://pageutil.com/guides/check-if-a-website-is-down/</loc><lastmod>2026-10-05</lastmod><image:image><image:loc>https://pageutil.com/assets/guides/edge-vs-visitor.svg</image:loc><image:title>A visitor browser and a Cloudflare edge check can reach the origin by different paths.</image:title><image:caption>The up or down result is the Cloudflare edge path, which can differ from the path the visitor browser takes to the origin.</image:caption></image:image></url>
  <url><loc>https://pageutil.com/guides/tell-an-outage-from-a-404/</loc><lastmod>2026-10-05</lastmod><image:image><image:loc>https://pageutil.com/assets/guides/status-classes.svg</image:loc><image:title>HTTP classes: 2xx and 3xx are up, 4xx means the host answered, and 5xx is server-side.</image:title><image:caption>2xx and 3xx are up, a 4xx means the host answered, and 5xx is server-side.</image:caption></image:image></url>
  <url><loc>https://pageutil.com/guides/read-a-slow-response-time/</loc><lastmod>2026-10-05</lastmod><image:image><image:loc>https://pageutil.com/assets/guides/edge-timing.svg</image:loc><image:title>The millisecond figure is time-to-response from Cloudflare, not full page load.</image:title><image:caption>The millisecond figure is time-to-response from Cloudflare, and full page load is not measured.</image:caption></image:image></url>
  <url><loc>https://pageutil.com/guides/see-the-final-url-after-a-check/</loc><lastmod>2026-10-05</lastmod><image:image><image:loc>https://pageutil.com/assets/guides/final-url.svg</image:loc><image:title>The status belongs to the final URL, and a different host means that host was measured.</image:title><image:caption>The status belongs to the final URL, so a different host means that host was measured.</image:caption></image:image></url>
  <url><loc>https://pageutil.com/guides/check-a-site-that-blocks-cloudflare/</loc><lastmod>2026-10-05</lastmod><image:image><image:loc>https://pageutil.com/assets/guides/edge-vs-visitor.svg</image:loc><image:title>A visitor browser and a Cloudflare edge check can reach the origin by different paths.</image:title><image:caption>A failure at Cloudflare is the edge path, and this browser can reach the origin by a different path.</image:caption></image:image></url>
  <url><loc>https://pageutil.com/guides/look-up-what-an-http-status-code-means/</loc><lastmod>2026-10-05</lastmod><image:image><image:loc>https://pageutil.com/assets/guides/status-classes.svg</image:loc><image:title>HTTP classes: 2xx and 3xx are up, 4xx means the host answered, and 5xx is server-side.</image:title><image:caption>1xx is informational, 2xx and 3xx are up, a 4xx means the host answered, and 5xx is server-side.</image:caption></image:image></url>
  <url><loc>https://pageutil.com/guides/tell-a-301-from-a-302/</loc><lastmod>2026-10-05</lastmod><image:image><image:loc>https://pageutil.com/assets/guides/redirect-codes.svg</image:loc><image:title>301 and 308 are permanent, 302 and 307 are temporary, and 303 means see other.</image:title><image:caption>301 and 308 are permanent, 302 and 307 are temporary, and 303 means see other, usually after a form.</image:caption></image:image></url>
  <url><loc>https://pageutil.com/guides/read-the-response-headers-for-a-url/</loc><lastmod>2026-10-05</lastmod><image:image><image:loc>https://pageutil.com/assets/guides/header-read-order.svg</image:loc><image:title>Read status and final URL first, then the header list. A missing security header was not sent.</image:title><image:caption>Status and final URL come first, then the header list, and a missing security header was not sent.</image:caption></image:image></url>
  <url><loc>https://pageutil.com/guides/trace-a-redirect-chain/</loc><lastmod>2026-10-05</lastmod><image:image><image:loc>https://pageutil.com/assets/guides/redirect-hops.svg</image:loc><image:title>Each redirect hop has a status, a URL, and a Location, and the chain stops for a reason.</image:title><image:caption>Each hop has a status, a URL, and a Location, and the chain stops because it finished, looped, or hit the hop limit.</image:caption></image:image></url>
  <url><loc>https://pageutil.com/guides/spot-a-redirect-loop/</loc><lastmod>2026-10-05</lastmod><image:image><image:loc>https://pageutil.com/assets/guides/redirect-loop.svg</image:loc><image:title>A redirect loop is a repeated URL. Compare path, trailing slash, and http against https.</image:title><image:caption>A redirect loop is the same URL twice, so compare path, trailing slash, and http against https.</image:caption></image:image></url>
  <url><loc>https://pageutil.com/guides/check-whether-a-public-port-answers/</loc><lastmod>2026-10-05</lastmod><image:image><image:loc>https://pageutil.com/assets/guides/port-connect.svg</image:loc><image:title>One public TCP connect can succeed, time out, or reset. A timeout is not proof the port is closed.</image:title><image:caption>One connect() can be reachable, a timeout, or a reset, and a timeout or reset is not proof the port is closed.</image:caption></image:image></url>
  <url><loc>https://pageutil.com/guides/read-a-port-check-timeout/</loc><lastmod>2026-10-05</lastmod><image:image><image:loc>https://pageutil.com/assets/guides/port-connect.svg</image:loc><image:title>One public TCP connect can succeed, time out, or reset. A timeout is not proof the port is closed.</image:title><image:caption>A timeout is no completed handshake from Cloudflare, and it is not proof the port is closed.</image:caption></image:image></url>
  <url><loc>https://pageutil.com/guides/see-if-https-answers-before-you-trust-the-certificate/</loc><lastmod>2026-10-05</lastmod><image:image><image:loc>https://pageutil.com/assets/guides/https-layers.svg</image:loc><image:title>HTTPS health is the URL response, then the certificate, then a TCP handshake on 443.</image:title><image:caption>The URL response comes first, then the certificate issuer and days left, then a TCP handshake on 443.</image:caption></image:image></url>
  <url><loc>https://pageutil.com/guides/confirm-a-site-is-up-but-unusable/</loc><lastmod>2026-10-05</lastmod><image:image><image:loc>https://pageutil.com/assets/guides/up-but-unusable.svg</image:loc><image:title>A 200, a 401 or 403, and a redirect to an error host can all be up.</image:title><image:caption>A 200 with a tiny body, a 401 or 403, and a redirect to an error host can all be up.</image:caption></image:image></url>
  <url><loc>https://pageutil.com/guides/look-up-a-domains-a-record/</loc><lastmod>2026-10-05</lastmod><image:image><image:loc>https://pageutil.com/assets/guides/dns-answers.svg</image:loc><image:title>NOERROR with answers, NXDOMAIN, and NOERROR with zero answers are different DNS results.</image:title><image:caption>NOERROR with answers, NXDOMAIN, and NOERROR with zero answers are different, and TTL is seconds.</image:caption></image:image></url>
  <url><loc>https://pageutil.com/guides/check-whether-a-domain-has-ipv6/</loc><lastmod>2026-10-05</lastmod><image:image><image:loc>https://pageutil.com/assets/guides/dns-answers.svg</image:loc><image:title>NOERROR with answers, NXDOMAIN, and NOERROR with zero answers are different DNS results.</image:title><image:caption>AAAA is a separate query from A, so answers and zero answers are different DNS results.</image:caption></image:image></url>
  <url><loc>https://pageutil.com/guides/find-the-mail-servers-for-a-domain/</loc><lastmod>2026-10-05</lastmod><image:image><image:loc>https://pageutil.com/assets/guides/mx-priority.svg</image:loc><image:title>MX answers are a priority and a host. A lower number is preferred, and a dot target means no MX delivery.</image:title><image:caption>MX answers are a priority and a host, a lower number is preferred, and a dot target means no MX delivery.</image:caption></image:image></url>
  <url><loc>https://pageutil.com/guides/read-spf-and-verification-txt-records/</loc><lastmod>2026-10-05</lastmod><image:image><image:loc>https://pageutil.com/assets/guides/txt-spf.svg</image:loc><image:title>SPF is the TXT record that starts with v=spf1. Two SPF records on one name are a misconfiguration.</image:title><image:caption>SPF is the TXT record that starts with v=spf1, and a second SPF record on the same name is a misconfiguration.</image:caption></image:image></url>
  <url><loc>https://pageutil.com/guides/find-a-domains-nameservers/</loc><lastmod>2026-10-05</lastmod><image:image><image:loc>https://pageutil.com/assets/guides/ns-vs-rdap.svg</image:loc><image:title>DNS NS answers and RDAP nameservers can differ when the registry has not caught up.</image:title><image:caption>DNS NS answers and RDAP nameservers can differ when the registry has not caught up, or the name is a subdomain with its own NS.</image:caption></image:image></url>
  <url><loc>https://pageutil.com/guides/follow-a-cname-to-the-real-host/</loc><lastmod>2026-10-05</lastmod><image:image><image:loc>https://pageutil.com/assets/guides/cname-chain.svg</image:loc><image:title>A CNAME is a target name. The address is the A or AAAA on that target, and the certificate is for the original name.</image:title><image:caption>A CNAME is a target name, the address is the A or AAAA on that target, and the certificate is for the original name.</image:caption></image:image></url>
  <url><loc>https://pageutil.com/guides/read-dns-ttl-before-you-change-records/</loc><lastmod>2026-10-05</lastmod><image:image><image:loc>https://pageutil.com/assets/guides/ttl-cutover.svg</image:loc><image:title>TTL is seconds a resolver may keep the old answer. Lower it before the change.</image:title><image:caption>TTL is seconds a resolver may keep the old answer, so lower it before the change.</image:caption></image:image></url>
  <url><loc>https://pageutil.com/guides/check-who-registered-a-domain/</loc><lastmod>2026-10-05</lastmod><image:image><image:loc>https://pageutil.com/assets/guides/rdap-card.svg</image:loc><image:title>RDAP shows registrar, statuses, dates, and nameservers. Redacted contacts are normal.</image:title><image:caption>RDAP shows the registrar, statuses, dates, and nameservers, and redacted contacts are normal.</image:caption></image:image></url>
  <url><loc>https://pageutil.com/guides/see-when-a-domain-expires/</loc><lastmod>2026-10-05</lastmod><image:image><image:loc>https://pageutil.com/assets/guides/two-clocks.svg</image:loc><image:title>Domain expiry and certificate days left are different dates.</image:title><image:caption>Domain expiry and certificate days left are different dates, and updated is not the expiry.</image:caption></image:image></url>
  <url><loc>https://pageutil.com/guides/read-a-domain-status-from-rdap/</loc><lastmod>2026-10-05</lastmod><image:image><image:loc>https://pageutil.com/assets/guides/rdap-status.svg</image:loc><image:title>clientHold and serverHold stop DNS. clientTransferProhibited only locks transfers.</image:title><image:caption>clientHold and serverHold stop DNS, and clientTransferProhibited only locks transfers.</image:caption></image:image></url>
  <url><loc>https://pageutil.com/guides/check-an-ssl-certificates-expiry-date/</loc><lastmod>2026-10-05</lastmod><image:image><image:loc>https://pageutil.com/assets/guides/cert-window.svg</image:loc><image:title>Certificate days left under 30 is the usual renewal window, and under 14 is urgent.</image:title><image:caption>Certificate days left under 30 is the usual renewal window, and under 14 is urgent, for the certificate Cloudflare sees.</image:caption></image:image></url>
  <url><loc>https://pageutil.com/guides/read-the-certificate-issuer/</loc><lastmod>2026-10-05</lastmod><image:image><image:loc>https://pageutil.com/assets/guides/cert-issuer.svg</image:loc><image:title>The issuer is the signing certificate, not the site brand.</image:title><image:caption>The issuer is the signing certificate, not the site brand, and expiry still belongs to this leaf.</image:caption></image:image></url>
  <url><loc>https://pageutil.com/guides/investigate-mail-that-never-arrives/</loc><lastmod>2026-10-05</lastmod><image:image><image:loc>https://pageutil.com/assets/guides/mail-checks.svg</image:loc><image:title>Mail checks here are address syntax, MX, and SPF. They do not see the mailbox.</image:title><image:caption>Mail checks here are address syntax, MX, and SPF, and they do not see the mailbox.</image:caption></image:image></url>
  <url><loc>https://pageutil.com/guides/prepare-a-domain-before-it-expires/</loc><lastmod>2026-10-05</lastmod><image:image><image:loc>https://pageutil.com/assets/guides/two-clocks.svg</image:loc><image:title>Domain expiry and certificate days left are different dates.</image:title><image:caption>Domain expiry and certificate days left are different dates, so write both down and do not assume they match.</image:caption></image:image></url>
  <url><loc>https://pageutil.com/guides/find-your-public-ip-address/</loc><lastmod>2026-10-05</lastmod><image:image><image:loc>https://pageutil.com/assets/guides/public-vs-lan.svg</image:loc><image:title>The address shown is the one Cloudflare saw. A 192.168 address is not that result.</image:title><image:caption>The address shown is the one Cloudflare saw, and a 192.168 address is not that result.</image:caption></image:image></url>
  <url><loc>https://pageutil.com/guides/tell-whether-you-are-on-ipv4-or-ipv6/</loc><lastmod>2026-10-05</lastmod><image:image><image:loc>https://pageutil.com/assets/guides/public-vs-lan.svg</image:loc><image:title>The address shown is the one Cloudflare saw. A 192.168 address is not that result.</image:title><image:caption>The address shown is the one Cloudflare saw, and four decimal groups or colon groups name only that address.</image:caption></image:image></url>
  <url><loc>https://pageutil.com/guides/read-your-approximate-location-from-your-ip/</loc><lastmod>2026-10-05</lastmod><image:image><image:loc>https://pageutil.com/assets/guides/geo-precision.svg</image:loc><image:title>Country is usually right, city may be the provider, and the page only describes this connection.</image:title><image:caption>Country is usually right, city may be the provider, and the page only describes this connection.</image:caption></image:image></url>
  <url><loc>https://pageutil.com/guides/see-which-network-you-are-on/</loc><lastmod>2026-10-05</lastmod><image:image><image:loc>https://pageutil.com/assets/guides/geo-precision.svg</image:loc><image:title>Country is usually right, city may be the provider, and the page only describes this connection.</image:title><image:caption>Country is usually right and city may be the provider, and this page will not geolocate a pasted address.</image:caption></image:image></url>
  <url><loc>https://pageutil.com/guides/parse-a-browser-user-agent-string/</loc><lastmod>2026-10-05</lastmod><image:image><image:loc>https://pageutil.com/assets/guides/ua-tokens.svg</image:loc><image:title>Browser and version come from user-agent tokens. The raw string is the source of truth.</image:title><image:caption>Browser and version come from user-agent tokens, and the raw string is the source of truth.</image:caption></image:image></url>
  <url><loc>https://pageutil.com/guides/read-a-support-tickets-client/</loc><lastmod>2026-10-05</lastmod><image:image><image:loc>https://pageutil.com/assets/guides/two-clients.svg</image:loc><image:title>The parsed user-agent is the ticket. The IP tools describe the person on the phone.</image:title><image:caption>The parsed user-agent is the ticket, and the IP tools describe the person on the phone.</image:caption></image:image></url>
  <url><loc>https://pageutil.com/guides/calculate-an-ipv4-subnet-from-cidr/</loc><lastmod>2026-10-05</lastmod><image:image><image:loc>https://pageutil.com/assets/guides/cidr-block.svg</image:loc><image:title>A CIDR block has a network, a broadcast, and usable addresses inside those two.</image:title><image:caption>A CIDR block has a network, a broadcast, and usable addresses inside those two.</image:caption></image:image></url>
  <url><loc>https://pageutil.com/guides/size-a-subnet-for-a-new-network/</loc><lastmod>2026-10-05</lastmod><image:image><image:loc>https://pageutil.com/assets/guides/cidr-block.svg</image:loc><image:title>A CIDR block has a network, a broadcast, and usable addresses inside those two.</image:title><image:caption>A CIDR block has a network and a broadcast that are not hosts, and usable addresses sit inside those two.</image:caption></image:image></url>
  <url><loc>https://pageutil.com/guides/convert-a-unix-timestamp-to-a-date/</loc><lastmod>2026-10-05</lastmod><image:image><image:loc>https://pageutil.com/assets/guides/epoch-digits.svg</image:loc><image:title>Ten digits are Unix seconds and thirteen are milliseconds. UTC and local are the same instant.</image:title><image:caption>Ten digits are Unix seconds and thirteen are milliseconds, and UTC and local are the same instant.</image:caption></image:image></url>
  <url><loc>https://pageutil.com/guides/turn-a-date-into-epoch-seconds/</loc><lastmod>2026-10-05</lastmod><image:image><image:loc>https://pageutil.com/assets/guides/epoch-digits.svg</image:loc><image:title>Ten digits are Unix seconds and thirteen are milliseconds. UTC and local are the same instant.</image:title><image:caption>Ten digits are Unix seconds and thirteen are milliseconds, and UTC is the value to send.</image:caption></image:image></url>
  <url><loc>https://pageutil.com/guides/tell-seconds-from-milliseconds-in-a-timestamp/</loc><lastmod>2026-10-05</lastmod><image:image><image:loc>https://pageutil.com/assets/guides/epoch-digits.svg</image:loc><image:title>Ten digits are Unix seconds and thirteen are milliseconds. UTC and local are the same instant.</image:title><image:caption>Ten digits are Unix seconds and thirteen are milliseconds, so a thousand-fold gap is a digit-length mismatch.</image:caption></image:image></url>
  <url><loc>https://pageutil.com/guides/check-the-current-unix-time/</loc><lastmod>2026-10-05</lastmod><image:image><image:loc>https://pageutil.com/assets/guides/epoch-digits.svg</image:loc><image:title>Ten digits are Unix seconds and thirteen are milliseconds. UTC and local are the same instant.</image:title><image:caption>Ten digits are Unix seconds and thirteen are milliseconds, and seconds, milliseconds, and ISO are the same instant.</image:caption></image:image></url>
  <url><loc>https://pageutil.com/guides/read-a-cron-expression-in-plain-english/</loc><lastmod>2026-10-05</lastmod><image:image><image:loc>https://pageutil.com/assets/guides/cron-fields.svg</image:loc><image:title>A five-field cron expression is minute, hour, day of month, month, and day of week, in the server's zone.</image:title><image:caption>A five-field expression is minute, hour, day of month, month, and day of week, and the server zone is unknown to the page.</image:caption></image:image></url>
  <url><loc>https://pageutil.com/guides/convert-a-time-between-time-zones/</loc><lastmod>2026-10-05</lastmod><image:image><image:loc>https://pageutil.com/assets/guides/zone-instant.svg</image:loc><image:title>A time-zone conversion is the same instant. The calendar date can change.</image:title><image:caption>A time-zone conversion is the same instant in two named zones, and the calendar date can change.</image:caption></image:image></url>
  <url><loc>https://pageutil.com/guides/count-down-to-a-date/</loc><lastmod>2026-10-05</lastmod><image:image><image:loc>https://pageutil.com/assets/guides/countdown-vs-days.svg</image:loc><image:title>A countdown is time remaining. Days between two dates are a fixed count.</image:title><image:caption>A countdown is days, hours, minutes, and seconds still to go, which is remaining time.</image:caption></image:image></url>
  <url><loc>https://pageutil.com/guides/work-out-days-between-two-dates/</loc><lastmod>2026-10-05</lastmod><image:image><image:loc>https://pageutil.com/assets/guides/countdown-vs-days.svg</image:loc><image:title>A countdown is time remaining. Days between two dates are a fixed count.</image:title><image:caption>Days between two dates are a fixed count, and weekends stay included unless the page says otherwise.</image:caption></image:image></url>
  <url><loc>https://pageutil.com/guides/calculate-age-from-a-birth-date/</loc><lastmod>2026-10-05</lastmod><image:image><image:loc>https://pageutil.com/assets/guides/age-parts.svg</image:loc><image:title>Age is completed years, then the remaining months and days.</image:title><image:caption>Age is completed years, then the remaining months and days, and the birthday counts after that date passes.</image:caption></image:image></url>
  <url><loc>https://pageutil.com/guides/schedule-a-job-and-state-the-next-window/</loc><lastmod>2026-10-05</lastmod><image:image><image:loc>https://pageutil.com/assets/guides/cron-fields.svg</image:loc><image:title>A five-field cron expression is minute, hour, day of month, month, and day of week, in the server's zone.</image:title><image:caption>The five fields are the schedule in the server's zone, which the page does not know, and a Quartz six-field expression is out of scope.</image:caption></image:image></url>
  <url><loc>https://pageutil.com/guides/generate-a-uuid/</loc><lastmod>2026-10-05</lastmod><image:image><image:loc>https://pageutil.com/assets/guides/uuid-vs-hash.svg</image:loc><image:title>A version 4 UUID is a random id. A SHA-256 digest is a fingerprint of content.</image:title><image:caption>A version 4 UUID is a random id, and a SHA-256 digest is a fingerprint of the same content.</image:caption></image:image></url>
  <url><loc>https://pageutil.com/guides/generate-a-password-that-stays-in-the-browser/</loc><lastmod>2026-10-05</lastmod><image:image><image:loc>https://pageutil.com/assets/guides/password-local.svg</image:loc><image:title>A generated password and its strength score stay in the browser. The score is not a breach check.</image:title><image:caption>A generated password stays in this browser, and this page does not score its strength.</image:caption></image:image></url>
  <url><loc>https://pageutil.com/guides/score-a-passwords-strength/</loc><lastmod>2026-10-05</lastmod><image:image><image:loc>https://pageutil.com/assets/guides/password-local.svg</image:loc><image:title>A generated password and its strength score stay in the browser. The score is not a breach check.</image:title><image:caption>A strength score stays in this browser, and the score is not a breach check.</image:caption></image:image></url>
  <url><loc>https://pageutil.com/guides/encode-text-as-base64/</loc><lastmod>2026-10-05</lastmod><image:image><image:loc>https://pageutil.com/assets/guides/base64-roundtrip.svg</image:loc><image:title>Base64 turns text into ASCII and back. It is not encryption, and a JWT signature stays unchecked.</image:title><image:caption>Base64 turns text into ASCII and back, and it is not encryption.</image:caption></image:image></url>
  <url><loc>https://pageutil.com/guides/decode-a-base64-string/</loc><lastmod>2026-10-05</lastmod><image:image><image:loc>https://pageutil.com/assets/guides/base64-roundtrip.svg</image:loc><image:title>Base64 turns text into ASCII and back. It is not encryption, and a JWT signature stays unchecked.</image:title><image:caption>Base64 turns text into ASCII and back, and a JWT signature stays unchecked.</image:caption></image:image></url>
  <url><loc>https://pageutil.com/guides/url-encode-a-query-string/</loc><lastmod>2026-10-05</lastmod><image:image><image:loc>https://pageutil.com/assets/guides/three-encodings.svg</image:loc><image:title>URL encoding, percent-decoding, and HTML escaping are different jobs.</image:title><image:caption>URL encoding is for a query component, and a whole URL is the wrong thing to encode.</image:caption></image:image></url>
  <url><loc>https://pageutil.com/guides/decode-a-percent-encoded-url/</loc><lastmod>2026-10-05</lastmod><image:image><image:loc>https://pageutil.com/assets/guides/three-encodings.svg</image:loc><image:title>URL encoding, percent-decoding, and HTML escaping are different jobs.</image:title><image:caption>Percent-decoding once is its own job, separate from encoding a component or escaping HTML.</image:caption></image:image></url>
  <url><loc>https://pageutil.com/guides/escape-html-before-you-display-user-text/</loc><lastmod>2026-10-05</lastmod><image:image><image:loc>https://pageutil.com/assets/guides/three-encodings.svg</image:loc><image:title>URL encoding, percent-decoding, and HTML escaping are different jobs.</image:title><image:caption>HTML escaping is for element text, and it is a different job from encoding a URL.</image:caption></image:image></url>
  <url><loc>https://pageutil.com/guides/hash-a-string-with-sha-256/</loc><lastmod>2026-10-05</lastmod><image:image><image:loc>https://pageutil.com/assets/guides/sha256-change.svg</image:loc><image:title>The same text always has the same 64-character SHA-256 digest, and a one-character change does not reverse.</image:title><image:caption>The same text always has the same 64-character SHA-256 digest, and there is no path back from the digest to the text.</image:caption></image:image></url>
  <url><loc>https://pageutil.com/guides/decode-a-jwt-header-and-payload/</loc><lastmod>2026-10-05</lastmod><image:image><image:loc>https://pageutil.com/assets/guides/jwt-parts.svg</image:loc><image:title>A JWT decode shows header and payload JSON. The signature is not checked, and exp is seconds.</image:title><image:caption>A decode shows header and payload JSON, and the signature is not checked.</image:caption></image:image></url>
  <url><loc>https://pageutil.com/guides/read-the-expiry-claim-in-a-jwt/</loc><lastmod>2026-10-05</lastmod><image:image><image:loc>https://pageutil.com/assets/guides/jwt-parts.svg</image:loc><image:title>A JWT decode shows header and payload JSON. The signature is not checked, and exp is seconds.</image:title><image:caption>exp, nbf, and iat are seconds, and a decode does not check the signature.</image:caption></image:image></url>
  <url><loc>https://pageutil.com/guides/tell-that-a-decoded-jwt-was-not-verified/</loc><lastmod>2026-10-05</lastmod><image:image><image:loc>https://pageutil.com/assets/guides/jwt-parts.svg</image:loc><image:title>A JWT decode shows header and payload JSON. The signature is not checked, and exp is seconds.</image:title><image:caption>alg none is a warning, and a decode does not check the signature.</image:caption></image:image></url>
  <url><loc>https://pageutil.com/guides/format-and-validate-json/</loc><lastmod>2026-10-05</lastmod><image:image><image:loc>https://pageutil.com/assets/guides/json-parse.svg</image:loc><image:title>Formatted JSON parsed. The first error is the break, and minified JSON is the same values without whitespace.</image:title><image:caption>Formatted JSON means it parsed, and the first error is the break.</image:caption></image:image></url>
  <url><loc>https://pageutil.com/guides/minify-json/</loc><lastmod>2026-10-05</lastmod><image:image><image:loc>https://pageutil.com/assets/guides/json-parse.svg</image:loc><image:title>Formatted JSON parsed. The first error is the break, and minified JSON is the same values without whitespace.</image:title><image:caption>Minified JSON is the same values without whitespace, and the schema stays unchecked.</image:caption></image:image></url>
  <url><loc>https://pageutil.com/guides/format-xml-and-read-a-parse-error/</loc><lastmod>2026-10-05</lastmod><image:image><image:loc>https://pageutil.com/assets/guides/xml-parse.svg</image:loc><image:title>Formatted XML is well-formed. The first error is the first break, and an XSD is not applied.</image:title><image:caption>Formatted XML is well-formed, the first error is the first break, and an XSD is not applied.</image:caption></image:image></url>
  <url><loc>https://pageutil.com/guides/test-a-regular-expression/</loc><lastmod>2026-10-05</lastmod><image:image><image:loc>https://pageutil.com/assets/guides/regex-sample.svg</image:loc><image:title>A regex result is the JavaScript matches and groups for one sample, or a real non-match.</image:title><image:caption>A regex result is the JavaScript matches and groups for one sample, and a sample match is not a safety proof.</image:caption></image:image></url>
  <url><loc>https://pageutil.com/guides/compare-two-texts-line-by-line/</loc><lastmod>2026-10-05</lastmod><image:image><image:loc>https://pageutil.com/assets/guides/line-diff.svg</image:loc><image:title>A line diff marks added, removed, and unchanged lines. A reorder looks like a delete plus an add.</image:title><image:caption>A line diff marks added, removed, and unchanged lines, and a reorder looks like a delete plus an add.</image:caption></image:image></url>
  <url><loc>https://pageutil.com/guides/count-words-and-characters/</loc><lastmod>2026-10-05</lastmod><image:image><image:loc>https://pageutil.com/assets/guides/char-count.svg</image:loc><image:title>Words are split on whitespace. Share titles sit near 60 characters and descriptions near 150.</image:title><image:caption>Words are split on whitespace, titles sit near 60 characters, and descriptions sit near 150.</image:caption></image:image></url>
  <url><loc>https://pageutil.com/guides/convert-text-case/</loc><lastmod>2026-10-05</lastmod><image:image><image:loc>https://pageutil.com/assets/guides/case-slug.svg</image:loc><image:title>Case conversion is mechanical, and a slug is lowercase, hyphenated, and unchecked for uniqueness.</image:title><image:caption>Case conversion is mechanical, and a later slug is still unchecked for uniqueness.</image:caption></image:image></url>
  <url><loc>https://pageutil.com/guides/turn-a-title-into-a-url-slug/</loc><lastmod>2026-10-05</lastmod><image:image><image:loc>https://pageutil.com/assets/guides/case-slug.svg</image:loc><image:title>Case conversion is mechanical, and a slug is lowercase, hyphenated, and unchecked for uniqueness.</image:title><image:caption>A slug is lowercase and hyphenated, with no end hyphens, and it is not checked for uniqueness.</image:caption></image:image></url>
  <url><loc>https://pageutil.com/guides/generate-lorem-ipsum-placeholder-copy/</loc><lastmod>2026-10-05</lastmod><image:image><image:loc>https://pageutil.com/assets/guides/lorem-placeholder.svg</image:loc><image:title>Lorem ipsum paragraphs are dummy copy for a layout, not text to publish.</image:title><image:caption>Lorem ipsum paragraphs are dummy copy for a layout, and they are not text to publish.</image:caption></image:image></url>
  <url><loc>https://pageutil.com/guides/remove-duplicate-lines/</loc><lastmod>2026-10-05</lastmod><image:image><image:loc>https://pageutil.com/assets/guides/line-list.svg</image:loc><image:title>Duplicate removal keeps the first line, sort is by character code, and replace reports a count.</image:title><image:caption>Duplicate removal keeps the first line, and a later copy of that line is dropped.</image:caption></image:image></url>
  <url><loc>https://pageutil.com/guides/sort-lines-alphabetically/</loc><lastmod>2026-10-05</lastmod><image:image><image:loc>https://pageutil.com/assets/guides/line-list.svg</image:loc><image:title>Duplicate removal keeps the first line, sort is by character code, and replace reports a count.</image:title><image:caption>Sort is by character code, so 10 can come before 2.</image:caption></image:image></url>
  <url><loc>https://pageutil.com/guides/find-and-replace-in-pasted-text/</loc><lastmod>2026-10-05</lastmod><image:image><image:loc>https://pageutil.com/assets/guides/line-list.svg</image:loc><image:title>Duplicate removal keeps the first line, sort is by character code, and replace reports a count.</image:title><image:caption>Replace reports a count of replacements on the paste.</image:caption></image:image></url>
  <url><loc>https://pageutil.com/guides/check-whether-an-email-address-is-valid-syntax/</loc><lastmod>2026-10-05</lastmod><image:image><image:loc>https://pageutil.com/assets/guides/email-syntax.svg</image:loc><image:title>A valid email result means the address shape is plausible. It does not mean the mailbox exists.</image:title><image:caption>A valid email result means the address shape is plausible, and it does not mean the mailbox exists.</image:caption></image:image></url>
  <url><loc>https://pageutil.com/guides/make-a-qr-code-for-a-url/</loc><lastmod>2026-10-05</lastmod><image:image><image:loc>https://pageutil.com/assets/guides/qr-url.svg</image:loc><image:title>A QR code encodes the exact text you typed. Check that URL before you print it.</image:title><image:caption>A QR code encodes the exact text you typed, including a missing https, and the page does not host that URL.</image:caption></image:image></url>
  <url><loc>https://pageutil.com/guides/make-a-code-128-barcode/</loc><lastmod>2026-10-05</lastmod><image:image><image:loc>https://pageutil.com/assets/guides/code128.svg</image:loc><image:title>A Code 128 barcode is the string you typed, not a product lookup.</image:title><image:caption>A Code 128 barcode is the string you typed, and it is not a product lookup.</image:caption></image:image></url>
  <url><loc>https://pageutil.com/guides/convert-a-hex-colour-to-rgb/</loc><lastmod>2026-10-05</lastmod><image:image><image:loc>https://pageutil.com/assets/guides/hex-rgb.svg</image:loc><image:title>#RRGGBB maps to red, green, and blue channels from 0 to 255, and HSL is the same colour.</image:title><image:caption>#RRGGBB maps to red, green, and blue from 0 to 255, and HSL is the same colour.</image:caption></image:image></url>
  <url><loc>https://pageutil.com/guides/check-colour-contrast-for-wcag/</loc><lastmod>2026-10-05</lastmod><image:image><image:loc>https://pageutil.com/assets/guides/contrast-ratios.svg</image:loc><image:title>Contrast is a ratio of two colours. AA for normal text is 4.5 to 1, and a large-text pass is separate.</image:title><image:caption>Contrast is a ratio of two colours, and a large-text pass is separate from body text.</image:caption></image:image></url>
  <url><loc>https://pageutil.com/guides/make-a-letter-favicon/</loc><lastmod>2026-10-05</lastmod><image:image><image:loc>https://pageutil.com/assets/guides/letter-favicon.svg</image:loc><image:title>A letter favicon is one character on a 32 or 180 square, not a full icon pack.</image:title><image:caption>A letter favicon is one character on a 32 or 180 square, and it is not a full icon pack.</image:caption></image:image></url>
  <url><loc>https://pageutil.com/guides/generate-open-graph-tags/</loc><lastmod>2026-10-05</lastmod><image:image><image:loc>https://pageutil.com/assets/guides/og-snippet.svg</image:loc><image:title>Open Graph output is a snippet of tags. It does not upload the image or prove the URL returns 200.</image:title><image:caption>Open Graph output is a snippet of tags, and it does not upload the image or prove the URL returns 200.</image:caption></image:image></url>
  <url><loc>https://pageutil.com/guides/write-a-robots-txt/</loc><lastmod>2026-10-05</lastmod><image:image><image:loc>https://pageutil.com/assets/guides/robots-request.svg</image:loc><image:title>robots.txt is a request to crawlers that honour it, not a lock on the server.</image:title><image:caption>robots.txt is a request to crawlers that honour it, and it is not a lock on the server.</image:caption></image:image></url>
  <url><loc>https://pageutil.com/guides/write-an-apache-redirect-rule/</loc><lastmod>2026-10-05</lastmod><image:image><image:loc>https://pageutil.com/assets/guides/one-redirect.svg</image:loc><image:title>An htaccess snippet is one 301 or 302 rule. After deploy, the hop list should end on the URL you meant.</image:title><image:caption>An htaccess snippet is one 301 or 302 rule, and it does not read the existing file.</image:caption></image:image></url>
  <url><loc>https://pageutil.com/guides/look-up-a-files-mime-type/</loc><lastmod>2026-10-05</lastmod><image:image><image:loc>https://pageutil.com/assets/guides/mime-header.svg</image:loc><image:title>A MIME lookup is the usual type for an extension. Compare it with the live content-type header.</image:title><image:caption>A MIME lookup is the usual type for an extension, and unknown means the table has no entry.</image:caption></image:image></url>
  <url><loc>https://pageutil.com/is-this-website-down/</loc><lastmod>2026-10-05</lastmod></url>
  <url><loc>https://pageutil.com/what-is-my-ip/</loc><lastmod>2026-10-05</lastmod></url>
  <url><loc>https://pageutil.com/ip-geolocation/</loc><lastmod>2026-10-05</lastmod></url>
  <url><loc>https://pageutil.com/dns-lookup/</loc><lastmod>2026-10-05</lastmod></url>
  <url><loc>https://pageutil.com/whois-lookup/</loc><lastmod>2026-10-05</lastmod></url>
  <url><loc>https://pageutil.com/ssl-expiry-checker/</loc><lastmod>2026-10-05</lastmod></url>
  <url><loc>https://pageutil.com/http-status-codes/</loc><lastmod>2026-10-05</lastmod></url>
  <url><loc>https://pageutil.com/http-headers/</loc><lastmod>2026-10-05</lastmod></url>
  <url><loc>https://pageutil.com/redirect-checker/</loc><lastmod>2026-10-05</lastmod></url>
  <url><loc>https://pageutil.com/port-check/</loc><lastmod>2026-10-05</lastmod></url>
  <url><loc>https://pageutil.com/user-agent-parser/</loc><lastmod>2026-10-05</lastmod></url>
  <url><loc>https://pageutil.com/cidr-calculator/</loc><lastmod>2026-10-05</lastmod></url>
  <url><loc>https://pageutil.com/unix-timestamp/</loc><lastmod>2026-10-05</lastmod></url>
  <url><loc>https://pageutil.com/cron-parser/</loc><lastmod>2026-10-05</lastmod></url>
  <url><loc>https://pageutil.com/uuid-generator/</loc><lastmod>2026-10-05</lastmod></url>
  <url><loc>https://pageutil.com/password-generator/</loc><lastmod>2026-10-05</lastmod></url>
  <url><loc>https://pageutil.com/password-strength/</loc><lastmod>2026-10-05</lastmod></url>
  <url><loc>https://pageutil.com/base64/</loc><lastmod>2026-10-05</lastmod></url>
  <url><loc>https://pageutil.com/url-encoder/</loc><lastmod>2026-10-05</lastmod></url>
  <url><loc>https://pageutil.com/html-escape/</loc><lastmod>2026-10-05</lastmod></url>
  <url><loc>https://pageutil.com/hash-generator/</loc><lastmod>2026-10-05</lastmod></url>
  <url><loc>https://pageutil.com/json-formatter/</loc><lastmod>2026-10-05</lastmod></url>
  <url><loc>https://pageutil.com/xml-formatter/</loc><lastmod>2026-10-05</lastmod></url>
  <url><loc>https://pageutil.com/jwt-decoder/</loc><lastmod>2026-10-05</lastmod></url>
  <url><loc>https://pageutil.com/regex-tester/</loc><lastmod>2026-10-05</lastmod></url>
  <url><loc>https://pageutil.com/text-diff/</loc><lastmod>2026-10-05</lastmod></url>
  <url><loc>https://pageutil.com/word-counter/</loc><lastmod>2026-10-05</lastmod></url>
  <url><loc>https://pageutil.com/case-converter/</loc><lastmod>2026-10-05</lastmod></url>
  <url><loc>https://pageutil.com/slug-generator/</loc><lastmod>2026-10-05</lastmod></url>
  <url><loc>https://pageutil.com/lorem-ipsum/</loc><lastmod>2026-10-05</lastmod></url>
  <url><loc>https://pageutil.com/remove-duplicate-lines/</loc><lastmod>2026-10-05</lastmod></url>
  <url><loc>https://pageutil.com/sort-lines/</loc><lastmod>2026-10-05</lastmod></url>
  <url><loc>https://pageutil.com/find-and-replace/</loc><lastmod>2026-10-05</lastmod></url>
  <url><loc>https://pageutil.com/email-validator/</loc><lastmod>2026-10-05</lastmod></url>
  <url><loc>https://pageutil.com/qr-code-generator/</loc><lastmod>2026-10-05</lastmod></url>
  <url><loc>https://pageutil.com/barcode-generator/</loc><lastmod>2026-10-05</lastmod></url>
  <url><loc>https://pageutil.com/hex-to-rgb/</loc><lastmod>2026-10-05</lastmod></url>
  <url><loc>https://pageutil.com/contrast-checker/</loc><lastmod>2026-10-05</lastmod></url>
  <url><loc>https://pageutil.com/favicon-generator/</loc><lastmod>2026-10-05</lastmod></url>
  <url><loc>https://pageutil.com/open-graph-generator/</loc><lastmod>2026-10-05</lastmod></url>
  <url><loc>https://pageutil.com/robots-txt-generator/</loc><lastmod>2026-10-05</lastmod></url>
  <url><loc>https://pageutil.com/htaccess-redirect/</loc><lastmod>2026-10-05</lastmod></url>
  <url><loc>https://pageutil.com/percentage-calculator/</loc><lastmod>2026-10-05</lastmod></url>
  <url><loc>https://pageutil.com/tip-calculator/</loc><lastmod>2026-10-05</lastmod></url>
  <url><loc>https://pageutil.com/age-calculator/</loc><lastmod>2026-10-05</lastmod></url>
  <url><loc>https://pageutil.com/date-difference/</loc><lastmod>2026-10-05</lastmod></url>
  <url><loc>https://pageutil.com/days-from-date/</loc><lastmod>2026-10-05</lastmod></url>
  <url><loc>https://pageutil.com/bmi-calculator/</loc><lastmod>2026-10-05</lastmod></url>
  <url><loc>https://pageutil.com/loan-calculator/</loc><lastmod>2026-10-05</lastmod></url>
  <url><loc>https://pageutil.com/unit-converter/</loc><lastmod>2026-10-05</lastmod></url>
  <url><loc>https://pageutil.com/time-zone-converter/</loc><lastmod>2026-10-05</lastmod></url>
  <url><loc>https://pageutil.com/epoch-now/</loc><lastmod>2026-10-05</lastmod></url>
  <url><loc>https://pageutil.com/countdown/</loc><lastmod>2026-10-05</lastmod></url>
  <url><loc>https://pageutil.com/random-number/</loc><lastmod>2026-10-05</lastmod></url>
  <url><loc>https://pageutil.com/dice-roller/</loc><lastmod>2026-10-05</lastmod></url>
  <url><loc>https://pageutil.com/coin-flip/</loc><lastmod>2026-10-05</lastmod></url>
  <url><loc>https://pageutil.com/yes-or-no/</loc><lastmod>2026-10-05</lastmod></url>
  <url><loc>https://pageutil.com/mime-types/</loc><lastmod>2026-10-05</lastmod></url>
  <url><loc>https://pageutil.com/bytes-converter/</loc><lastmod>2026-10-05</lastmod></url>
  <url><loc>https://pageutil.com/aspect-ratio/</loc><lastmod>2026-10-05</lastmod></url>
</urlset>
