1<!doctype html> 2<html lang="en" class="dark"> 3 <head> 4 <meta charset="UTF-8" /> 5 <link rel="icon" href="/favicon.ico" sizes="32x32" /> 6 <link rel="icon" type="image/svg+xml" href="/castle.svg" /> 7 <link rel="icon" type="image/png" sizes="96x96" href="/icon-96.png" /> 8 <link rel="apple-touch-icon" href="/apple-touch-icon.png" /> 9 <meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover" /> 10 <meta name="color-scheme" content="dark light" /> 11 <meta name="theme-color" content="#0a0f14" /> 12 <!-- iPhone (2026-09-23, Movie Scene Map's shell): Safari 26 no longer reads 13 theme-color, so the colour it paints the status bar with comes from the 14 page ground in index.css; the tag above stays for Chrome and the older 15 Safaris. No telephone links made out of the numbers on the map. --> 16 <meta name="format-detection" content="telephone=no" /> 17 <!-- Pre-paint theme switch (external: the CSP forbids inline scripts). --> 18
18<script src="/theme.js"></script>
18 19 <!-- Installed (Add to Home Screen) the map runs truly full screen: no 20 browser chrome, status bar translucent over the night chart â the 21 safe-area inset classes already keep every control clear of it. --> 22 <link rel="manifest" href="/manifest.json" /> 23 <meta name="mobile-web-app-capable" content="yes" /> 24 <meta name="apple-mobile-web-app-capable" content="yes" /> 25 <meta name="apple-mobile-web-app-status-bar-style" content="black-translucent" /> 26 <meta name="apple-mobile-web-app-title" content="Castlemap" /> 27 <!-- Brand/head values mirror src/config/site.ts â keep in sync. --> 28 <title>Castle Map â Explore 8,672 Castles, Fortresses, Palaces & Ruins</title> 29 <meta name="description" content="A free interactive map of 8,672 castles, fortresses, palaces and ruins across 154 countries â each pinned with its photo and story." /> 30 <link rel="canonical" href="https://thecastlemap.com/" /> 31 <link 32 rel="alternate" 33 type="application/atom+xml" 34 title="Castlemap â what's new" 35 href="https://thecastlemap.com/changelog/feed.xml" 36 /> 37 <meta property="og:site_name" content="Castlemap" /> 38 <meta property="og:locale" content="en_US" /> 39 <meta property="og:type" content="website" /> 40 <meta property="og:title" content="Castle Map â Explore 8,672 Castles, Fortresses, Palaces & Ruins" /> 41 <meta property="og:description" content="A free interactive map of 8,672 castles, fortresses, palaces and ruins across 154 countries â each pinned with its photo and story." /> 42 <meta property="og:url" content="https://thecastlemap.com/" /> 43 <meta property="og:image" content="https://thecastlemap.com/og.jpg?v=ink2" /> 44 <meta property="og:image:width" content="1200" /> 45 <meta property="og:image:height" content="630" /> 46 <meta property="og:image:alt" content="Castle map â 8,672 castles & fortresses plotted on one interactive world map" /> 47 <meta name="twitter:card" content="summary_large_image" /> 48
48<script type="application/ld+json"> 49 { 50 "@context": "https://schema.org", 51 "@type": "WebSite", 52 "name": "Castlemap", 53 "alternateName": "Castle Map", 54 "url": "https://thecastlemap.com/", 55 "publisher": { 56 "@type": "Organization", 57 "@id": "https://thecastlemap.com/#org", 58 "name": "Castlemap", 59 "url": "https://thecastlemap.com/", 60 "logo": { 61 "@type": "ImageObject", 62 "url": "https://thecastlemap.com/icon-512.png", 63 "width": 512, 64 "height": 512 65 }, 66 "sameAs": [ 67 "https://github.com/Flightmussy/castlemap-dataset", 68 "https://doi.org/10.5281/zenodo.21322359", 69 "https://www.kaggle.com/datasets/flightmussy/castles-of-the-world", 70 "https://huggingface.co/datasets/Flightmussy/castles-of-the-world" 71 ] 72 } 73 } 74 </script>
74 75 76 <!-- Fonts are served from this origin (scripts/fetch-fonts.mjs keeps them 77 current). Loading them from fonts.googleapis.com would disclose every 78 visitor's IP address to Google before the first glyph renders. --> 79 <link rel="preload" href="/fonts/hankengrotesk-var-latin.woff2" as="font" type="font/woff2" crossorigin /> 80 <link rel="preload" href="/fonts/fraunces-500-700-latin.woff2" as="font" type="font/woff2" crossorigin /> 81 <link rel="stylesheet" href="/fonts/fonts.css" /> 82 <!-- The basemap's tiles, style and fonts all come from one host the map 83 asks for as soon as it starts; opening that connection while the 84 scripts are still downloading saves the handshake at the moment the 85 first tile is requested. CORS-mode fetches, hence crossorigin. --> 86 <link rel="preconnect" href="https://tiles.openfreemap.org" crossorigin /> 87
87<script type="module" crossorigin src="/assets/index-BHgOXD9h.js"></script>
87 88 <link rel="modulepreload" crossorigin href="/assets/jsx-runtime-BH36N0UR.js"> 89 <link rel="stylesheet" crossorigin href="/assets/index-Dt-N_1ub.css"> 90 <link rel="modulepreload" crossorigin href="/assets/App-DKAXu6s-.js" /> 91 <link rel="modulepreload" crossorigin href="/assets/maplibre-D-pxun5a.js" /> 92 <link rel="preload" href="/assets/atlasCore--gd99cqh.json" as="fetch" crossorigin /> 93 <link rel="alternate" hreflang="en" href="https://thecastlemap.com/" /> 94 <link rel="alternate" hreflang="ja" href="https://thecastlemap.com/ja/" /> 95 <link rel="alternate" hreflang="de" href="https://thecastlemap.com/de/" /> 96 <link rel="alternate" hreflang="es" href="https://thecastlemap.com/es/" /> 97 <link rel="alternate" hreflang="fr" href="https://thecastlemap.com/fr/" /> 98 <link rel="alternate" hreflang="pl" href="https://thecastlemap.com/pl/" /> 99 <link rel="alternate" hreflang="nl" href="https://thecastlemap.com/nl/" /> 100 <link rel="alternate" hreflang="uk" href="https://thecastlemap.com/uk/" /> 101 <link rel="alternate" hreflang="x-default" href="https://thecastlemap.com/" /> 102 </head> 103 <body> 104 <div id="root"><h1 style="position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap">Map of the world's great castles & fortresses</h1></div> 105 <section id="atlas-more" aria-label="About the castle map"> 106 <style>#atlas-more{background:#0a0f14;border-top:1px solid rgba(255,255,255,.08);padding:3.25rem 1.25rem 4rem;font:16px/1.7 'Hanken Grotesk',ui-sans-serif,system-ui,'Segoe UI',sans-serif;color:#e7e1d2} 107#atlas-more .in{max-width:80rem;margin:0 auto} 108#atlas-more h2{font-family:'Hanken Grotesk',ui-sans-serif,system-ui,'Segoe UI',sans-serif;font-weight:700;font-size:1.95rem;line-height:1.15;color:#f4efe1;margin:0 0 .7rem;text-wrap:balance} 109#atlas-more h3{font-size:.7rem;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:#7fb0a6;margin:2.5rem 0 .9rem} 110#atlas-more p{color:rgba(231,225,210,.86);margin:0 0 1rem;max-width:44rem} 111#atlas-more strong{color:#f4efe1;font-weight:600} 112#atlas-more a{color:#a6d2c7;text-decoration:none} 113#atlas-more a:hover{text-decoration:underline} 114#atlas-more .pills{display:flex;flex-wrap:wrap;gap:.5rem} 115#atlas-more .pill{border:1px solid rgba(255,255,255,.12);border-radius:999px;padding:.4rem .9rem;font-size:.92rem;color:#e7e1d2;background:rgba(255,255,255,.03)} 116#atlas-more .pill b{color:rgba(231,225,210,.64);font-weight:600} 117#atlas-more .pill:hover{text-decoration:none;border-color:rgba(159,204,193,.4)} 118#atlas-more ul.cols{display:grid;grid-template-columns:repeat(auto-fill,minmax(13rem,1fr));gap:.3rem 1.5rem;margin:0;padding:0;list-style:none} 119#atlas-more ul.cols li{padding:.12rem 0;font-size:.95rem} 120#atlas-more ul.cols span{color:rgba(231,225,210,.64);font-size:.82rem} 121#atlas-more details{border-top:1px solid rgba(255,255,255,.08);padding:.85rem 0} 122#atlas-more details:last-of-type{border-bottom:1px solid rgba(255,255,255,.08)} 123#atlas-more summary{cursor:pointer;font-weight:600;color:#f4efe1;font-size:1.02rem} 124#atlas-more details p{margin:.65rem 0 0} 125#atlas-more .cta{display:inline-block;margin-top:1.7rem;padding:.72rem 1.35rem;border-radius:.7rem;background:#a6d2c7;color:#08130f;font-weight:700} 126#atlas-more .cta:hover{text-decoration:none;filter:brightness(1.06)} 127/* Light mode (html.light via /theme.js) â the parchment twin of the shell. */ 128html.light #atlas-more{background:#f4efe2;border-top-color:rgba(35,28,14,.12);color:#3a3427} 129html.light #atlas-more h2,html.light #atlas-more strong,html.light #atlas-more summary{color:#211c10} 130html.light #atlas-more h3{color:#43746a} 131html.light #atlas-more p{color:rgba(58,52,39,.9)} 132html.light #atlas-more a{color:#35665c} 133html.light #atlas-more .pill{border-color:rgba(35,28,14,.18);color:#3a3427;background:rgba(255,255,255,.5)} 134html.light #atlas-more .pill:hover{border-color:rgba(67,116,106,.5)} 135html.light #atlas-more .pill b,html.light #atlas-more ul.cols span{color:rgba(58,52,39,.74)} 136html.light #atlas-more details,html.light #atlas-more details:last-of-type{border-color:rgba(35,28,14,.12)} 137html.light #atlas-more .cta{background:#35665c;color:#f4f0e4} 138/* The homepage is the map only â on every screen, not just phones (owner's 139 call, 2026-07-23). The section stays in the HTML (crawlers read it, links 140 are followed â and Google's mobile-first render always saw it hidden, since 141 phones hid it from day one); it just never paints, so the homepage never 142 scrolls. */ 143#atlas-more{display:none} 144/* The same bargain on the game page: the visible /guess/ is the board and
145 nothing else (owner's call, 2026-08-07), so #guess-more never paints either. 146 Its copy was added back 2026-08-24 on the owner's explicit approval â the 147 page shipped 45 crawlable words while being the second-most externally 148 linked URL on the site, so a search engine had nothing to rank. */ 149#guess-more{display:none}</style> 150 <div class="in"> 151 <h2>The interactive map of the world's castles & fortresses</h2> 152 <p><strong>Castlemap</strong> is a free interactive map of 8,672 of the world's greatest castles, fortresses, palaces and ruins across 154 countries. Pan and zoom the night map above, click any point for a photo and quick facts, or open a landmark's page for its full story and exact location. From medieval strongholds and hilltop citadels to grand royal palaces and the ruins of both, it is the most complete castle map online.</p> 153 <h3>Browse by type</h3> 154 <div class="pills"><a class="pill" href="/castles/">Castles <b>3,182</b></a><a class="pill" href="/castles/">Fortresses <b>1,624</b></a><a class="pill" href="/castles/">Palaces & châteaux <b>1,844</b></a><a class="pill" href="/castles/">Ruins <b>2,022</b></a></div> 155 <h3>Castles by country</h3> 156 <p>Find castles and fortresses in the countries that have the most:</p> 157 <ul class="cols"> 158 <li><a href="/countries/france/">France</a> <span>671</span></li> 159 <li><a href="/countries/germany/">Germany</a> <span>614</span></li> 160 <li><a href="/countries/spain/">Spain</a> <span>597</span></li> 161 <li><a href="/countries/italy/">Italy</a> <span>518</span></li> 162 <li><a href="/countries/poland/">Poland</a> <span>386</span></li> 163 <li><a href="/countries/england/">England</a> <span>352</span></li> 164 <li><a href="/countries/japan/">Japan</a> <span>296</span></li> 165 <li><a href="/countries/austria/">Austria</a> <span>222</span></li> 166 <li><a href="/countries/czech-republic/">Czech Republic</a> <span>222</span></li> 167 <li><a href="/countries/india/">India</a> <span>219</span></li> 168 <li><a href="/countries/portugal/">Portugal</a> <span>210</span></li> 169 <li><a href="/countries/scotland/">Scotland</a> <span>207</span></li> 170 <li><a href="/countries/sweden/">Sweden</a> <span>207</span></li> 171 <li><a href="/countries/switzerland/">Switzerland</a> <span>204</span></li> 172 <li><a href="/countries/netherlands/">Netherlands</a> <span>195</span></li> 173 <li><a href="/countries/ukraine/">Ukraine</a> <span>194</span></li> 174 <li><a href="/countries/ireland/">Ireland</a> <span>174</span></li> 175 <li><a href="/countries/iran/">Iran</a> <span>171</span></li> 176 <li><a href="/countries/russia/">Russia</a> <span>146</span></li> 177 <li><a href="/countries/slovakia/">Slovakia</a> <span>136</span></li> 178 </ul> 179 <p><a href="/countries/">Browse all 154 countries on the map â</a> · <a href="/castles/near/">Castles near you: day-trip guides for 406 cities â</a></p> 180 <h3>Famous castles to start with</h3> 181 <p>The most-covered castles on Earth, by number of Wikipedia language editions:</p> 182 <ul class="cols"> 183 <li><a href="/castles/great-wall-of-china/">Great Wall of China</a> <span>China</span></li> 184 <li><a href="/castles/machu-picchu/">Machu Picchu</a> <span>Peru</span></li> 185 <li><a href="/castles/palace-of-versailles/">Palace of Versailles</a> <span>France</span></li> 186 <li>
186<a href="/castles/forbidden-city/">Forbidden City</a> <span>China</span></li> 187 <li><a href="/castles/chateau-de-montsoreau/">Château de Montsoreau</a> <span>France</span></li> 188 <li><a href="/castles/acropolis-of-athens/">Acropolis of Athens</a> <span>Greece</span></li> 189 <li><a href="/castles/kremlin/">Kremlin</a> <span>Russia</span></li> 190 <li><a href="/castles/alhambra/">Alhambra</a> <span>Spain</span></li> 191 <li><a href="/castles/buckingham-palace/">Buckingham Palace</a> <span>England</span></li> 192 <li><a href="/castles/neuschwanstein-castle/">Neuschwanstein Castle</a> <span>Germany</span></li> 193 <li><a href="/castles/mycenae/">Mycenae</a> <span>Greece</span></li> 194 <li><a href="/castles/tower-of-london/">Tower of London</a> <span>England</span></li> 195 </ul> 196 <p><a href="/castles/ranked/">The most famous castles in the world, ranked â</a> · <a href="/castles/">Browse all 8,672 castles & fortresses â</a></p> 197 <h3>How this map is built</h3> 198 <p>Castlemap is built entirely from open data: facts, founding dates and coordinates from <a href="https://www.wikidata.org" rel="noopener">Wikidata</a>, photographs from <a href="https://commons.wikimedia.org" rel="noopener">Wikimedia Commons</a>, stories from Wikipedia, and the night basemap from OpenFreeMap and Natural Earth. Rather than plotting every fortification on Earth, the atlas curates the 8,672 most significant castles, fortresses, palaces and ruins â each verified to have a real photo, a Wikipedia article and exact coordinates â balanced across 154 countries so the map stays explorable. The atlas reads 24 Wikipedia language editions beyond English, so a Burg documented only in German or a castello only in Italian can still make the map.</p> 199 <p>Missing a castle you know? The map refreshes from Wikidata, so the best way to add one is to improve its <a href="https://www.wikidata.org" rel="noopener">Wikidata entry</a>: exact coordinates, a Commons photo and a Wikipedia article in any major language make it eligible for the next refresh. Edits to the commons improve every atlas built on them â not just this one.</p> 200 <p>The full curated dataset is free: <a href="/data/">download all 8,672 castles as GeoJSON or CSV</a> (CC0). Curious how it breaks down? See the <a href="/statistics/">castle statistics</a> â which country has the most castles, who leads per capita, and when the world built them. Or start from the question everyone asks: <a href="/castles/how-many/">how many castles each country actually has</a>. Planning a trip? <a href="/castles/routes/">22 castle routes</a> put the castles that belong together â the Rhine gorge, the Loire, Edward Iâs ring of iron â in the order you would travel them. And to be tested rather than told, <a href="/guess/">CastleGuessr</a> shows one castle and asks where on Earth it stands.</p> 201 <h3>Frequently asked questions</h3> 202 <details><summary>What is Castlemap?</summary><p>Castlemap is a free interactive map of 8,672 of the world's great castles, fortresses, palaces and ruins across 154 countries. Every landmark is plotted on the map and has its own page with a photo, story and coordinates.</p></details> 203 <details><summary>How many castles are on the map?</summary><p>8,672 landmarks in total â 3,182 castles, 1,624 fortresses, 1,844 palaces and 2,022 ruins â across 154 countries.</p></details> 204 <details><summary>Which country has the most castles?</summary><p>In the Castlemap atlas, France has the most with 671, followed by Germany, Spain, Italy, Poland. You can browse castles in any of 154 countries.</p></details> 205 <details><summary>Is Castlemap free to use?</summary><p>Yes â Castlemap is completely free and needs no account. Open the map and start exploring the world's castles right away.</p></details> 206 <details><summary>Where does the castle data come from?</summary><p>Castle facts and coordinates come from Wikidata, photos from Wikimedia Commons, and the basemap from OpenFreeMap and Natural Earth â all open data.</p></details> 207 <details><summary>How are the castles ranked by fame?</summary><p>Each castle carries a fame score blending two open signals: its coverage â the number of Wikipedia editions and sister projects that record
207it, from its Wikidata sitelink count â and its readership, from Wikipedia's pageview data. Only a castle that scores high on both reaches the top. Ranked #1: Great Wall of China. You can see all 8,672 castles ranked by fame, with the method and its limits explained in full.</p></details> 208 <details><summary>Why isn't a castle I know on the map?</summary><p>Castlemap is curated rather than exhaustive. Europe alone has tens of thousands of castle sites â many towns and hilltops have one â so the atlas maps the 8,672 most significant worldwide: those with a documented story, a real photo and exact coordinates, balanced across countries so the map stays explorable.</p></details> 209 <details><summary>Can I add a castle to the map?</summary><p>Yes â through open data. Castlemap refreshes from Wikidata, so to get a castle added, improve its Wikidata entry with exact coordinates, a Wikimedia Commons photo and a Wikipedia article â English or any of the 24 other language editions the atlas reads. Well-documented castles become eligible for the next data refresh, and your edit improves every map built on open data.</p></details> 210 <a class="cta" href="/castles/">Explore all 8,672 castles & fortresses â</a> 211 <p>More atlases: <a href="https://worldtrainmap.com">World Train Map</a> · <a href="https://moviescenemap.com">Movie Scene Map</a> · <a href="https://destinationsmap.com">Destinations Map</a></p> 212 </div> 213 </section> 214 <noscript> 215 <p style="padding: 2rem; font-family: system-ui, sans-serif"> 216 Castlemap is an interactive night map of 8,672 great castles, fortresses, palaces and ruins across 154 countries. Browse <a href="/castles/">all castles</a> or <a href="/countries/">castles by country</a> â every landmark has its own page with photo and story. 217 </p> 218 </noscript> 219 <!-- Google Analytics 4. The loader is Google's; the config half of the 220 snippet lives in /ga.js because the CSP allows no inline script. Keep 221 these two lines identical to GA_TAG in scripts/prerender.mts, which 222 puts them on every prerendered page; scripts/dist-seo.test.ts checks 223 both, exactly once per page â and checks that /embed/, which is cut 224 from this very shell, carries neither. -->
vendor: 68 bytes, lines 224-225
224 225 <script async src="https://www.googletagmanager.com/gtag/js?id=
225G-25D3YN1GJK
vendor: 16 bytes, lines 225-226
225"></script> 226
226<script defer src="/ga.js"></script>
226 227 <!-- Raptive ads, inert until the site ID is set in /ads.js (2026-09-08). 228 Same line on every prerendered page via ADS_TAG in scripts/prerender.mts; 229 stripped from /embed/ and absent from the 404 shells, like the two above. --> 230
230<script defer src="/ads.js"></script>
230 231 <!-- Donation note (2026-09-11): /donate.js shows a small card on the first 232 page a browser opens here and keeps it on every page until the reader 233 answers it (Donate or Not now), then leaves it alone for four hours. 234 Same line on every prerendered page via DONATE_TAG in 235 scripts/prerender.mts; stripped from /embed/ and absent from the 404 236 shells, like the three above. --> 237
237<script defer src="/donate.js"></script>
237 238
238<script defer src="/_a.js" data-nav="none"></script>
238<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v31edd6df95cf4e85bb4c19e7a9bdbcba1788362987495" integrity="sha512-iIg7k2xntmwu6/uSb5tpc/hySgZc4eoL31yB29W6tJFo2akwjPWcEqnCEdJvGexCL0KEQwVYv5BlowfhVz26hg==" data-cf-beacon='{"version":"2024.11.0","token":"f9c59e94f5d94e5ab856adab7835e24c","r":1,"spa":2}' crossorigin="anonymous"></script>
238 239</body> 240</html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.