<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:news="http://www.google.com/schemas/sitemap-news/0.9">
    <url>
        <loc>https://francislandford.com/blog/an-admin-dashboard-in-a-mobile-app-without-weakening-login-security</loc>
        <news:news>
            <news:publication>
                <news:name>Francis Landford</news:name>
                <news:language>en</news:language>
            </news:publication>
            <news:publication_date>2026-11-11T10:01:21+00:00</news:publication_date>
            <news:title>An Admin Dashboard in a Mobile App Without Weakening Login Security</news:title>
        </news:news>
    </url>
    <url>
        <loc>https://francislandford.com/blog/i-audited-my-own-website-for-thin-content-what-i-found-and-changed</loc>
        <news:news>
            <news:publication>
                <news:name>Francis Landford</news:name>
                <news:language>en</news:language>
            </news:publication>
            <news:publication_date>2026-11-11T09:54:21+00:00</news:publication_date>
            <news:title>I Audited My Own Website for Thin Content: What I Found and Changed</news:title>
        </news:news>
    </url>
    <url>
        <loc>https://francislandford.com/blog/duplicate-google-chose-a-different-canonical-how-i-fixed-my-site</loc>
        <news:news>
            <news:publication>
                <news:name>Francis Landford</news:name>
                <news:language>en</news:language>
            </news:publication>
            <news:publication_date>2026-11-11T09:47:21+00:00</news:publication_date>
            <news:title>Duplicate, Google Chose a Different Canonical: How I Fixed My Site</news:title>
        </news:news>
    </url>
</urlset>
