1<!DOCTYPE html><html lang="en-GB"> <head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover"><meta name="theme-color" content="#F5F1E8"><link rel="icon" href="/favicon.svg" type="image/svg+xml"><link rel="apple-touch-icon" href="/apple-touch-icon.png"><link rel="manifest" href="/manifest.webmanifest"><link rel="preload" href="/fonts/newsreader-500-normal.woff2" as="font" type="font/woff2" crossorigin><link rel="preload" href="/fonts/inter-400-normal.woff2" as="font" type="font/woff2" crossorigin><title>Contact Tower of London Tour · Tower of London Tour</title><meta name="description" content="Email [email protected] with a correction, a question about the site, or feedback on a plan. We are not the Tower of London: ticket and visit enquiries go to Historic Royal Palaces."><link rel="canonical" href="https://toweroflondontour.com/contact"><meta property="og:site_name" content="Tower of London Tour"><meta property="og:type" content="website"><meta property="og:title" content="Contact Tower of London Tour"><meta property="og:description" content="Email [email protected] with a correction, a question about the site, or feedback on a plan. We are not the Tower of London: ticket and visit enquiries go to Historic Royal Palaces."><meta property="og:url" content="https://toweroflondontour.com/contact"><meta property="og:image" content="https://toweroflondontour.com/og/default.jpg"><meta property="og:locale" content="en_GB"><meta name="twitter:card" content="summary_large_image"><meta name="twitter:title" content="Contact Tower of London Tour"><meta name="twitter:description" content="Email [email protected] with a correction, a question about the site, or feedback on a plan. We are not the Tower of London: ticket and visit enquiries go to Historic Royal Palaces."><meta name="twitter:image" content="https://toweroflondontour.com/og/default.jpg">
1<script type="application/ld+json">{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://toweroflondontour.com/"},{"@type":"ListItem","position":2,"name":"Contact","item":"https://toweroflondontour.com/contact"}]}</script>
1<link rel="stylesheet" href="/_astro/410.u5sHmYPx.css">
1<script type="module" src="/_astro/page.BT_9kWGp.js"></script>
1</head> <body class="min-h-dvh flex flex-col"> <header class="no-print sticky top-0 z-40 border-b border-stone bg-parchment/95 backdrop-blur supports-[backdrop-filter]:bg-parchment/85"> <a href="#main" class="skip-link">Skip to content</a> <div class="container-editorial flex h-16 items-center justify-between gap-4"> <a href="/" class="inline-flex items-center gap-2.5 no-underline "> <svg width="34" height="34" viewBox="0 0 34 34" aria-hidden="true" class="shrink-0"> <!-- gateway mark: arched opening between two piers, keystone accent --> <rect x="3" y="12" width="6" height="19" rx="1" fill="#244A40"></rect> <rect x="25" y="12" width="6" height="19" rx="1" fill="#244A40"></rect> <path d="M9 31 V17 a8 8 0 0 1 16 0 V31" fill="none" stroke="#244A40" stroke-width="3" stroke-linejoin="round"></path> <path d="M3 12 h6 M25 12 h6" stroke="#244A40" stroke-width="3"></path> <rect x="15.5" y="7" width="3" height="4" fill="#B18B4E"></rect> <path d="M14 22 c2 -2 4 -2 6 0" stroke="#B18B4E" stroke-width="1.5" fill="none" stroke-linecap="round"></path> </svg> <span class="leading-none"> <span class="block font-display text-[1.15rem] tracking-tight text-ink">Tower of London <span class="italic">Tour</span></span> </span> </a> <nav aria-label="Primary" class="hidden md:block"> <ul class="flex items-center gap-1"> <li> <a href="/plan" class="inline-flex min-h-11 items-center gap-1.5 rounded-full px-3.5 text-[0.95rem] font-semibold no-underline transition-colors text-ink-soft hover:bg-stone hover:text-ink"> Plan your visit </a> </li><li> <a href="/tickets" class="inline-flex min-h-11 items-center gap-1.5 rounded-full px-3.5 text-[0.95rem] font-semibold no-underline transition-colors text-ink-soft hover:bg-stone hover:text-ink"> Tickets & tours </a> </li><li> <a href="/stories" class="inline-flex min-h-11 items-center gap-1.5 rounded-full px-3.5 text-[0.95rem] font-semibold no-underline transition-colors text-ink-soft hover:bg-stone hover:text-ink"> Stories </a> </li><li> <a href="/explore" class="inline-flex min-h-11 items-center gap-1.5 rounded-full px-3.5 text-[0.95rem] font-semibold no-underline transition-colors text-ink-soft hover:bg-stone hover:text-ink"> Explore the Tower </a> </li><li> <a href="/my-visit" class="inline-flex min-h-11 items-center gap-1.5 rounded-full px-3.5 text-[0.95rem] font-semibold no-underline transition-colors text-ink-soft hover:bg-stone hover:text-ink"> <svg width="17" height="17" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" class aria-hidden="true"><path d="M6 3h12v18l-6-4-6 4z"/></svg> My visit <span data-visit-count class="hidden num rounded-full bg-forest px-1.5 text-[0.7rem] leading-5 text-white"></span> </a> </li> </ul> </nav> <site-menu class="md:hidden"> <button type="button" class="btn btn-quiet btn-sm !px-3" aria-expanded="false" aria-controls="mobile-nav" data-menu-toggle> <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" class aria-hidden="true"><path d="M4 7h16M4 12h16M4 17h16"/></svg> <span>Menu</span> </button> <div id="mobile-nav" hidden class="absolute inset-x-0 top-16 border-b border-stone bg-parchment shadow-card"> <nav aria-label="Primary (mobile)" class="container-editorial py-3"> <ul class="flex flex-col"> <li> <a href="/plan" class="flex min-h-12 items-center gap-2 border-b border-stone/70 text-[1.05rem] font-semibold no-underline text-ink"> Plan your visit </a> </li><li> <a href="/tickets" class="flex min-h-12 items-center gap-2 border-b border-stone/70 text-[1.05rem] font-semibold no-underline text-ink"> Tickets & tours </a> </li><li> <a href="/stories" class="flex min-h-12 items-center gap-2 border-b border-stone/70 text-[1.05rem] font-semibold no-underline text-ink"> Stories </a> </li><li> <a href="/explore" class="flex min-h-12 items-center gap-2 border-b border-stone/70 text-[1.05rem] font-semibold no-underline text-ink"> Explore the Tower </a> </li><li> <a href="/my-visit" class="flex min-h-12 items-center gap-2 border-b border-stone/70 text-[1.05rem] font-semibold no-underline text-ink"> <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" class aria-hidden="true"><path d="M6 3h12v18l-6-4-6 4z"/></svg>
1 My visit <span data-visit-count class="hidden num rounded-full bg-forest px-1.5 text-[0.7rem] leading-5 text-white"></span> </a> </li> <li class="pt-3 text-sm text-ink-muted"> <a href="/about" class="mr-4">About</a><a href="/editorial-policy" class="mr-4">Editorial policy</a><a href="/affiliate-disclosure">How we earn</a> </li> </ul> </nav> </div> </site-menu> </div> </header>
1<script type="module" src="/_astro/Header.astro_astro_type_script_index_0_lang.Czq5XlnK.js"></script>
1 <main id="main" class="flex-1" tabindex="-1"> <div class="container-editorial pt-8"><nav aria-label="Breadcrumb" class="text-[0.85rem] text-ink-muted"> <ol class="flex flex-wrap items-center gap-1.5"> <li class="flex items-center gap-1.5"> <a href="/" class="no-underline hover:underline">Home</a> </li><li class="flex items-center gap-1.5"> <span aria-hidden="true">/</span> <span aria-current="page" class="text-ink-soft">Contact</span> </li> </ol> </nav><div class="max-w-2xl mt-6"> <p class="eyebrow">Contact</p> <h1 class="mt-2 text-[2.4rem] leading-[1.05] sm:text-[3rem]">Corrections, questions, feedback</h1> <p class="mt-3 text-[1.1rem] text-ink-soft">We read everything and act on corrections. Please note what we cannot help with, below.</p> </div></div> <div class="container-editorial mt-8 grid gap-8 lg:grid-cols-[1fr_1fr]"> <div class="card p-6"> <h2 class="text-[1.3rem]">Before you write</h2> <ul class="mt-3 space-y-2 text-[0.95rem]"> <li><strong>Tickets, refunds, lost property, group visits:</strong> we cannot help. Contact <a href="https://www.hrp.org.uk/tower-of-london/visit/" rel="noopener" class="underline">Historic Royal Palaces</a> (official tickets) or the tour provider you booked with.</li> <li><strong>Access questions about the Tower itself:</strong> HRP's visitor services: <a href="mailto:[email protected]" class="underline">[email protected]</a> or 0333 320 6000 (MonâFri 09:00â14:00), per their accessibility page.</li> <li><strong>A mistake on this site:</strong> tell us the page and what is wrong. Corrections are noted on the page.</li> </ul> </div> <div class="card p-6" data-contact-card> <h2 class="text-[1.3rem]">Write to the editor</h2> <p class="mt-3 text-[1rem]">Email <a href="mailto:[email protected]" class="font-semibold underline">[email protected]</a>. Include the page address if you are reporting a mistake.</p> </div> <form class="card p-6" data-contact-form novalidate hidden> <h2 class="text-[1.3rem]">Or use the form</h2> <label class="mt-4 block text-[0.92rem]"><span class="font-semibold">Your email</span><input type="email" name="email" required autocomplete="email" class="mt-1 block w-full rounded-card border border-stone-dark bg-white px-3 py-2.5"></label> <label class="mt-3 block text-[0.92rem]"><span class="font-semibold">Page (optional)</span><input type="url" name="page" placeholder="https://toweroflondontour.com/â¦" class="mt-1 block w-full rounded-card border border-stone-dark bg-white px-3 py-2.5"></label> <label class="mt-3 block text-[0.92rem]"><span class="font-semibold">Message</span><textarea name="message" required rows="6" class="mt-1 block w-full rounded-card border border-stone-dark bg-white px-3 py-2.5"></textarea></label> <button type="submit" class="btn btn-primary mt-4" data-submit>Send</button> <p class="mt-3 text-[0.88rem]" data-msg role="status"></p> </form> </div>
1<script>(function(){const endpoint = ""; 2 3 const form = document.querySelector('[data-contact-form]'); const msg = form.querySelector('[data-msg]'); const btn = form.querySelector('[data-submit]'); 4 if (endpoint) form.addEventListener('submit', async (e) => { 5 e.preventDefault(); const fd = new FormData(form); const email = String(fd.get('email') || '').trim(); const message = String(fd.get('message') || '').trim(); 6 if (!/^[^@\s]+@[^@\s]+\.[^@\s]+$/.test(email)) { msg.textContent = 'Enter a valid email address.'; msg.className = 'mt-3 text-[0.88rem] text-oxblood'; form.email.focus(); return; } 7 if (message.length < 5) { msg.textContent = 'Write a message first.'; msg.className = 'mt-3 text-[0.88rem] text-oxblood'; form.message.focus(); return; } 8 btn.disabled = true; msg.textContent = 'Sendingâ¦'; msg.className = 'mt-3 text-[0.88rem] text-ink-muted'; 9 try { const r = await fetch(endpoint, { method: 'POST', headers: { 'content-type': 'application/json' }, body: JSON.stringify({ email, page: fd.get('page') || null, message }) }); if (!r.ok) throw new Error(String(r.status)); msg.textContent = 'Sent. Thank you.'; msg.className = 'mt-3 text-[0.88rem] text-forest-deep'; form.reset(); } 10 catch { msg.textContent = 'Could not send. Nothing was delivered; please try again later.'; msg.className = 'mt-3 text-[0.88rem] text-oxblood'; } 11 finally { btn.disabled = false; } 12 }); 13 })();</script>
13 </main> <footer class="no-print mt-20 border-t border-stone-dark bg-ink text-parchment/85"> <div class="container-editorial grid gap-10 py-14 md:grid-cols-[1.4fr_1fr_1fr_1fr]"> <div class="max-w-md"> <a href="/" class="inline-flex items-center gap-2.5 no-underline "> <svg width="34" height="34" viewBox="0 0 34 34" aria-hidden="true" class="shrink-0"> <!-- gateway mark: arched opening between two piers, keystone accent --> <rect x="3" y="12" width="6" height="19" rx="1" fill="#F5F1E8"></rect> <rect x="25" y="12" width="6" height="19" rx="1" fill="#F5F1E8"></rect> <path d="M9 31 V17 a8 8 0 0 1 16 0 V31" fill="none" stroke="#F5F1E8" stroke-width="3" stroke-linejoin="round"></path> <path d="M3 12 h6 M25 12 h6" stroke="#F5F1E8" stroke-width="3"></path> <rect x="15.5" y="7" width="3" height="4" fill="#B18B4E"></rect> <path d="M14 22 c2 -2 4 -2 6 0" stroke="#B18B4E" stroke-width="1.5" fill="none" stroke-linecap="round"></path> </svg> <span class="leading-none"> <span class="block font-display text-[1.15rem] tracking-tight text-parchment">Tower of London <span class="italic">Tour</span></span> <span class="mt-1 block text-[0.68rem] font-semibold uppercase tracking-[0.14em] text-parchment/75">Independent visit planner</span> </span> </a> <p class="mt-5 text-[0.95rem] leading-relaxed text-parchment/75"> 14An independent guide to visiting the Tower of London. We are not connected to Historic Royal Palaces, the charity that runs the Tower, and we do not sell tickets. Prices and opening details are checked by hand on the dates shown next to them. 15</p> <p class="mt-4 text-[0.85rem] leading-relaxed text-parchment/60"> 16Some links to Viator are affiliate links. If you book through them we may earn a commission at no extra cost to you. Bookings are completed with the named provider, never with us. <a href="/affiliate-disclosure" class="text-parchment/85">How we earn</a>. 17</p> </div> <nav aria-label="Plan"> <h2 class="eyebrow !text-brass-light">Plan</h2> <ul class="mt-3 space-y-2 text-[0.95rem]"> <li><a href="/plan" class="no-underline hover:underline">Visit planner</a></li> <li><a href="/tickets" class="no-underline hover:underline">Tickets & tours compared</a></li> <li><a href="/visit-guide" class="no-underline hover:underline">Visit guide: hours, access, what to bring</a></li> <li><a href="/family" class="no-underline hover:underline">Visiting with children</a></li> <li><a href="/my-visit" class="no-underline hover:underline">My saved visit</a></li> </ul> </nav> <nav aria-label="Discover"> <h2 class="eyebrow !text-brass-light">Discover</h2> <ul class="mt-3 space-y-2 text-[0.95rem]"> <li><a href="/stories" class="no-underline hover:underline">Stories</a></li> <li><a href="/explore" class="no-underline hover:underline">Explore the Tower (map)</a></li> <li><a href="/routes/first-visit-essentials" class="no-underline hover:underline">First visit essentials</a></li> <li><a href="/routes/families-and-fascinating-stories" class="no-underline hover:underline">Families & fascinating stories</a></li> <li><a href="/routes/prisoners-power-and-intrigue" class="no-underline hover:underline">Prisoners, power & intrigue</a></li> </ul> </nav> <nav aria-label="About"> <h2 class="eyebrow !text-brass-light">About</h2> <ul class="mt-3 space-y-2 text-[0.95rem]"> <li><a href="/about" class="no-underline hover:underline">About this site</a></li> <li><a href="/editorial-policy" class="no-underline hover:underline">Editorial policy & sources</a></li> <li><a href="/affiliate-disclosure" class="no-underline hover:underline">Affiliate disclosure</a></li> <li><a href="/contact" class="no-underline hover:underline">Contact</a></li> <li><a href="/privacy" class="no-underline hover:underline">Privacy</a> · <a href="/terms" class="no-underline hover:underline">Terms</a></li> </ul> </nav> </div> <div class="border-t border-parchment/10"> <div class="container-editorial flex flex-col gap-2 py-5 text-[0.8rem] text-parchment/55 sm:flex-row sm:items-center sm:justify-between"> <p>© 2026 Tower of London Tour. Independent and unofficial. Official visitor information: <a href="https://www.hrp.org.uk/tower-of-london/visit/" rel="noopener" class="text-parchment/75">hrp.org.uk</a>.</p> <p>Photographs are credited on the page where they appear. <a href="/editorial-policy#images" class="text-parchment/75">Image credits</a>.</p> </div> </div> </footer> <consent-banner data-ga="G-V8PNEPQEFZ"><div hidden data-banner role="region" aria-label="Cookie consent" class="fixed inset-x-3 bottom-20 z-[60] mx-auto max-w-xl rounded-card border border-stone-dark bg-white p-4 shadow-sheet md:bottom-4"><p class="text-[0.9rem] leading-relaxed text-ink-soft">We would like to use Google Analytics to count visits and see which parts of the planner get used. It set
17s cookies. Nothing personal from your plan is sent, and the site works exactly the same either way. <a href="/privacy" class="underline">Privacy</a>.</p><div class="mt-3 flex flex-wrap gap-2"><button type="button" class="btn btn-primary btn-sm" data-accept>Accept analytics</button><button type="button" class="btn btn-quiet btn-sm" data-decline>Decline</button></div></div></consent-banner>
17<script type="module">const d="tolt.consent.v1";class r extends HTMLElement{connectedCallback(){const c=this.dataset.ga,e=this.querySelector("[data-banner]"),o=window.dataLayer=window.dataLayer||[],n=(...t)=>{o.push(t)};window.gtag=function(){o.push(arguments)},n("consent","default",{analytics_storage:"denied",ad_storage:"denied",ad_user_data:"denied",ad_personalization:"denied"});let a=null;try{a=localStorage.getItem(d)}catch{}const s=()=>{n("consent","update",{analytics_storage:"granted"});const t=document.createElement("script");t.async=!0,t.src=`https://www.googletagmanager.com/gtag/js?id=${encodeURIComponent(c)}`,document.head.appendChild(t),n("js",new Date),n("config",c,{anonymize_ip:!0,send_page_view:!0}),window.dispatchEvent(new CustomEvent("tolt:analytics-ready"))};a==="granted"?s():a!=="denied"&&(e.hidden=!1,e.querySelector("[data-accept]").addEventListener("click",()=>{try{localStorage.setItem(d,"granted")}catch{}e.hidden=!0,s()}),e.querySelector("[data-decline]").addEventListener("click",()=>{try{localStorage.setItem(d,"denied")}catch{}e.hidden=!0}))}}customElements.get("consent-banner")||customElements.define("consent-banner",r);</script>
17 <div aria-live="polite" aria-atomic="true" class="sr-only" data-live-region></div>
17<script type="module" src="/_astro/Base.astro_astro_type_script_index_0_lang.ChEzBJQx.js"></script>
17 </body> </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.