AI Readiness Assessment

https://www.cityoflondon.gov.uk

Assessed2026-07-31
Reference0731/CIT/66
IndustryGovernment and public sector
Scale187 / 1,953
TrafficNAAwaiting live domain connection, provided as part of service deployment.
Regulated sectorNone found
Listed companyNo (not a company with shares)
Manual equivalent15 days · £9,180estimate only

Registered identity from official sources

Registered nameCity of London Corporation
Country of incorporationUnited Kingdom
Legal entity identifier549300CFDOXI0FASRR40

Listing

Established record held for this organisation · GLEIF (legal identity, matched on registered name) · retrieved 2026-07-31 16:48 UTC

Foundations assessed now ยท the automated tests
Your Digital Doorway
PeopleAI systems
AI readiness ยท Pages
6.7%
AI readiness ยท PDFs
31.4%
Misinformation ยท Pages
Extremely likely
Misinformation ยท PDFs
Extremely likely
0%25%50%75%100%
Governancestage 2 ยท not assessed yet...more

64 judgements need a named person in the organisation to confirm, because they turn on what you know to be true rather than anything measurement can settle: whether a claim is supported, whether a page is still current, which of two versions is the one to quote. In order, they cover: who is answerable for this content; is it still true today; can each claim be backed; does our published content agree; will the right meaning come across; can someone reach it and act on it. An answer recorded against each, with a name and a date, is what turns published content into governed content.

Visibilitystage 3 ยท not assessed yet...more

Once the foundations are sound and the content is governed, the visibility stage measures how AI systems and agents actually find the estate: which pages they reach, how often, and how the organisation is represented when they answer questions about it, tracked over time. Building visibility on unconfirmed foundations only amplifies whatever is wrong, which is why it comes last.

Key findings ยท AI readiness

How much of your content is reachable and readable, rather than blocked, buried or missing. Higher is better.

Committing Digital Suicide.AI readiness is very low: AI systems are turned away at the door of the site, so most of the content cannot be reached at all, however well the pages themselves are built.
What is holding it back
  • The block sits in front of the site and leaves no trace in its own logs, so the estate is closed off unnoticed.37 pages
  • The outside sources this page offers as support did not answer when they were asked for, so what the page claims is left resting on material that does not come back. In a regulated setting, where a link is carrying a figure or a required statement, that is the difference between a claim that is evidenced and one that is merely asserted.21 pages
  • Vendors document this as optional rather than required, so its absence is a small forfeit and no more.37 pages
  • The document is refused to AI crawlers at the edge, so its contents never reach the systems that answer about it, and what they state about it is left to guesswork.5 documents
  • With no headings to divide it the document reads as one undivided block, so a passage loses the section it sat in.5 documents
Key findings ยท Misinformation

Where your content could lead an AI system to state something incorrect. Only direct routes to a wrong answer count here.

Misinformation risk is high.The pages read as extremely likely and the documents as extremely likely to cause it, which is why the risk reads as high.
What could cause it
  • The site's own rules withhold its content from those services, so the absence is published policy, not an accident.pages
  • Duplicates collapse to a single surviving version, and which one survives is not the publisher's choice.pages
  • When near-duplicates are left unconsolidated, which version survives is settled arbitrarily rather than by you.pages
  • Content read back out of a picture arrives with conversion errors, so numbers and names come through altered.documents
  • With no headings to divide it the document reads as one undivided block, so a passage loses the section it sat in.documents
  • Without that map the text comes out as the wrong characters, so words and figures are wrong rather than missing.documents
Overall findings what makes up the figures · click to view
Digital doorway measured at the front door · click to view
Site infrastructure 1 area

Whether the estate can be reached and read at all: access rules, links, redirects, sitemap, transport.

The site as a whole 8.3% Extremely likely 10 out of 25
CheckResultEvidence
DS02failrobots.txt disallows the whole site (Disallow: /) to the crawlers used by ChatGPT (OpenAI). The site refuses these AI systems access to its content, so AI readiness is capped at 65% regardless of how well the pages are built. Training and auxiliary crawlers also disallowed: Common Crawl (training corpus for many models).
What we check
Rules in the site's own robots.txt that tell the named AI services to keep off its pages.
What good looks like
The site's robots.txt does not disallow the named AI services from its pages.
Why it matters
The site's own rules withhold its content from those services, so the absence is published policy, not an accident.
What we found on this page
robots.txt disallows the whole site (Disallow: /) to the crawlers used by ChatGPT (OpenAI). The site refuses these AI systems access to its content, so AI readiness is capped at 65% regardless of how well the pages are built. Training and auxiliary crawlers also disallowed: Common Crawl (training corpus for many models).
The evidence, taken from the page as served
The access rules this site publishes, as served

The rules were read for the crawlers each AI service uses.

User-agent: AhrefsBot Disallow: / User-agent: GPTBot Disallow: / User-agent: PetalBot Disallow: / User-agent: Barkrowler Disallow: / User-agent: Bytespider Disallow: / User-agent: DotBot Disallow: /
DS26warningsitemap is stale: 2 lastmod value(s), newest 2019-05-14 (2635 days ago)
What we check
Whether the sitemap carries last-modified dates, and how old the most recent of them is.
What good looks like
The sitemap carries recent last-modified dates.
Why it matters
Absent or stale dates leave the age of the content unstated, so fresh pages read as no newer than old ones.
What we found on this page
sitemap is stale: 2 lastmod value(s), newest 2019-05-14 (2635 days ago)
The evidence, taken from the page as served
The dates this site's sitemap records

The sitemap was read for the date each address records for itself.

What was measuredAs measured on this page
Addresses carrying a date2
The most recent of those dates2019-05-14
Days since that date2635
DS03fail11 of 15 AI crawlers asking for the site are refused by the security layer in front of it, while an ordinary browser is served, so the content is closed to nearly all AI systems before page quality even matters. AI readiness is capped accordingly.
What we check
The same page loads for a browser but is refused when the request names itself as an AI service.
What good looks like
The page returns the same response to a named AI service as to a browser, with no edge block.
Why it matters
The block sits in front of the site and leaves no trace in its own logs, so the estate is closed off unnoticed.
What we found on this page
11 of 15 AI crawlers asking for the site are refused by the security layer in front of it, while an ordinary browser is served, so the content is closed to nearly all AI systems before page quality even matters. AI readiness is capped accordingly.
The evidence, taken from the page as served
Each crawler's own request to the entry page, and the status it received
Hostwww.cityoflondon.gov.uk · resolves to 172.66.155.113, 104.20.19.80 · Cloudflare Address trailwww.cityoflondon.gov.uk Checked2026-07-31 16:45 UTC · request sent from 10.100.100.212 (our checker)
CrawlerHTTPAnswered inSentReceivedOutcome
Browserthe control · a normal visitor200110 ms239 B196.0 KBServed
GPTBotMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko);...40356 ms224 B5.8 KBRefused
OAI-SearchBotMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko);...40360 ms234 B5.8 KBRefused
ChatGPT-UserMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko);...40358 ms227 B5.8 KBRefused
ClaudeBotMozilla/5.0 (compatible; ClaudeBot/1.0; +claudebot@anthropic.com)40360 ms187 B5.8 KBRefused
Claude-UserMozilla/5.0 (compatible; Claude-User/1.0; +https://www.anthropic.com)40361 ms191 B5.8 KBRefused
Googlebot (Gemini)Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko;...200136 ms263 B196.0 KBServed
GoogleOtherMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko);...200117 ms197 B196.0 KBServed
Bingbot (Copilot)Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko;...200137 ms262 B196.0 KBServed
PerplexityBotMozilla/5.0 (compatible; PerplexityBot/1.0;...403122 ms207 B5.8 KBRefused
Perplexity-UserMozilla/5.0 (compatible; Perplexity-User/1.0;...40363 ms211 B5.8 KBRefused
CCBotCCBot/2.0 (https://commoncrawl.org/faq/)40363 ms162 B5.8 KBRefused
BytespiderMozilla/5.0 (Linux; Android 5.0) AppleWebKit/537.36 (KHTML,...40366 ms270 B5.8 KBRefused
AmazonbotMozilla/5.0 (compatible; Amazonbot/0.1;...40363 ms210 B5.8 KBRefused
GrokBotMozilla/5.0 (compatible; GrokBot/1.0; +https://x.ai)200119 ms174 B196.0 KBServed
Meta-ExternalAgentmeta-externalagent/1.1...40361 ms211 B5.8 KBRefused
DS16fail1 URL group(s) are reachable under more than one form (case, trailing slash, or query variants)
What we check
The same page served at several addresses, varying by capitals, slashes or query strings.
What good looks like
Each page is served at a single address, not several varying by capitals, slashes or query strings.
Why it matters
The site cedes the choice of which address is stored and cited, so links and credit scatter across the variants.
What we found on this page
1 URL group(s) are reachable under more than one form (case, trailing slash, or query variants)
The evidence, taken from the page as served
The URLs that serve the same page under more than one form
Page ยท opens in a new tabDetail
www.cityoflondon.gov.uksame page, group 1
www.cityoflondon.gov.uk/same page, group 1
MX12fail1 pair(s) of pages carry near-identical text (at least 90% of the same words)
What we check
Distinct URLs among the assessed pages that carry near-identical body text.
What good looks like
No two assessed pages carry near-identical body text.
Why it matters
Duplicates collapse to a single surviving version, and which one survives is not the publisher's choice.
What we found on this page
1 pair(s) of pages carry near-identical text (at least 90% of the same words)
The evidence, taken from the page as served
Each page pair whose visible text is near-identical (at least 90% shared vocabulary)
Page A ยท opens in a new tabPage B ยท opens in a new tabShared
www.cityoflondon.gov.ukwww.cityoflondon.gov.uk/100%
CT25fail1 pair(s) of pages share more than 70% of the same words, so a machine can read them as the same page
What we check
Pairs of assessed pages that share most of their wording without being outright copies.
What good looks like
No two assessed pages share most of their wording.
Why it matters
When near-duplicates are left unconsolidated, which version survives is settled arbitrarily rather than by you.
What we found on this page
1 pair(s) of pages share more than 70% of the same words, so a machine can read them as the same page
The evidence, taken from the page as served
Each page pair sharing more than 70% of its vocabulary
Page A ยท opens in a new tabPage B ยท opens in a new tabShared
www.cityoflondon.gov.uk/footer/feedbackwww.cityoflondon.gov.uk/footer/social-media75%
CT34fail33 page(s) read as near-identical to other pages in the text a machine ingests (up to 100% shared), but the overlap is shared navigation and footer rather than content: the worst affected page has 38 words of its own out of 3448. Distinct pages can then be taken as duplicates and the real content passed over; the pages are listed in the view.
What we check
Whether a page's own words are so few against a large shared navigation and footer that it reads as near-identical to other pages.
What good looks like
A page carries enough of its own words that a shared navigation and footer do not make it read as a copy of other pages.
Why it matters
When shared furniture is most of the text, distinct pages look like copies of each other and the little real content is easily passed over.
What we found on this page
33 page(s) read as near-identical to other pages in the text a machine ingests (up to 100% shared), but the overlap is shared navigation and footer rather than content: the worst affected page has 38 words of its own out of 3448. Distinct pages can then be taken as duplicates and the real content passed over; the pages are listed in the view.
The evidence, taken from the page as served
Pages whose own words are lost in a shared navigation and footer (near-identical to a machine)
Page ยท opens in a new tabOwn wordsChromeReads as identical toShared
www.cityoflondon.gov.uk/footer/accessibility38 of 344899%www.cityoflondon.gov.uk/footer/accessibility-toolbar100%
www.cityoflondon.gov.uk/footer/cookies38 of 344899%www.cityoflondon.gov.uk/footer/accessibility-toolbar100%
www.cityoflondon.gov.uk/footer/legal-notices34 of 344499%www.cityoflondon.gov.uk/footer/accessibility-toolbar100%
www.cityoflondon.gov.uk/footer/accessibility-toolbar31 of 344199%www.cityoflondon.gov.uk/footer/legal-notices100%
www.cityoflondon.gov.uk/services58 of 346098%www.cityoflondon.gov.uk/about-us99%
www.cityoflondon.gov.uk/supporting-businesses66 of 347298%www.cityoflondon.gov.uk99%
www.cityoflondon.gov.uk/services/getting-help-with-the-cost-of-living45 of 345599%www.cityoflondon.gov.uk/services/housing-and-homelessness/housing-benefits99%
www.cityoflondon.gov.uk/about-us51 of 345399%www.cityoflondon.gov.uk99%
www.cityoflondon.gov.uk/about-us/councillors-committees-meetings53 of 346398%www.cityoflondon.gov.uk/services/getting-help-with-the-cost-of-living/help-with-health-and-wellbeing99%
www.cityoflondon.gov.uk/services/environmental-health/climate-action48 of 345899%www.cityoflondon.gov.uk/services/housing-and-homelessness/housing-benefits99%
www.cityoflondon.gov.uk/about-us/filming50 of 346099%www.cityoflondon.gov.uk/services/children-and-families/help-with-childcare-costs99%
www.cityoflondon.gov.uk/footer/privacy-notice29 of 343999%www.cityoflondon.gov.uk/footer99%
www.cityoflondon.gov.uk/supporting-businesses/tenders-and-procurement/modern-slavery-statement63 of 347398%www.cityoflondon.gov.uk/footer/feedback99%
www.cityoflondon.gov.uk/footer/interactive-map-layers79 of 348998%www.cityoflondon.gov.uk/footer/feedback99%
www.cityoflondon.gov.uk/footer8 of 3414100%www.cityoflondon.gov.uk/footer/accessibility-toolbar99%
www.cityoflondon.gov.uk/services/environmental-health52 of 345898%www.cityoflondon.gov.uk/about-us99%
www.cityoflondon.gov.uk/services/libraries51 of 346199%www.cityoflondon.gov.uk/services/housing-and-homelessness/housing-benefits99%
www.cityoflondon.gov.uk/about-us/about-the-city-of-london-corporation45 of 345599%www.cityoflondon.gov.uk/services/housing-and-homelessness/housing-benefits99%
www.cityoflondon.gov.uk/services/children-and-families/help-with-childcare-costs47 of 345799%www.cityoflondon.gov.uk/about-us/filming99%
www.cityoflondon.gov.uk/services/housing-and-homelessness/housing-benefits/emergency-support-scheme60 of 347098%www.cityoflondon.gov.uk/services/children-and-families/help-with-childcare-costs99%
www.cityoflondon.gov.uk/services/housing-and-homelessness/housing-benefits32 of 344299%www.cityoflondon.gov.uk/services/getting-help-with-the-cost-of-living99%
www.cityoflondon.gov.uk/services/getting-help-with-the-cost-of-living/help-with-health-and-wellbeing50 of 346099%www.cityoflondon.gov.uk/about-us/councillors-committees-meetings99%
www.cityoflondon.gov.uk/footer/consultations69 of 347598%www.cityoflondon.gov.uk/footer98%
www.cityoflondon.gov.uk/services/housing-and-homelessness77 of 348798%www.cityoflondon.gov.uk98%
www.cityoflondon.gov.uk/services/environmental-health/climate-action/climate-action-projects72 of 348298%www.cityoflondon.gov.uk/services/environmental-health/climate-action98%
www.cityoflondon.gov.uk/services/community-and-safety71 of 348198%www.cityoflondon.gov.uk/footer/privacy-notice98%
www.cityoflondon.gov.uk/services/environmental-health/climate-action/climate-action-strategy107 of 351797%www.cityoflondon.gov.uk/services/getting-help-with-the-cost-of-living/help-with-health-and-wellbeing98%
www.cityoflondon.gov.uk/supporting-businesses/business-support-and-advice69 of 347998%www.cityoflondon.gov.uk/services/housing-and-homelessness/housing-benefits98%
www.cityoflondon.gov.uk/footer/contact-the-city-corporation136 of 354696%www.cityoflondon.gov.uk/footer/social-media97%
www.cityoflondon.gov.uk/services/education-and-learning/schools/support-with-school-uniforms-free-school-meals-and-more161 of 357195%www.cityoflondon.gov.uk/footer/feedback97%
www.cityoflondon.gov.uk/services/environmental-health/climate-action/our-climate-action-progress161 of 357195%www.cityoflondon.gov.uk/services/getting-help-with-the-cost-of-living/help-with-health-and-wellbeing96%
www.cityoflondon.gov.uk/events224 of 363194%www.cityoflondon.gov.uk/footer94%
www.cityoflondon.gov.uk/services/community-and-safety/domestic-abuse-support292 of 370292%www.cityoflondon.gov.uk/footer/feedback93%
AR27failthe front door serves the search crawlers while refusing the AI services: 3 search crawler(s) are served the page while 10 of 10 AI answer services' own crawlers are refused. Search results are fed the site's current content; the AI answer services are not, so a person asking a search engine and a person asking an AI assistant receive different information, and the two answers can conflict.
What we check
Whether the front door answers Google consistently: the crawling that feeds search results on one side, and the paths that feed AI answers on the other.
What good looks like
Search crawling and the AI answer services are given the same access, so both speak from the site's current content.
Why it matters
Google search shows the site's current content while the AI services are turned away and answer from older or outside sources, so the same question brings back different information depending on which door the public uses, and the two answers can conflict.
What we found on this page
the front door serves the search crawlers while refusing the AI services: 3 search crawler(s) are served the page while 10 of 10 AI answer services' own crawlers are refused. Search results are fed the site's current content; the AI answer services are not, so a person asking a search engine and a person asking an AI assistant receive different information, and the two answers can conflict.
The evidence, taken from the page as served
The search crawlers and the AI services at the same door, in the same minute

Measured at the same door within the same minute; the full grid is in the view for the front-door check.

CrawlerUser-agent string it sentStatusResult
Browseryour default visitorMozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36200Served · the control
Googlebot (Gemini)Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; Googlebot/2.1; +http://www.google.com/bot.html) Chrome/125.0.0.0 Safari/537.36200Served
GoogleOtherMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko); compatible; GoogleOther200Served
Bingbot (Copilot)Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; bingbot/2.0; +http://www.bing.com/bingbot.htm) Chrome/125.0.0.0 Safari/537.36200Served
GPTBotMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko); compatible; GPTBot/1.1; +https://openai.com/gptbot403Blocked
OAI-SearchBotMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko); compatible; OAI-SearchBot/1.0; +https://openai.com/searchbot403Blocked
ChatGPT-UserMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko); compatible; ChatGPT-User/1.0; +https://openai.com/bot403Blocked
ClaudeBotMozilla/5.0 (compatible; ClaudeBot/1.0; +claudebot@anthropic.com)403Blocked
DS12failone link to sources on other sites was refused when it was checked. The page is still published, but the other site turns away requests that do not come from a person using a browser. It is listed in the view
What we check
The share of links pointing off the site, from a sample, whose targets no longer resolve.
What good looks like
Sources the page relies on open for any reader. Where one refuses or has gone, the page carries the fact in its own words, shows the reference without making it a link, or points somewhere that answers. A refusal by another site is still this site's to resolve, because this site chose to rest a claim on it.
Why it matters
A source the page leans on did not answer when it was asked for. The claim is left standing with nothing behind it, so the same fact gets taken from elsewhere, the claim is set aside as unsupported, or a partial account is presented as a complete one. Where the source is still published but declined the request, the page still reads as though the evidence sits one step away, so the gap is invisible.
What we found on this page
one link to sources on other sites was refused when it was checked. The page is still published, but the other site turns away requests that do not come from a person using a browser. It is listed in the view
The evidence, taken from the page as served
The external links checked, with the status each returned

A link that did not open appears here in two forms. A DEAD link points at a page that has gone. A REFUSED link points at a page that is still published, but the other site turns away requests that do not come from a person using a browser, so our request was declined. Both land in the same place: the material this page offers as its support did not come back when it was asked for. The consequence is not a matter of tidiness. Where a link carries the weight of a claim, a figure, a policy or a regulatory statement, and the target does not open, the support behind that claim is missing at the moment it is needed. Three things follow, and each of them costs the organisation. The same fact gets taken from somewhere else, which hands a third party control of how the claim is worded. Or the claim is treated as unsupported and set aside. Or an answer is drawn from what remains on the page, and a partial account is presented as a complete one. A refused link is the worst of the three, because the page still reads as though the evidence sits one step away, so the gap is invisible and the answer carries false confidence. A refusal by another site is still this site's matter to resolve, because this site chose to rest a claim on it. Three practical ways close it. Carry the fact being relied on in the page's own words, so the claim stands without the visit. Keep the reference but stop making it a link, showing the address as plain text, so nothing promises a route that does not open. Or point to a source that answers any reader. Where the reference has to stay live, say beside it what a reader will meet, so no one is sent to a closed door without warning.

Link ยท opens in a new tabStatusResult
mycity.cityoflondon.gov.uk/200Reachable
www.websitecarbon.com/website/cityoflondon.gov.uk200Reachable
sitemorse.com/index/uk-local-government/2025-q3200Reachable
shop.cityoflondon.gov.uk/200Reachable
www.theglobalcity.uk/200Reachable
careers.cityoflondon.gov.uk/200Reachable
careers.cityoflondon.gov.uk/entry-level-talent200Reachable
careers.cityoflondon.gov.uk/roles200Reachable
careers.cityoflondon.gov.uk/apply200Reachable
careers.cityoflondon.gov.uk/who-we-are200Reachable
careers.cityoflondon.gov.uk/working-here200Reachable
news.cityoflondon.gov.uk200Reachable
news.cityoflondon.gov.uk/media-library200Reachable
ssl.cmadvantage.co.uk/2BA00034-Z-Z-18-Z-0-2-FRM1T2CON2-0-0-Z-Z-Z-Z-Z-Z200Reachable
www.facebook.com/CityofLondonCorp400Reachable
twitter.com/cityoflondon200Reachable
www.theglobalcity.uk/employer-pension-pledge200Reachable
www.actionfraud.police.uk/403Access-restricted
www.fis.cityoflondon.gov.uk/send-local-offer/targeted-early-help200Reachable
costoflivingsupport.campaign.gov.uk/200Reachable
CT07warning1 page title(s) are used on more than one page: โ€œThings to do - City of Londonโ€; the pages are listed in the view
What we check
Any title string that is shared by more than one of the assessed pages.
What good looks like
Each assessed page carries its own distinct title.
Why it matters
Pages sharing one title carry the same label, so nothing distinguishes them at the point one is picked.
What we found on this page
1 page title(s) are used on more than one page: โ€œThings to do - City of Londonโ€; the pages are listed in the view
The evidence, taken from the page as served
The pages that share a title, grouped by the title they share
Page ยท opens in a new tabDetail
www.cityoflondon.gov.uk"Things to do - City of London"
www.cityoflondon.gov.uk/"Things to do - City of London"

Passing checks are omitted here; the full record is in the exports.

Pages considered 37 pages

The highest-priority pages, chosen from the site's own signals of importance.

https://www.cityoflondon.gov.uk 10.5% Extremely likely 11 out of 59
CheckResultEvidence
DS03failan AI crawler asking for this page is refused by the security layer in front of the site, while an ordinary browser is served, so the page's content never reaches the AI and answers about it are left to memory or guesswork
What we check
The same page loads for a browser but is refused when the request names itself as an AI service.
What good looks like
The page returns the same response to a named AI service as to a browser, with no edge block.
Why it matters
The block sits in front of the site and leaves no trace in its own logs, so the estate is closed off unnoticed.
What we found on this page
an AI crawler asking for this page is refused by the security layer in front of the site, while an ordinary browser is served, so the page's content never reaches the AI and answers about it are left to memory or guesswork
The evidence, taken from the page as served
The estate's edge tested with each AI crawler: a browser is served, the crawlers are refused
Hostwww.cityoflondon.gov.uk · resolves to 172.66.155.113, 104.20.19.80 · Cloudflare Address trailwww.cityoflondon.gov.uk Checked2026-07-31 16:45 UTC · request sent from 10.100.100.212 (our checker)
CrawlerHTTPAnswered inSentReceivedOutcome
Browserthe control · a normal visitor200110 ms239 B196.0 KBServed
GPTBotMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko);...40356 ms224 B5.8 KBRefused
OAI-SearchBotMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko);...40360 ms234 B5.8 KBRefused
ChatGPT-UserMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko);...40358 ms227 B5.8 KBRefused
ClaudeBotMozilla/5.0 (compatible; ClaudeBot/1.0; +claudebot@anthropic.com)40360 ms187 B5.8 KBRefused
Claude-UserMozilla/5.0 (compatible; Claude-User/1.0; +https://www.anthropic.com)40361 ms191 B5.8 KBRefused
Googlebot (Gemini)Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko;...200136 ms263 B196.0 KBServed
GoogleOtherMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko);...200117 ms197 B196.0 KBServed
Bingbot (Copilot)Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko;...200137 ms262 B196.0 KBServed
PerplexityBotMozilla/5.0 (compatible; PerplexityBot/1.0;...403122 ms207 B5.8 KBRefused
Perplexity-UserMozilla/5.0 (compatible; Perplexity-User/1.0;...40363 ms211 B5.8 KBRefused
CCBotCCBot/2.0 (https://commoncrawl.org/faq/)40363 ms162 B5.8 KBRefused
BytespiderMozilla/5.0 (Linux; Android 5.0) AppleWebKit/537.36 (KHTML,...40366 ms270 B5.8 KBRefused
AmazonbotMozilla/5.0 (compatible; Amazonbot/0.1;...40363 ms210 B5.8 KBRefused
GrokBotMozilla/5.0 (compatible; GrokBot/1.0; +https://x.ai)200119 ms174 B196.0 KBServed
Meta-ExternalAgentmeta-externalagent/1.1...40361 ms211 B5.8 KBRefused
CT16warningthe page carries no structured data block stating what it is (not required; a hygiene signal)
What we check
The page carries structured data, the machine-readable summary of what it describes.
What good looks like
The page carries structured data summarising what it describes.
Why it matters
Vendors document this as optional rather than required, so its absence is a small forfeit and no more.
What we found on this page
the page carries no structured data block stating what it is (not required; a hygiene signal)
The evidence, taken from the page as served
The head of this page, as served

The page was read for a structured data block describing what the page is.

<head><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no"/><meta http-equiv="X-UA-Compatible" content="ie=edge"/><meta name="facebook-domain-verification" content="msc65lq1e60kt58y2jkbo2flkhvm4a"/><!--[if IE 11 ]> <meta name="msapplication-config" content="_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/browserconfig.xml" /> <![endif]--><link rel="icon" type="image/x-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon.ico"/><link rel="icon" type="image/png" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon-32x32.png"/><link rel="apple-touch-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/col_apple_icon.png"/><link rel="manifest" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/manifest.json"/><script src="https://cc.cdn.civiccomputing.com/9/cookieControl-9.x.min.js" type="text/javascript"/><script src="/site-elements/js/cookie-control.js" type="text/javascript"/><script>!function(e,t,a,n,g){e[n]=e[n]||[],e[n].push({"gtm.start":(new Date).getTime(),event:"gtm.js"});var m=t.getElementsByTagName(a)[0],r=t.createElemโ€ฆ
CT04warningthe page shows the year 2029 in its text, but nothing on the page states it as the date of the content
What we check
The page carries a date, ideally written into the markup rather than sitting only in the text.
What good looks like
The page carries a date, ideally written into the markup rather than sitting only in the text.
Why it matters
An undated page gives nothing to weigh its age against, so old and new material are treated alike.
What we found on this page
the page shows the year 2029 in its text, but nothing on the page states it as the date of the content
The evidence, taken from the page as served
The head of this page, as served

The head of the page was read for a tag stating the date of the content. The year shown above was found in the page's own text.

<head><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no"/><meta http-equiv="X-UA-Compatible" content="ie=edge"/><meta name="facebook-domain-verification" content="msc65lq1e60kt58y2jkbo2flkhvm4a"/><!--[if IE 11 ]> <meta name="msapplication-config" content="_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/browserconfig.xml" /> <![endif]--><link rel="icon" type="image/x-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon.ico"/><link rel="icon" type="image/png" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon-32x32.png"/><link rel="apple-touch-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/col_apple_icon.png"/><link rel="manifest" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/manifest.json"/><script src="https://cc.cdn.civiccomputing.com/9/cookieControl-9.x.min.js" type="text/javascript"/><script src="/site-elements/js/cookie-control.js" type="text/javascript"/><script>!function(e,t,a,n,g){e[n]=e[n]||[],e[n].push({"gtm.start":(new Date).getTime(),event:"gtm.js"});var m=t.getElementsByTagName(a)[0],r=t.createElemโ€ฆ
AR13warningonly 202 characters of this page read as its own content, so either the page is thin or its own words cannot be told apart from the parts repeated across the site
What we check
Whether the page's main content is marked off from the navigation and footer around it.
What good looks like
A main or article region marks the primary content off from the navigation and footer around it.
Why it matters
Pulling the page's text returns menus and legal footers mixed with the substance, so the answer arrives buried in noise.
What we found on this page
only 202 characters of this page read as its own content, so either the page is thin or its own words cannot be told apart from the parts repeated across the site
The evidence, taken from the page as served
The main text extracted from the page, as served
202 characters
Visit homepageWelcome, What do you want to do?SearchSearchView allView alluse left and right cursor keys to navigate tabsTrending About usServicesSupporting BusinessesThings to doUpcoming eventsView all
CT24warningthe page's own content runs to 202 characters
What we check
The page holds enough main text to be substantive, measured against a 400 character floor.
What good looks like
The page holds enough main text to be substantive.
Why it matters
A page of a few sentences offers almost nothing to quote, so it adds little beyond its own existence.
What we found on this page
the page's own content runs to 202 characters
The evidence, taken from the page as served
How much of this page is its own content

Counted from the page as served, before any script runs. The page's own content is the part it marks out as its main content; where it marks out none, the whole of its text is counted.

What was measuredAs measured on this page
The page's own content202 characters
All the text on the page1280 characters
The point we measure against400 characters
CT13warningmain content is 15% of the page's text; the shared furniture around it dominates what is read out
What we check
How much of the page's text sits in the main content region rather than in surrounding furniture.
What good looks like
Most of the page's text sits in its main content region rather than in the surrounding furniture.
Why it matters
When the main region is a small slice of the page, what is pulled out is mostly menus and boilerplate.
What we found on this page
main content is 15% of the page's text; the shared furniture around it dominates what is read out
The evidence, taken from the page as served
How much of this page is its own content

Counted from the page as served, before any script runs. The rest is the menus, header and foot-of-page text that appear on other pages of the site as well.

What was measuredAs measured on this page
The page's own content202 characters
All the text on the page1280 characters
The page's own share of it15%
The point we measure against25%
MS13warning1 of 1 iframes untitled
What we check
Each embedded panel on the page carries a title saying what it contains.
What good looks like
Each embedded panel carries a title saying what it contains.
Why it matters
The embedded region stays unnamed, so what it holds is left unstated in the page around it.
What we found on this page
1 of 1 iframes untitled
The evidence, taken from the page as served
The iframes with no title attribute, as served
src=https://www.googletagmanager.com/ns.html?id=GTM-5C7LND
<iframe src="https://www.googletagmanager.com/ns.html?id=GTM-5C7LND" height="0" width="0" style="display:none;visibility:hidden"/>
AR03fail47% of the words a person sees are missing from the page as first delivered (1280 characters delivered, 2528 once the page finishes building itself): a substantial share of the content exists only after JavaScript runs
What we check
How much of the page's content exists only once JavaScript has run.
What good looks like
The page's content is present in the served HTML, so it does not depend on JavaScript to appear.
Why it matters
The page is fetched successfully but the answer is missing from what comes back, so the content is absent rather than wrong.
What we found on this page
47% of the words a person sees are missing from the page as first delivered (1280 characters delivered, 2528 once the page finishes building itself): a substantial share of the content exists only after JavaScript runs
The evidence, taken from the page as served
Content present only after JavaScript runs (absent from the served HTML)

The served HTML carries 1280 characters of text; after JavaScript runs the page carries 2528. 47% of the rendered page's words are absent from the HTML the server sends.

What the server sends (raw HTML text, first 280 chars)
Things to do - City of London Skip to content Things to do Services Supporting businesses Visit homepage Open search area Open menu Getting help with the cost of living Contact the City Corporation About us Events Accessibility statement Councillors, committees and meetings Repor…
Words present only after JavaScript runs
1996acceptaccessadvertisingadvertsallowamericaanalyticsareasbeingbrowsercannotchangingchoicescleanerclosecollectingcomputercoredatadeliverdisableddisplayenableessentialexhibitionexperiencefunctionfunctionalitygallerygoogleheritageimproveinformationinsightsinterestsintomakemorenavigationnecessaryonlyotherspagepagesperformancepersonalpreferencesprocessproperlyprovidingreadrelevantrememberreportingsavescreenssecuresitesome
AR11warning47% of the words a person sees are missing from the page as first delivered, which is 0.51 of its finished size
What we check
The measured gap between the page as served and the page after the browser has built it.
What good looks like
The served page and the fully built page carry the same words, with little gap between them.
Why it matters
Two versions of the same page exist, and which words come back depends on which version was fetched.
What we found on this page
47% of the words a person sees are missing from the page as first delivered, which is 0.51 of its finished size
The evidence, taken from the page as served
This page as first delivered, against the page once its scripts have run

Both were taken from the same request. The first is what the site sent; the second is what a person ends up looking at.

What was measuredAs measured on this page
Text in the page as delivered1280 characters
Text once the page finishes building2528 characters
Words absent from the delivered page47%
The point we measure against10%
CT27warningthe content missing from the raw extraction is largely present inside script tags (80% of sampled missing terms): the page ships its content as script data rather than as document text
What we check
On the sampled pages, how much text is shipped inside scripts as data rather than as page text.
What good looks like
The page's text is present as page text, not shipped inside scripts as data.
Why it matters
Content held as script data is missing from the plain fetch of the page, so it is absent rather than wrong.
What we found on this page
the content missing from the raw extraction is largely present inside script tags (80% of sampled missing terms): the page ships its content as script data rather than as document text
The evidence, taken from the page as served
Where the missing words were found

The words a person sees but the delivered page did not carry were looked for inside the page's script blocks.

What was measuredAs measured on this page
Words checked78
Of those, found inside script blocks63
Share found there80%
AJ08warningfocus order: the first 12 Tab stops do not follow document order
What we check
Whether pressing Tab moves through the page in the order its content is written.
What good looks like
Pressing Tab moves through the page in the order its content is written.
Why it matters
The keyboard jumps around the page out of sequence, so a form is worked through in an order nobody intended.
What we found on this page
focus order: the first 12 Tab stops do not follow document order
The evidence, taken from the page as served
How the keyboard moves through this page

Read on the page once its scripts had run, following the keyboard from the top.

What was measuredAs measured on this page
Stops the keyboard makes12
The stops follow the order of the pageno
Controls given a forced position0
https://www.cityoflondon.gov.uk/ 10.5% Extremely likely 11 out of 59
CheckResultEvidence
DS03failan AI crawler asking for this page is refused by the security layer in front of the site, while an ordinary browser is served, so the page's content never reaches the AI and answers about it are left to memory or guesswork
What we check
The same page loads for a browser but is refused when the request names itself as an AI service.
What good looks like
The page returns the same response to a named AI service as to a browser, with no edge block.
Why it matters
The block sits in front of the site and leaves no trace in its own logs, so the estate is closed off unnoticed.
What we found on this page
an AI crawler asking for this page is refused by the security layer in front of the site, while an ordinary browser is served, so the page's content never reaches the AI and answers about it are left to memory or guesswork
The evidence, taken from the page as served
The estate's edge tested with each AI crawler: a browser is served, the crawlers are refused
Hostwww.cityoflondon.gov.uk · resolves to 172.66.155.113, 104.20.19.80 · Cloudflare Address trailwww.cityoflondon.gov.uk Checked2026-07-31 16:45 UTC · request sent from 10.100.100.212 (our checker)
CrawlerHTTPAnswered inSentReceivedOutcome
Browserthe control · a normal visitor200110 ms239 B196.0 KBServed
GPTBotMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko);...40356 ms224 B5.8 KBRefused
OAI-SearchBotMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko);...40360 ms234 B5.8 KBRefused
ChatGPT-UserMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko);...40358 ms227 B5.8 KBRefused
ClaudeBotMozilla/5.0 (compatible; ClaudeBot/1.0; +claudebot@anthropic.com)40360 ms187 B5.8 KBRefused
Claude-UserMozilla/5.0 (compatible; Claude-User/1.0; +https://www.anthropic.com)40361 ms191 B5.8 KBRefused
Googlebot (Gemini)Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko;...200136 ms263 B196.0 KBServed
GoogleOtherMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko);...200117 ms197 B196.0 KBServed
Bingbot (Copilot)Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko;...200137 ms262 B196.0 KBServed
PerplexityBotMozilla/5.0 (compatible; PerplexityBot/1.0;...403122 ms207 B5.8 KBRefused
Perplexity-UserMozilla/5.0 (compatible; Perplexity-User/1.0;...40363 ms211 B5.8 KBRefused
CCBotCCBot/2.0 (https://commoncrawl.org/faq/)40363 ms162 B5.8 KBRefused
BytespiderMozilla/5.0 (Linux; Android 5.0) AppleWebKit/537.36 (KHTML,...40366 ms270 B5.8 KBRefused
AmazonbotMozilla/5.0 (compatible; Amazonbot/0.1;...40363 ms210 B5.8 KBRefused
GrokBotMozilla/5.0 (compatible; GrokBot/1.0; +https://x.ai)200119 ms174 B196.0 KBServed
Meta-ExternalAgentmeta-externalagent/1.1...40361 ms211 B5.8 KBRefused
CT16warningthe page carries no structured data block stating what it is (not required; a hygiene signal)
What we check
The page carries structured data, the machine-readable summary of what it describes.
What good looks like
The page carries structured data summarising what it describes.
Why it matters
Vendors document this as optional rather than required, so its absence is a small forfeit and no more.
What we found on this page
the page carries no structured data block stating what it is (not required; a hygiene signal)
The evidence, taken from the page as served
The head of this page, as served

The page was read for a structured data block describing what the page is.

<head><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no"/><meta http-equiv="X-UA-Compatible" content="ie=edge"/><meta name="facebook-domain-verification" content="msc65lq1e60kt58y2jkbo2flkhvm4a"/><!--[if IE 11 ]> <meta name="msapplication-config" content="_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/browserconfig.xml" /> <![endif]--><link rel="icon" type="image/x-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon.ico"/><link rel="icon" type="image/png" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon-32x32.png"/><link rel="apple-touch-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/col_apple_icon.png"/><link rel="manifest" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/manifest.json"/><script src="https://cc.cdn.civiccomputing.com/9/cookieControl-9.x.min.js" type="text/javascript"/><script src="/site-elements/js/cookie-control.js" type="text/javascript"/><script>!function(e,t,a,n,g){e[n]=e[n]||[],e[n].push({"gtm.start":(new Date).getTime(),event:"gtm.js"});var m=t.getElementsByTagName(a)[0],r=t.createElemโ€ฆ
CT04warningthe page shows the year 2029 in its text, but nothing on the page states it as the date of the content
What we check
The page carries a date, ideally written into the markup rather than sitting only in the text.
What good looks like
The page carries a date, ideally written into the markup rather than sitting only in the text.
Why it matters
An undated page gives nothing to weigh its age against, so old and new material are treated alike.
What we found on this page
the page shows the year 2029 in its text, but nothing on the page states it as the date of the content
The evidence, taken from the page as served
The head of this page, as served

The head of the page was read for a tag stating the date of the content. The year shown above was found in the page's own text.

<head><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no"/><meta http-equiv="X-UA-Compatible" content="ie=edge"/><meta name="facebook-domain-verification" content="msc65lq1e60kt58y2jkbo2flkhvm4a"/><!--[if IE 11 ]> <meta name="msapplication-config" content="_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/browserconfig.xml" /> <![endif]--><link rel="icon" type="image/x-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon.ico"/><link rel="icon" type="image/png" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon-32x32.png"/><link rel="apple-touch-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/col_apple_icon.png"/><link rel="manifest" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/manifest.json"/><script src="https://cc.cdn.civiccomputing.com/9/cookieControl-9.x.min.js" type="text/javascript"/><script src="/site-elements/js/cookie-control.js" type="text/javascript"/><script>!function(e,t,a,n,g){e[n]=e[n]||[],e[n].push({"gtm.start":(new Date).getTime(),event:"gtm.js"});var m=t.getElementsByTagName(a)[0],r=t.createElemโ€ฆ
AR13warningonly 202 characters of this page read as its own content, so either the page is thin or its own words cannot be told apart from the parts repeated across the site
What we check
Whether the page's main content is marked off from the navigation and footer around it.
What good looks like
A main or article region marks the primary content off from the navigation and footer around it.
Why it matters
Pulling the page's text returns menus and legal footers mixed with the substance, so the answer arrives buried in noise.
What we found on this page
only 202 characters of this page read as its own content, so either the page is thin or its own words cannot be told apart from the parts repeated across the site
The evidence, taken from the page as served
The main text extracted from the page, as served
202 characters
Visit homepageWelcome, What do you want to do?SearchSearchView allView alluse left and right cursor keys to navigate tabsTrending About usServicesSupporting BusinessesThings to doUpcoming eventsView all
CT24warningthe page's own content runs to 202 characters
What we check
The page holds enough main text to be substantive, measured against a 400 character floor.
What good looks like
The page holds enough main text to be substantive.
Why it matters
A page of a few sentences offers almost nothing to quote, so it adds little beyond its own existence.
What we found on this page
the page's own content runs to 202 characters
The evidence, taken from the page as served
How much of this page is its own content

Counted from the page as served, before any script runs. The page's own content is the part it marks out as its main content; where it marks out none, the whole of its text is counted.

What was measuredAs measured on this page
The page's own content202 characters
All the text on the page1280 characters
The point we measure against400 characters
CT13warningmain content is 15% of the page's text; the shared furniture around it dominates what is read out
What we check
How much of the page's text sits in the main content region rather than in surrounding furniture.
What good looks like
Most of the page's text sits in its main content region rather than in the surrounding furniture.
Why it matters
When the main region is a small slice of the page, what is pulled out is mostly menus and boilerplate.
What we found on this page
main content is 15% of the page's text; the shared furniture around it dominates what is read out
The evidence, taken from the page as served
How much of this page is its own content

Counted from the page as served, before any script runs. The rest is the menus, header and foot-of-page text that appear on other pages of the site as well.

What was measuredAs measured on this page
The page's own content202 characters
All the text on the page1280 characters
The page's own share of it15%
The point we measure against25%
MS13warning1 of 1 iframes untitled
What we check
Each embedded panel on the page carries a title saying what it contains.
What good looks like
Each embedded panel carries a title saying what it contains.
Why it matters
The embedded region stays unnamed, so what it holds is left unstated in the page around it.
What we found on this page
1 of 1 iframes untitled
The evidence, taken from the page as served
The iframes with no title attribute, as served
src=https://www.googletagmanager.com/ns.html?id=GTM-5C7LND
<iframe src="https://www.googletagmanager.com/ns.html?id=GTM-5C7LND" height="0" width="0" style="display:none;visibility:hidden"/>
AR03fail47% of the words a person sees are missing from the page as first delivered (1280 characters delivered, 2528 once the page finishes building itself): a substantial share of the content exists only after JavaScript runs
What we check
How much of the page's content exists only once JavaScript has run.
What good looks like
The page's content is present in the served HTML, so it does not depend on JavaScript to appear.
Why it matters
The page is fetched successfully but the answer is missing from what comes back, so the content is absent rather than wrong.
What we found on this page
47% of the words a person sees are missing from the page as first delivered (1280 characters delivered, 2528 once the page finishes building itself): a substantial share of the content exists only after JavaScript runs
The evidence, taken from the page as served
Content present only after JavaScript runs (absent from the served HTML)

The served HTML carries 1280 characters of text; after JavaScript runs the page carries 2528. 47% of the rendered page's words are absent from the HTML the server sends.

What the server sends (raw HTML text, first 280 chars)
Things to do - City of London Skip to content Things to do Services Supporting businesses Visit homepage Open search area Open menu Getting help with the cost of living Contact the City Corporation About us Events Accessibility statement Councillors, committees and meetings Repor…
Words present only after JavaScript runs
1996acceptaccessadvertisingadvertsallowamericaanalyticsareasbeingbrowsercannotchangingchoicescleanerclosecollectingcomputercoredatadeliverdisableddisplayenableessentialexhibitionexperiencefunctionfunctionalitygallerygoogleheritageimproveinformationinsightsinterestsintomakemorenavigationnecessaryonlyotherspagepagesperformancepersonalpreferencesprocessproperlyprovidingreadrelevantrememberreportingsavescreenssecuresitesome
AR11warning47% of the words a person sees are missing from the page as first delivered, which is 0.51 of its finished size
What we check
The measured gap between the page as served and the page after the browser has built it.
What good looks like
The served page and the fully built page carry the same words, with little gap between them.
Why it matters
Two versions of the same page exist, and which words come back depends on which version was fetched.
What we found on this page
47% of the words a person sees are missing from the page as first delivered, which is 0.51 of its finished size
The evidence, taken from the page as served
This page as first delivered, against the page once its scripts have run

Both were taken from the same request. The first is what the site sent; the second is what a person ends up looking at.

What was measuredAs measured on this page
Text in the page as delivered1280 characters
Text once the page finishes building2528 characters
Words absent from the delivered page47%
The point we measure against10%
CT27warningthe content missing from the raw extraction is largely present inside script tags (80% of sampled missing terms): the page ships its content as script data rather than as document text
What we check
On the sampled pages, how much text is shipped inside scripts as data rather than as page text.
What good looks like
The page's text is present as page text, not shipped inside scripts as data.
Why it matters
Content held as script data is missing from the plain fetch of the page, so it is absent rather than wrong.
What we found on this page
the content missing from the raw extraction is largely present inside script tags (80% of sampled missing terms): the page ships its content as script data rather than as document text
The evidence, taken from the page as served
Where the missing words were found

The words a person sees but the delivered page did not carry were looked for inside the page's script blocks.

What was measuredAs measured on this page
Words checked78
Of those, found inside script blocks63
Share found there80%
AJ08warningfocus order: the first 12 Tab stops do not follow document order
What we check
Whether pressing Tab moves through the page in the order its content is written.
What good looks like
Pressing Tab moves through the page in the order its content is written.
Why it matters
The keyboard jumps around the page out of sequence, so a form is worked through in an order nobody intended.
What we found on this page
focus order: the first 12 Tab stops do not follow document order
The evidence, taken from the page as served
How the keyboard moves through this page

Read on the page once its scripts had run, following the keyboard from the top.

What was measuredAs measured on this page
Stops the keyboard makes12
The stops follow the order of the pageno
Controls given a forced position0
https://www.cityoflondon.gov.uk/services 10.7% Extremely likely 10 out of 60
CheckResultEvidence
DS03failan AI crawler asking for this page is refused by the security layer in front of the site, while an ordinary browser is served, so the page's content never reaches the AI and answers about it are left to memory or guesswork
What we check
The same page loads for a browser but is refused when the request names itself as an AI service.
What good looks like
The page returns the same response to a named AI service as to a browser, with no edge block.
Why it matters
The block sits in front of the site and leaves no trace in its own logs, so the estate is closed off unnoticed.
What we found on this page
an AI crawler asking for this page is refused by the security layer in front of the site, while an ordinary browser is served, so the page's content never reaches the AI and answers about it are left to memory or guesswork
The evidence, taken from the page as served
The estate's edge tested with each AI crawler: a browser is served, the crawlers are refused
Hostwww.cityoflondon.gov.uk · resolves to 172.66.155.113, 104.20.19.80 · Cloudflare Address trailwww.cityoflondon.gov.uk Checked2026-07-31 16:45 UTC · request sent from 10.100.100.212 (our checker)
CrawlerHTTPAnswered inSentReceivedOutcome
Browserthe control · a normal visitor200110 ms239 B196.0 KBServed
GPTBotMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko);...40356 ms224 B5.8 KBRefused
OAI-SearchBotMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko);...40360 ms234 B5.8 KBRefused
ChatGPT-UserMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko);...40358 ms227 B5.8 KBRefused
ClaudeBotMozilla/5.0 (compatible; ClaudeBot/1.0; +claudebot@anthropic.com)40360 ms187 B5.8 KBRefused
Claude-UserMozilla/5.0 (compatible; Claude-User/1.0; +https://www.anthropic.com)40361 ms191 B5.8 KBRefused
Googlebot (Gemini)Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko;...200136 ms263 B196.0 KBServed
GoogleOtherMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko);...200117 ms197 B196.0 KBServed
Bingbot (Copilot)Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko;...200137 ms262 B196.0 KBServed
PerplexityBotMozilla/5.0 (compatible; PerplexityBot/1.0;...403122 ms207 B5.8 KBRefused
Perplexity-UserMozilla/5.0 (compatible; Perplexity-User/1.0;...40363 ms211 B5.8 KBRefused
CCBotCCBot/2.0 (https://commoncrawl.org/faq/)40363 ms162 B5.8 KBRefused
BytespiderMozilla/5.0 (Linux; Android 5.0) AppleWebKit/537.36 (KHTML,...40366 ms270 B5.8 KBRefused
AmazonbotMozilla/5.0 (compatible; Amazonbot/0.1;...40363 ms210 B5.8 KBRefused
GrokBotMozilla/5.0 (compatible; GrokBot/1.0; +https://x.ai)200119 ms174 B196.0 KBServed
Meta-ExternalAgentmeta-externalagent/1.1...40361 ms211 B5.8 KBRefused
CT32warninglength 47
What we check
The meta description's length is usable, between 50 and 170 characters.
What good looks like
The meta description's length is usable, long enough to say something and short enough not to be cut.
Why it matters
Too short says nothing and too long gets cut, so the summary field is spent without doing its job.
What we found on this page
length 47
The evidence, taken from the page as served
The page's description, as served
47 characters
<meta data-react-helmet="true" name="description" content="Local services available in the City of London&#10;"/>
CT16warningthe page carries no structured data block stating what it is (not required; a hygiene signal)
What we check
The page carries structured data, the machine-readable summary of what it describes.
What good looks like
The page carries structured data summarising what it describes.
Why it matters
Vendors document this as optional rather than required, so its absence is a small forfeit and no more.
What we found on this page
the page carries no structured data block stating what it is (not required; a hygiene signal)
The evidence, taken from the page as served
The head of this page, as served

The page was read for a structured data block describing what the page is.

<head><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no"/><meta http-equiv="X-UA-Compatible" content="ie=edge"/><meta name="facebook-domain-verification" content="msc65lq1e60kt58y2jkbo2flkhvm4a"/><!--[if IE 11 ]> <meta name="msapplication-config" content="_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/browserconfig.xml" /> <![endif]--><link rel="icon" type="image/x-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon.ico"/><link rel="icon" type="image/png" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon-32x32.png"/><link rel="apple-touch-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/col_apple_icon.png"/><link rel="manifest" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/manifest.json"/><script src="https://cc.cdn.civiccomputing.com/9/cookieControl-9.x.min.js" type="text/javascript"/><script src="/site-elements/js/cookie-control.js" type="text/javascript"/><script>!function(e,t,a,n,g){e[n]=e[n]||[],e[n].push({"gtm.start":(new Date).getTime(),event:"gtm.js"});var m=t.getElementsByTagName(a)[0],r=t.createElemโ€ฆ
CT04warningthe page shows the year 2029 in its text, but nothing on the page states it as the date of the content
What we check
The page carries a date, ideally written into the markup rather than sitting only in the text.
What good looks like
The page carries a date, ideally written into the markup rather than sitting only in the text.
Why it matters
An undated page gives nothing to weigh its age against, so old and new material are treated alike.
What we found on this page
the page shows the year 2029 in its text, but nothing on the page states it as the date of the content
The evidence, taken from the page as served
The head of this page, as served

The head of the page was read for a tag stating the date of the content. The year shown above was found in the page's own text.

<head><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no"/><meta http-equiv="X-UA-Compatible" content="ie=edge"/><meta name="facebook-domain-verification" content="msc65lq1e60kt58y2jkbo2flkhvm4a"/><!--[if IE 11 ]> <meta name="msapplication-config" content="_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/browserconfig.xml" /> <![endif]--><link rel="icon" type="image/x-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon.ico"/><link rel="icon" type="image/png" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon-32x32.png"/><link rel="apple-touch-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/col_apple_icon.png"/><link rel="manifest" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/manifest.json"/><script src="https://cc.cdn.civiccomputing.com/9/cookieControl-9.x.min.js" type="text/javascript"/><script src="/site-elements/js/cookie-control.js" type="text/javascript"/><script>!function(e,t,a,n,g){e[n]=e[n]||[],e[n].push({"gtm.start":(new Date).getTime(),event:"gtm.js"});var m=t.getElementsByTagName(a)[0],r=t.createElemโ€ฆ
MS13warning1 of 1 iframes untitled
What we check
Each embedded panel on the page carries a title saying what it contains.
What good looks like
Each embedded panel carries a title saying what it contains.
Why it matters
The embedded region stays unnamed, so what it holds is left unstated in the page around it.
What we found on this page
1 of 1 iframes untitled
The evidence, taken from the page as served
The iframes with no title attribute, as served
src=https://www.googletagmanager.com/ns.html?id=GTM-5C7LND
<iframe src="https://www.googletagmanager.com/ns.html?id=GTM-5C7LND" height="0" width="0" style="display:none;visibility:hidden"/>
AR03fail36% of the words a person sees are missing from the page as first delivered (1616 characters delivered, 2717 once the page finishes building itself): a substantial share of the content exists only after JavaScript runs
What we check
How much of the page's content exists only once JavaScript has run.
What good looks like
The page's content is present in the served HTML, so it does not depend on JavaScript to appear.
Why it matters
The page is fetched successfully but the answer is missing from what comes back, so the content is absent rather than wrong.
What we found on this page
36% of the words a person sees are missing from the page as first delivered (1616 characters delivered, 2717 once the page finishes building itself): a substantial share of the content exists only after JavaScript runs
The evidence, taken from the page as served
Content present only after JavaScript runs (absent from the served HTML)

The served HTML carries 1616 characters of text; after JavaScript runs the page carries 2717. 36% of the rendered page's words are absent from the HTML the server sends.

What the server sends (raw HTML text, first 280 chars)
Services - City of London Skip to content Things to do Services Supporting businesses Visit homepage Open search area Open menu Getting help with the cost of living Contact the City Corporation About us Events Accessibility statement Councillors, committees and meetings Report, P…
Words present only after JavaScript runs
acceptaccessadvertisingadvertsallowanalyticsareasbeingbrowsercannotchangingchoicescleanerclosecollectingcomputercoredatadeliverdisabledenableessentialexperiencefunctionfunctionalitygoogleimproveinformationinsightsinterestsintomakemorenavigationnecessaryonlyotherspagepagesperformancepersonalpreferencesprocessproperlyprovidingreadrelevantrememberreportingsavescreenssecuresitesomesplashstoresuchtargetingtargetingadvertisingtested
AR11warning36% of the words a person sees are missing from the page as first delivered, which is 0.59 of its finished size
What we check
The measured gap between the page as served and the page after the browser has built it.
What good looks like
The served page and the fully built page carry the same words, with little gap between them.
Why it matters
Two versions of the same page exist, and which words come back depends on which version was fetched.
What we found on this page
36% of the words a person sees are missing from the page as first delivered, which is 0.59 of its finished size
The evidence, taken from the page as served
This page as first delivered, against the page once its scripts have run

Both were taken from the same request. The first is what the site sent; the second is what a person ends up looking at.

What was measuredAs measured on this page
Text in the page as delivered1616 characters
Text once the page finishes building2717 characters
Words absent from the delivered page36%
The point we measure against10%
CT27warningthe content missing from the raw extraction is largely present inside script tags (85% of sampled missing terms): the page ships its content as script data rather than as document text
What we check
On the sampled pages, how much text is shipped inside scripts as data rather than as page text.
What good looks like
The page's text is present as page text, not shipped inside scripts as data.
Why it matters
Content held as script data is missing from the plain fetch of the page, so it is absent rather than wrong.
What we found on this page
the content missing from the raw extraction is largely present inside script tags (85% of sampled missing terms): the page ships its content as script data rather than as document text
The evidence, taken from the page as served
Where the missing words were found

The words a person sees but the delivered page did not carry were looked for inside the page's script blocks.

What was measuredAs measured on this page
Words checked69
Of those, found inside script blocks59
Share found there85%
AJ08warningfocus order: the first 12 Tab stops do not follow document order
What we check
Whether pressing Tab moves through the page in the order its content is written.
What good looks like
Pressing Tab moves through the page in the order its content is written.
Why it matters
The keyboard jumps around the page out of sequence, so a form is worked through in an order nobody intended.
What we found on this page
focus order: the first 12 Tab stops do not follow document order
The evidence, taken from the page as served
How the keyboard moves through this page

Read on the page once its scripts had run, following the keyboard from the top.

What was measuredAs measured on this page
Stops the keyboard makes12
The stops follow the order of the pageno
Controls given a forced position0
CT34failthe page's own words are thin: 3402 of its 3460 words are shared navigation and footer, so it reads as 99% identical to another page, which a machine can then take as a duplicate and pass over, missing the little content that is its own; the matching page is named in the view
What we check
Whether a page's own words are so few against a large shared navigation and footer that it reads as near-identical to other pages.
What good looks like
A page carries enough of its own words that a shared navigation and footer do not make it read as a copy of other pages.
Why it matters
When shared furniture is most of the text, distinct pages look like copies of each other and the little real content is easily passed over.
What we found on this page
the page's own words are thin: 3402 of its 3460 words are shared navigation and footer, so it reads as 99% identical to another page, which a machine can then take as a duplicate and pass over, missing the little content that is its own; the matching page is named in the view
The evidence, taken from the page as served
This page's own words, lost in shared navigation and footer
Page ยท opens in a new tabOwn wordsChromeReads as identical toShared
www.cityoflondon.gov.uk/services58 of 346098%www.cityoflondon.gov.uk/about-us99%
https://www.cityoflondon.gov.uk/supporting-businesses 10.7% Extremely likely 9 out of 60
CheckResultEvidence
DS03failan AI crawler asking for this page is refused by the security layer in front of the site, while an ordinary browser is served, so the page's content never reaches the AI and answers about it are left to memory or guesswork
What we check
The same page loads for a browser but is refused when the request names itself as an AI service.
What good looks like
The page returns the same response to a named AI service as to a browser, with no edge block.
Why it matters
The block sits in front of the site and leaves no trace in its own logs, so the estate is closed off unnoticed.
What we found on this page
an AI crawler asking for this page is refused by the security layer in front of the site, while an ordinary browser is served, so the page's content never reaches the AI and answers about it are left to memory or guesswork
The evidence, taken from the page as served
The estate's edge tested with each AI crawler: a browser is served, the crawlers are refused
Hostwww.cityoflondon.gov.uk · resolves to 172.66.155.113, 104.20.19.80 · Cloudflare Address trailwww.cityoflondon.gov.uk Checked2026-07-31 16:45 UTC · request sent from 10.100.100.212 (our checker)
CrawlerHTTPAnswered inSentReceivedOutcome
Browserthe control · a normal visitor200110 ms239 B196.0 KBServed
GPTBotMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko);...40356 ms224 B5.8 KBRefused
OAI-SearchBotMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko);...40360 ms234 B5.8 KBRefused
ChatGPT-UserMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko);...40358 ms227 B5.8 KBRefused
ClaudeBotMozilla/5.0 (compatible; ClaudeBot/1.0; +claudebot@anthropic.com)40360 ms187 B5.8 KBRefused
Claude-UserMozilla/5.0 (compatible; Claude-User/1.0; +https://www.anthropic.com)40361 ms191 B5.8 KBRefused
Googlebot (Gemini)Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko;...200136 ms263 B196.0 KBServed
GoogleOtherMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko);...200117 ms197 B196.0 KBServed
Bingbot (Copilot)Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko;...200137 ms262 B196.0 KBServed
PerplexityBotMozilla/5.0 (compatible; PerplexityBot/1.0;...403122 ms207 B5.8 KBRefused
Perplexity-UserMozilla/5.0 (compatible; Perplexity-User/1.0;...40363 ms211 B5.8 KBRefused
CCBotCCBot/2.0 (https://commoncrawl.org/faq/)40363 ms162 B5.8 KBRefused
BytespiderMozilla/5.0 (Linux; Android 5.0) AppleWebKit/537.36 (KHTML,...40366 ms270 B5.8 KBRefused
AmazonbotMozilla/5.0 (compatible; Amazonbot/0.1;...40363 ms210 B5.8 KBRefused
GrokBotMozilla/5.0 (compatible; GrokBot/1.0; +https://x.ai)200119 ms174 B196.0 KBServed
Meta-ExternalAgentmeta-externalagent/1.1...40361 ms211 B5.8 KBRefused
CT16warningthe page carries no structured data block stating what it is (not required; a hygiene signal)
What we check
The page carries structured data, the machine-readable summary of what it describes.
What good looks like
The page carries structured data summarising what it describes.
Why it matters
Vendors document this as optional rather than required, so its absence is a small forfeit and no more.
What we found on this page
the page carries no structured data block stating what it is (not required; a hygiene signal)
The evidence, taken from the page as served
The head of this page, as served

The page was read for a structured data block describing what the page is.

<head><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no"/><meta http-equiv="X-UA-Compatible" content="ie=edge"/><meta name="facebook-domain-verification" content="msc65lq1e60kt58y2jkbo2flkhvm4a"/><!--[if IE 11 ]> <meta name="msapplication-config" content="_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/browserconfig.xml" /> <![endif]--><link rel="icon" type="image/x-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon.ico"/><link rel="icon" type="image/png" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon-32x32.png"/><link rel="apple-touch-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/col_apple_icon.png"/><link rel="manifest" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/manifest.json"/><script src="https://cc.cdn.civiccomputing.com/9/cookieControl-9.x.min.js" type="text/javascript"/><script src="/site-elements/js/cookie-control.js" type="text/javascript"/><script>!function(e,t,a,n,g){e[n]=e[n]||[],e[n].push({"gtm.start":(new Date).getTime(),event:"gtm.js"});var m=t.getElementsByTagName(a)[0],r=t.createElemโ€ฆ
CT04warningthe page shows the year 2029 in its text, but nothing on the page states it as the date of the content
What we check
The page carries a date, ideally written into the markup rather than sitting only in the text.
What good looks like
The page carries a date, ideally written into the markup rather than sitting only in the text.
Why it matters
An undated page gives nothing to weigh its age against, so old and new material are treated alike.
What we found on this page
the page shows the year 2029 in its text, but nothing on the page states it as the date of the content
The evidence, taken from the page as served
The head of this page, as served

The head of the page was read for a tag stating the date of the content. The year shown above was found in the page's own text.

<head><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no"/><meta http-equiv="X-UA-Compatible" content="ie=edge"/><meta name="facebook-domain-verification" content="msc65lq1e60kt58y2jkbo2flkhvm4a"/><!--[if IE 11 ]> <meta name="msapplication-config" content="_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/browserconfig.xml" /> <![endif]--><link rel="icon" type="image/x-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon.ico"/><link rel="icon" type="image/png" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon-32x32.png"/><link rel="apple-touch-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/col_apple_icon.png"/><link rel="manifest" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/manifest.json"/><script src="https://cc.cdn.civiccomputing.com/9/cookieControl-9.x.min.js" type="text/javascript"/><script src="/site-elements/js/cookie-control.js" type="text/javascript"/><script>!function(e,t,a,n,g){e[n]=e[n]||[],e[n].push({"gtm.start":(new Date).getTime(),event:"gtm.js"});var m=t.getElementsByTagName(a)[0],r=t.createElemโ€ฆ
MS13warning1 of 1 iframes untitled
What we check
Each embedded panel on the page carries a title saying what it contains.
What good looks like
Each embedded panel carries a title saying what it contains.
Why it matters
The embedded region stays unnamed, so what it holds is left unstated in the page around it.
What we found on this page
1 of 1 iframes untitled
The evidence, taken from the page as served
The iframes with no title attribute, as served
src=https://www.googletagmanager.com/ns.html?id=GTM-5C7LND
<iframe src="https://www.googletagmanager.com/ns.html?id=GTM-5C7LND" height="0" width="0" style="display:none;visibility:hidden"/>
AR03fail36% of the words a person sees are missing from the page as first delivered (1604 characters delivered, 2705 once the page finishes building itself): a substantial share of the content exists only after JavaScript runs
What we check
How much of the page's content exists only once JavaScript has run.
What good looks like
The page's content is present in the served HTML, so it does not depend on JavaScript to appear.
Why it matters
The page is fetched successfully but the answer is missing from what comes back, so the content is absent rather than wrong.
What we found on this page
36% of the words a person sees are missing from the page as first delivered (1604 characters delivered, 2705 once the page finishes building itself): a substantial share of the content exists only after JavaScript runs
The evidence, taken from the page as served
Content present only after JavaScript runs (absent from the served HTML)

The served HTML carries 1604 characters of text; after JavaScript runs the page carries 2705. 36% of the rendered page's words are absent from the HTML the server sends.

What the server sends (raw HTML text, first 280 chars)
Supporting businesses - City of London Skip to content Things to do Services Supporting businesses Visit homepage Open search area Open menu Getting help with the cost of living Contact the City Corporation About us Events Accessibility statement Councillors, committees and meeti…
Words present only after JavaScript runs
acceptaccessadvertisingadvertsallowanalyticsareasbeingbrowsercannotchangingchoicescleanerclosecollectingcomputercoredatadeliverdisabledenableessentialexperiencefunctionfunctionalitygoogleimproveinformationinsightsinterestsintomakenavigationnecessaryonlyotherspagepagesperformancepersonalpreferencesprocessproperlyprovidingreadrelevantrememberreportingsavescreenssecuresitesomesplashstoresuchtargetingtargetingadvertisingtestedthan
AR11warning36% of the words a person sees are missing from the page as first delivered, which is 0.59 of its finished size
What we check
The measured gap between the page as served and the page after the browser has built it.
What good looks like
The served page and the fully built page carry the same words, with little gap between them.
Why it matters
Two versions of the same page exist, and which words come back depends on which version was fetched.
What we found on this page
36% of the words a person sees are missing from the page as first delivered, which is 0.59 of its finished size
The evidence, taken from the page as served
This page as first delivered, against the page once its scripts have run

Both were taken from the same request. The first is what the site sent; the second is what a person ends up looking at.

What was measuredAs measured on this page
Text in the page as delivered1604 characters
Text once the page finishes building2705 characters
Words absent from the delivered page36%
The point we measure against10%
CT27warningthe content missing from the raw extraction is largely present inside script tags (85% of sampled missing terms): the page ships its content as script data rather than as document text
What we check
On the sampled pages, how much text is shipped inside scripts as data rather than as page text.
What good looks like
The page's text is present as page text, not shipped inside scripts as data.
Why it matters
Content held as script data is missing from the plain fetch of the page, so it is absent rather than wrong.
What we found on this page
the content missing from the raw extraction is largely present inside script tags (85% of sampled missing terms): the page ships its content as script data rather than as document text
The evidence, taken from the page as served
Where the missing words were found

The words a person sees but the delivered page did not carry were looked for inside the page's script blocks.

What was measuredAs measured on this page
Words checked68
Of those, found inside script blocks58
Share found there85%
AJ08warningfocus order: the first 12 Tab stops do not follow document order
What we check
Whether pressing Tab moves through the page in the order its content is written.
What good looks like
Pressing Tab moves through the page in the order its content is written.
Why it matters
The keyboard jumps around the page out of sequence, so a form is worked through in an order nobody intended.
What we found on this page
focus order: the first 12 Tab stops do not follow document order
The evidence, taken from the page as served
How the keyboard moves through this page

Read on the page once its scripts had run, following the keyboard from the top.

What was measuredAs measured on this page
Stops the keyboard makes12
The stops follow the order of the pageno
Controls given a forced position0
CT34failthe page's own words are thin: 3406 of its 3472 words are shared navigation and footer, so it reads as 99% identical to another page, which a machine can then take as a duplicate and pass over, missing the little content that is its own; the matching page is named in the view
What we check
Whether a page's own words are so few against a large shared navigation and footer that it reads as near-identical to other pages.
What good looks like
A page carries enough of its own words that a shared navigation and footer do not make it read as a copy of other pages.
Why it matters
When shared furniture is most of the text, distinct pages look like copies of each other and the little real content is easily passed over.
What we found on this page
the page's own words are thin: 3406 of its 3472 words are shared navigation and footer, so it reads as 99% identical to another page, which a machine can then take as a duplicate and pass over, missing the little content that is its own; the matching page is named in the view
The evidence, taken from the page as served
This page's own words, lost in shared navigation and footer
Page ยท opens in a new tabOwn wordsChromeReads as identical toShared
www.cityoflondon.gov.uk/supporting-businesses66 of 347298%www.cityoflondon.gov.uk99%
https://www.cityoflondon.gov.uk/services/getting-help-with-the-cost-of-living 10.6% Extremely likely 11 out of 60
CheckResultEvidence
DS03failan AI crawler asking for this page is refused by the security layer in front of the site, while an ordinary browser is served, so the page's content never reaches the AI and answers about it are left to memory or guesswork
What we check
The same page loads for a browser but is refused when the request names itself as an AI service.
What good looks like
The page returns the same response to a named AI service as to a browser, with no edge block.
Why it matters
The block sits in front of the site and leaves no trace in its own logs, so the estate is closed off unnoticed.
What we found on this page
an AI crawler asking for this page is refused by the security layer in front of the site, while an ordinary browser is served, so the page's content never reaches the AI and answers about it are left to memory or guesswork
The evidence, taken from the page as served
The estate's edge tested with each AI crawler: a browser is served, the crawlers are refused
Hostwww.cityoflondon.gov.uk · resolves to 172.66.155.113, 104.20.19.80 · Cloudflare Address trailwww.cityoflondon.gov.uk Checked2026-07-31 16:45 UTC · request sent from 10.100.100.212 (our checker)
CrawlerHTTPAnswered inSentReceivedOutcome
Browserthe control · a normal visitor200110 ms239 B196.0 KBServed
GPTBotMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko);...40356 ms224 B5.8 KBRefused
OAI-SearchBotMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko);...40360 ms234 B5.8 KBRefused
ChatGPT-UserMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko);...40358 ms227 B5.8 KBRefused
ClaudeBotMozilla/5.0 (compatible; ClaudeBot/1.0; +claudebot@anthropic.com)40360 ms187 B5.8 KBRefused
Claude-UserMozilla/5.0 (compatible; Claude-User/1.0; +https://www.anthropic.com)40361 ms191 B5.8 KBRefused
Googlebot (Gemini)Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko;...200136 ms263 B196.0 KBServed
GoogleOtherMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko);...200117 ms197 B196.0 KBServed
Bingbot (Copilot)Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko;...200137 ms262 B196.0 KBServed
PerplexityBotMozilla/5.0 (compatible; PerplexityBot/1.0;...403122 ms207 B5.8 KBRefused
Perplexity-UserMozilla/5.0 (compatible; Perplexity-User/1.0;...40363 ms211 B5.8 KBRefused
CCBotCCBot/2.0 (https://commoncrawl.org/faq/)40363 ms162 B5.8 KBRefused
BytespiderMozilla/5.0 (Linux; Android 5.0) AppleWebKit/537.36 (KHTML,...40366 ms270 B5.8 KBRefused
AmazonbotMozilla/5.0 (compatible; Amazonbot/0.1;...40363 ms210 B5.8 KBRefused
GrokBotMozilla/5.0 (compatible; GrokBot/1.0; +https://x.ai)200119 ms174 B196.0 KBServed
Meta-ExternalAgentmeta-externalagent/1.1...40361 ms211 B5.8 KBRefused
CT16warningthe page carries no structured data block stating what it is (not required; a hygiene signal)
What we check
The page carries structured data, the machine-readable summary of what it describes.
What good looks like
The page carries structured data summarising what it describes.
Why it matters
Vendors document this as optional rather than required, so its absence is a small forfeit and no more.
What we found on this page
the page carries no structured data block stating what it is (not required; a hygiene signal)
The evidence, taken from the page as served
The head of this page, as served

The page was read for a structured data block describing what the page is.

<head><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no"/><meta http-equiv="X-UA-Compatible" content="ie=edge"/><meta name="facebook-domain-verification" content="msc65lq1e60kt58y2jkbo2flkhvm4a"/><!--[if IE 11 ]> <meta name="msapplication-config" content="_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/browserconfig.xml" /> <![endif]--><link rel="icon" type="image/x-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon.ico"/><link rel="icon" type="image/png" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon-32x32.png"/><link rel="apple-touch-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/col_apple_icon.png"/><link rel="manifest" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/manifest.json"/><script src="https://cc.cdn.civiccomputing.com/9/cookieControl-9.x.min.js" type="text/javascript"/><script src="/site-elements/js/cookie-control.js" type="text/javascript"/><script>!function(e,t,a,n,g){e[n]=e[n]||[],e[n].push({"gtm.start":(new Date).getTime(),event:"gtm.js"});var m=t.getElementsByTagName(a)[0],r=t.createElemโ€ฆ
CT04warningthe page shows the year 2029 in its text, but nothing on the page states it as the date of the content
What we check
The page carries a date, ideally written into the markup rather than sitting only in the text.
What good looks like
The page carries a date, ideally written into the markup rather than sitting only in the text.
Why it matters
An undated page gives nothing to weigh its age against, so old and new material are treated alike.
What we found on this page
the page shows the year 2029 in its text, but nothing on the page states it as the date of the content
The evidence, taken from the page as served
The head of this page, as served

The head of the page was read for a tag stating the date of the content. The year shown above was found in the page's own text.

<head><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no"/><meta http-equiv="X-UA-Compatible" content="ie=edge"/><meta name="facebook-domain-verification" content="msc65lq1e60kt58y2jkbo2flkhvm4a"/><!--[if IE 11 ]> <meta name="msapplication-config" content="_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/browserconfig.xml" /> <![endif]--><link rel="icon" type="image/x-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon.ico"/><link rel="icon" type="image/png" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon-32x32.png"/><link rel="apple-touch-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/col_apple_icon.png"/><link rel="manifest" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/manifest.json"/><script src="https://cc.cdn.civiccomputing.com/9/cookieControl-9.x.min.js" type="text/javascript"/><script src="/site-elements/js/cookie-control.js" type="text/javascript"/><script>!function(e,t,a,n,g){e[n]=e[n]||[],e[n].push({"gtm.start":(new Date).getTime(),event:"gtm.js"});var m=t.getElementsByTagName(a)[0],r=t.createElemโ€ฆ
AJ05warningno site-search control detected on this page
What we check
Whether a search box for the site is present in the page as it is served.
What good looks like
A search box is present in the served markup, so the site's own content can be queried directly.
Why it matters
With no search box on the page, its links are the only route from here into the rest of the site.
What we found on this page
no site-search control detected on this page
The evidence, taken from the page as served
The head of this page, as served

The page was read for a search box: a search form, a control named for search, or a box labelled as one.

<head><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no"/><meta http-equiv="X-UA-Compatible" content="ie=edge"/><meta name="facebook-domain-verification" content="msc65lq1e60kt58y2jkbo2flkhvm4a"/><!--[if IE 11 ]> <meta name="msapplication-config" content="_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/browserconfig.xml" /> <![endif]--><link rel="icon" type="image/x-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon.ico"/><link rel="icon" type="image/png" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon-32x32.png"/><link rel="apple-touch-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/col_apple_icon.png"/><link rel="manifest" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/manifest.json"/><script src="https://cc.cdn.civiccomputing.com/9/cookieControl-9.x.min.js" type="text/javascript"/><script src="/site-elements/js/cookie-control.js" type="text/javascript"/><script>!function(e,t,a,n,g){e[n]=e[n]||[],e[n].push({"gtm.start":(new Date).getTime(),event:"gtm.js"});var m=t.getElementsByTagName(a)[0],r=t.createElemโ€ฆ
MS13warning1 of 1 iframes untitled
What we check
Each embedded panel on the page carries a title saying what it contains.
What good looks like
Each embedded panel carries a title saying what it contains.
Why it matters
The embedded region stays unnamed, so what it holds is left unstated in the page around it.
What we found on this page
1 of 1 iframes untitled
The evidence, taken from the page as served
The iframes with no title attribute, as served
src=https://www.googletagmanager.com/ns.html?id=GTM-5C7LND
<iframe src="https://www.googletagmanager.com/ns.html?id=GTM-5C7LND" height="0" width="0" style="display:none;visibility:hidden"/>
DS28failone link to sources on other sites was refused when it was checked. The page is still published, but the other site turns away requests that do not come from a person using a browser. It is listed in the view
What we check
For a single page, the share of its links to OTHER sites, sampled, that lead nowhere. The site's own links are assessed separately.
What good looks like
The page's references to other sites open for any reader. Where one refuses or has gone, the page carries the fact itself, shows the reference as plain text rather than as a link, or points to a source that answers.
Why it matters
The outside sources this page offers as support did not answer when they were asked for, so what the page claims is left resting on material that does not come back. In a regulated setting, where a link is carrying a figure or a required statement, that is the difference between a claim that is evidenced and one that is merely asserted.
What we found on this page
one link to sources on other sites was refused when it was checked. The page is still published, but the other site turns away requests that do not come from a person using a browser. It is listed in the view
The evidence, taken from the page as served
The external links checked on this page, with the status each returned

A link that did not open appears here in two forms. A DEAD link points at a page that has gone. A REFUSED link points at a page that is still published, but the other site turns away requests that do not come from a person using a browser, so our request was declined. Both land in the same place: the material this page offers as its support did not come back when it was asked for. The consequence is not a matter of tidiness. Where a link carries the weight of a claim, a figure, a policy or a regulatory statement, and the target does not open, the support behind that claim is missing at the moment it is needed. Three things follow, and each of them costs the organisation. The same fact gets taken from somewhere else, which hands a third party control of how the claim is worded. Or the claim is treated as unsupported and set aside. Or an answer is drawn from what remains on the page, and a partial account is presented as a complete one. A refused link is the worst of the three, because the page still reads as though the evidence sits one step away, so the gap is invisible and the answer carries false confidence. A refusal by another site is still this site's matter to resolve, because this site chose to rest a claim on it. Three practical ways close it. Carry the fact being relied on in the page's own words, so the claim stands without the visit. Keep the reference but stop making it a link, showing the address as plain text, so nothing promises a route that does not open. Or point to a source that answers any reader. Where the reference has to stay live, say beside it what a reader will meet, so no one is sent to a closed door without warning.

Link ยท opens in a new tabStatusResult
www.actionfraud.police.uk/403Access-restricted
costoflivingsupport.campaign.gov.uk/200Reachable
northeastlondon.icb.nhs.uk/your-health/support-for-nhs-costs200Reachable
www.google.com/maps/d/u/1/viewer?ll=51.524595465755546%2C-0.07126824002745558&z=13&mid=151Sf1byxKpNjx1b3412-FZaEVOWvq34200Reachable
www.london.gov.uk/programmes-strategies/communities-and-social-justice/help-cost-living200Reachable
AR03warning13% of the words a person sees are missing from the page as first delivered (6276 characters delivered, 7505 once the page finishes building itself)
What we check
How much of the page's content exists only once JavaScript has run.
What good looks like
The page's content is present in the served HTML, so it does not depend on JavaScript to appear.
Why it matters
The page is fetched successfully but the answer is missing from what comes back, so the content is absent rather than wrong.
What we found on this page
13% of the words a person sees are missing from the page as first delivered (6276 characters delivered, 7505 once the page finishes building itself)
The evidence, taken from the page as served
Content present only after JavaScript runs (absent from the served HTML)

The served HTML carries 6276 characters of text; after JavaScript runs the page carries 7505. 13% of the rendered page's words are absent from the HTML the server sends.

What the server sends (raw HTML text, first 280 chars)
Getting help with the cost of living - City of London Skip to content Things to do Services Supporting businesses Visit homepage Open search area Open menu Getting help with the cost of living Contact the City Corporation About us Events Accessibility statement Councillors, commi…
Words present only after JavaScript runs
acceptadvertisingadvertsallowanalyticsareasbeingbrowsercannotchangingchoicescleanerclosecollectingcoredatadeliverdisabledenableexternalfunctionfunctionalitygoogleimproveinsightsinterestslinknavigationnecessaryonlyotherspagesperformancepersonalpreferencesprocessproperlyprovidingreadrememberreportingsavescreenssitesplashstoretargetingtargetingadvertisingthanusageuseduseswillwithout
AR11warning13% of the words a person sees are missing from the page as first delivered, which is 0.84 of its finished size
What we check
The measured gap between the page as served and the page after the browser has built it.
What good looks like
The served page and the fully built page carry the same words, with little gap between them.
Why it matters
Two versions of the same page exist, and which words come back depends on which version was fetched.
What we found on this page
13% of the words a person sees are missing from the page as first delivered, which is 0.84 of its finished size
The evidence, taken from the page as served
This page as first delivered, against the page once its scripts have run

Both were taken from the same request. The first is what the site sent; the second is what a person ends up looking at.

What was measuredAs measured on this page
Text in the page as delivered6276 characters
Text once the page finishes building7505 characters
Words absent from the delivered page13%
The point we measure against10%
CT27warningthe content missing from the raw extraction is largely present inside script tags (81% of sampled missing terms): the page ships its content as script data rather than as document text
What we check
On the sampled pages, how much text is shipped inside scripts as data rather than as page text.
What good looks like
The page's text is present as page text, not shipped inside scripts as data.
Why it matters
Content held as script data is missing from the plain fetch of the page, so it is absent rather than wrong.
What we found on this page
the content missing from the raw extraction is largely present inside script tags (81% of sampled missing terms): the page ships its content as script data rather than as document text
The evidence, taken from the page as served
Where the missing words were found

The words a person sees but the delivered page did not carry were looked for inside the page's script blocks.

What was measuredAs measured on this page
Words checked54
Of those, found inside script blocks44
Share found there81%
AJ08warningfocus order: the first 12 Tab stops do not follow document order
What we check
Whether pressing Tab moves through the page in the order its content is written.
What good looks like
Pressing Tab moves through the page in the order its content is written.
Why it matters
The keyboard jumps around the page out of sequence, so a form is worked through in an order nobody intended.
What we found on this page
focus order: the first 12 Tab stops do not follow document order
The evidence, taken from the page as served
How the keyboard moves through this page

Read on the page once its scripts had run, following the keyboard from the top.

What was measuredAs measured on this page
Stops the keyboard makes12
The stops follow the order of the pageno
Controls given a forced position0
CT34failthe page's own words are thin: 3410 of its 3455 words are shared navigation and footer, so it reads as 99% identical to another page, which a machine can then take as a duplicate and pass over, missing the little content that is its own; the matching page is named in the view
What we check
Whether a page's own words are so few against a large shared navigation and footer that it reads as near-identical to other pages.
What good looks like
A page carries enough of its own words that a shared navigation and footer do not make it read as a copy of other pages.
Why it matters
When shared furniture is most of the text, distinct pages look like copies of each other and the little real content is easily passed over.
What we found on this page
the page's own words are thin: 3410 of its 3455 words are shared navigation and footer, so it reads as 99% identical to another page, which a machine can then take as a duplicate and pass over, missing the little content that is its own; the matching page is named in the view
The evidence, taken from the page as served
This page's own words, lost in shared navigation and footer
Page ยท opens in a new tabOwn wordsChromeReads as identical toShared
www.cityoflondon.gov.uk/services/getting-help-with-the-cost-of-living45 of 345599%www.cityoflondon.gov.uk/services/housing-and-homelessness/housing-benefits99%
https://www.cityoflondon.gov.uk/events 10.6% Extremely likely 10 out of 60
CheckResultEvidence
DS03failan AI crawler asking for this page is refused by the security layer in front of the site, while an ordinary browser is served, so the page's content never reaches the AI and answers about it are left to memory or guesswork
What we check
The same page loads for a browser but is refused when the request names itself as an AI service.
What good looks like
The page returns the same response to a named AI service as to a browser, with no edge block.
Why it matters
The block sits in front of the site and leaves no trace in its own logs, so the estate is closed off unnoticed.
What we found on this page
an AI crawler asking for this page is refused by the security layer in front of the site, while an ordinary browser is served, so the page's content never reaches the AI and answers about it are left to memory or guesswork
The evidence, taken from the page as served
The estate's edge tested with each AI crawler: a browser is served, the crawlers are refused
Hostwww.cityoflondon.gov.uk · resolves to 172.66.155.113, 104.20.19.80 · Cloudflare Address trailwww.cityoflondon.gov.uk Checked2026-07-31 16:45 UTC · request sent from 10.100.100.212 (our checker)
CrawlerHTTPAnswered inSentReceivedOutcome
Browserthe control · a normal visitor200110 ms239 B196.0 KBServed
GPTBotMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko);...40356 ms224 B5.8 KBRefused
OAI-SearchBotMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko);...40360 ms234 B5.8 KBRefused
ChatGPT-UserMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko);...40358 ms227 B5.8 KBRefused
ClaudeBotMozilla/5.0 (compatible; ClaudeBot/1.0; +claudebot@anthropic.com)40360 ms187 B5.8 KBRefused
Claude-UserMozilla/5.0 (compatible; Claude-User/1.0; +https://www.anthropic.com)40361 ms191 B5.8 KBRefused
Googlebot (Gemini)Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko;...200136 ms263 B196.0 KBServed
GoogleOtherMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko);...200117 ms197 B196.0 KBServed
Bingbot (Copilot)Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko;...200137 ms262 B196.0 KBServed
PerplexityBotMozilla/5.0 (compatible; PerplexityBot/1.0;...403122 ms207 B5.8 KBRefused
Perplexity-UserMozilla/5.0 (compatible; Perplexity-User/1.0;...40363 ms211 B5.8 KBRefused
CCBotCCBot/2.0 (https://commoncrawl.org/faq/)40363 ms162 B5.8 KBRefused
BytespiderMozilla/5.0 (Linux; Android 5.0) AppleWebKit/537.36 (KHTML,...40366 ms270 B5.8 KBRefused
AmazonbotMozilla/5.0 (compatible; Amazonbot/0.1;...40363 ms210 B5.8 KBRefused
GrokBotMozilla/5.0 (compatible; GrokBot/1.0; +https://x.ai)200119 ms174 B196.0 KBServed
Meta-ExternalAgentmeta-externalagent/1.1...40361 ms211 B5.8 KBRefused
CT16warningthe page carries no structured data block stating what it is (not required; a hygiene signal)
What we check
The page carries structured data, the machine-readable summary of what it describes.
What good looks like
The page carries structured data summarising what it describes.
Why it matters
Vendors document this as optional rather than required, so its absence is a small forfeit and no more.
What we found on this page
the page carries no structured data block stating what it is (not required; a hygiene signal)
The evidence, taken from the page as served
The head of this page, as served

The page was read for a structured data block describing what the page is.

<head><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no"/><meta http-equiv="X-UA-Compatible" content="ie=edge"/><meta name="facebook-domain-verification" content="msc65lq1e60kt58y2jkbo2flkhvm4a"/><!--[if IE 11 ]> <meta name="msapplication-config" content="_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/browserconfig.xml" /> <![endif]--><link rel="icon" type="image/x-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon.ico"/><link rel="icon" type="image/png" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon-32x32.png"/><link rel="apple-touch-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/col_apple_icon.png"/><link rel="manifest" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/manifest.json"/><script src="https://cc.cdn.civiccomputing.com/9/cookieControl-9.x.min.js" type="text/javascript"/><script src="/site-elements/js/cookie-control.js" type="text/javascript"/><script>!function(e,t,a,n,g){e[n]=e[n]||[],e[n].push({"gtm.start":(new Date).getTime(),event:"gtm.js"});var m=t.getElementsByTagName(a)[0],r=t.createElemโ€ฆ
CT04warningthe page shows the year 2029 in its text, but nothing on the page states it as the date of the content
What we check
The page carries a date, ideally written into the markup rather than sitting only in the text.
What good looks like
The page carries a date, ideally written into the markup rather than sitting only in the text.
Why it matters
An undated page gives nothing to weigh its age against, so old and new material are treated alike.
What we found on this page
the page shows the year 2029 in its text, but nothing on the page states it as the date of the content
The evidence, taken from the page as served
The head of this page, as served

The head of the page was read for a tag stating the date of the content. The year shown above was found in the page's own text.

<head><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no"/><meta http-equiv="X-UA-Compatible" content="ie=edge"/><meta name="facebook-domain-verification" content="msc65lq1e60kt58y2jkbo2flkhvm4a"/><!--[if IE 11 ]> <meta name="msapplication-config" content="_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/browserconfig.xml" /> <![endif]--><link rel="icon" type="image/x-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon.ico"/><link rel="icon" type="image/png" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon-32x32.png"/><link rel="apple-touch-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/col_apple_icon.png"/><link rel="manifest" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/manifest.json"/><script src="https://cc.cdn.civiccomputing.com/9/cookieControl-9.x.min.js" type="text/javascript"/><script src="/site-elements/js/cookie-control.js" type="text/javascript"/><script>!function(e,t,a,n,g){e[n]=e[n]||[],e[n].push({"gtm.start":(new Date).getTime(),event:"gtm.js"});var m=t.getElementsByTagName(a)[0],r=t.createElemโ€ฆ
AJ05warningno site-search control detected on this page
What we check
Whether a search box for the site is present in the page as it is served.
What good looks like
A search box is present in the served markup, so the site's own content can be queried directly.
Why it matters
With no search box on the page, its links are the only route from here into the rest of the site.
What we found on this page
no site-search control detected on this page
The evidence, taken from the page as served
The head of this page, as served

The page was read for a search box: a search form, a control named for search, or a box labelled as one.

<head><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no"/><meta http-equiv="X-UA-Compatible" content="ie=edge"/><meta name="facebook-domain-verification" content="msc65lq1e60kt58y2jkbo2flkhvm4a"/><!--[if IE 11 ]> <meta name="msapplication-config" content="_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/browserconfig.xml" /> <![endif]--><link rel="icon" type="image/x-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon.ico"/><link rel="icon" type="image/png" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon-32x32.png"/><link rel="apple-touch-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/col_apple_icon.png"/><link rel="manifest" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/manifest.json"/><script src="https://cc.cdn.civiccomputing.com/9/cookieControl-9.x.min.js" type="text/javascript"/><script src="/site-elements/js/cookie-control.js" type="text/javascript"/><script>!function(e,t,a,n,g){e[n]=e[n]||[],e[n].push({"gtm.start":(new Date).getTime(),event:"gtm.js"});var m=t.getElementsByTagName(a)[0],r=t.createElemโ€ฆ
MS13warning1 of 1 iframes untitled
What we check
Each embedded panel on the page carries a title saying what it contains.
What good looks like
Each embedded panel carries a title saying what it contains.
Why it matters
The embedded region stays unnamed, so what it holds is left unstated in the page around it.
What we found on this page
1 of 1 iframes untitled
The evidence, taken from the page as served
The iframes with no title attribute, as served
src=https://www.googletagmanager.com/ns.html?id=GTM-5C7LND
<iframe src="https://www.googletagmanager.com/ns.html?id=GTM-5C7LND" height="0" width="0" style="display:none;visibility:hidden"/>
AR03fail35% of the words a person sees are missing from the page as first delivered (1921 characters delivered, 3067 once the page finishes building itself): a substantial share of the content exists only after JavaScript runs
What we check
How much of the page's content exists only once JavaScript has run.
What good looks like
The page's content is present in the served HTML, so it does not depend on JavaScript to appear.
Why it matters
The page is fetched successfully but the answer is missing from what comes back, so the content is absent rather than wrong.
What we found on this page
35% of the words a person sees are missing from the page as first delivered (1921 characters delivered, 3067 once the page finishes building itself): a substantial share of the content exists only after JavaScript runs
The evidence, taken from the page as served
Content present only after JavaScript runs (absent from the served HTML)

The served HTML carries 1921 characters of text; after JavaScript runs the page carries 3067. 35% of the rendered page's words are absent from the HTML the server sends.

What the server sends (raw HTML text, first 280 chars)
Events - City of London Skip to content Things to do Services Supporting businesses Visit homepage Open search area Open menu Getting help with the cost of living Contact the City Corporation About us Events Accessibility statement Councillors, committees and meetings Report, Pay…
Words present only after JavaScript runs
acceptaccessadvertisingadvertsallowanalyticsareasbeingbrowsercannotchangingchoicescleanerclosecollectingcomputercontributorscoredatadeliverdisabledenableessentialexperiencefunctionfunctionalitygoogleimproveinformationinsightsinterestsintoleafletmakemorenavigationnecessaryonlyopenstreetmapotherspagepagesperformancepersonalpreferencesprocessproperlyprovidingreadrelevantrememberreportingsavescreenssecuresitesomesplashstoresuch
AR11warning35% of the words a person sees are missing from the page as first delivered, which is 0.63 of its finished size
What we check
The measured gap between the page as served and the page after the browser has built it.
What good looks like
The served page and the fully built page carry the same words, with little gap between them.
Why it matters
Two versions of the same page exist, and which words come back depends on which version was fetched.
What we found on this page
35% of the words a person sees are missing from the page as first delivered, which is 0.63 of its finished size
The evidence, taken from the page as served
This page as first delivered, against the page once its scripts have run

Both were taken from the same request. The first is what the site sent; the second is what a person ends up looking at.

What was measuredAs measured on this page
Text in the page as delivered1921 characters
Text once the page finishes building3067 characters
Words absent from the delivered page35%
The point we measure against10%
CT27warningthe content missing from the raw extraction is largely present inside script tags (83% of sampled missing terms): the page ships its content as script data rather than as document text
What we check
On the sampled pages, how much text is shipped inside scripts as data rather than as page text.
What good looks like
The page's text is present as page text, not shipped inside scripts as data.
Why it matters
Content held as script data is missing from the plain fetch of the page, so it is absent rather than wrong.
What we found on this page
the content missing from the raw extraction is largely present inside script tags (83% of sampled missing terms): the page ships its content as script data rather than as document text
The evidence, taken from the page as served
Where the missing words were found

The words a person sees but the delivered page did not carry were looked for inside the page's script blocks.

What was measuredAs measured on this page
Words checked72
Of those, found inside script blocks60
Share found there83%
AJ08warningfocus order: the first 12 Tab stops do not follow document order
What we check
Whether pressing Tab moves through the page in the order its content is written.
What good looks like
Pressing Tab moves through the page in the order its content is written.
Why it matters
The keyboard jumps around the page out of sequence, so a form is worked through in an order nobody intended.
What we found on this page
focus order: the first 12 Tab stops do not follow document order
The evidence, taken from the page as served
How the keyboard moves through this page

Read on the page once its scripts had run, following the keyboard from the top.

What was measuredAs measured on this page
Stops the keyboard makes12
The stops follow the order of the pageno
Controls given a forced position0
CT34failthe page's own words are thin: 3407 of its 3631 words are shared navigation and footer, so it reads as 94% identical to another page, which a machine can then take as a duplicate and pass over, missing the little content that is its own; the matching page is named in the view
What we check
Whether a page's own words are so few against a large shared navigation and footer that it reads as near-identical to other pages.
What good looks like
A page carries enough of its own words that a shared navigation and footer do not make it read as a copy of other pages.
Why it matters
When shared furniture is most of the text, distinct pages look like copies of each other and the little real content is easily passed over.
What we found on this page
the page's own words are thin: 3407 of its 3631 words are shared navigation and footer, so it reads as 94% identical to another page, which a machine can then take as a duplicate and pass over, missing the little content that is its own; the matching page is named in the view
The evidence, taken from the page as served
This page's own words, lost in shared navigation and footer
Page ยท opens in a new tabOwn wordsChromeReads as identical toShared
www.cityoflondon.gov.uk/events224 of 363194%www.cityoflondon.gov.uk/footer94%
https://www.cityoflondon.gov.uk/about-us 10.6% Extremely likely 11 out of 60
CheckResultEvidence
DS03failan AI crawler asking for this page is refused by the security layer in front of the site, while an ordinary browser is served, so the page's content never reaches the AI and answers about it are left to memory or guesswork
What we check
The same page loads for a browser but is refused when the request names itself as an AI service.
What good looks like
The page returns the same response to a named AI service as to a browser, with no edge block.
Why it matters
The block sits in front of the site and leaves no trace in its own logs, so the estate is closed off unnoticed.
What we found on this page
an AI crawler asking for this page is refused by the security layer in front of the site, while an ordinary browser is served, so the page's content never reaches the AI and answers about it are left to memory or guesswork
The evidence, taken from the page as served
The estate's edge tested with each AI crawler: a browser is served, the crawlers are refused
Hostwww.cityoflondon.gov.uk · resolves to 172.66.155.113, 104.20.19.80 · Cloudflare Address trailwww.cityoflondon.gov.uk Checked2026-07-31 16:45 UTC · request sent from 10.100.100.212 (our checker)
CrawlerHTTPAnswered inSentReceivedOutcome
Browserthe control · a normal visitor200110 ms239 B196.0 KBServed
GPTBotMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko);...40356 ms224 B5.8 KBRefused
OAI-SearchBotMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko);...40360 ms234 B5.8 KBRefused
ChatGPT-UserMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko);...40358 ms227 B5.8 KBRefused
ClaudeBotMozilla/5.0 (compatible; ClaudeBot/1.0; +claudebot@anthropic.com)40360 ms187 B5.8 KBRefused
Claude-UserMozilla/5.0 (compatible; Claude-User/1.0; +https://www.anthropic.com)40361 ms191 B5.8 KBRefused
Googlebot (Gemini)Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko;...200136 ms263 B196.0 KBServed
GoogleOtherMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko);...200117 ms197 B196.0 KBServed
Bingbot (Copilot)Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko;...200137 ms262 B196.0 KBServed
PerplexityBotMozilla/5.0 (compatible; PerplexityBot/1.0;...403122 ms207 B5.8 KBRefused
Perplexity-UserMozilla/5.0 (compatible; Perplexity-User/1.0;...40363 ms211 B5.8 KBRefused
CCBotCCBot/2.0 (https://commoncrawl.org/faq/)40363 ms162 B5.8 KBRefused
BytespiderMozilla/5.0 (Linux; Android 5.0) AppleWebKit/537.36 (KHTML,...40366 ms270 B5.8 KBRefused
AmazonbotMozilla/5.0 (compatible; Amazonbot/0.1;...40363 ms210 B5.8 KBRefused
GrokBotMozilla/5.0 (compatible; GrokBot/1.0; +https://x.ai)200119 ms174 B196.0 KBServed
Meta-ExternalAgentmeta-externalagent/1.1...40361 ms211 B5.8 KBRefused
CT16warningthe page carries no structured data block stating what it is (not required; a hygiene signal)
What we check
The page carries structured data, the machine-readable summary of what it describes.
What good looks like
The page carries structured data summarising what it describes.
Why it matters
Vendors document this as optional rather than required, so its absence is a small forfeit and no more.
What we found on this page
the page carries no structured data block stating what it is (not required; a hygiene signal)
The evidence, taken from the page as served
The head of this page, as served

The page was read for a structured data block describing what the page is.

<head><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no"/><meta http-equiv="X-UA-Compatible" content="ie=edge"/><meta name="facebook-domain-verification" content="msc65lq1e60kt58y2jkbo2flkhvm4a"/><!--[if IE 11 ]> <meta name="msapplication-config" content="_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/browserconfig.xml" /> <![endif]--><link rel="icon" type="image/x-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon.ico"/><link rel="icon" type="image/png" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon-32x32.png"/><link rel="apple-touch-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/col_apple_icon.png"/><link rel="manifest" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/manifest.json"/><script src="https://cc.cdn.civiccomputing.com/9/cookieControl-9.x.min.js" type="text/javascript"/><script src="/site-elements/js/cookie-control.js" type="text/javascript"/><script>!function(e,t,a,n,g){e[n]=e[n]||[],e[n].push({"gtm.start":(new Date).getTime(),event:"gtm.js"});var m=t.getElementsByTagName(a)[0],r=t.createElemโ€ฆ
CT04warningthe page shows the year 2029 in its text, but nothing on the page states it as the date of the content
What we check
The page carries a date, ideally written into the markup rather than sitting only in the text.
What good looks like
The page carries a date, ideally written into the markup rather than sitting only in the text.
Why it matters
An undated page gives nothing to weigh its age against, so old and new material are treated alike.
What we found on this page
the page shows the year 2029 in its text, but nothing on the page states it as the date of the content
The evidence, taken from the page as served
The head of this page, as served

The head of the page was read for a tag stating the date of the content. The year shown above was found in the page's own text.

<head><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no"/><meta http-equiv="X-UA-Compatible" content="ie=edge"/><meta name="facebook-domain-verification" content="msc65lq1e60kt58y2jkbo2flkhvm4a"/><!--[if IE 11 ]> <meta name="msapplication-config" content="_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/browserconfig.xml" /> <![endif]--><link rel="icon" type="image/x-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon.ico"/><link rel="icon" type="image/png" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon-32x32.png"/><link rel="apple-touch-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/col_apple_icon.png"/><link rel="manifest" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/manifest.json"/><script src="https://cc.cdn.civiccomputing.com/9/cookieControl-9.x.min.js" type="text/javascript"/><script src="/site-elements/js/cookie-control.js" type="text/javascript"/><script>!function(e,t,a,n,g){e[n]=e[n]||[],e[n].push({"gtm.start":(new Date).getTime(),event:"gtm.js"});var m=t.getElementsByTagName(a)[0],r=t.createElemโ€ฆ
CT24warningthe page's own content runs to 340 characters
What we check
The page holds enough main text to be substantive, measured against a 400 character floor.
What good looks like
The page holds enough main text to be substantive.
Why it matters
A page of a few sentences offers almost nothing to quote, so it adds little beyond its own existence.
What we found on this page
the page's own content runs to 340 characters
The evidence, taken from the page as served
How much of this page is its own content

Counted from the page as served, before any script runs. The page's own content is the part it marks out as its main content; where it marks out none, the whole of its text is counted.

What was measuredAs measured on this page
The page's own content340 characters
All the text on the page1418 characters
The point we measure against400 characters
CT13warningmain content is 23% of the page's text; the shared furniture around it dominates what is read out
What we check
How much of the page's text sits in the main content region rather than in surrounding furniture.
What good looks like
Most of the page's text sits in its main content region rather than in the surrounding furniture.
Why it matters
When the main region is a small slice of the page, what is pulled out is mostly menus and boilerplate.
What we found on this page
main content is 23% of the page's text; the shared furniture around it dominates what is read out
The evidence, taken from the page as served
How much of this page is its own content

Counted from the page as served, before any script runs. The rest is the menus, header and foot-of-page text that appear on other pages of the site as well.

What was measuredAs measured on this page
The page's own content340 characters
All the text on the page1418 characters
The page's own share of it23%
The point we measure against25%
MS13warning1 of 1 iframes untitled
What we check
Each embedded panel on the page carries a title saying what it contains.
What good looks like
Each embedded panel carries a title saying what it contains.
Why it matters
The embedded region stays unnamed, so what it holds is left unstated in the page around it.
What we found on this page
1 of 1 iframes untitled
The evidence, taken from the page as served
The iframes with no title attribute, as served
src=https://www.googletagmanager.com/ns.html?id=GTM-5C7LND
<iframe src="https://www.googletagmanager.com/ns.html?id=GTM-5C7LND" height="0" width="0" style="display:none;visibility:hidden"/>
AR03fail41% of the words a person sees are missing from the page as first delivered (1418 characters delivered, 2519 once the page finishes building itself): a substantial share of the content exists only after JavaScript runs
What we check
How much of the page's content exists only once JavaScript has run.
What good looks like
The page's content is present in the served HTML, so it does not depend on JavaScript to appear.
Why it matters
The page is fetched successfully but the answer is missing from what comes back, so the content is absent rather than wrong.
What we found on this page
41% of the words a person sees are missing from the page as first delivered (1418 characters delivered, 2519 once the page finishes building itself): a substantial share of the content exists only after JavaScript runs
The evidence, taken from the page as served
Content present only after JavaScript runs (absent from the served HTML)

The served HTML carries 1418 characters of text; after JavaScript runs the page carries 2519. 41% of the rendered page's words are absent from the HTML the server sends.

What the server sends (raw HTML text, first 280 chars)
About us - City of London Skip to content Things to do Services Supporting businesses Visit homepage Open search area Open menu Getting help with the cost of living Contact the City Corporation About us Events Accessibility statement Councillors, committees and meetings Report, P…
Words present only after JavaScript runs
acceptadvertisingadvertsallowanalyticsareasbeingbrowsercannotchangingchoicescleanerclosecollectingcomputercoredatadeliverdisabledenableessentialexperiencefunctionfunctionalitygoogleimproveinsightsinterestsintomakemorenavigationnecessaryonlyotherspagepagesperformancepersonalpreferencesprocessproperlyprovidingreadrelevantrememberreportingsavescreenssecuresitesomesplashstoresuchtargetingtargetingadvertisingtestedthanthese
AR11warning41% of the words a person sees are missing from the page as first delivered, which is 0.56 of its finished size
What we check
The measured gap between the page as served and the page after the browser has built it.
What good looks like
The served page and the fully built page carry the same words, with little gap between them.
Why it matters
Two versions of the same page exist, and which words come back depends on which version was fetched.
What we found on this page
41% of the words a person sees are missing from the page as first delivered, which is 0.56 of its finished size
The evidence, taken from the page as served
This page as first delivered, against the page once its scripts have run

Both were taken from the same request. The first is what the site sent; the second is what a person ends up looking at.

What was measuredAs measured on this page
Text in the page as delivered1418 characters
Text once the page finishes building2519 characters
Words absent from the delivered page41%
The point we measure against10%
CT27warningthe content missing from the raw extraction is largely present inside script tags (85% of sampled missing terms): the page ships its content as script data rather than as document text
What we check
On the sampled pages, how much text is shipped inside scripts as data rather than as page text.
What good looks like
The page's text is present as page text, not shipped inside scripts as data.
Why it matters
Content held as script data is missing from the plain fetch of the page, so it is absent rather than wrong.
What we found on this page
the content missing from the raw extraction is largely present inside script tags (85% of sampled missing terms): the page ships its content as script data rather than as document text
The evidence, taken from the page as served
Where the missing words were found

The words a person sees but the delivered page did not carry were looked for inside the page's script blocks.

What was measuredAs measured on this page
Words checked67
Of those, found inside script blocks57
Share found there85%
AJ08warningfocus order: the first 12 Tab stops do not follow document order
What we check
Whether pressing Tab moves through the page in the order its content is written.
What good looks like
Pressing Tab moves through the page in the order its content is written.
Why it matters
The keyboard jumps around the page out of sequence, so a form is worked through in an order nobody intended.
What we found on this page
focus order: the first 12 Tab stops do not follow document order
The evidence, taken from the page as served
How the keyboard moves through this page

Read on the page once its scripts had run, following the keyboard from the top.

What was measuredAs measured on this page
Stops the keyboard makes12
The stops follow the order of the pageno
Controls given a forced position0
CT34failthe page's own words are thin: 3402 of its 3453 words are shared navigation and footer, so it reads as 99% identical to another page, which a machine can then take as a duplicate and pass over, missing the little content that is its own; the matching page is named in the view
What we check
Whether a page's own words are so few against a large shared navigation and footer that it reads as near-identical to other pages.
What good looks like
A page carries enough of its own words that a shared navigation and footer do not make it read as a copy of other pages.
Why it matters
When shared furniture is most of the text, distinct pages look like copies of each other and the little real content is easily passed over.
What we found on this page
the page's own words are thin: 3402 of its 3453 words are shared navigation and footer, so it reads as 99% identical to another page, which a machine can then take as a duplicate and pass over, missing the little content that is its own; the matching page is named in the view
The evidence, taken from the page as served
This page's own words, lost in shared navigation and footer
Page ยท opens in a new tabOwn wordsChromeReads as identical toShared
www.cityoflondon.gov.uk/about-us51 of 345399%www.cityoflondon.gov.uk99%
https://www.cityoflondon.gov.uk/footer/contact-the-city-corporation 10.5% Extremely likely 13 out of 60
CheckResultEvidence
DS03failan AI crawler asking for this page is refused by the security layer in front of the site, while an ordinary browser is served, so the page's content never reaches the AI and answers about it are left to memory or guesswork
What we check
The same page loads for a browser but is refused when the request names itself as an AI service.
What good looks like
The page returns the same response to a named AI service as to a browser, with no edge block.
Why it matters
The block sits in front of the site and leaves no trace in its own logs, so the estate is closed off unnoticed.
What we found on this page
an AI crawler asking for this page is refused by the security layer in front of the site, while an ordinary browser is served, so the page's content never reaches the AI and answers about it are left to memory or guesswork
The evidence, taken from the page as served
The estate's edge tested with each AI crawler: a browser is served, the crawlers are refused
Hostwww.cityoflondon.gov.uk · resolves to 172.66.155.113, 104.20.19.80 · Cloudflare Address trailwww.cityoflondon.gov.uk Checked2026-07-31 16:45 UTC · request sent from 10.100.100.212 (our checker)
CrawlerHTTPAnswered inSentReceivedOutcome
Browserthe control · a normal visitor200110 ms239 B196.0 KBServed
GPTBotMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko);...40356 ms224 B5.8 KBRefused
OAI-SearchBotMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko);...40360 ms234 B5.8 KBRefused
ChatGPT-UserMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko);...40358 ms227 B5.8 KBRefused
ClaudeBotMozilla/5.0 (compatible; ClaudeBot/1.0; +claudebot@anthropic.com)40360 ms187 B5.8 KBRefused
Claude-UserMozilla/5.0 (compatible; Claude-User/1.0; +https://www.anthropic.com)40361 ms191 B5.8 KBRefused
Googlebot (Gemini)Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko;...200136 ms263 B196.0 KBServed
GoogleOtherMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko);...200117 ms197 B196.0 KBServed
Bingbot (Copilot)Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko;...200137 ms262 B196.0 KBServed
PerplexityBotMozilla/5.0 (compatible; PerplexityBot/1.0;...403122 ms207 B5.8 KBRefused
Perplexity-UserMozilla/5.0 (compatible; Perplexity-User/1.0;...40363 ms211 B5.8 KBRefused
CCBotCCBot/2.0 (https://commoncrawl.org/faq/)40363 ms162 B5.8 KBRefused
BytespiderMozilla/5.0 (Linux; Android 5.0) AppleWebKit/537.36 (KHTML,...40366 ms270 B5.8 KBRefused
AmazonbotMozilla/5.0 (compatible; Amazonbot/0.1;...40363 ms210 B5.8 KBRefused
GrokBotMozilla/5.0 (compatible; GrokBot/1.0; +https://x.ai)200119 ms174 B196.0 KBServed
Meta-ExternalAgentmeta-externalagent/1.1...40361 ms211 B5.8 KBRefused
CT32warninglength 29
What we check
The meta description's length is usable, between 50 and 170 characters.
What good looks like
The meta description's length is usable, long enough to say something and short enough not to be cut.
Why it matters
Too short says nothing and too long gets cut, so the summary field is spent without doing its job.
What we found on this page
length 29
The evidence, taken from the page as served
The page's description, as served
29 characters
<meta data-react-helmet="true" name="description" content="Contact the City Corporation "/>
CT16warningthe page carries no structured data block stating what it is (not required; a hygiene signal)
What we check
The page carries structured data, the machine-readable summary of what it describes.
What good looks like
The page carries structured data summarising what it describes.
Why it matters
Vendors document this as optional rather than required, so its absence is a small forfeit and no more.
What we found on this page
the page carries no structured data block stating what it is (not required; a hygiene signal)
The evidence, taken from the page as served
The head of this page, as served

The page was read for a structured data block describing what the page is.

<head><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no"/><meta http-equiv="X-UA-Compatible" content="ie=edge"/><meta name="facebook-domain-verification" content="msc65lq1e60kt58y2jkbo2flkhvm4a"/><!--[if IE 11 ]> <meta name="msapplication-config" content="_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/browserconfig.xml" /> <![endif]--><link rel="icon" type="image/x-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon.ico"/><link rel="icon" type="image/png" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon-32x32.png"/><link rel="apple-touch-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/col_apple_icon.png"/><link rel="manifest" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/manifest.json"/><script src="https://cc.cdn.civiccomputing.com/9/cookieControl-9.x.min.js" type="text/javascript"/><script src="/site-elements/js/cookie-control.js" type="text/javascript"/><script>!function(e,t,a,n,g){e[n]=e[n]||[],e[n].push({"gtm.start":(new Date).getTime(),event:"gtm.js"});var m=t.getElementsByTagName(a)[0],r=t.createElemโ€ฆ
CT04warningthe page shows the year 2029 in its text, but nothing on the page states it as the date of the content
What we check
The page carries a date, ideally written into the markup rather than sitting only in the text.
What good looks like
The page carries a date, ideally written into the markup rather than sitting only in the text.
Why it matters
An undated page gives nothing to weigh its age against, so old and new material are treated alike.
What we found on this page
the page shows the year 2029 in its text, but nothing on the page states it as the date of the content
The evidence, taken from the page as served
The head of this page, as served

The head of the page was read for a tag stating the date of the content. The year shown above was found in the page's own text.

<head><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no"/><meta http-equiv="X-UA-Compatible" content="ie=edge"/><meta name="facebook-domain-verification" content="msc65lq1e60kt58y2jkbo2flkhvm4a"/><!--[if IE 11 ]> <meta name="msapplication-config" content="_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/browserconfig.xml" /> <![endif]--><link rel="icon" type="image/x-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon.ico"/><link rel="icon" type="image/png" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon-32x32.png"/><link rel="apple-touch-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/col_apple_icon.png"/><link rel="manifest" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/manifest.json"/><script src="https://cc.cdn.civiccomputing.com/9/cookieControl-9.x.min.js" type="text/javascript"/><script src="/site-elements/js/cookie-control.js" type="text/javascript"/><script>!function(e,t,a,n,g){e[n]=e[n]||[],e[n].push({"gtm.start":(new Date).getTime(),event:"gtm.js"});var m=t.getElementsByTagName(a)[0],r=t.createElemโ€ฆ
AJ05warningno site-search control detected on this page
What we check
Whether a search box for the site is present in the page as it is served.
What good looks like
A search box is present in the served markup, so the site's own content can be queried directly.
Why it matters
With no search box on the page, its links are the only route from here into the rest of the site.
What we found on this page
no site-search control detected on this page
The evidence, taken from the page as served
The head of this page, as served

The page was read for a search box: a search form, a control named for search, or a box labelled as one.

<head><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no"/><meta http-equiv="X-UA-Compatible" content="ie=edge"/><meta name="facebook-domain-verification" content="msc65lq1e60kt58y2jkbo2flkhvm4a"/><!--[if IE 11 ]> <meta name="msapplication-config" content="_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/browserconfig.xml" /> <![endif]--><link rel="icon" type="image/x-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon.ico"/><link rel="icon" type="image/png" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon-32x32.png"/><link rel="apple-touch-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/col_apple_icon.png"/><link rel="manifest" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/manifest.json"/><script src="https://cc.cdn.civiccomputing.com/9/cookieControl-9.x.min.js" type="text/javascript"/><script src="/site-elements/js/cookie-control.js" type="text/javascript"/><script>!function(e,t,a,n,g){e[n]=e[n]||[],e[n].push({"gtm.start":(new Date).getTime(),event:"gtm.js"});var m=t.getElementsByTagName(a)[0],r=t.createElemโ€ฆ
MS13warning1 of 1 iframes untitled
What we check
Each embedded panel on the page carries a title saying what it contains.
What good looks like
Each embedded panel carries a title saying what it contains.
Why it matters
The embedded region stays unnamed, so what it holds is left unstated in the page around it.
What we found on this page
1 of 1 iframes untitled
The evidence, taken from the page as served
The iframes with no title attribute, as served
src=https://www.googletagmanager.com/ns.html?id=GTM-5C7LND
<iframe src="https://www.googletagmanager.com/ns.html?id=GTM-5C7LND" height="0" width="0" style="display:none;visibility:hidden"/>
DS28failone link to sources on other sites was refused when it was checked. The page is still published, but the other site turns away requests that do not come from a person using a browser. It is listed in the view
What we check
For a single page, the share of its links to OTHER sites, sampled, that lead nowhere. The site's own links are assessed separately.
What good looks like
The page's references to other sites open for any reader. Where one refuses or has gone, the page carries the fact itself, shows the reference as plain text rather than as a link, or points to a source that answers.
Why it matters
The outside sources this page offers as support did not answer when they were asked for, so what the page claims is left resting on material that does not come back. In a regulated setting, where a link is carrying a figure or a required statement, that is the difference between a claim that is evidenced and one that is merely asserted.
What we found on this page
one link to sources on other sites was refused when it was checked. The page is still published, but the other site turns away requests that do not come from a person using a browser. It is listed in the view
The evidence, taken from the page as served
The external links checked on this page, with the status each returned

A link that did not open appears here in two forms. A DEAD link points at a page that has gone. A REFUSED link points at a page that is still published, but the other site turns away requests that do not come from a person using a browser, so our request was declined. Both land in the same place: the material this page offers as its support did not come back when it was asked for. The consequence is not a matter of tidiness. Where a link carries the weight of a claim, a figure, a policy or a regulatory statement, and the target does not open, the support behind that claim is missing at the moment it is needed. Three things follow, and each of them costs the organisation. The same fact gets taken from somewhere else, which hands a third party control of how the claim is worded. Or the claim is treated as unsupported and set aside. Or an answer is drawn from what remains on the page, and a partial account is presented as a complete one. A refused link is the worst of the three, because the page still reads as though the evidence sits one step away, so the gap is invisible and the answer carries false confidence. A refusal by another site is still this site's matter to resolve, because this site chose to rest a claim on it. Three practical ways close it. Carry the fact being relied on in the page's own words, so the claim stands without the visit. Keep the reference but stop making it a link, showing the address as plain text, so nothing promises a route that does not open. Or point to a source that answers any reader. Where the reference has to stay live, say beside it what a reader will meet, so no one is sent to a closed door without warning.

Link ยท opens in a new tabStatusResult
www.facebook.com/sharer/sharer.php?u=www.cityoflondon.gov.uk/footer/contact-the-city-corporation400Reachable
twitter.com/intent/tweet?text=www.cityoflondon.gov.uk/footer/contact-the-city-corporation403Access-restricted
www.linkedin.com/shareArticle?mini=true&url=www.cityoflondon.gov.uk/footer/contact-the-city-corporation200Reachable
cityoflondon-self.achieveservice.com/service/Contact_the_City?sid=36200Reachable
cityoflondon-self.achieveservice.com/service/Contact_the_City?sid=37200Reachable
AR03warning22% of the words a person sees are missing from the page as first delivered (5998 characters delivered, 7576 once the page finishes building itself)
What we check
How much of the page's content exists only once JavaScript has run.
What good looks like
The page's content is present in the served HTML, so it does not depend on JavaScript to appear.
Why it matters
The page is fetched successfully but the answer is missing from what comes back, so the content is absent rather than wrong.
What we found on this page
22% of the words a person sees are missing from the page as first delivered (5998 characters delivered, 7576 once the page finishes building itself)
The evidence, taken from the page as served
Content present only after JavaScript runs (absent from the served HTML)

The served HTML carries 5998 characters of text; after JavaScript runs the page carries 7576. 22% of the rendered page's words are absent from the HTML the server sends.

What the server sends (raw HTML text, first 280 chars)
Contact the City Corporation - City of London Skip to content Things to do Services Supporting businesses Visit homepage Open search area Open menu Getting help with the cost of living Contact the City Corporation About us Events Accessibility statement Councillors, committees an…
Words present only after JavaScript runs
acceptaccessaddressadvertisingadvertsallowanalyticsbeingbrowsercannotchangingchoicescleanerclosecollectingcomputercontributorscorecorrespondencedatadeliverdisabledenableessentialexperienceexternalfunctionfunctionalitygoogleimproveinformationinsightsinterestsintoleafletlinkmakemorenavigationnecessaryonlyopenstreetmapotherspagepagesperformancepersonalpreferencesprocessproperlyprovidingreadrelevantrememberreportingsavescreenssecuresitesome
AR11warning22% of the words a person sees are missing from the page as first delivered, which is 0.79 of its finished size
What we check
The measured gap between the page as served and the page after the browser has built it.
What good looks like
The served page and the fully built page carry the same words, with little gap between them.
Why it matters
Two versions of the same page exist, and which words come back depends on which version was fetched.
What we found on this page
22% of the words a person sees are missing from the page as first delivered, which is 0.79 of its finished size
The evidence, taken from the page as served
This page as first delivered, against the page once its scripts have run

Both were taken from the same request. The first is what the site sent; the second is what a person ends up looking at.

What was measuredAs measured on this page
Text in the page as delivered5998 characters
Text once the page finishes building7576 characters
Words absent from the delivered page22%
The point we measure against10%
AR12warning55% of the page's text (4185 of 7576 characters) is not visible before interaction
What we check
How much of the page's text is hidden behind a click or an expander before anyone interacts.
What good looks like
The page's text is visible as it loads, not held behind a click or an expander.
Why it matters
Half or more of the page's text is present but never shown, so what readers see and what it contains diverge.
What we found on this page
55% of the page's text (4185 of 7576 characters) is not visible before interaction
The evidence, taken from the page as served
How much of this page is hidden until something is clicked

Counted on the page once its scripts had run, before anything was clicked.

What was measuredAs measured on this page
Text hidden until a click4185 characters
All the text on the finished page7576 characters
Hidden share55%
The point we measure against50%
CT27warningthe content missing from the raw extraction is largely present inside script tags (82% of sampled missing terms): the page ships its content as script data rather than as document text
What we check
On the sampled pages, how much text is shipped inside scripts as data rather than as page text.
What good looks like
The page's text is present as page text, not shipped inside scripts as data.
Why it matters
Content held as script data is missing from the plain fetch of the page, so it is absent rather than wrong.
What we found on this page
the content missing from the raw extraction is largely present inside script tags (82% of sampled missing terms): the page ships its content as script data rather than as document text
The evidence, taken from the page as served
Where the missing words were found

The words a person sees but the delivered page did not carry were looked for inside the page's script blocks.

What was measuredAs measured on this page
Words checked75
Of those, found inside script blocks62
Share found there82%
AJ08warningfocus order: the first 12 Tab stops do not follow document order
What we check
Whether pressing Tab moves through the page in the order its content is written.
What good looks like
Pressing Tab moves through the page in the order its content is written.
Why it matters
The keyboard jumps around the page out of sequence, so a form is worked through in an order nobody intended.
What we found on this page
focus order: the first 12 Tab stops do not follow document order
The evidence, taken from the page as served
How the keyboard moves through this page

Read on the page once its scripts had run, following the keyboard from the top.

What was measuredAs measured on this page
Stops the keyboard makes12
The stops follow the order of the pageno
Controls given a forced position0
CT34failthe page's own words are thin: 3410 of its 3546 words are shared navigation and footer, so it reads as 97% identical to another page, which a machine can then take as a duplicate and pass over, missing the little content that is its own; the matching page is named in the view
What we check
Whether a page's own words are so few against a large shared navigation and footer that it reads as near-identical to other pages.
What good looks like
A page carries enough of its own words that a shared navigation and footer do not make it read as a copy of other pages.
Why it matters
When shared furniture is most of the text, distinct pages look like copies of each other and the little real content is easily passed over.
What we found on this page
the page's own words are thin: 3410 of its 3546 words are shared navigation and footer, so it reads as 97% identical to another page, which a machine can then take as a duplicate and pass over, missing the little content that is its own; the matching page is named in the view
The evidence, taken from the page as served
This page's own words, lost in shared navigation and footer
Page ยท opens in a new tabOwn wordsChromeReads as identical toShared
www.cityoflondon.gov.uk/footer/contact-the-city-corporation136 of 354696%www.cityoflondon.gov.uk/footer/social-media97%
https://www.cityoflondon.gov.uk/about-us/councillors-committees-meetings 10.6% Extremely likely 11 out of 60
CheckResultEvidence
DS03failan AI crawler asking for this page is refused by the security layer in front of the site, while an ordinary browser is served, so the page's content never reaches the AI and answers about it are left to memory or guesswork
What we check
The same page loads for a browser but is refused when the request names itself as an AI service.
What good looks like
The page returns the same response to a named AI service as to a browser, with no edge block.
Why it matters
The block sits in front of the site and leaves no trace in its own logs, so the estate is closed off unnoticed.
What we found on this page
an AI crawler asking for this page is refused by the security layer in front of the site, while an ordinary browser is served, so the page's content never reaches the AI and answers about it are left to memory or guesswork
The evidence, taken from the page as served
The estate's edge tested with each AI crawler: a browser is served, the crawlers are refused
Hostwww.cityoflondon.gov.uk · resolves to 172.66.155.113, 104.20.19.80 · Cloudflare Address trailwww.cityoflondon.gov.uk Checked2026-07-31 16:45 UTC · request sent from 10.100.100.212 (our checker)
CrawlerHTTPAnswered inSentReceivedOutcome
Browserthe control · a normal visitor200110 ms239 B196.0 KBServed
GPTBotMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko);...40356 ms224 B5.8 KBRefused
OAI-SearchBotMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko);...40360 ms234 B5.8 KBRefused
ChatGPT-UserMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko);...40358 ms227 B5.8 KBRefused
ClaudeBotMozilla/5.0 (compatible; ClaudeBot/1.0; +claudebot@anthropic.com)40360 ms187 B5.8 KBRefused
Claude-UserMozilla/5.0 (compatible; Claude-User/1.0; +https://www.anthropic.com)40361 ms191 B5.8 KBRefused
Googlebot (Gemini)Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko;...200136 ms263 B196.0 KBServed
GoogleOtherMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko);...200117 ms197 B196.0 KBServed
Bingbot (Copilot)Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko;...200137 ms262 B196.0 KBServed
PerplexityBotMozilla/5.0 (compatible; PerplexityBot/1.0;...403122 ms207 B5.8 KBRefused
Perplexity-UserMozilla/5.0 (compatible; Perplexity-User/1.0;...40363 ms211 B5.8 KBRefused
CCBotCCBot/2.0 (https://commoncrawl.org/faq/)40363 ms162 B5.8 KBRefused
BytespiderMozilla/5.0 (Linux; Android 5.0) AppleWebKit/537.36 (KHTML,...40366 ms270 B5.8 KBRefused
AmazonbotMozilla/5.0 (compatible; Amazonbot/0.1;...40363 ms210 B5.8 KBRefused
GrokBotMozilla/5.0 (compatible; GrokBot/1.0; +https://x.ai)200119 ms174 B196.0 KBServed
Meta-ExternalAgentmeta-externalagent/1.1...40361 ms211 B5.8 KBRefused
CT16warningthe page carries no structured data block stating what it is (not required; a hygiene signal)
What we check
The page carries structured data, the machine-readable summary of what it describes.
What good looks like
The page carries structured data summarising what it describes.
Why it matters
Vendors document this as optional rather than required, so its absence is a small forfeit and no more.
What we found on this page
the page carries no structured data block stating what it is (not required; a hygiene signal)
The evidence, taken from the page as served
The head of this page, as served

The page was read for a structured data block describing what the page is.

<head><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no"/><meta http-equiv="X-UA-Compatible" content="ie=edge"/><meta name="facebook-domain-verification" content="msc65lq1e60kt58y2jkbo2flkhvm4a"/><!--[if IE 11 ]> <meta name="msapplication-config" content="_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/browserconfig.xml" /> <![endif]--><link rel="icon" type="image/x-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon.ico"/><link rel="icon" type="image/png" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon-32x32.png"/><link rel="apple-touch-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/col_apple_icon.png"/><link rel="manifest" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/manifest.json"/><script src="https://cc.cdn.civiccomputing.com/9/cookieControl-9.x.min.js" type="text/javascript"/><script src="/site-elements/js/cookie-control.js" type="text/javascript"/><script>!function(e,t,a,n,g){e[n]=e[n]||[],e[n].push({"gtm.start":(new Date).getTime(),event:"gtm.js"});var m=t.getElementsByTagName(a)[0],r=t.createElemโ€ฆ
CT04warningthe page shows the year 2029 in its text, but nothing on the page states it as the date of the content
What we check
The page carries a date, ideally written into the markup rather than sitting only in the text.
What good looks like
The page carries a date, ideally written into the markup rather than sitting only in the text.
Why it matters
An undated page gives nothing to weigh its age against, so old and new material are treated alike.
What we found on this page
the page shows the year 2029 in its text, but nothing on the page states it as the date of the content
The evidence, taken from the page as served
The head of this page, as served

The head of the page was read for a tag stating the date of the content. The year shown above was found in the page's own text.

<head><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no"/><meta http-equiv="X-UA-Compatible" content="ie=edge"/><meta name="facebook-domain-verification" content="msc65lq1e60kt58y2jkbo2flkhvm4a"/><!--[if IE 11 ]> <meta name="msapplication-config" content="_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/browserconfig.xml" /> <![endif]--><link rel="icon" type="image/x-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon.ico"/><link rel="icon" type="image/png" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon-32x32.png"/><link rel="apple-touch-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/col_apple_icon.png"/><link rel="manifest" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/manifest.json"/><script src="https://cc.cdn.civiccomputing.com/9/cookieControl-9.x.min.js" type="text/javascript"/><script src="/site-elements/js/cookie-control.js" type="text/javascript"/><script>!function(e,t,a,n,g){e[n]=e[n]||[],e[n].push({"gtm.start":(new Date).getTime(),event:"gtm.js"});var m=t.getElementsByTagName(a)[0],r=t.createElemโ€ฆ
AJ05warningno site-search control detected on this page
What we check
Whether a search box for the site is present in the page as it is served.
What good looks like
A search box is present in the served markup, so the site's own content can be queried directly.
Why it matters
With no search box on the page, its links are the only route from here into the rest of the site.
What we found on this page
no site-search control detected on this page
The evidence, taken from the page as served
The head of this page, as served

The page was read for a search box: a search form, a control named for search, or a box labelled as one.

<head><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no"/><meta http-equiv="X-UA-Compatible" content="ie=edge"/><meta name="facebook-domain-verification" content="msc65lq1e60kt58y2jkbo2flkhvm4a"/><!--[if IE 11 ]> <meta name="msapplication-config" content="_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/browserconfig.xml" /> <![endif]--><link rel="icon" type="image/x-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon.ico"/><link rel="icon" type="image/png" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon-32x32.png"/><link rel="apple-touch-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/col_apple_icon.png"/><link rel="manifest" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/manifest.json"/><script src="https://cc.cdn.civiccomputing.com/9/cookieControl-9.x.min.js" type="text/javascript"/><script src="/site-elements/js/cookie-control.js" type="text/javascript"/><script>!function(e,t,a,n,g){e[n]=e[n]||[],e[n].push({"gtm.start":(new Date).getTime(),event:"gtm.js"});var m=t.getElementsByTagName(a)[0],r=t.createElemโ€ฆ
MS13warning1 of 1 iframes untitled
What we check
Each embedded panel on the page carries a title saying what it contains.
What good looks like
Each embedded panel carries a title saying what it contains.
Why it matters
The embedded region stays unnamed, so what it holds is left unstated in the page around it.
What we found on this page
1 of 1 iframes untitled
The evidence, taken from the page as served
The iframes with no title attribute, as served
src=https://www.googletagmanager.com/ns.html?id=GTM-5C7LND
<iframe src="https://www.googletagmanager.com/ns.html?id=GTM-5C7LND" height="0" width="0" style="display:none;visibility:hidden"/>
DS28failone link to sources on other sites was refused when it was checked. The page is still published, but the other site turns away requests that do not come from a person using a browser. It is listed in the view
What we check
For a single page, the share of its links to OTHER sites, sampled, that lead nowhere. The site's own links are assessed separately.
What good looks like
The page's references to other sites open for any reader. Where one refuses or has gone, the page carries the fact itself, shows the reference as plain text rather than as a link, or points to a source that answers.
Why it matters
The outside sources this page offers as support did not answer when they were asked for, so what the page claims is left resting on material that does not come back. In a regulated setting, where a link is carrying a figure or a required statement, that is the difference between a claim that is evidenced and one that is merely asserted.
What we found on this page
one link to sources on other sites was refused when it was checked. The page is still published, but the other site turns away requests that do not come from a person using a browser. It is listed in the view
The evidence, taken from the page as served
The external links checked on this page, with the status each returned

A link that did not open appears here in two forms. A DEAD link points at a page that has gone. A REFUSED link points at a page that is still published, but the other site turns away requests that do not come from a person using a browser, so our request was declined. Both land in the same place: the material this page offers as its support did not come back when it was asked for. The consequence is not a matter of tidiness. Where a link carries the weight of a claim, a figure, a policy or a regulatory statement, and the target does not open, the support behind that claim is missing at the moment it is needed. Three things follow, and each of them costs the organisation. The same fact gets taken from somewhere else, which hands a third party control of how the claim is worded. Or the claim is treated as unsupported and set aside. Or an answer is drawn from what remains on the page, and a partial account is presented as a complete one. A refused link is the worst of the three, because the page still reads as though the evidence sits one step away, so the gap is invisible and the answer carries false confidence. A refusal by another site is still this site's matter to resolve, because this site chose to rest a claim on it. Three practical ways close it. Carry the fact being relied on in the page's own words, so the claim stands without the visit. Keep the reference but stop making it a link, showing the address as plain text, so nothing promises a route that does not open. Or point to a source that answers any reader. Where the reference has to stay live, say beside it what a reader will meet, so no one is sent to a closed door without warning.

Link ยท opens in a new tabStatusResult
www.facebook.com/sharer/sharer.php?u=www.cityoflondon.gov.uk/about-us/councillors-committees-meetings400Reachable
twitter.com/intent/tweet?text=www.cityoflondon.gov.uk/about-us/councillors-committees-meetings403Access-restricted
www.linkedin.com/shareArticle?mini=true&url=www.cityoflondon.gov.uk/about-us/councillors-committees-meetings200Reachable
www.websitecarbon.com/website/cityoflondon.gov.uk200Reachable
sitemorse.com/index/uk-local-government/2025-q3200Reachable
AR03warning22% of the words a person sees are missing from the page as first delivered (3825 characters delivered, 4926 once the page finishes building itself)
What we check
How much of the page's content exists only once JavaScript has run.
What good looks like
The page's content is present in the served HTML, so it does not depend on JavaScript to appear.
Why it matters
The page is fetched successfully but the answer is missing from what comes back, so the content is absent rather than wrong.
What we found on this page
22% of the words a person sees are missing from the page as first delivered (3825 characters delivered, 4926 once the page finishes building itself)
The evidence, taken from the page as served
Content present only after JavaScript runs (absent from the served HTML)

The served HTML carries 3825 characters of text; after JavaScript runs the page carries 4926. 22% of the rendered page's words are absent from the HTML the server sends.

What the server sends (raw HTML text, first 280 chars)
Councillors, committees and meetings - City of London Skip to content Things to do Services Supporting businesses Visit homepage Open search area Open menu Getting help with the cost of living Contact the City Corporation About us Events Accessibility statement Councillors, commi…
Words present only after JavaScript runs
acceptaccessadvertisingadvertsallowanalyticsareasbrowsercannotchangingchoicescleanerclosecollectingcomputercoredatadeliverdisabledenableessentialexperiencefunctionfunctionalitygoogleimproveinformationinsightsintomakemorenavigationnecessaryonlyotherspagepagesperformancepersonalpreferencesprocessproperlyprovidingreadrememberreportingsavescreenssecuresitesomesplashstoresuchtargetingtargetingadvertisingtestedthanusageused
AR11warning22% of the words a person sees are missing from the page as first delivered, which is 0.78 of its finished size
What we check
The measured gap between the page as served and the page after the browser has built it.
What good looks like
The served page and the fully built page carry the same words, with little gap between them.
Why it matters
Two versions of the same page exist, and which words come back depends on which version was fetched.
What we found on this page
22% of the words a person sees are missing from the page as first delivered, which is 0.78 of its finished size
The evidence, taken from the page as served
This page as first delivered, against the page once its scripts have run

Both were taken from the same request. The first is what the site sent; the second is what a person ends up looking at.

What was measuredAs measured on this page
Text in the page as delivered3825 characters
Text once the page finishes building4926 characters
Words absent from the delivered page22%
The point we measure against10%
CT27warningthe content missing from the raw extraction is largely present inside script tags (84% of sampled missing terms): the page ships its content as script data rather than as document text
What we check
On the sampled pages, how much text is shipped inside scripts as data rather than as page text.
What good looks like
The page's text is present as page text, not shipped inside scripts as data.
Why it matters
Content held as script data is missing from the plain fetch of the page, so it is absent rather than wrong.
What we found on this page
the content missing from the raw extraction is largely present inside script tags (84% of sampled missing terms): the page ships its content as script data rather than as document text
The evidence, taken from the page as served
Where the missing words were found

The words a person sees but the delivered page did not carry were looked for inside the page's script blocks.

What was measuredAs measured on this page
Words checked63
Of those, found inside script blocks53
Share found there84%
AJ08warningfocus order: the first 12 Tab stops do not follow document order
What we check
Whether pressing Tab moves through the page in the order its content is written.
What good looks like
Pressing Tab moves through the page in the order its content is written.
Why it matters
The keyboard jumps around the page out of sequence, so a form is worked through in an order nobody intended.
What we found on this page
focus order: the first 12 Tab stops do not follow document order
The evidence, taken from the page as served
How the keyboard moves through this page

Read on the page once its scripts had run, following the keyboard from the top.

What was measuredAs measured on this page
Stops the keyboard makes12
The stops follow the order of the pageno
Controls given a forced position0
CT34failthe page's own words are thin: 3410 of its 3463 words are shared navigation and footer, so it reads as 99% identical to another page, which a machine can then take as a duplicate and pass over, missing the little content that is its own; the matching page is named in the view
What we check
Whether a page's own words are so few against a large shared navigation and footer that it reads as near-identical to other pages.
What good looks like
A page carries enough of its own words that a shared navigation and footer do not make it read as a copy of other pages.
Why it matters
When shared furniture is most of the text, distinct pages look like copies of each other and the little real content is easily passed over.
What we found on this page
the page's own words are thin: 3410 of its 3463 words are shared navigation and footer, so it reads as 99% identical to another page, which a machine can then take as a duplicate and pass over, missing the little content that is its own; the matching page is named in the view
The evidence, taken from the page as served
This page's own words, lost in shared navigation and footer
Page ยท opens in a new tabOwn wordsChromeReads as identical toShared
www.cityoflondon.gov.uk/about-us/councillors-committees-meetings53 of 346398%www.cityoflondon.gov.uk/services/getting-help-with-the-cost-of-living/help-with-health-and-wellbeing99%
https://www.cityoflondon.gov.uk/footer/accessibility 10.6% Extremely likely 11 out of 60
CheckResultEvidence
DS03failan AI crawler asking for this page is refused by the security layer in front of the site, while an ordinary browser is served, so the page's content never reaches the AI and answers about it are left to memory or guesswork
What we check
The same page loads for a browser but is refused when the request names itself as an AI service.
What good looks like
The page returns the same response to a named AI service as to a browser, with no edge block.
Why it matters
The block sits in front of the site and leaves no trace in its own logs, so the estate is closed off unnoticed.
What we found on this page
an AI crawler asking for this page is refused by the security layer in front of the site, while an ordinary browser is served, so the page's content never reaches the AI and answers about it are left to memory or guesswork
The evidence, taken from the page as served
The estate's edge tested with each AI crawler: a browser is served, the crawlers are refused
Hostwww.cityoflondon.gov.uk · resolves to 172.66.155.113, 104.20.19.80 · Cloudflare Address trailwww.cityoflondon.gov.uk Checked2026-07-31 16:45 UTC · request sent from 10.100.100.212 (our checker)
CrawlerHTTPAnswered inSentReceivedOutcome
Browserthe control · a normal visitor200110 ms239 B196.0 KBServed
GPTBotMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko);...40356 ms224 B5.8 KBRefused
OAI-SearchBotMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko);...40360 ms234 B5.8 KBRefused
ChatGPT-UserMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko);...40358 ms227 B5.8 KBRefused
ClaudeBotMozilla/5.0 (compatible; ClaudeBot/1.0; +claudebot@anthropic.com)40360 ms187 B5.8 KBRefused
Claude-UserMozilla/5.0 (compatible; Claude-User/1.0; +https://www.anthropic.com)40361 ms191 B5.8 KBRefused
Googlebot (Gemini)Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko;...200136 ms263 B196.0 KBServed
GoogleOtherMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko);...200117 ms197 B196.0 KBServed
Bingbot (Copilot)Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko;...200137 ms262 B196.0 KBServed
PerplexityBotMozilla/5.0 (compatible; PerplexityBot/1.0;...403122 ms207 B5.8 KBRefused
Perplexity-UserMozilla/5.0 (compatible; Perplexity-User/1.0;...40363 ms211 B5.8 KBRefused
CCBotCCBot/2.0 (https://commoncrawl.org/faq/)40363 ms162 B5.8 KBRefused
BytespiderMozilla/5.0 (Linux; Android 5.0) AppleWebKit/537.36 (KHTML,...40366 ms270 B5.8 KBRefused
AmazonbotMozilla/5.0 (compatible; Amazonbot/0.1;...40363 ms210 B5.8 KBRefused
GrokBotMozilla/5.0 (compatible; GrokBot/1.0; +https://x.ai)200119 ms174 B196.0 KBServed
Meta-ExternalAgentmeta-externalagent/1.1...40361 ms211 B5.8 KBRefused
CT16warningthe page carries no structured data block stating what it is (not required; a hygiene signal)
What we check
The page carries structured data, the machine-readable summary of what it describes.
What good looks like
The page carries structured data summarising what it describes.
Why it matters
Vendors document this as optional rather than required, so its absence is a small forfeit and no more.
What we found on this page
the page carries no structured data block stating what it is (not required; a hygiene signal)
The evidence, taken from the page as served
The head of this page, as served

The page was read for a structured data block describing what the page is.

<head><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no"/><meta http-equiv="X-UA-Compatible" content="ie=edge"/><meta name="facebook-domain-verification" content="msc65lq1e60kt58y2jkbo2flkhvm4a"/><!--[if IE 11 ]> <meta name="msapplication-config" content="_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/browserconfig.xml" /> <![endif]--><link rel="icon" type="image/x-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon.ico"/><link rel="icon" type="image/png" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon-32x32.png"/><link rel="apple-touch-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/col_apple_icon.png"/><link rel="manifest" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/manifest.json"/><script src="https://cc.cdn.civiccomputing.com/9/cookieControl-9.x.min.js" type="text/javascript"/><script src="/site-elements/js/cookie-control.js" type="text/javascript"/><script>!function(e,t,a,n,g){e[n]=e[n]||[],e[n].push({"gtm.start":(new Date).getTime(),event:"gtm.js"});var m=t.getElementsByTagName(a)[0],r=t.createElemโ€ฆ
CT04warningthe page shows the year 2029 in its text, but nothing on the page states it as the date of the content
What we check
The page carries a date, ideally written into the markup rather than sitting only in the text.
What good looks like
The page carries a date, ideally written into the markup rather than sitting only in the text.
Why it matters
An undated page gives nothing to weigh its age against, so old and new material are treated alike.
What we found on this page
the page shows the year 2029 in its text, but nothing on the page states it as the date of the content
The evidence, taken from the page as served
The head of this page, as served

The head of the page was read for a tag stating the date of the content. The year shown above was found in the page's own text.

<head><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no"/><meta http-equiv="X-UA-Compatible" content="ie=edge"/><meta name="facebook-domain-verification" content="msc65lq1e60kt58y2jkbo2flkhvm4a"/><!--[if IE 11 ]> <meta name="msapplication-config" content="_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/browserconfig.xml" /> <![endif]--><link rel="icon" type="image/x-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon.ico"/><link rel="icon" type="image/png" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon-32x32.png"/><link rel="apple-touch-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/col_apple_icon.png"/><link rel="manifest" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/manifest.json"/><script src="https://cc.cdn.civiccomputing.com/9/cookieControl-9.x.min.js" type="text/javascript"/><script src="/site-elements/js/cookie-control.js" type="text/javascript"/><script>!function(e,t,a,n,g){e[n]=e[n]||[],e[n].push({"gtm.start":(new Date).getTime(),event:"gtm.js"});var m=t.getElementsByTagName(a)[0],r=t.createElemโ€ฆ
AJ05warningno site-search control detected on this page
What we check
Whether a search box for the site is present in the page as it is served.
What good looks like
A search box is present in the served markup, so the site's own content can be queried directly.
Why it matters
With no search box on the page, its links are the only route from here into the rest of the site.
What we found on this page
no site-search control detected on this page
The evidence, taken from the page as served
The head of this page, as served

The page was read for a search box: a search form, a control named for search, or a box labelled as one.

<head><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no"/><meta http-equiv="X-UA-Compatible" content="ie=edge"/><meta name="facebook-domain-verification" content="msc65lq1e60kt58y2jkbo2flkhvm4a"/><!--[if IE 11 ]> <meta name="msapplication-config" content="_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/browserconfig.xml" /> <![endif]--><link rel="icon" type="image/x-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon.ico"/><link rel="icon" type="image/png" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon-32x32.png"/><link rel="apple-touch-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/col_apple_icon.png"/><link rel="manifest" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/manifest.json"/><script src="https://cc.cdn.civiccomputing.com/9/cookieControl-9.x.min.js" type="text/javascript"/><script src="/site-elements/js/cookie-control.js" type="text/javascript"/><script>!function(e,t,a,n,g){e[n]=e[n]||[],e[n].push({"gtm.start":(new Date).getTime(),event:"gtm.js"});var m=t.getElementsByTagName(a)[0],r=t.createElemโ€ฆ
MS13warning1 of 1 iframes untitled
What we check
Each embedded panel on the page carries a title saying what it contains.
What good looks like
Each embedded panel carries a title saying what it contains.
Why it matters
The embedded region stays unnamed, so what it holds is left unstated in the page around it.
What we found on this page
1 of 1 iframes untitled
The evidence, taken from the page as served
The iframes with no title attribute, as served
src=https://www.googletagmanager.com/ns.html?id=GTM-5C7LND
<iframe src="https://www.googletagmanager.com/ns.html?id=GTM-5C7LND" height="0" width="0" style="display:none;visibility:hidden"/>
DS28failone link to sources on other sites was refused when it was checked. The page is still published, but the other site turns away requests that do not come from a person using a browser. It is listed in the view
What we check
For a single page, the share of its links to OTHER sites, sampled, that lead nowhere. The site's own links are assessed separately.
What good looks like
The page's references to other sites open for any reader. Where one refuses or has gone, the page carries the fact itself, shows the reference as plain text rather than as a link, or points to a source that answers.
Why it matters
The outside sources this page offers as support did not answer when they were asked for, so what the page claims is left resting on material that does not come back. In a regulated setting, where a link is carrying a figure or a required statement, that is the difference between a claim that is evidenced and one that is merely asserted.
What we found on this page
one link to sources on other sites was refused when it was checked. The page is still published, but the other site turns away requests that do not come from a person using a browser. It is listed in the view
The evidence, taken from the page as served
The external links checked on this page, with the status each returned

A link that did not open appears here in two forms. A DEAD link points at a page that has gone. A REFUSED link points at a page that is still published, but the other site turns away requests that do not come from a person using a browser, so our request was declined. Both land in the same place: the material this page offers as its support did not come back when it was asked for. The consequence is not a matter of tidiness. Where a link carries the weight of a claim, a figure, a policy or a regulatory statement, and the target does not open, the support behind that claim is missing at the moment it is needed. Three things follow, and each of them costs the organisation. The same fact gets taken from somewhere else, which hands a third party control of how the claim is worded. Or the claim is treated as unsupported and set aside. Or an answer is drawn from what remains on the page, and a partial account is presented as a complete one. A refused link is the worst of the three, because the page still reads as though the evidence sits one step away, so the gap is invisible and the answer carries false confidence. A refusal by another site is still this site's matter to resolve, because this site chose to rest a claim on it. Three practical ways close it. Carry the fact being relied on in the page's own words, so the claim stands without the visit. Keep the reference but stop making it a link, showing the address as plain text, so nothing promises a route that does not open. Or point to a source that answers any reader. Where the reference has to stay live, say beside it what a reader will meet, so no one is sent to a closed door without warning.

Link ยท opens in a new tabStatusResult
www.facebook.com/sharer/sharer.php?u=www.cityoflondon.gov.uk/footer/accessibility400Reachable
twitter.com/intent/tweet?text=www.cityoflondon.gov.uk/footer/accessibility403Access-restricted
www.linkedin.com/shareArticle?mini=true&url=www.cityoflondon.gov.uk/footer/accessibility200Reachable
mcmw.abilitynet.org.uk/200Reachable
www.equalityadvisoryservice.com/200Reachable
AR03warning14% of the words a person sees are missing from the page as first delivered (6719 characters delivered, 7916 once the page finishes building itself)
What we check
How much of the page's content exists only once JavaScript has run.
What good looks like
The page's content is present in the served HTML, so it does not depend on JavaScript to appear.
Why it matters
The page is fetched successfully but the answer is missing from what comes back, so the content is absent rather than wrong.
What we found on this page
14% of the words a person sees are missing from the page as first delivered (6719 characters delivered, 7916 once the page finishes building itself)
The evidence, taken from the page as served
Content present only after JavaScript runs (absent from the served HTML)

The served HTML carries 6719 characters of text; after JavaScript runs the page carries 7916. 14% of the rendered page's words are absent from the HTML the server sends.

What the server sends (raw HTML text, first 280 chars)
Accessibility statement - City of London Skip to content Things to do Services Supporting businesses Visit homepage Open search area Open menu Getting help with the cost of living Contact the City Corporation About us Events Accessibility statement Councillors, committees and mee…
Words present only after JavaScript runs
acceptadvertisingadvertsallowanalyticsareasbeingbrowsercannotchangingchoicescleanerclosecollectingcomputercoredeliverdisabledenableexperienceexternalfunctionfunctionalitygoogleinsightsinterestsintolinkmakemorenavigationnecessaryonlyothersperformancepersonalpreferencesprocessproperlyreadremembersavescreenssecuresplashstoresuchtargetingtargetingadvertisingthantheseusageuseduseswhile
AR11warning14% of the words a person sees are missing from the page as first delivered, which is 0.85 of its finished size
What we check
The measured gap between the page as served and the page after the browser has built it.
What good looks like
The served page and the fully built page carry the same words, with little gap between them.
Why it matters
Two versions of the same page exist, and which words come back depends on which version was fetched.
What we found on this page
14% of the words a person sees are missing from the page as first delivered, which is 0.85 of its finished size
The evidence, taken from the page as served
This page as first delivered, against the page once its scripts have run

Both were taken from the same request. The first is what the site sent; the second is what a person ends up looking at.

What was measuredAs measured on this page
Text in the page as delivered6719 characters
Text once the page finishes building7916 characters
Words absent from the delivered page14%
The point we measure against10%
CT27warningthe content missing from the raw extraction is largely present inside script tags (81% of sampled missing terms): the page ships its content as script data rather than as document text
What we check
On the sampled pages, how much text is shipped inside scripts as data rather than as page text.
What good looks like
The page's text is present as page text, not shipped inside scripts as data.
Why it matters
Content held as script data is missing from the plain fetch of the page, so it is absent rather than wrong.
What we found on this page
the content missing from the raw extraction is largely present inside script tags (81% of sampled missing terms): the page ships its content as script data rather than as document text
The evidence, taken from the page as served
Where the missing words were found

The words a person sees but the delivered page did not carry were looked for inside the page's script blocks.

What was measuredAs measured on this page
Words checked55
Of those, found inside script blocks45
Share found there81%
AJ08warningfocus order: the first 12 Tab stops do not follow document order
What we check
Whether pressing Tab moves through the page in the order its content is written.
What good looks like
Pressing Tab moves through the page in the order its content is written.
Why it matters
The keyboard jumps around the page out of sequence, so a form is worked through in an order nobody intended.
What we found on this page
focus order: the first 12 Tab stops do not follow document order
The evidence, taken from the page as served
How the keyboard moves through this page

Read on the page once its scripts had run, following the keyboard from the top.

What was measuredAs measured on this page
Stops the keyboard makes12
The stops follow the order of the pageno
Controls given a forced position0
CT34failthe page's own words are thin: 3410 of its 3448 words are shared navigation and footer, so it reads as 100% identical to another page, which a machine can then take as a duplicate and pass over, missing the little content that is its own; the matching page is named in the view
What we check
Whether a page's own words are so few against a large shared navigation and footer that it reads as near-identical to other pages.
What good looks like
A page carries enough of its own words that a shared navigation and footer do not make it read as a copy of other pages.
Why it matters
When shared furniture is most of the text, distinct pages look like copies of each other and the little real content is easily passed over.
What we found on this page
the page's own words are thin: 3410 of its 3448 words are shared navigation and footer, so it reads as 100% identical to another page, which a machine can then take as a duplicate and pass over, missing the little content that is its own; the matching page is named in the view
The evidence, taken from the page as served
This page's own words, lost in shared navigation and footer
Page ยท opens in a new tabOwn wordsChromeReads as identical toShared
www.cityoflondon.gov.uk/footer/accessibility38 of 344899%www.cityoflondon.gov.uk/footer/accessibility-toolbar100%
https://www.cityoflondon.gov.uk/services/environmental-health/climate-action 10.8% Extremely likely 6 out of 44
CheckResultEvidence
DS03failan AI crawler asking for this page is refused by the security layer in front of the site, while an ordinary browser is served, so the page's content never reaches the AI and answers about it are left to memory or guesswork
What we check
The same page loads for a browser but is refused when the request names itself as an AI service.
What good looks like
The page returns the same response to a named AI service as to a browser, with no edge block.
Why it matters
The block sits in front of the site and leaves no trace in its own logs, so the estate is closed off unnoticed.
What we found on this page
an AI crawler asking for this page is refused by the security layer in front of the site, while an ordinary browser is served, so the page's content never reaches the AI and answers about it are left to memory or guesswork
The evidence, taken from the page as served
The estate's edge tested with each AI crawler: a browser is served, the crawlers are refused
Hostwww.cityoflondon.gov.uk · resolves to 172.66.155.113, 104.20.19.80 · Cloudflare Address trailwww.cityoflondon.gov.uk Checked2026-07-31 16:45 UTC · request sent from 10.100.100.212 (our checker)
CrawlerHTTPAnswered inSentReceivedOutcome
Browserthe control · a normal visitor200110 ms239 B196.0 KBServed
GPTBotMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko);...40356 ms224 B5.8 KBRefused
OAI-SearchBotMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko);...40360 ms234 B5.8 KBRefused
ChatGPT-UserMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko);...40358 ms227 B5.8 KBRefused
ClaudeBotMozilla/5.0 (compatible; ClaudeBot/1.0; +claudebot@anthropic.com)40360 ms187 B5.8 KBRefused
Claude-UserMozilla/5.0 (compatible; Claude-User/1.0; +https://www.anthropic.com)40361 ms191 B5.8 KBRefused
Googlebot (Gemini)Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko;...200136 ms263 B196.0 KBServed
GoogleOtherMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko);...200117 ms197 B196.0 KBServed
Bingbot (Copilot)Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko;...200137 ms262 B196.0 KBServed
PerplexityBotMozilla/5.0 (compatible; PerplexityBot/1.0;...403122 ms207 B5.8 KBRefused
Perplexity-UserMozilla/5.0 (compatible; Perplexity-User/1.0;...40363 ms211 B5.8 KBRefused
CCBotCCBot/2.0 (https://commoncrawl.org/faq/)40363 ms162 B5.8 KBRefused
BytespiderMozilla/5.0 (Linux; Android 5.0) AppleWebKit/537.36 (KHTML,...40366 ms270 B5.8 KBRefused
AmazonbotMozilla/5.0 (compatible; Amazonbot/0.1;...40363 ms210 B5.8 KBRefused
GrokBotMozilla/5.0 (compatible; GrokBot/1.0; +https://x.ai)200119 ms174 B196.0 KBServed
Meta-ExternalAgentmeta-externalagent/1.1...40361 ms211 B5.8 KBRefused
CT16warningthe page carries no structured data block stating what it is (not required; a hygiene signal)
What we check
The page carries structured data, the machine-readable summary of what it describes.
What good looks like
The page carries structured data summarising what it describes.
Why it matters
Vendors document this as optional rather than required, so its absence is a small forfeit and no more.
What we found on this page
the page carries no structured data block stating what it is (not required; a hygiene signal)
The evidence, taken from the page as served
The head of this page, as served

The page was read for a structured data block describing what the page is.

<head><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no"/><meta http-equiv="X-UA-Compatible" content="ie=edge"/><meta name="facebook-domain-verification" content="msc65lq1e60kt58y2jkbo2flkhvm4a"/><!--[if IE 11 ]> <meta name="msapplication-config" content="_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/browserconfig.xml" /> <![endif]--><link rel="icon" type="image/x-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon.ico"/><link rel="icon" type="image/png" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon-32x32.png"/><link rel="apple-touch-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/col_apple_icon.png"/><link rel="manifest" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/manifest.json"/><script src="https://cc.cdn.civiccomputing.com/9/cookieControl-9.x.min.js" type="text/javascript"/><script src="/site-elements/js/cookie-control.js" type="text/javascript"/><script>!function(e,t,a,n,g){e[n]=e[n]||[],e[n].push({"gtm.start":(new Date).getTime(),event:"gtm.js"});var m=t.getElementsByTagName(a)[0],r=t.createElemโ€ฆ
CT04warningthe page shows the year 2029 in its text, but nothing on the page states it as the date of the content
What we check
The page carries a date, ideally written into the markup rather than sitting only in the text.
What good looks like
The page carries a date, ideally written into the markup rather than sitting only in the text.
Why it matters
An undated page gives nothing to weigh its age against, so old and new material are treated alike.
What we found on this page
the page shows the year 2029 in its text, but nothing on the page states it as the date of the content
The evidence, taken from the page as served
The head of this page, as served

The head of the page was read for a tag stating the date of the content. The year shown above was found in the page's own text.

<head><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no"/><meta http-equiv="X-UA-Compatible" content="ie=edge"/><meta name="facebook-domain-verification" content="msc65lq1e60kt58y2jkbo2flkhvm4a"/><!--[if IE 11 ]> <meta name="msapplication-config" content="_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/browserconfig.xml" /> <![endif]--><link rel="icon" type="image/x-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon.ico"/><link rel="icon" type="image/png" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon-32x32.png"/><link rel="apple-touch-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/col_apple_icon.png"/><link rel="manifest" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/manifest.json"/><script src="https://cc.cdn.civiccomputing.com/9/cookieControl-9.x.min.js" type="text/javascript"/><script src="/site-elements/js/cookie-control.js" type="text/javascript"/><script>!function(e,t,a,n,g){e[n]=e[n]||[],e[n].push({"gtm.start":(new Date).getTime(),event:"gtm.js"});var m=t.getElementsByTagName(a)[0],r=t.createElemโ€ฆ
AJ05warningno site-search control detected on this page
What we check
Whether a search box for the site is present in the page as it is served.
What good looks like
A search box is present in the served markup, so the site's own content can be queried directly.
Why it matters
With no search box on the page, its links are the only route from here into the rest of the site.
What we found on this page
no site-search control detected on this page
The evidence, taken from the page as served
The head of this page, as served

The page was read for a search box: a search form, a control named for search, or a box labelled as one.

<head><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no"/><meta http-equiv="X-UA-Compatible" content="ie=edge"/><meta name="facebook-domain-verification" content="msc65lq1e60kt58y2jkbo2flkhvm4a"/><!--[if IE 11 ]> <meta name="msapplication-config" content="_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/browserconfig.xml" /> <![endif]--><link rel="icon" type="image/x-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon.ico"/><link rel="icon" type="image/png" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon-32x32.png"/><link rel="apple-touch-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/col_apple_icon.png"/><link rel="manifest" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/manifest.json"/><script src="https://cc.cdn.civiccomputing.com/9/cookieControl-9.x.min.js" type="text/javascript"/><script src="/site-elements/js/cookie-control.js" type="text/javascript"/><script>!function(e,t,a,n,g){e[n]=e[n]||[],e[n].push({"gtm.start":(new Date).getTime(),event:"gtm.js"});var m=t.getElementsByTagName(a)[0],r=t.createElemโ€ฆ
MS13warning1 of 1 iframes untitled
What we check
Each embedded panel on the page carries a title saying what it contains.
What good looks like
Each embedded panel carries a title saying what it contains.
Why it matters
The embedded region stays unnamed, so what it holds is left unstated in the page around it.
What we found on this page
1 of 1 iframes untitled
The evidence, taken from the page as served
The iframes with no title attribute, as served
src=https://www.googletagmanager.com/ns.html?id=GTM-5C7LND
<iframe src="https://www.googletagmanager.com/ns.html?id=GTM-5C7LND" height="0" width="0" style="display:none;visibility:hidden"/>
CT34failthe page's own words are thin: 3410 of its 3458 words are shared navigation and footer, so it reads as 99% identical to another page, which a machine can then take as a duplicate and pass over, missing the little content that is its own; the matching page is named in the view
What we check
Whether a page's own words are so few against a large shared navigation and footer that it reads as near-identical to other pages.
What good looks like
A page carries enough of its own words that a shared navigation and footer do not make it read as a copy of other pages.
Why it matters
When shared furniture is most of the text, distinct pages look like copies of each other and the little real content is easily passed over.
What we found on this page
the page's own words are thin: 3410 of its 3458 words are shared navigation and footer, so it reads as 99% identical to another page, which a machine can then take as a duplicate and pass over, missing the little content that is its own; the matching page is named in the view
The evidence, taken from the page as served
This page's own words, lost in shared navigation and footer
Page ยท opens in a new tabOwn wordsChromeReads as identical toShared
www.cityoflondon.gov.uk/services/environmental-health/climate-action48 of 345899%www.cityoflondon.gov.uk/services/housing-and-homelessness/housing-benefits99%
https://www.cityoflondon.gov.uk/about-us/filming 10.6% Extremely likely 7 out of 44
CheckResultEvidence
DS03failan AI crawler asking for this page is refused by the security layer in front of the site, while an ordinary browser is served, so the page's content never reaches the AI and answers about it are left to memory or guesswork
What we check
The same page loads for a browser but is refused when the request names itself as an AI service.
What good looks like
The page returns the same response to a named AI service as to a browser, with no edge block.
Why it matters
The block sits in front of the site and leaves no trace in its own logs, so the estate is closed off unnoticed.
What we found on this page
an AI crawler asking for this page is refused by the security layer in front of the site, while an ordinary browser is served, so the page's content never reaches the AI and answers about it are left to memory or guesswork
The evidence, taken from the page as served
The estate's edge tested with each AI crawler: a browser is served, the crawlers are refused
Hostwww.cityoflondon.gov.uk · resolves to 172.66.155.113, 104.20.19.80 · Cloudflare Address trailwww.cityoflondon.gov.uk Checked2026-07-31 16:45 UTC · request sent from 10.100.100.212 (our checker)
CrawlerHTTPAnswered inSentReceivedOutcome
Browserthe control · a normal visitor200110 ms239 B196.0 KBServed
GPTBotMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko);...40356 ms224 B5.8 KBRefused
OAI-SearchBotMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko);...40360 ms234 B5.8 KBRefused
ChatGPT-UserMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko);...40358 ms227 B5.8 KBRefused
ClaudeBotMozilla/5.0 (compatible; ClaudeBot/1.0; +claudebot@anthropic.com)40360 ms187 B5.8 KBRefused
Claude-UserMozilla/5.0 (compatible; Claude-User/1.0; +https://www.anthropic.com)40361 ms191 B5.8 KBRefused
Googlebot (Gemini)Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko;...200136 ms263 B196.0 KBServed
GoogleOtherMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko);...200117 ms197 B196.0 KBServed
Bingbot (Copilot)Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko;...200137 ms262 B196.0 KBServed
PerplexityBotMozilla/5.0 (compatible; PerplexityBot/1.0;...403122 ms207 B5.8 KBRefused
Perplexity-UserMozilla/5.0 (compatible; Perplexity-User/1.0;...40363 ms211 B5.8 KBRefused
CCBotCCBot/2.0 (https://commoncrawl.org/faq/)40363 ms162 B5.8 KBRefused
BytespiderMozilla/5.0 (Linux; Android 5.0) AppleWebKit/537.36 (KHTML,...40366 ms270 B5.8 KBRefused
AmazonbotMozilla/5.0 (compatible; Amazonbot/0.1;...40363 ms210 B5.8 KBRefused
GrokBotMozilla/5.0 (compatible; GrokBot/1.0; +https://x.ai)200119 ms174 B196.0 KBServed
Meta-ExternalAgentmeta-externalagent/1.1...40361 ms211 B5.8 KBRefused
CT16warningthe page carries no structured data block stating what it is (not required; a hygiene signal)
What we check
The page carries structured data, the machine-readable summary of what it describes.
What good looks like
The page carries structured data summarising what it describes.
Why it matters
Vendors document this as optional rather than required, so its absence is a small forfeit and no more.
What we found on this page
the page carries no structured data block stating what it is (not required; a hygiene signal)
The evidence, taken from the page as served
The head of this page, as served

The page was read for a structured data block describing what the page is.

<head><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no"/><meta http-equiv="X-UA-Compatible" content="ie=edge"/><meta name="facebook-domain-verification" content="msc65lq1e60kt58y2jkbo2flkhvm4a"/><!--[if IE 11 ]> <meta name="msapplication-config" content="_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/browserconfig.xml" /> <![endif]--><link rel="icon" type="image/x-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon.ico"/><link rel="icon" type="image/png" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon-32x32.png"/><link rel="apple-touch-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/col_apple_icon.png"/><link rel="manifest" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/manifest.json"/><script src="https://cc.cdn.civiccomputing.com/9/cookieControl-9.x.min.js" type="text/javascript"/><script src="/site-elements/js/cookie-control.js" type="text/javascript"/><script>!function(e,t,a,n,g){e[n]=e[n]||[],e[n].push({"gtm.start":(new Date).getTime(),event:"gtm.js"});var m=t.getElementsByTagName(a)[0],r=t.createElemโ€ฆ
CT04warningthe page shows the year 2029 in its text, but nothing on the page states it as the date of the content
What we check
The page carries a date, ideally written into the markup rather than sitting only in the text.
What good looks like
The page carries a date, ideally written into the markup rather than sitting only in the text.
Why it matters
An undated page gives nothing to weigh its age against, so old and new material are treated alike.
What we found on this page
the page shows the year 2029 in its text, but nothing on the page states it as the date of the content
The evidence, taken from the page as served
The head of this page, as served

The head of the page was read for a tag stating the date of the content. The year shown above was found in the page's own text.

<head><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no"/><meta http-equiv="X-UA-Compatible" content="ie=edge"/><meta name="facebook-domain-verification" content="msc65lq1e60kt58y2jkbo2flkhvm4a"/><!--[if IE 11 ]> <meta name="msapplication-config" content="_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/browserconfig.xml" /> <![endif]--><link rel="icon" type="image/x-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon.ico"/><link rel="icon" type="image/png" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon-32x32.png"/><link rel="apple-touch-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/col_apple_icon.png"/><link rel="manifest" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/manifest.json"/><script src="https://cc.cdn.civiccomputing.com/9/cookieControl-9.x.min.js" type="text/javascript"/><script src="/site-elements/js/cookie-control.js" type="text/javascript"/><script>!function(e,t,a,n,g){e[n]=e[n]||[],e[n].push({"gtm.start":(new Date).getTime(),event:"gtm.js"});var m=t.getElementsByTagName(a)[0],r=t.createElemโ€ฆ
AJ05warningno site-search control detected on this page
What we check
Whether a search box for the site is present in the page as it is served.
What good looks like
A search box is present in the served markup, so the site's own content can be queried directly.
Why it matters
With no search box on the page, its links are the only route from here into the rest of the site.
What we found on this page
no site-search control detected on this page
The evidence, taken from the page as served
The head of this page, as served

The page was read for a search box: a search form, a control named for search, or a box labelled as one.

<head><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no"/><meta http-equiv="X-UA-Compatible" content="ie=edge"/><meta name="facebook-domain-verification" content="msc65lq1e60kt58y2jkbo2flkhvm4a"/><!--[if IE 11 ]> <meta name="msapplication-config" content="_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/browserconfig.xml" /> <![endif]--><link rel="icon" type="image/x-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon.ico"/><link rel="icon" type="image/png" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon-32x32.png"/><link rel="apple-touch-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/col_apple_icon.png"/><link rel="manifest" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/manifest.json"/><script src="https://cc.cdn.civiccomputing.com/9/cookieControl-9.x.min.js" type="text/javascript"/><script src="/site-elements/js/cookie-control.js" type="text/javascript"/><script>!function(e,t,a,n,g){e[n]=e[n]||[],e[n].push({"gtm.start":(new Date).getTime(),event:"gtm.js"});var m=t.getElementsByTagName(a)[0],r=t.createElemโ€ฆ
MS13warning1 of 2 iframes untitled
What we check
Each embedded panel on the page carries a title saying what it contains.
What good looks like
Each embedded panel carries a title saying what it contains.
Why it matters
The embedded region stays unnamed, so what it holds is left unstated in the page around it.
What we found on this page
1 of 2 iframes untitled
The evidence, taken from the page as served
The iframes with no title attribute, as served
src=https://www.googletagmanager.com/ns.html?id=GTM-5C7LND
<iframe src="https://www.googletagmanager.com/ns.html?id=GTM-5C7LND" height="0" width="0" style="display:none;visibility:hidden"/>
DS28failone link to sources on other sites was refused when it was checked. The page is still published, but the other site turns away requests that do not come from a person using a browser. It is listed in the view
What we check
For a single page, the share of its links to OTHER sites, sampled, that lead nowhere. The site's own links are assessed separately.
What good looks like
The page's references to other sites open for any reader. Where one refuses or has gone, the page carries the fact itself, shows the reference as plain text rather than as a link, or points to a source that answers.
Why it matters
The outside sources this page offers as support did not answer when they were asked for, so what the page claims is left resting on material that does not come back. In a regulated setting, where a link is carrying a figure or a required statement, that is the difference between a claim that is evidenced and one that is merely asserted.
What we found on this page
one link to sources on other sites was refused when it was checked. The page is still published, but the other site turns away requests that do not come from a person using a browser. It is listed in the view
The evidence, taken from the page as served
The external links checked on this page, with the status each returned

A link that did not open appears here in two forms. A DEAD link points at a page that has gone. A REFUSED link points at a page that is still published, but the other site turns away requests that do not come from a person using a browser, so our request was declined. Both land in the same place: the material this page offers as its support did not come back when it was asked for. The consequence is not a matter of tidiness. Where a link carries the weight of a claim, a figure, a policy or a regulatory statement, and the target does not open, the support behind that claim is missing at the moment it is needed. Three things follow, and each of them costs the organisation. The same fact gets taken from somewhere else, which hands a third party control of how the claim is worded. Or the claim is treated as unsupported and set aside. Or an answer is drawn from what remains on the page, and a partial account is presented as a complete one. A refused link is the worst of the three, because the page still reads as though the evidence sits one step away, so the gap is invisible and the answer carries false confidence. A refusal by another site is still this site's matter to resolve, because this site chose to rest a claim on it. Three practical ways close it. Carry the fact being relied on in the page's own words, so the claim stands without the visit. Keep the reference but stop making it a link, showing the address as plain text, so nothing promises a route that does not open. Or point to a source that answers any reader. Where the reference has to stay live, say beside it what a reader will meet, so no one is sent to a closed door without warning.

Link ยท opens in a new tabStatusResult
www.facebook.com/sharer/sharer.php?u=www.cityoflondon.gov.uk/about-us/filming400Reachable
twitter.com/intent/tweet?text=www.cityoflondon.gov.uk/about-us/filming403Access-restricted
www.linkedin.com/shareArticle?mini=true&url=www.cityoflondon.gov.uk/about-us/filming200Reachable
app.apply4.com/filmapp/uk/cityoflondon200Reachable
filmlondon.org.uk/filming-in-london200Reachable
CT34failthe page's own words are thin: 3410 of its 3460 words are shared navigation and footer, so it reads as 99% identical to another page, which a machine can then take as a duplicate and pass over, missing the little content that is its own; the matching page is named in the view
What we check
Whether a page's own words are so few against a large shared navigation and footer that it reads as near-identical to other pages.
What good looks like
A page carries enough of its own words that a shared navigation and footer do not make it read as a copy of other pages.
Why it matters
When shared furniture is most of the text, distinct pages look like copies of each other and the little real content is easily passed over.
What we found on this page
the page's own words are thin: 3410 of its 3460 words are shared navigation and footer, so it reads as 99% identical to another page, which a machine can then take as a duplicate and pass over, missing the little content that is its own; the matching page is named in the view
The evidence, taken from the page as served
This page's own words, lost in shared navigation and footer
Page ยท opens in a new tabOwn wordsChromeReads as identical toShared
www.cityoflondon.gov.uk/about-us/filming50 of 346099%www.cityoflondon.gov.uk/services/children-and-families/help-with-childcare-costs99%
https://www.cityoflondon.gov.uk/services/community-and-safety/domestic-abuse-support 10.3% Extremely likely 8 out of 44
CheckResultEvidence
DS03failan AI crawler asking for this page is refused by the security layer in front of the site, while an ordinary browser is served, so the page's content never reaches the AI and answers about it are left to memory or guesswork
What we check
The same page loads for a browser but is refused when the request names itself as an AI service.
What good looks like
The page returns the same response to a named AI service as to a browser, with no edge block.
Why it matters
The block sits in front of the site and leaves no trace in its own logs, so the estate is closed off unnoticed.
What we found on this page
an AI crawler asking for this page is refused by the security layer in front of the site, while an ordinary browser is served, so the page's content never reaches the AI and answers about it are left to memory or guesswork
The evidence, taken from the page as served
The estate's edge tested with each AI crawler: a browser is served, the crawlers are refused
Hostwww.cityoflondon.gov.uk · resolves to 172.66.155.113, 104.20.19.80 · Cloudflare Address trailwww.cityoflondon.gov.uk Checked2026-07-31 16:45 UTC · request sent from 10.100.100.212 (our checker)
CrawlerHTTPAnswered inSentReceivedOutcome
Browserthe control · a normal visitor200110 ms239 B196.0 KBServed
GPTBotMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko);...40356 ms224 B5.8 KBRefused
OAI-SearchBotMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko);...40360 ms234 B5.8 KBRefused
ChatGPT-UserMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko);...40358 ms227 B5.8 KBRefused
ClaudeBotMozilla/5.0 (compatible; ClaudeBot/1.0; +claudebot@anthropic.com)40360 ms187 B5.8 KBRefused
Claude-UserMozilla/5.0 (compatible; Claude-User/1.0; +https://www.anthropic.com)40361 ms191 B5.8 KBRefused
Googlebot (Gemini)Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko;...200136 ms263 B196.0 KBServed
GoogleOtherMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko);...200117 ms197 B196.0 KBServed
Bingbot (Copilot)Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko;...200137 ms262 B196.0 KBServed
PerplexityBotMozilla/5.0 (compatible; PerplexityBot/1.0;...403122 ms207 B5.8 KBRefused
Perplexity-UserMozilla/5.0 (compatible; Perplexity-User/1.0;...40363 ms211 B5.8 KBRefused
CCBotCCBot/2.0 (https://commoncrawl.org/faq/)40363 ms162 B5.8 KBRefused
BytespiderMozilla/5.0 (Linux; Android 5.0) AppleWebKit/537.36 (KHTML,...40366 ms270 B5.8 KBRefused
AmazonbotMozilla/5.0 (compatible; Amazonbot/0.1;...40363 ms210 B5.8 KBRefused
GrokBotMozilla/5.0 (compatible; GrokBot/1.0; +https://x.ai)200119 ms174 B196.0 KBServed
Meta-ExternalAgentmeta-externalagent/1.1...40361 ms211 B5.8 KBRefused
CT16warningthe page carries no structured data block stating what it is (not required; a hygiene signal)
What we check
The page carries structured data, the machine-readable summary of what it describes.
What good looks like
The page carries structured data summarising what it describes.
Why it matters
Vendors document this as optional rather than required, so its absence is a small forfeit and no more.
What we found on this page
the page carries no structured data block stating what it is (not required; a hygiene signal)
The evidence, taken from the page as served
The head of this page, as served

The page was read for a structured data block describing what the page is.

<head><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no"/><meta http-equiv="X-UA-Compatible" content="ie=edge"/><meta name="facebook-domain-verification" content="msc65lq1e60kt58y2jkbo2flkhvm4a"/><!--[if IE 11 ]> <meta name="msapplication-config" content="_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/browserconfig.xml" /> <![endif]--><link rel="icon" type="image/x-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon.ico"/><link rel="icon" type="image/png" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon-32x32.png"/><link rel="apple-touch-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/col_apple_icon.png"/><link rel="manifest" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/manifest.json"/><script src="https://cc.cdn.civiccomputing.com/9/cookieControl-9.x.min.js" type="text/javascript"/><script src="/site-elements/js/cookie-control.js" type="text/javascript"/><script>!function(e,t,a,n,g){e[n]=e[n]||[],e[n].push({"gtm.start":(new Date).getTime(),event:"gtm.js"});var m=t.getElementsByTagName(a)[0],r=t.createElemโ€ฆ
CT04warningthe page shows the year 2029 in its text, but nothing on the page states it as the date of the content
What we check
The page carries a date, ideally written into the markup rather than sitting only in the text.
What good looks like
The page carries a date, ideally written into the markup rather than sitting only in the text.
Why it matters
An undated page gives nothing to weigh its age against, so old and new material are treated alike.
What we found on this page
the page shows the year 2029 in its text, but nothing on the page states it as the date of the content
The evidence, taken from the page as served
The head of this page, as served

The head of the page was read for a tag stating the date of the content. The year shown above was found in the page's own text.

<head><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no"/><meta http-equiv="X-UA-Compatible" content="ie=edge"/><meta name="facebook-domain-verification" content="msc65lq1e60kt58y2jkbo2flkhvm4a"/><!--[if IE 11 ]> <meta name="msapplication-config" content="_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/browserconfig.xml" /> <![endif]--><link rel="icon" type="image/x-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon.ico"/><link rel="icon" type="image/png" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon-32x32.png"/><link rel="apple-touch-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/col_apple_icon.png"/><link rel="manifest" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/manifest.json"/><script src="https://cc.cdn.civiccomputing.com/9/cookieControl-9.x.min.js" type="text/javascript"/><script src="/site-elements/js/cookie-control.js" type="text/javascript"/><script>!function(e,t,a,n,g){e[n]=e[n]||[],e[n].push({"gtm.start":(new Date).getTime(),event:"gtm.js"});var m=t.getElementsByTagName(a)[0],r=t.createElemโ€ฆ
AJ05warningno site-search control detected on this page
What we check
Whether a search box for the site is present in the page as it is served.
What good looks like
A search box is present in the served markup, so the site's own content can be queried directly.
Why it matters
With no search box on the page, its links are the only route from here into the rest of the site.
What we found on this page
no site-search control detected on this page
The evidence, taken from the page as served
The head of this page, as served

The page was read for a search box: a search form, a control named for search, or a box labelled as one.

<head><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no"/><meta http-equiv="X-UA-Compatible" content="ie=edge"/><meta name="facebook-domain-verification" content="msc65lq1e60kt58y2jkbo2flkhvm4a"/><!--[if IE 11 ]> <meta name="msapplication-config" content="_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/browserconfig.xml" /> <![endif]--><link rel="icon" type="image/x-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon.ico"/><link rel="icon" type="image/png" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon-32x32.png"/><link rel="apple-touch-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/col_apple_icon.png"/><link rel="manifest" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/manifest.json"/><script src="https://cc.cdn.civiccomputing.com/9/cookieControl-9.x.min.js" type="text/javascript"/><script src="/site-elements/js/cookie-control.js" type="text/javascript"/><script>!function(e,t,a,n,g){e[n]=e[n]||[],e[n].push({"gtm.start":(new Date).getTime(),event:"gtm.js"});var m=t.getElementsByTagName(a)[0],r=t.createElemโ€ฆ
MS08fail1 link wording(s) are used for more than one destination, so the same words point at different pages: โ€œrelay ukโ€; the links are listed in the view
What we check
Links that share exactly the same wording on one page while pointing at different destinations.
What good looks like
Links that share the same wording lead to the same destination.
Why it matters
The wording no longer settles the target, so the wrong one gets followed at the point where the choice matters.
What we found on this page
1 link wording(s) are used for more than one destination, so the same words point at different pages: โ€œrelay ukโ€; the links are listed in the view
The evidence, taken from the page as served
Links that share the same text but point to different destinations, as served
"Relay UK"
<a target="_blank" href="https://www.relayuk.bt.com/">Relay UK</a>
"Relay UK"
<a target="_blank" href="https://www.relayuk.bt.com/about-relay-uk.html">Relay UK</a>
MS13warning1 of 1 iframes untitled
What we check
Each embedded panel on the page carries a title saying what it contains.
What good looks like
Each embedded panel carries a title saying what it contains.
Why it matters
The embedded region stays unnamed, so what it holds is left unstated in the page around it.
What we found on this page
1 of 1 iframes untitled
The evidence, taken from the page as served
The iframes with no title attribute, as served
src=https://www.googletagmanager.com/ns.html?id=GTM-5C7LND
<iframe src="https://www.googletagmanager.com/ns.html?id=GTM-5C7LND" height="0" width="0" style="display:none;visibility:hidden"/>
DS28failone link to sources on other sites was refused when it was checked. The page is still published, but the other site turns away requests that do not come from a person using a browser. It is listed in the view
What we check
For a single page, the share of its links to OTHER sites, sampled, that lead nowhere. The site's own links are assessed separately.
What good looks like
The page's references to other sites open for any reader. Where one refuses or has gone, the page carries the fact itself, shows the reference as plain text rather than as a link, or points to a source that answers.
Why it matters
The outside sources this page offers as support did not answer when they were asked for, so what the page claims is left resting on material that does not come back. In a regulated setting, where a link is carrying a figure or a required statement, that is the difference between a claim that is evidenced and one that is merely asserted.
What we found on this page
one link to sources on other sites was refused when it was checked. The page is still published, but the other site turns away requests that do not come from a person using a browser. It is listed in the view
The evidence, taken from the page as served
The external links checked on this page, with the status each returned

A link that did not open appears here in two forms. A DEAD link points at a page that has gone. A REFUSED link points at a page that is still published, but the other site turns away requests that do not come from a person using a browser, so our request was declined. Both land in the same place: the material this page offers as its support did not come back when it was asked for. The consequence is not a matter of tidiness. Where a link carries the weight of a claim, a figure, a policy or a regulatory statement, and the target does not open, the support behind that claim is missing at the moment it is needed. Three things follow, and each of them costs the organisation. The same fact gets taken from somewhere else, which hands a third party control of how the claim is worded. Or the claim is treated as unsupported and set aside. Or an answer is drawn from what remains on the page, and a partial account is presented as a complete one. A refused link is the worst of the three, because the page still reads as though the evidence sits one step away, so the gap is invisible and the answer carries false confidence. A refusal by another site is still this site's matter to resolve, because this site chose to rest a claim on it. Three practical ways close it. Carry the fact being relied on in the page's own words, so the claim stands without the visit. Keep the reference but stop making it a link, showing the address as plain text, so nothing promises a route that does not open. Or point to a source that answers any reader. Where the reference has to stay live, say beside it what a reader will meet, so no one is sent to a closed door without warning.

Link ยท opens in a new tabStatusResult
www.facebook.com/sharer/sharer.php?u=www.cityoflondon.gov.uk/services/community-and-safety/domestic-abuse-support400Reachable
twitter.com/intent/tweet?text=www.cityoflondon.gov.uk/services/community-and-safety/domestic-abuse-support403Access-restricted
www.linkedin.com/shareArticle?mini=true&url=www.cityoflondon.gov.uk/services/community-and-safety/domestic-abuse-support200Reachable
www.womensaid.org.uk/information-support/what-is-domestic-abuse/cover-your-tracks-online200Reachable
www.nationaldahelpline.org.uk/200Reachable
CT34failthe page's own words are thin: 3410 of its 3702 words are shared navigation and footer, so it reads as 93% identical to another page, which a machine can then take as a duplicate and pass over, missing the little content that is its own; the matching page is named in the view
What we check
Whether a page's own words are so few against a large shared navigation and footer that it reads as near-identical to other pages.
What good looks like
A page carries enough of its own words that a shared navigation and footer do not make it read as a copy of other pages.
Why it matters
When shared furniture is most of the text, distinct pages look like copies of each other and the little real content is easily passed over.
What we found on this page
the page's own words are thin: 3410 of its 3702 words are shared navigation and footer, so it reads as 93% identical to another page, which a machine can then take as a duplicate and pass over, missing the little content that is its own; the matching page is named in the view
The evidence, taken from the page as served
This page's own words, lost in shared navigation and footer
Page ยท opens in a new tabOwn wordsChromeReads as identical toShared
www.cityoflondon.gov.uk/services/community-and-safety/domestic-abuse-support292 of 370292%www.cityoflondon.gov.uk/footer/feedback93%
https://www.cityoflondon.gov.uk/footer/cookies 9.7% Extremely likely 7 out of 44
CheckResultEvidence
DS03failan AI crawler asking for this page is refused by the security layer in front of the site, while an ordinary browser is served, so the page's content never reaches the AI and answers about it are left to memory or guesswork
What we check
The same page loads for a browser but is refused when the request names itself as an AI service.
What good looks like
The page returns the same response to a named AI service as to a browser, with no edge block.
Why it matters
The block sits in front of the site and leaves no trace in its own logs, so the estate is closed off unnoticed.
What we found on this page
an AI crawler asking for this page is refused by the security layer in front of the site, while an ordinary browser is served, so the page's content never reaches the AI and answers about it are left to memory or guesswork
The evidence, taken from the page as served
The estate's edge tested with each AI crawler: a browser is served, the crawlers are refused
Hostwww.cityoflondon.gov.uk · resolves to 172.66.155.113, 104.20.19.80 · Cloudflare Address trailwww.cityoflondon.gov.uk Checked2026-07-31 16:45 UTC · request sent from 10.100.100.212 (our checker)
CrawlerHTTPAnswered inSentReceivedOutcome
Browserthe control · a normal visitor200110 ms239 B196.0 KBServed
GPTBotMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko);...40356 ms224 B5.8 KBRefused
OAI-SearchBotMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko);...40360 ms234 B5.8 KBRefused
ChatGPT-UserMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko);...40358 ms227 B5.8 KBRefused
ClaudeBotMozilla/5.0 (compatible; ClaudeBot/1.0; +claudebot@anthropic.com)40360 ms187 B5.8 KBRefused
Claude-UserMozilla/5.0 (compatible; Claude-User/1.0; +https://www.anthropic.com)40361 ms191 B5.8 KBRefused
Googlebot (Gemini)Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko;...200136 ms263 B196.0 KBServed
GoogleOtherMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko);...200117 ms197 B196.0 KBServed
Bingbot (Copilot)Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko;...200137 ms262 B196.0 KBServed
PerplexityBotMozilla/5.0 (compatible; PerplexityBot/1.0;...403122 ms207 B5.8 KBRefused
Perplexity-UserMozilla/5.0 (compatible; Perplexity-User/1.0;...40363 ms211 B5.8 KBRefused
CCBotCCBot/2.0 (https://commoncrawl.org/faq/)40363 ms162 B5.8 KBRefused
BytespiderMozilla/5.0 (Linux; Android 5.0) AppleWebKit/537.36 (KHTML,...40366 ms270 B5.8 KBRefused
AmazonbotMozilla/5.0 (compatible; Amazonbot/0.1;...40363 ms210 B5.8 KBRefused
GrokBotMozilla/5.0 (compatible; GrokBot/1.0; +https://x.ai)200119 ms174 B196.0 KBServed
Meta-ExternalAgentmeta-externalagent/1.1...40361 ms211 B5.8 KBRefused
CT16warningthe page carries no structured data block stating what it is (not required; a hygiene signal)
What we check
The page carries structured data, the machine-readable summary of what it describes.
What good looks like
The page carries structured data summarising what it describes.
Why it matters
Vendors document this as optional rather than required, so its absence is a small forfeit and no more.
What we found on this page
the page carries no structured data block stating what it is (not required; a hygiene signal)
The evidence, taken from the page as served
The head of this page, as served

The page was read for a structured data block describing what the page is.

<head><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no"/><meta http-equiv="X-UA-Compatible" content="ie=edge"/><meta name="facebook-domain-verification" content="msc65lq1e60kt58y2jkbo2flkhvm4a"/><!--[if IE 11 ]> <meta name="msapplication-config" content="_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/browserconfig.xml" /> <![endif]--><link rel="icon" type="image/x-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon.ico"/><link rel="icon" type="image/png" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon-32x32.png"/><link rel="apple-touch-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/col_apple_icon.png"/><link rel="manifest" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/manifest.json"/><script src="https://cc.cdn.civiccomputing.com/9/cookieControl-9.x.min.js" type="text/javascript"/><script src="/site-elements/js/cookie-control.js" type="text/javascript"/><script>!function(e,t,a,n,g){e[n]=e[n]||[],e[n].push({"gtm.start":(new Date).getTime(),event:"gtm.js"});var m=t.getElementsByTagName(a)[0],r=t.createElemโ€ฆ
CT04warningthe page shows the year 2029 in its text, but nothing on the page states it as the date of the content
What we check
The page carries a date, ideally written into the markup rather than sitting only in the text.
What good looks like
The page carries a date, ideally written into the markup rather than sitting only in the text.
Why it matters
An undated page gives nothing to weigh its age against, so old and new material are treated alike.
What we found on this page
the page shows the year 2029 in its text, but nothing on the page states it as the date of the content
The evidence, taken from the page as served
The head of this page, as served

The head of the page was read for a tag stating the date of the content. The year shown above was found in the page's own text.

<head><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no"/><meta http-equiv="X-UA-Compatible" content="ie=edge"/><meta name="facebook-domain-verification" content="msc65lq1e60kt58y2jkbo2flkhvm4a"/><!--[if IE 11 ]> <meta name="msapplication-config" content="_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/browserconfig.xml" /> <![endif]--><link rel="icon" type="image/x-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon.ico"/><link rel="icon" type="image/png" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon-32x32.png"/><link rel="apple-touch-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/col_apple_icon.png"/><link rel="manifest" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/manifest.json"/><script src="https://cc.cdn.civiccomputing.com/9/cookieControl-9.x.min.js" type="text/javascript"/><script src="/site-elements/js/cookie-control.js" type="text/javascript"/><script>!function(e,t,a,n,g){e[n]=e[n]||[],e[n].push({"gtm.start":(new Date).getTime(),event:"gtm.js"});var m=t.getElementsByTagName(a)[0],r=t.createElemโ€ฆ
AJ05warningno site-search control detected on this page
What we check
Whether a search box for the site is present in the page as it is served.
What good looks like
A search box is present in the served markup, so the site's own content can be queried directly.
Why it matters
With no search box on the page, its links are the only route from here into the rest of the site.
What we found on this page
no site-search control detected on this page
The evidence, taken from the page as served
The head of this page, as served

The page was read for a search box: a search form, a control named for search, or a box labelled as one.

<head><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no"/><meta http-equiv="X-UA-Compatible" content="ie=edge"/><meta name="facebook-domain-verification" content="msc65lq1e60kt58y2jkbo2flkhvm4a"/><!--[if IE 11 ]> <meta name="msapplication-config" content="_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/browserconfig.xml" /> <![endif]--><link rel="icon" type="image/x-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon.ico"/><link rel="icon" type="image/png" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon-32x32.png"/><link rel="apple-touch-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/col_apple_icon.png"/><link rel="manifest" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/manifest.json"/><script src="https://cc.cdn.civiccomputing.com/9/cookieControl-9.x.min.js" type="text/javascript"/><script src="/site-elements/js/cookie-control.js" type="text/javascript"/><script>!function(e,t,a,n,g){e[n]=e[n]||[],e[n].push({"gtm.start":(new Date).getTime(),event:"gtm.js"});var m=t.getElementsByTagName(a)[0],r=t.createElemโ€ฆ
MS13warning1 of 1 iframes untitled
What we check
Each embedded panel on the page carries a title saying what it contains.
What good looks like
Each embedded panel carries a title saying what it contains.
Why it matters
The embedded region stays unnamed, so what it holds is left unstated in the page around it.
What we found on this page
1 of 1 iframes untitled
The evidence, taken from the page as served
The iframes with no title attribute, as served
src=https://www.googletagmanager.com/ns.html?id=GTM-5C7LND
<iframe src="https://www.googletagmanager.com/ns.html?id=GTM-5C7LND" height="0" width="0" style="display:none;visibility:hidden"/>
DS28failSEVERE: 32% of the links to sources on other sites did not open when they were checked. 1 points at a page that no longer exists, and 1 was refused, meaning the page is still published but the other site turns away requests that do not come from a person using a browser. That is 2 of the 5 checked, which stand for the 10 links to other sites on this page
What we check
For a single page, the share of its links to OTHER sites, sampled, that lead nowhere. The site's own links are assessed separately.
What good looks like
The page's references to other sites open for any reader. Where one refuses or has gone, the page carries the fact itself, shows the reference as plain text rather than as a link, or points to a source that answers.
Why it matters
The outside sources this page offers as support did not answer when they were asked for, so what the page claims is left resting on material that does not come back. In a regulated setting, where a link is carrying a figure or a required statement, that is the difference between a claim that is evidenced and one that is merely asserted.
What we found on this page
SEVERE: 32% of the links to sources on other sites did not open when they were checked. 1 points at a page that no longer exists, and 1 was refused, meaning the page is still published but the other site turns away requests that do not come from a person using a browser. That is 2 of the 5 checked, which stand for the 10 links to other sites on this page
The evidence, taken from the page as served
The external links checked on this page, with the status each returned

A link that did not open appears here in two forms. A DEAD link points at a page that has gone. A REFUSED link points at a page that is still published, but the other site turns away requests that do not come from a person using a browser, so our request was declined. Both land in the same place: the material this page offers as its support did not come back when it was asked for. The consequence is not a matter of tidiness. Where a link carries the weight of a claim, a figure, a policy or a regulatory statement, and the target does not open, the support behind that claim is missing at the moment it is needed. Three things follow, and each of them costs the organisation. The same fact gets taken from somewhere else, which hands a third party control of how the claim is worded. Or the claim is treated as unsupported and set aside. Or an answer is drawn from what remains on the page, and a partial account is presented as a complete one. A refused link is the worst of the three, because the page still reads as though the evidence sits one step away, so the gap is invisible and the answer carries false confidence. A refusal by another site is still this site's matter to resolve, because this site chose to rest a claim on it. Three practical ways close it. Carry the fact being relied on in the page's own words, so the claim stands without the visit. Keep the reference but stop making it a link, showing the address as plain text, so nothing promises a route that does not open. Or point to a source that answers any reader. Where the reference has to stay live, say beside it what a reader will meet, so no one is sent to a closed door without warning.

Link ยท opens in a new tabStatusResult
www.facebook.com/sharer/sharer.php?u=www.cityoflondon.gov.uk/footer/cookies400Reachable
twitter.com/intent/tweet?text=www.cityoflondon.gov.uk/footer/cookies403Access-restricted
www.linkedin.com/shareArticle?mini=true&url=www.cityoflondon.gov.uk/footer/cookies200Reachable
support.google.com/analytics/answer/6004245404Dead (404/410)
www.websitecarbon.com/website/cityoflondon.gov.uk200Reachable
CT34failthe page's own words are thin: 3410 of its 3448 words are shared navigation and footer, so it reads as 100% identical to another page, which a machine can then take as a duplicate and pass over, missing the little content that is its own; the matching page is named in the view
What we check
Whether a page's own words are so few against a large shared navigation and footer that it reads as near-identical to other pages.
What good looks like
A page carries enough of its own words that a shared navigation and footer do not make it read as a copy of other pages.
Why it matters
When shared furniture is most of the text, distinct pages look like copies of each other and the little real content is easily passed over.
What we found on this page
the page's own words are thin: 3410 of its 3448 words are shared navigation and footer, so it reads as 100% identical to another page, which a machine can then take as a duplicate and pass over, missing the little content that is its own; the matching page is named in the view
The evidence, taken from the page as served
This page's own words, lost in shared navigation and footer
Page ยท opens in a new tabOwn wordsChromeReads as identical toShared
www.cityoflondon.gov.uk/footer/cookies38 of 344899%www.cityoflondon.gov.uk/footer/accessibility-toolbar100%
https://www.cityoflondon.gov.uk/footer/privacy-notice 10.8% Extremely likely 6 out of 44
CheckResultEvidence
DS03failan AI crawler asking for this page is refused by the security layer in front of the site, while an ordinary browser is served, so the page's content never reaches the AI and answers about it are left to memory or guesswork
What we check
The same page loads for a browser but is refused when the request names itself as an AI service.
What good looks like
The page returns the same response to a named AI service as to a browser, with no edge block.
Why it matters
The block sits in front of the site and leaves no trace in its own logs, so the estate is closed off unnoticed.
What we found on this page
an AI crawler asking for this page is refused by the security layer in front of the site, while an ordinary browser is served, so the page's content never reaches the AI and answers about it are left to memory or guesswork
The evidence, taken from the page as served
The estate's edge tested with each AI crawler: a browser is served, the crawlers are refused
Hostwww.cityoflondon.gov.uk · resolves to 172.66.155.113, 104.20.19.80 · Cloudflare Address trailwww.cityoflondon.gov.uk Checked2026-07-31 16:45 UTC · request sent from 10.100.100.212 (our checker)
CrawlerHTTPAnswered inSentReceivedOutcome
Browserthe control · a normal visitor200110 ms239 B196.0 KBServed
GPTBotMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko);...40356 ms224 B5.8 KBRefused
OAI-SearchBotMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko);...40360 ms234 B5.8 KBRefused
ChatGPT-UserMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko);...40358 ms227 B5.8 KBRefused
ClaudeBotMozilla/5.0 (compatible; ClaudeBot/1.0; +claudebot@anthropic.com)40360 ms187 B5.8 KBRefused
Claude-UserMozilla/5.0 (compatible; Claude-User/1.0; +https://www.anthropic.com)40361 ms191 B5.8 KBRefused
Googlebot (Gemini)Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko;...200136 ms263 B196.0 KBServed
GoogleOtherMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko);...200117 ms197 B196.0 KBServed
Bingbot (Copilot)Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko;...200137 ms262 B196.0 KBServed
PerplexityBotMozilla/5.0 (compatible; PerplexityBot/1.0;...403122 ms207 B5.8 KBRefused
Perplexity-UserMozilla/5.0 (compatible; Perplexity-User/1.0;...40363 ms211 B5.8 KBRefused
CCBotCCBot/2.0 (https://commoncrawl.org/faq/)40363 ms162 B5.8 KBRefused
BytespiderMozilla/5.0 (Linux; Android 5.0) AppleWebKit/537.36 (KHTML,...40366 ms270 B5.8 KBRefused
AmazonbotMozilla/5.0 (compatible; Amazonbot/0.1;...40363 ms210 B5.8 KBRefused
GrokBotMozilla/5.0 (compatible; GrokBot/1.0; +https://x.ai)200119 ms174 B196.0 KBServed
Meta-ExternalAgentmeta-externalagent/1.1...40361 ms211 B5.8 KBRefused
CT16warningthe page carries no structured data block stating what it is (not required; a hygiene signal)
What we check
The page carries structured data, the machine-readable summary of what it describes.
What good looks like
The page carries structured data summarising what it describes.
Why it matters
Vendors document this as optional rather than required, so its absence is a small forfeit and no more.
What we found on this page
the page carries no structured data block stating what it is (not required; a hygiene signal)
The evidence, taken from the page as served
The head of this page, as served

The page was read for a structured data block describing what the page is.

<head><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no"/><meta http-equiv="X-UA-Compatible" content="ie=edge"/><meta name="facebook-domain-verification" content="msc65lq1e60kt58y2jkbo2flkhvm4a"/><!--[if IE 11 ]> <meta name="msapplication-config" content="_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/browserconfig.xml" /> <![endif]--><link rel="icon" type="image/x-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon.ico"/><link rel="icon" type="image/png" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon-32x32.png"/><link rel="apple-touch-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/col_apple_icon.png"/><link rel="manifest" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/manifest.json"/><script src="https://cc.cdn.civiccomputing.com/9/cookieControl-9.x.min.js" type="text/javascript"/><script src="/site-elements/js/cookie-control.js" type="text/javascript"/><script>!function(e,t,a,n,g){e[n]=e[n]||[],e[n].push({"gtm.start":(new Date).getTime(),event:"gtm.js"});var m=t.getElementsByTagName(a)[0],r=t.createElemโ€ฆ
CT04warningthe page shows the year 2029 in its text, but nothing on the page states it as the date of the content
What we check
The page carries a date, ideally written into the markup rather than sitting only in the text.
What good looks like
The page carries a date, ideally written into the markup rather than sitting only in the text.
Why it matters
An undated page gives nothing to weigh its age against, so old and new material are treated alike.
What we found on this page
the page shows the year 2029 in its text, but nothing on the page states it as the date of the content
The evidence, taken from the page as served
The head of this page, as served

The head of the page was read for a tag stating the date of the content. The year shown above was found in the page's own text.

<head><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no"/><meta http-equiv="X-UA-Compatible" content="ie=edge"/><meta name="facebook-domain-verification" content="msc65lq1e60kt58y2jkbo2flkhvm4a"/><!--[if IE 11 ]> <meta name="msapplication-config" content="_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/browserconfig.xml" /> <![endif]--><link rel="icon" type="image/x-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon.ico"/><link rel="icon" type="image/png" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon-32x32.png"/><link rel="apple-touch-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/col_apple_icon.png"/><link rel="manifest" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/manifest.json"/><script src="https://cc.cdn.civiccomputing.com/9/cookieControl-9.x.min.js" type="text/javascript"/><script src="/site-elements/js/cookie-control.js" type="text/javascript"/><script>!function(e,t,a,n,g){e[n]=e[n]||[],e[n].push({"gtm.start":(new Date).getTime(),event:"gtm.js"});var m=t.getElementsByTagName(a)[0],r=t.createElemโ€ฆ
AJ05warningno site-search control detected on this page
What we check
Whether a search box for the site is present in the page as it is served.
What good looks like
A search box is present in the served markup, so the site's own content can be queried directly.
Why it matters
With no search box on the page, its links are the only route from here into the rest of the site.
What we found on this page
no site-search control detected on this page
The evidence, taken from the page as served
The head of this page, as served

The page was read for a search box: a search form, a control named for search, or a box labelled as one.

<head><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no"/><meta http-equiv="X-UA-Compatible" content="ie=edge"/><meta name="facebook-domain-verification" content="msc65lq1e60kt58y2jkbo2flkhvm4a"/><!--[if IE 11 ]> <meta name="msapplication-config" content="_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/browserconfig.xml" /> <![endif]--><link rel="icon" type="image/x-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon.ico"/><link rel="icon" type="image/png" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon-32x32.png"/><link rel="apple-touch-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/col_apple_icon.png"/><link rel="manifest" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/manifest.json"/><script src="https://cc.cdn.civiccomputing.com/9/cookieControl-9.x.min.js" type="text/javascript"/><script src="/site-elements/js/cookie-control.js" type="text/javascript"/><script>!function(e,t,a,n,g){e[n]=e[n]||[],e[n].push({"gtm.start":(new Date).getTime(),event:"gtm.js"});var m=t.getElementsByTagName(a)[0],r=t.createElemโ€ฆ
MS13warning1 of 1 iframes untitled
What we check
Each embedded panel on the page carries a title saying what it contains.
What good looks like
Each embedded panel carries a title saying what it contains.
Why it matters
The embedded region stays unnamed, so what it holds is left unstated in the page around it.
What we found on this page
1 of 1 iframes untitled
The evidence, taken from the page as served
The iframes with no title attribute, as served
src=https://www.googletagmanager.com/ns.html?id=GTM-5C7LND
<iframe src="https://www.googletagmanager.com/ns.html?id=GTM-5C7LND" height="0" width="0" style="display:none;visibility:hidden"/>
CT34failthe page's own words are thin: 3410 of its 3439 words are shared navigation and footer, so it reads as 99% identical to another page, which a machine can then take as a duplicate and pass over, missing the little content that is its own; the matching page is named in the view
What we check
Whether a page's own words are so few against a large shared navigation and footer that it reads as near-identical to other pages.
What good looks like
A page carries enough of its own words that a shared navigation and footer do not make it read as a copy of other pages.
Why it matters
When shared furniture is most of the text, distinct pages look like copies of each other and the little real content is easily passed over.
What we found on this page
the page's own words are thin: 3410 of its 3439 words are shared navigation and footer, so it reads as 99% identical to another page, which a machine can then take as a duplicate and pass over, missing the little content that is its own; the matching page is named in the view
The evidence, taken from the page as served
This page's own words, lost in shared navigation and footer
Page ยท opens in a new tabOwn wordsChromeReads as identical toShared
www.cityoflondon.gov.uk/footer/privacy-notice29 of 343999%www.cityoflondon.gov.uk/footer99%
https://www.cityoflondon.gov.uk/supporting-businesses/tenders-and-procurement/modern-slavery-statement 9.6% Extremely likely 8 out of 44
CheckResultEvidence
DS03failan AI crawler asking for this page is refused by the security layer in front of the site, while an ordinary browser is served, so the page's content never reaches the AI and answers about it are left to memory or guesswork
What we check
The same page loads for a browser but is refused when the request names itself as an AI service.
What good looks like
The page returns the same response to a named AI service as to a browser, with no edge block.
Why it matters
The block sits in front of the site and leaves no trace in its own logs, so the estate is closed off unnoticed.
What we found on this page
an AI crawler asking for this page is refused by the security layer in front of the site, while an ordinary browser is served, so the page's content never reaches the AI and answers about it are left to memory or guesswork
The evidence, taken from the page as served
The estate's edge tested with each AI crawler: a browser is served, the crawlers are refused
Hostwww.cityoflondon.gov.uk · resolves to 172.66.155.113, 104.20.19.80 · Cloudflare Address trailwww.cityoflondon.gov.uk Checked2026-07-31 16:45 UTC · request sent from 10.100.100.212 (our checker)
CrawlerHTTPAnswered inSentReceivedOutcome
Browserthe control · a normal visitor200110 ms239 B196.0 KBServed
GPTBotMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko);...40356 ms224 B5.8 KBRefused
OAI-SearchBotMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko);...40360 ms234 B5.8 KBRefused
ChatGPT-UserMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko);...40358 ms227 B5.8 KBRefused
ClaudeBotMozilla/5.0 (compatible; ClaudeBot/1.0; +claudebot@anthropic.com)40360 ms187 B5.8 KBRefused
Claude-UserMozilla/5.0 (compatible; Claude-User/1.0; +https://www.anthropic.com)40361 ms191 B5.8 KBRefused
Googlebot (Gemini)Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko;...200136 ms263 B196.0 KBServed
GoogleOtherMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko);...200117 ms197 B196.0 KBServed
Bingbot (Copilot)Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko;...200137 ms262 B196.0 KBServed
PerplexityBotMozilla/5.0 (compatible; PerplexityBot/1.0;...403122 ms207 B5.8 KBRefused
Perplexity-UserMozilla/5.0 (compatible; Perplexity-User/1.0;...40363 ms211 B5.8 KBRefused
CCBotCCBot/2.0 (https://commoncrawl.org/faq/)40363 ms162 B5.8 KBRefused
BytespiderMozilla/5.0 (Linux; Android 5.0) AppleWebKit/537.36 (KHTML,...40366 ms270 B5.8 KBRefused
AmazonbotMozilla/5.0 (compatible; Amazonbot/0.1;...40363 ms210 B5.8 KBRefused
GrokBotMozilla/5.0 (compatible; GrokBot/1.0; +https://x.ai)200119 ms174 B196.0 KBServed
Meta-ExternalAgentmeta-externalagent/1.1...40361 ms211 B5.8 KBRefused
CT32warninglength 45
What we check
The meta description's length is usable, between 50 and 170 characters.
What good looks like
The meta description's length is usable, long enough to say something and short enough not to be cut.
Why it matters
Too short says nothing and too long gets cut, so the summary field is spent without doing its job.
What we found on this page
length 45
The evidence, taken from the page as served
The page's description, as served
45 characters
<meta data-react-helmet="true" name="description" content="The City of London's Modern Slavery Statement"/>
CT16warningthe page carries no structured data block stating what it is (not required; a hygiene signal)
What we check
The page carries structured data, the machine-readable summary of what it describes.
What good looks like
The page carries structured data summarising what it describes.
Why it matters
Vendors document this as optional rather than required, so its absence is a small forfeit and no more.
What we found on this page
the page carries no structured data block stating what it is (not required; a hygiene signal)
The evidence, taken from the page as served
The head of this page, as served

The page was read for a structured data block describing what the page is.

<head><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no"/><meta http-equiv="X-UA-Compatible" content="ie=edge"/><meta name="facebook-domain-verification" content="msc65lq1e60kt58y2jkbo2flkhvm4a"/><!--[if IE 11 ]> <meta name="msapplication-config" content="_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/browserconfig.xml" /> <![endif]--><link rel="icon" type="image/x-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon.ico"/><link rel="icon" type="image/png" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon-32x32.png"/><link rel="apple-touch-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/col_apple_icon.png"/><link rel="manifest" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/manifest.json"/><script src="https://cc.cdn.civiccomputing.com/9/cookieControl-9.x.min.js" type="text/javascript"/><script src="/site-elements/js/cookie-control.js" type="text/javascript"/><script>!function(e,t,a,n,g){e[n]=e[n]||[],e[n].push({"gtm.start":(new Date).getTime(),event:"gtm.js"});var m=t.getElementsByTagName(a)[0],r=t.createElemโ€ฆ
CT04warningthe page shows the year 2029 in its text, but nothing on the page states it as the date of the content
What we check
The page carries a date, ideally written into the markup rather than sitting only in the text.
What good looks like
The page carries a date, ideally written into the markup rather than sitting only in the text.
Why it matters
An undated page gives nothing to weigh its age against, so old and new material are treated alike.
What we found on this page
the page shows the year 2029 in its text, but nothing on the page states it as the date of the content
The evidence, taken from the page as served
The head of this page, as served

The head of the page was read for a tag stating the date of the content. The year shown above was found in the page's own text.

<head><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no"/><meta http-equiv="X-UA-Compatible" content="ie=edge"/><meta name="facebook-domain-verification" content="msc65lq1e60kt58y2jkbo2flkhvm4a"/><!--[if IE 11 ]> <meta name="msapplication-config" content="_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/browserconfig.xml" /> <![endif]--><link rel="icon" type="image/x-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon.ico"/><link rel="icon" type="image/png" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon-32x32.png"/><link rel="apple-touch-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/col_apple_icon.png"/><link rel="manifest" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/manifest.json"/><script src="https://cc.cdn.civiccomputing.com/9/cookieControl-9.x.min.js" type="text/javascript"/><script src="/site-elements/js/cookie-control.js" type="text/javascript"/><script>!function(e,t,a,n,g){e[n]=e[n]||[],e[n].push({"gtm.start":(new Date).getTime(),event:"gtm.js"});var m=t.getElementsByTagName(a)[0],r=t.createElemโ€ฆ
AJ05warningno site-search control detected on this page
What we check
Whether a search box for the site is present in the page as it is served.
What good looks like
A search box is present in the served markup, so the site's own content can be queried directly.
Why it matters
With no search box on the page, its links are the only route from here into the rest of the site.
What we found on this page
no site-search control detected on this page
The evidence, taken from the page as served
The head of this page, as served

The page was read for a search box: a search form, a control named for search, or a box labelled as one.

<head><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no"/><meta http-equiv="X-UA-Compatible" content="ie=edge"/><meta name="facebook-domain-verification" content="msc65lq1e60kt58y2jkbo2flkhvm4a"/><!--[if IE 11 ]> <meta name="msapplication-config" content="_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/browserconfig.xml" /> <![endif]--><link rel="icon" type="image/x-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon.ico"/><link rel="icon" type="image/png" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon-32x32.png"/><link rel="apple-touch-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/col_apple_icon.png"/><link rel="manifest" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/manifest.json"/><script src="https://cc.cdn.civiccomputing.com/9/cookieControl-9.x.min.js" type="text/javascript"/><script src="/site-elements/js/cookie-control.js" type="text/javascript"/><script>!function(e,t,a,n,g){e[n]=e[n]||[],e[n].push({"gtm.start":(new Date).getTime(),event:"gtm.js"});var m=t.getElementsByTagName(a)[0],r=t.createElemโ€ฆ
MS13warning1 of 1 iframes untitled
What we check
Each embedded panel on the page carries a title saying what it contains.
What good looks like
Each embedded panel carries a title saying what it contains.
Why it matters
The embedded region stays unnamed, so what it holds is left unstated in the page around it.
What we found on this page
1 of 1 iframes untitled
The evidence, taken from the page as served
The iframes with no title attribute, as served
src=https://www.googletagmanager.com/ns.html?id=GTM-5C7LND
<iframe src="https://www.googletagmanager.com/ns.html?id=GTM-5C7LND" height="0" width="0" style="display:none;visibility:hidden"/>
DS28failSEVERE: 32% of the links to sources on other sites did not open when they were checked. 1 points at a page that no longer exists, and 1 was refused, meaning the page is still published but the other site turns away requests that do not come from a person using a browser. That is 2 of the 5 checked, which stand for the 11 links to other sites on this page
What we check
For a single page, the share of its links to OTHER sites, sampled, that lead nowhere. The site's own links are assessed separately.
What good looks like
The page's references to other sites open for any reader. Where one refuses or has gone, the page carries the fact itself, shows the reference as plain text rather than as a link, or points to a source that answers.
Why it matters
The outside sources this page offers as support did not answer when they were asked for, so what the page claims is left resting on material that does not come back. In a regulated setting, where a link is carrying a figure or a required statement, that is the difference between a claim that is evidenced and one that is merely asserted.
What we found on this page
SEVERE: 32% of the links to sources on other sites did not open when they were checked. 1 points at a page that no longer exists, and 1 was refused, meaning the page is still published but the other site turns away requests that do not come from a person using a browser. That is 2 of the 5 checked, which stand for the 11 links to other sites on this page
The evidence, taken from the page as served
The external links checked on this page, with the status each returned

A link that did not open appears here in two forms. A DEAD link points at a page that has gone. A REFUSED link points at a page that is still published, but the other site turns away requests that do not come from a person using a browser, so our request was declined. Both land in the same place: the material this page offers as its support did not come back when it was asked for. The consequence is not a matter of tidiness. Where a link carries the weight of a claim, a figure, a policy or a regulatory statement, and the target does not open, the support behind that claim is missing at the moment it is needed. Three things follow, and each of them costs the organisation. The same fact gets taken from somewhere else, which hands a third party control of how the claim is worded. Or the claim is treated as unsupported and set aside. Or an answer is drawn from what remains on the page, and a partial account is presented as a complete one. A refused link is the worst of the three, because the page still reads as though the evidence sits one step away, so the gap is invisible and the answer carries false confidence. A refusal by another site is still this site's matter to resolve, because this site chose to rest a claim on it. Three practical ways close it. Carry the fact being relied on in the page's own words, so the claim stands without the visit. Keep the reference but stop making it a link, showing the address as plain text, so nothing promises a route that does not open. Or point to a source that answers any reader. Where the reference has to stay live, say beside it what a reader will meet, so no one is sent to a closed door without warning.

Link ยท opens in a new tabStatusResult
www.facebook.com/sharer/sharer.php?u=www.cityoflondon.gov.uk/supporting-businesses/tenders-and-procurement/modern-slavery-statement400Reachable
twitter.com/intent/tweet?text=www.cityoflondon.gov.uk/supporting-businesses/tenders-and-procurement/modern-slavery-statement403Access-restricted
www.linkedin.com/shareArticle?mini=true&url=www.cityoflondon.gov.uk/supporting-businesses/tenders-and-procurement/modern-slavery-statement200Reachable
gbr01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.gov.uk%2Fgovernment%2Fpublications%2Fmodern-slavery-training-resource-page%2Fmodern-slavery-training-resource-page%23training-and-awareness-raising-resources&data=05%7C02%7CJames.Kaigg%40cityoflondon.gov.uk%7Cec977f273e694962cf2608dda7742aae%7C9fe658cdb3cd405685193222ffa96be8%7C0%7C0%7C638850839557349778%7CUnknown%7CTWFpbGZsb3d8eyJFbXB0eU1hcGkiOnRydWUsIlYiOiIwLjAuMDAwMCIsIlAiOiJXaW4zMiIsIkFOIjoiTWFpbCIsIldUIjoyfQ%3D%3D%7C0%7C%7C%7C&sdata=sSlQ2bgth5Z1Ghecaq5yjiE33s8%2FRkgXszlhboCDM40%3D&reserved=0500Dead (404/410)
iasctoolkit.nottingham.ac.uk/200Reachable
CT34failthe page's own words are thin: 3410 of its 3473 words are shared navigation and footer, so it reads as 99% identical to another page, which a machine can then take as a duplicate and pass over, missing the little content that is its own; the matching page is named in the view
What we check
Whether a page's own words are so few against a large shared navigation and footer that it reads as near-identical to other pages.
What good looks like
A page carries enough of its own words that a shared navigation and footer do not make it read as a copy of other pages.
Why it matters
When shared furniture is most of the text, distinct pages look like copies of each other and the little real content is easily passed over.
What we found on this page
the page's own words are thin: 3410 of its 3473 words are shared navigation and footer, so it reads as 99% identical to another page, which a machine can then take as a duplicate and pass over, missing the little content that is its own; the matching page is named in the view
The evidence, taken from the page as served
This page's own words, lost in shared navigation and footer
Page ยท opens in a new tabOwn wordsChromeReads as identical toShared
www.cityoflondon.gov.uk/supporting-businesses/tenders-and-procurement/modern-slavery-statement63 of 347398%www.cityoflondon.gov.uk/footer/feedback99%
https://www.cityoflondon.gov.uk/footer/consultations 10.8% Extremely likely 6 out of 44
CheckResultEvidence
DS03failan AI crawler asking for this page is refused by the security layer in front of the site, while an ordinary browser is served, so the page's content never reaches the AI and answers about it are left to memory or guesswork
What we check
The same page loads for a browser but is refused when the request names itself as an AI service.
What good looks like
The page returns the same response to a named AI service as to a browser, with no edge block.
Why it matters
The block sits in front of the site and leaves no trace in its own logs, so the estate is closed off unnoticed.
What we found on this page
an AI crawler asking for this page is refused by the security layer in front of the site, while an ordinary browser is served, so the page's content never reaches the AI and answers about it are left to memory or guesswork
The evidence, taken from the page as served
The estate's edge tested with each AI crawler: a browser is served, the crawlers are refused
Hostwww.cityoflondon.gov.uk · resolves to 172.66.155.113, 104.20.19.80 · Cloudflare Address trailwww.cityoflondon.gov.uk Checked2026-07-31 16:45 UTC · request sent from 10.100.100.212 (our checker)
CrawlerHTTPAnswered inSentReceivedOutcome
Browserthe control · a normal visitor200110 ms239 B196.0 KBServed
GPTBotMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko);...40356 ms224 B5.8 KBRefused
OAI-SearchBotMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko);...40360 ms234 B5.8 KBRefused
ChatGPT-UserMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko);...40358 ms227 B5.8 KBRefused
ClaudeBotMozilla/5.0 (compatible; ClaudeBot/1.0; +claudebot@anthropic.com)40360 ms187 B5.8 KBRefused
Claude-UserMozilla/5.0 (compatible; Claude-User/1.0; +https://www.anthropic.com)40361 ms191 B5.8 KBRefused
Googlebot (Gemini)Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko;...200136 ms263 B196.0 KBServed
GoogleOtherMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko);...200117 ms197 B196.0 KBServed
Bingbot (Copilot)Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko;...200137 ms262 B196.0 KBServed
PerplexityBotMozilla/5.0 (compatible; PerplexityBot/1.0;...403122 ms207 B5.8 KBRefused
Perplexity-UserMozilla/5.0 (compatible; Perplexity-User/1.0;...40363 ms211 B5.8 KBRefused
CCBotCCBot/2.0 (https://commoncrawl.org/faq/)40363 ms162 B5.8 KBRefused
BytespiderMozilla/5.0 (Linux; Android 5.0) AppleWebKit/537.36 (KHTML,...40366 ms270 B5.8 KBRefused
AmazonbotMozilla/5.0 (compatible; Amazonbot/0.1;...40363 ms210 B5.8 KBRefused
GrokBotMozilla/5.0 (compatible; GrokBot/1.0; +https://x.ai)200119 ms174 B196.0 KBServed
Meta-ExternalAgentmeta-externalagent/1.1...40361 ms211 B5.8 KBRefused
CT16warningthe page carries no structured data block stating what it is (not required; a hygiene signal)
What we check
The page carries structured data, the machine-readable summary of what it describes.
What good looks like
The page carries structured data summarising what it describes.
Why it matters
Vendors document this as optional rather than required, so its absence is a small forfeit and no more.
What we found on this page
the page carries no structured data block stating what it is (not required; a hygiene signal)
The evidence, taken from the page as served
The head of this page, as served

The page was read for a structured data block describing what the page is.

<head><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no"/><meta http-equiv="X-UA-Compatible" content="ie=edge"/><meta name="facebook-domain-verification" content="msc65lq1e60kt58y2jkbo2flkhvm4a"/><!--[if IE 11 ]> <meta name="msapplication-config" content="_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/browserconfig.xml" /> <![endif]--><link rel="icon" type="image/x-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon.ico"/><link rel="icon" type="image/png" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon-32x32.png"/><link rel="apple-touch-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/col_apple_icon.png"/><link rel="manifest" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/manifest.json"/><script src="https://cc.cdn.civiccomputing.com/9/cookieControl-9.x.min.js" type="text/javascript"/><script src="/site-elements/js/cookie-control.js" type="text/javascript"/><script>!function(e,t,a,n,g){e[n]=e[n]||[],e[n].push({"gtm.start":(new Date).getTime(),event:"gtm.js"});var m=t.getElementsByTagName(a)[0],r=t.createElemโ€ฆ
CT04warningthe page shows the year 2029 in its text, but nothing on the page states it as the date of the content
What we check
The page carries a date, ideally written into the markup rather than sitting only in the text.
What good looks like
The page carries a date, ideally written into the markup rather than sitting only in the text.
Why it matters
An undated page gives nothing to weigh its age against, so old and new material are treated alike.
What we found on this page
the page shows the year 2029 in its text, but nothing on the page states it as the date of the content
The evidence, taken from the page as served
The head of this page, as served

The head of the page was read for a tag stating the date of the content. The year shown above was found in the page's own text.

<head><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no"/><meta http-equiv="X-UA-Compatible" content="ie=edge"/><meta name="facebook-domain-verification" content="msc65lq1e60kt58y2jkbo2flkhvm4a"/><!--[if IE 11 ]> <meta name="msapplication-config" content="_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/browserconfig.xml" /> <![endif]--><link rel="icon" type="image/x-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon.ico"/><link rel="icon" type="image/png" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon-32x32.png"/><link rel="apple-touch-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/col_apple_icon.png"/><link rel="manifest" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/manifest.json"/><script src="https://cc.cdn.civiccomputing.com/9/cookieControl-9.x.min.js" type="text/javascript"/><script src="/site-elements/js/cookie-control.js" type="text/javascript"/><script>!function(e,t,a,n,g){e[n]=e[n]||[],e[n].push({"gtm.start":(new Date).getTime(),event:"gtm.js"});var m=t.getElementsByTagName(a)[0],r=t.createElemโ€ฆ
AJ05warningno site-search control detected on this page
What we check
Whether a search box for the site is present in the page as it is served.
What good looks like
A search box is present in the served markup, so the site's own content can be queried directly.
Why it matters
With no search box on the page, its links are the only route from here into the rest of the site.
What we found on this page
no site-search control detected on this page
The evidence, taken from the page as served
The head of this page, as served

The page was read for a search box: a search form, a control named for search, or a box labelled as one.

<head><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no"/><meta http-equiv="X-UA-Compatible" content="ie=edge"/><meta name="facebook-domain-verification" content="msc65lq1e60kt58y2jkbo2flkhvm4a"/><!--[if IE 11 ]> <meta name="msapplication-config" content="_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/browserconfig.xml" /> <![endif]--><link rel="icon" type="image/x-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon.ico"/><link rel="icon" type="image/png" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon-32x32.png"/><link rel="apple-touch-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/col_apple_icon.png"/><link rel="manifest" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/manifest.json"/><script src="https://cc.cdn.civiccomputing.com/9/cookieControl-9.x.min.js" type="text/javascript"/><script src="/site-elements/js/cookie-control.js" type="text/javascript"/><script>!function(e,t,a,n,g){e[n]=e[n]||[],e[n].push({"gtm.start":(new Date).getTime(),event:"gtm.js"});var m=t.getElementsByTagName(a)[0],r=t.createElemโ€ฆ
MS13warning1 of 1 iframes untitled
What we check
Each embedded panel on the page carries a title saying what it contains.
What good looks like
Each embedded panel carries a title saying what it contains.
Why it matters
The embedded region stays unnamed, so what it holds is left unstated in the page around it.
What we found on this page
1 of 1 iframes untitled
The evidence, taken from the page as served
The iframes with no title attribute, as served
src=https://www.googletagmanager.com/ns.html?id=GTM-5C7LND
<iframe src="https://www.googletagmanager.com/ns.html?id=GTM-5C7LND" height="0" width="0" style="display:none;visibility:hidden"/>
CT34failthe page's own words are thin: 3406 of its 3475 words are shared navigation and footer, so it reads as 98% identical to another page, which a machine can then take as a duplicate and pass over, missing the little content that is its own; the matching page is named in the view
What we check
Whether a page's own words are so few against a large shared navigation and footer that it reads as near-identical to other pages.
What good looks like
A page carries enough of its own words that a shared navigation and footer do not make it read as a copy of other pages.
Why it matters
When shared furniture is most of the text, distinct pages look like copies of each other and the little real content is easily passed over.
What we found on this page
the page's own words are thin: 3406 of its 3475 words are shared navigation and footer, so it reads as 98% identical to another page, which a machine can then take as a duplicate and pass over, missing the little content that is its own; the matching page is named in the view
The evidence, taken from the page as served
This page's own words, lost in shared navigation and footer
Page ยท opens in a new tabOwn wordsChromeReads as identical toShared
www.cityoflondon.gov.uk/footer/consultations69 of 347598%www.cityoflondon.gov.uk/footer98%
https://www.cityoflondon.gov.uk/footer/feedback 33.2% Very likely 6 out of 43
CheckResultEvidence
DS03failan AI crawler asking for this page is refused by the security layer in front of the site, while an ordinary browser is served, so the page's content never reaches the AI and answers about it are left to memory or guesswork
What we check
The same page loads for a browser but is refused when the request names itself as an AI service.
What good looks like
The page returns the same response to a named AI service as to a browser, with no edge block.
Why it matters
The block sits in front of the site and leaves no trace in its own logs, so the estate is closed off unnoticed.
What we found on this page
an AI crawler asking for this page is refused by the security layer in front of the site, while an ordinary browser is served, so the page's content never reaches the AI and answers about it are left to memory or guesswork
The evidence, taken from the page as served
The estate's edge tested with each AI crawler: a browser is served, the crawlers are refused
Hostwww.cityoflondon.gov.uk · resolves to 172.66.155.113, 104.20.19.80 · Cloudflare Address trailwww.cityoflondon.gov.uk Checked2026-07-31 16:45 UTC · request sent from 10.100.100.212 (our checker)
CrawlerHTTPAnswered inSentReceivedOutcome
Browserthe control · a normal visitor200110 ms239 B196.0 KBServed
GPTBotMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko);...40356 ms224 B5.8 KBRefused
OAI-SearchBotMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko);...40360 ms234 B5.8 KBRefused
ChatGPT-UserMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko);...40358 ms227 B5.8 KBRefused
ClaudeBotMozilla/5.0 (compatible; ClaudeBot/1.0; +claudebot@anthropic.com)40360 ms187 B5.8 KBRefused
Claude-UserMozilla/5.0 (compatible; Claude-User/1.0; +https://www.anthropic.com)40361 ms191 B5.8 KBRefused
Googlebot (Gemini)Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko;...200136 ms263 B196.0 KBServed
GoogleOtherMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko);...200117 ms197 B196.0 KBServed
Bingbot (Copilot)Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko;...200137 ms262 B196.0 KBServed
PerplexityBotMozilla/5.0 (compatible; PerplexityBot/1.0;...403122 ms207 B5.8 KBRefused
Perplexity-UserMozilla/5.0 (compatible; Perplexity-User/1.0;...40363 ms211 B5.8 KBRefused
CCBotCCBot/2.0 (https://commoncrawl.org/faq/)40363 ms162 B5.8 KBRefused
BytespiderMozilla/5.0 (Linux; Android 5.0) AppleWebKit/537.36 (KHTML,...40366 ms270 B5.8 KBRefused
AmazonbotMozilla/5.0 (compatible; Amazonbot/0.1;...40363 ms210 B5.8 KBRefused
GrokBotMozilla/5.0 (compatible; GrokBot/1.0; +https://x.ai)200119 ms174 B196.0 KBServed
Meta-ExternalAgentmeta-externalagent/1.1...40361 ms211 B5.8 KBRefused
CT16warningthe page carries no structured data block stating what it is (not required; a hygiene signal)
What we check
The page carries structured data, the machine-readable summary of what it describes.
What good looks like
The page carries structured data summarising what it describes.
Why it matters
Vendors document this as optional rather than required, so its absence is a small forfeit and no more.
What we found on this page
the page carries no structured data block stating what it is (not required; a hygiene signal)
The evidence, taken from the page as served
The head of this page, as served

The page was read for a structured data block describing what the page is.

<head><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no"/><meta http-equiv="X-UA-Compatible" content="ie=edge"/><meta name="facebook-domain-verification" content="msc65lq1e60kt58y2jkbo2flkhvm4a"/><!--[if IE 11 ]> <meta name="msapplication-config" content="_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/browserconfig.xml" /> <![endif]--><link rel="icon" type="image/x-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon.ico"/><link rel="icon" type="image/png" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon-32x32.png"/><link rel="apple-touch-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/col_apple_icon.png"/><link rel="manifest" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/manifest.json"/><script src="https://cc.cdn.civiccomputing.com/9/cookieControl-9.x.min.js" type="text/javascript"/><script src="/site-elements/js/cookie-control.js" type="text/javascript"/><script>!function(e,t,a,n,g){e[n]=e[n]||[],e[n].push({"gtm.start":(new Date).getTime(),event:"gtm.js"});var m=t.getElementsByTagName(a)[0],r=t.createElemโ€ฆ
CT04warningthe page shows the year 2029 in its text, but nothing on the page states it as the date of the content
What we check
The page carries a date, ideally written into the markup rather than sitting only in the text.
What good looks like
The page carries a date, ideally written into the markup rather than sitting only in the text.
Why it matters
An undated page gives nothing to weigh its age against, so old and new material are treated alike.
What we found on this page
the page shows the year 2029 in its text, but nothing on the page states it as the date of the content
The evidence, taken from the page as served
The head of this page, as served

The head of the page was read for a tag stating the date of the content. The year shown above was found in the page's own text.

<head><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no"/><meta http-equiv="X-UA-Compatible" content="ie=edge"/><meta name="facebook-domain-verification" content="msc65lq1e60kt58y2jkbo2flkhvm4a"/><!--[if IE 11 ]> <meta name="msapplication-config" content="_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/browserconfig.xml" /> <![endif]--><link rel="icon" type="image/x-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon.ico"/><link rel="icon" type="image/png" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon-32x32.png"/><link rel="apple-touch-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/col_apple_icon.png"/><link rel="manifest" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/manifest.json"/><script src="https://cc.cdn.civiccomputing.com/9/cookieControl-9.x.min.js" type="text/javascript"/><script src="/site-elements/js/cookie-control.js" type="text/javascript"/><script>!function(e,t,a,n,g){e[n]=e[n]||[],e[n].push({"gtm.start":(new Date).getTime(),event:"gtm.js"});var m=t.getElementsByTagName(a)[0],r=t.createElemโ€ฆ
AJ05warningno site-search control detected on this page
What we check
Whether a search box for the site is present in the page as it is served.
What good looks like
A search box is present in the served markup, so the site's own content can be queried directly.
Why it matters
With no search box on the page, its links are the only route from here into the rest of the site.
What we found on this page
no site-search control detected on this page
The evidence, taken from the page as served
The head of this page, as served

The page was read for a search box: a search form, a control named for search, or a box labelled as one.

<head><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no"/><meta http-equiv="X-UA-Compatible" content="ie=edge"/><meta name="facebook-domain-verification" content="msc65lq1e60kt58y2jkbo2flkhvm4a"/><!--[if IE 11 ]> <meta name="msapplication-config" content="_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/browserconfig.xml" /> <![endif]--><link rel="icon" type="image/x-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon.ico"/><link rel="icon" type="image/png" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon-32x32.png"/><link rel="apple-touch-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/col_apple_icon.png"/><link rel="manifest" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/manifest.json"/><script src="https://cc.cdn.civiccomputing.com/9/cookieControl-9.x.min.js" type="text/javascript"/><script src="/site-elements/js/cookie-control.js" type="text/javascript"/><script>!function(e,t,a,n,g){e[n]=e[n]||[],e[n].push({"gtm.start":(new Date).getTime(),event:"gtm.js"});var m=t.getElementsByTagName(a)[0],r=t.createElemโ€ฆ
MS13warning1 of 1 iframes untitled
What we check
Each embedded panel on the page carries a title saying what it contains.
What good looks like
Each embedded panel carries a title saying what it contains.
Why it matters
The embedded region stays unnamed, so what it holds is left unstated in the page around it.
What we found on this page
1 of 1 iframes untitled
The evidence, taken from the page as served
The iframes with no title attribute, as served
src=https://www.googletagmanager.com/ns.html?id=GTM-5C7LND
<iframe src="https://www.googletagmanager.com/ns.html?id=GTM-5C7LND" height="0" width="0" style="display:none;visibility:hidden"/>
DS28failone link to sources on other sites was refused when it was checked. The page is still published, but the other site turns away requests that do not come from a person using a browser. It is listed in the view
What we check
For a single page, the share of its links to OTHER sites, sampled, that lead nowhere. The site's own links are assessed separately.
What good looks like
The page's references to other sites open for any reader. Where one refuses or has gone, the page carries the fact itself, shows the reference as plain text rather than as a link, or points to a source that answers.
Why it matters
The outside sources this page offers as support did not answer when they were asked for, so what the page claims is left resting on material that does not come back. In a regulated setting, where a link is carrying a figure or a required statement, that is the difference between a claim that is evidenced and one that is merely asserted.
What we found on this page
one link to sources on other sites was refused when it was checked. The page is still published, but the other site turns away requests that do not come from a person using a browser. It is listed in the view
The evidence, taken from the page as served
The external links checked on this page, with the status each returned

A link that did not open appears here in two forms. A DEAD link points at a page that has gone. A REFUSED link points at a page that is still published, but the other site turns away requests that do not come from a person using a browser, so our request was declined. Both land in the same place: the material this page offers as its support did not come back when it was asked for. The consequence is not a matter of tidiness. Where a link carries the weight of a claim, a figure, a policy or a regulatory statement, and the target does not open, the support behind that claim is missing at the moment it is needed. Three things follow, and each of them costs the organisation. The same fact gets taken from somewhere else, which hands a third party control of how the claim is worded. Or the claim is treated as unsupported and set aside. Or an answer is drawn from what remains on the page, and a partial account is presented as a complete one. A refused link is the worst of the three, because the page still reads as though the evidence sits one step away, so the gap is invisible and the answer carries false confidence. A refusal by another site is still this site's matter to resolve, because this site chose to rest a claim on it. Three practical ways close it. Carry the fact being relied on in the page's own words, so the claim stands without the visit. Keep the reference but stop making it a link, showing the address as plain text, so nothing promises a route that does not open. Or point to a source that answers any reader. Where the reference has to stay live, say beside it what a reader will meet, so no one is sent to a closed door without warning.

Link ยท opens in a new tabStatusResult
www.facebook.com/sharer/sharer.php?u=www.cityoflondon.gov.uk/footer/feedback400Reachable
twitter.com/intent/tweet?text=www.cityoflondon.gov.uk/footer/feedback403Access-restricted
www.linkedin.com/shareArticle?mini=true&url=www.cityoflondon.gov.uk/footer/feedback200Reachable
www.lgo.org.uk/200Reachable
www.websitecarbon.com/website/cityoflondon.gov.uk200Reachable
https://www.cityoflondon.gov.uk/footer/legal-notices 10.3% Extremely likely 8 out of 44
CheckResultEvidence
DS03failan AI crawler asking for this page is refused by the security layer in front of the site, while an ordinary browser is served, so the page's content never reaches the AI and answers about it are left to memory or guesswork
What we check
The same page loads for a browser but is refused when the request names itself as an AI service.
What good looks like
The page returns the same response to a named AI service as to a browser, with no edge block.
Why it matters
The block sits in front of the site and leaves no trace in its own logs, so the estate is closed off unnoticed.
What we found on this page
an AI crawler asking for this page is refused by the security layer in front of the site, while an ordinary browser is served, so the page's content never reaches the AI and answers about it are left to memory or guesswork
The evidence, taken from the page as served
The estate's edge tested with each AI crawler: a browser is served, the crawlers are refused
Hostwww.cityoflondon.gov.uk · resolves to 172.66.155.113, 104.20.19.80 · Cloudflare Address trailwww.cityoflondon.gov.uk Checked2026-07-31 16:45 UTC · request sent from 10.100.100.212 (our checker)
CrawlerHTTPAnswered inSentReceivedOutcome
Browserthe control · a normal visitor200110 ms239 B196.0 KBServed
GPTBotMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko);...40356 ms224 B5.8 KBRefused
OAI-SearchBotMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko);...40360 ms234 B5.8 KBRefused
ChatGPT-UserMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko);...40358 ms227 B5.8 KBRefused
ClaudeBotMozilla/5.0 (compatible; ClaudeBot/1.0; +claudebot@anthropic.com)40360 ms187 B5.8 KBRefused
Claude-UserMozilla/5.0 (compatible; Claude-User/1.0; +https://www.anthropic.com)40361 ms191 B5.8 KBRefused
Googlebot (Gemini)Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko;...200136 ms263 B196.0 KBServed
GoogleOtherMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko);...200117 ms197 B196.0 KBServed
Bingbot (Copilot)Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko;...200137 ms262 B196.0 KBServed
PerplexityBotMozilla/5.0 (compatible; PerplexityBot/1.0;...403122 ms207 B5.8 KBRefused
Perplexity-UserMozilla/5.0 (compatible; Perplexity-User/1.0;...40363 ms211 B5.8 KBRefused
CCBotCCBot/2.0 (https://commoncrawl.org/faq/)40363 ms162 B5.8 KBRefused
BytespiderMozilla/5.0 (Linux; Android 5.0) AppleWebKit/537.36 (KHTML,...40366 ms270 B5.8 KBRefused
AmazonbotMozilla/5.0 (compatible; Amazonbot/0.1;...40363 ms210 B5.8 KBRefused
GrokBotMozilla/5.0 (compatible; GrokBot/1.0; +https://x.ai)200119 ms174 B196.0 KBServed
Meta-ExternalAgentmeta-externalagent/1.1...40361 ms211 B5.8 KBRefused
CT16warningthe page carries no structured data block stating what it is (not required; a hygiene signal)
What we check
The page carries structured data, the machine-readable summary of what it describes.
What good looks like
The page carries structured data summarising what it describes.
Why it matters
Vendors document this as optional rather than required, so its absence is a small forfeit and no more.
What we found on this page
the page carries no structured data block stating what it is (not required; a hygiene signal)
The evidence, taken from the page as served
The head of this page, as served

The page was read for a structured data block describing what the page is.

<head><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no"/><meta http-equiv="X-UA-Compatible" content="ie=edge"/><meta name="facebook-domain-verification" content="msc65lq1e60kt58y2jkbo2flkhvm4a"/><!--[if IE 11 ]> <meta name="msapplication-config" content="_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/browserconfig.xml" /> <![endif]--><link rel="icon" type="image/x-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon.ico"/><link rel="icon" type="image/png" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon-32x32.png"/><link rel="apple-touch-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/col_apple_icon.png"/><link rel="manifest" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/manifest.json"/><script src="https://cc.cdn.civiccomputing.com/9/cookieControl-9.x.min.js" type="text/javascript"/><script src="/site-elements/js/cookie-control.js" type="text/javascript"/><script>!function(e,t,a,n,g){e[n]=e[n]||[],e[n].push({"gtm.start":(new Date).getTime(),event:"gtm.js"});var m=t.getElementsByTagName(a)[0],r=t.createElemโ€ฆ
CT04warningthe page shows the year 2029 in its text, but nothing on the page states it as the date of the content
What we check
The page carries a date, ideally written into the markup rather than sitting only in the text.
What good looks like
The page carries a date, ideally written into the markup rather than sitting only in the text.
Why it matters
An undated page gives nothing to weigh its age against, so old and new material are treated alike.
What we found on this page
the page shows the year 2029 in its text, but nothing on the page states it as the date of the content
The evidence, taken from the page as served
The head of this page, as served

The head of the page was read for a tag stating the date of the content. The year shown above was found in the page's own text.

<head><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no"/><meta http-equiv="X-UA-Compatible" content="ie=edge"/><meta name="facebook-domain-verification" content="msc65lq1e60kt58y2jkbo2flkhvm4a"/><!--[if IE 11 ]> <meta name="msapplication-config" content="_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/browserconfig.xml" /> <![endif]--><link rel="icon" type="image/x-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon.ico"/><link rel="icon" type="image/png" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon-32x32.png"/><link rel="apple-touch-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/col_apple_icon.png"/><link rel="manifest" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/manifest.json"/><script src="https://cc.cdn.civiccomputing.com/9/cookieControl-9.x.min.js" type="text/javascript"/><script src="/site-elements/js/cookie-control.js" type="text/javascript"/><script>!function(e,t,a,n,g){e[n]=e[n]||[],e[n].push({"gtm.start":(new Date).getTime(),event:"gtm.js"});var m=t.getElementsByTagName(a)[0],r=t.createElemโ€ฆ
AJ05warningno site-search control detected on this page
What we check
Whether a search box for the site is present in the page as it is served.
What good looks like
A search box is present in the served markup, so the site's own content can be queried directly.
Why it matters
With no search box on the page, its links are the only route from here into the rest of the site.
What we found on this page
no site-search control detected on this page
The evidence, taken from the page as served
The head of this page, as served

The page was read for a search box: a search form, a control named for search, or a box labelled as one.

<head><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no"/><meta http-equiv="X-UA-Compatible" content="ie=edge"/><meta name="facebook-domain-verification" content="msc65lq1e60kt58y2jkbo2flkhvm4a"/><!--[if IE 11 ]> <meta name="msapplication-config" content="_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/browserconfig.xml" /> <![endif]--><link rel="icon" type="image/x-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon.ico"/><link rel="icon" type="image/png" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon-32x32.png"/><link rel="apple-touch-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/col_apple_icon.png"/><link rel="manifest" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/manifest.json"/><script src="https://cc.cdn.civiccomputing.com/9/cookieControl-9.x.min.js" type="text/javascript"/><script src="/site-elements/js/cookie-control.js" type="text/javascript"/><script>!function(e,t,a,n,g){e[n]=e[n]||[],e[n].push({"gtm.start":(new Date).getTime(),event:"gtm.js"});var m=t.getElementsByTagName(a)[0],r=t.createElemโ€ฆ
MS08fail1 link wording(s) are used for more than one destination, so the same words point at different pages: โ€œcitizens advice bureauโ€; the links are listed in the view
What we check
Links that share exactly the same wording on one page while pointing at different destinations.
What good looks like
Links that share the same wording lead to the same destination.
Why it matters
The wording no longer settles the target, so the wrong one gets followed at the point where the choice matters.
What we found on this page
1 link wording(s) are used for more than one destination, so the same words point at different pages: โ€œcitizens advice bureauโ€; the links are listed in the view
The evidence, taken from the page as served
Links that share the same text but point to different destinations, as served
"Citizens advice bureau"
<a target="_blank" href="https://www.citizensadvice.org.uk/">Citizens advice bureau</a>
"Citizens advice bureau"
<a target="_blank" href="http://www.adviceguide.org.uk/">Citizens advice bureau</a>
MS13warning1 of 1 iframes untitled
What we check
Each embedded panel on the page carries a title saying what it contains.
What good looks like
Each embedded panel carries a title saying what it contains.
Why it matters
The embedded region stays unnamed, so what it holds is left unstated in the page around it.
What we found on this page
1 of 1 iframes untitled
The evidence, taken from the page as served
The iframes with no title attribute, as served
src=https://www.googletagmanager.com/ns.html?id=GTM-5C7LND
<iframe src="https://www.googletagmanager.com/ns.html?id=GTM-5C7LND" height="0" width="0" style="display:none;visibility:hidden"/>
DS28failone link to sources on other sites was refused when it was checked. The page is still published, but the other site turns away requests that do not come from a person using a browser. It is listed in the view
What we check
For a single page, the share of its links to OTHER sites, sampled, that lead nowhere. The site's own links are assessed separately.
What good looks like
The page's references to other sites open for any reader. Where one refuses or has gone, the page carries the fact itself, shows the reference as plain text rather than as a link, or points to a source that answers.
Why it matters
The outside sources this page offers as support did not answer when they were asked for, so what the page claims is left resting on material that does not come back. In a regulated setting, where a link is carrying a figure or a required statement, that is the difference between a claim that is evidenced and one that is merely asserted.
What we found on this page
one link to sources on other sites was refused when it was checked. The page is still published, but the other site turns away requests that do not come from a person using a browser. It is listed in the view
The evidence, taken from the page as served
The external links checked on this page, with the status each returned

A link that did not open appears here in two forms. A DEAD link points at a page that has gone. A REFUSED link points at a page that is still published, but the other site turns away requests that do not come from a person using a browser, so our request was declined. Both land in the same place: the material this page offers as its support did not come back when it was asked for. The consequence is not a matter of tidiness. Where a link carries the weight of a claim, a figure, a policy or a regulatory statement, and the target does not open, the support behind that claim is missing at the moment it is needed. Three things follow, and each of them costs the organisation. The same fact gets taken from somewhere else, which hands a third party control of how the claim is worded. Or the claim is treated as unsupported and set aside. Or an answer is drawn from what remains on the page, and a partial account is presented as a complete one. A refused link is the worst of the three, because the page still reads as though the evidence sits one step away, so the gap is invisible and the answer carries false confidence. A refusal by another site is still this site's matter to resolve, because this site chose to rest a claim on it. Three practical ways close it. Carry the fact being relied on in the page's own words, so the claim stands without the visit. Keep the reference but stop making it a link, showing the address as plain text, so nothing promises a route that does not open. Or point to a source that answers any reader. Where the reference has to stay live, say beside it what a reader will meet, so no one is sent to a closed door without warning.

Link ยท opens in a new tabStatusResult
www.facebook.com/sharer/sharer.php?u=www.cityoflondon.gov.uk/footer/legal-notices400Reachable
twitter.com/intent/tweet?text=www.cityoflondon.gov.uk/footer/legal-notices403Access-restricted
www.linkedin.com/shareArticle?mini=true&url=www.cityoflondon.gov.uk/footer/legal-notices200Reachable
www.citizensadvice.org.uk/200Reachable
www.adviceguide.org.uk/200Reachable
CT34failthe page's own words are thin: 3410 of its 3444 words are shared navigation and footer, so it reads as 100% identical to another page, which a machine can then take as a duplicate and pass over, missing the little content that is its own; the matching page is named in the view
What we check
Whether a page's own words are so few against a large shared navigation and footer that it reads as near-identical to other pages.
What good looks like
A page carries enough of its own words that a shared navigation and footer do not make it read as a copy of other pages.
Why it matters
When shared furniture is most of the text, distinct pages look like copies of each other and the little real content is easily passed over.
What we found on this page
the page's own words are thin: 3410 of its 3444 words are shared navigation and footer, so it reads as 100% identical to another page, which a machine can then take as a duplicate and pass over, missing the little content that is its own; the matching page is named in the view
The evidence, taken from the page as served
This page's own words, lost in shared navigation and footer
Page ยท opens in a new tabOwn wordsChromeReads as identical toShared
www.cityoflondon.gov.uk/footer/legal-notices34 of 344499%www.cityoflondon.gov.uk/footer/accessibility-toolbar100%
https://www.cityoflondon.gov.uk/footer/accessibility-toolbar 10.1% Extremely likely 11 out of 44
CheckResultEvidence
DS03failan AI crawler asking for this page is refused by the security layer in front of the site, while an ordinary browser is served, so the page's content never reaches the AI and answers about it are left to memory or guesswork
What we check
The same page loads for a browser but is refused when the request names itself as an AI service.
What good looks like
The page returns the same response to a named AI service as to a browser, with no edge block.
Why it matters
The block sits in front of the site and leaves no trace in its own logs, so the estate is closed off unnoticed.
What we found on this page
an AI crawler asking for this page is refused by the security layer in front of the site, while an ordinary browser is served, so the page's content never reaches the AI and answers about it are left to memory or guesswork
The evidence, taken from the page as served
The estate's edge tested with each AI crawler: a browser is served, the crawlers are refused
Hostwww.cityoflondon.gov.uk · resolves to 172.66.155.113, 104.20.19.80 · Cloudflare Address trailwww.cityoflondon.gov.uk Checked2026-07-31 16:45 UTC · request sent from 10.100.100.212 (our checker)
CrawlerHTTPAnswered inSentReceivedOutcome
Browserthe control · a normal visitor200110 ms239 B196.0 KBServed
GPTBotMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko);...40356 ms224 B5.8 KBRefused
OAI-SearchBotMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko);...40360 ms234 B5.8 KBRefused
ChatGPT-UserMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko);...40358 ms227 B5.8 KBRefused
ClaudeBotMozilla/5.0 (compatible; ClaudeBot/1.0; +claudebot@anthropic.com)40360 ms187 B5.8 KBRefused
Claude-UserMozilla/5.0 (compatible; Claude-User/1.0; +https://www.anthropic.com)40361 ms191 B5.8 KBRefused
Googlebot (Gemini)Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko;...200136 ms263 B196.0 KBServed
GoogleOtherMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko);...200117 ms197 B196.0 KBServed
Bingbot (Copilot)Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko;...200137 ms262 B196.0 KBServed
PerplexityBotMozilla/5.0 (compatible; PerplexityBot/1.0;...403122 ms207 B5.8 KBRefused
Perplexity-UserMozilla/5.0 (compatible; Perplexity-User/1.0;...40363 ms211 B5.8 KBRefused
CCBotCCBot/2.0 (https://commoncrawl.org/faq/)40363 ms162 B5.8 KBRefused
BytespiderMozilla/5.0 (Linux; Android 5.0) AppleWebKit/537.36 (KHTML,...40366 ms270 B5.8 KBRefused
AmazonbotMozilla/5.0 (compatible; Amazonbot/0.1;...40363 ms210 B5.8 KBRefused
GrokBotMozilla/5.0 (compatible; GrokBot/1.0; +https://x.ai)200119 ms174 B196.0 KBServed
Meta-ExternalAgentmeta-externalagent/1.1...40361 ms211 B5.8 KBRefused
CT32warninglength 21
What we check
The meta description's length is usable, between 50 and 170 characters.
What good looks like
The meta description's length is usable, long enough to say something and short enough not to be cut.
Why it matters
Too short says nothing and too long gets cut, so the summary field is spent without doing its job.
What we found on this page
length 21
The evidence, taken from the page as served
The page's description, as served
21 characters
<meta data-react-helmet="true" name="description" content="Accessibility toolbar"/>
CT16warningthe page carries no structured data block stating what it is (not required; a hygiene signal)
What we check
The page carries structured data, the machine-readable summary of what it describes.
What good looks like
The page carries structured data summarising what it describes.
Why it matters
Vendors document this as optional rather than required, so its absence is a small forfeit and no more.
What we found on this page
the page carries no structured data block stating what it is (not required; a hygiene signal)
The evidence, taken from the page as served
The head of this page, as served

The page was read for a structured data block describing what the page is.

<head><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no"/><meta http-equiv="X-UA-Compatible" content="ie=edge"/><meta name="facebook-domain-verification" content="msc65lq1e60kt58y2jkbo2flkhvm4a"/><!--[if IE 11 ]> <meta name="msapplication-config" content="_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/browserconfig.xml" /> <![endif]--><link rel="icon" type="image/x-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon.ico"/><link rel="icon" type="image/png" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon-32x32.png"/><link rel="apple-touch-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/col_apple_icon.png"/><link rel="manifest" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/manifest.json"/><script src="https://cc.cdn.civiccomputing.com/9/cookieControl-9.x.min.js" type="text/javascript"/><script src="/site-elements/js/cookie-control.js" type="text/javascript"/><script>!function(e,t,a,n,g){e[n]=e[n]||[],e[n].push({"gtm.start":(new Date).getTime(),event:"gtm.js"});var m=t.getElementsByTagName(a)[0],r=t.createElemโ€ฆ
CT04warningthe page shows the year 2029 in its text, but nothing on the page states it as the date of the content
What we check
The page carries a date, ideally written into the markup rather than sitting only in the text.
What good looks like
The page carries a date, ideally written into the markup rather than sitting only in the text.
Why it matters
An undated page gives nothing to weigh its age against, so old and new material are treated alike.
What we found on this page
the page shows the year 2029 in its text, but nothing on the page states it as the date of the content
The evidence, taken from the page as served
The head of this page, as served

The head of the page was read for a tag stating the date of the content. The year shown above was found in the page's own text.

<head><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no"/><meta http-equiv="X-UA-Compatible" content="ie=edge"/><meta name="facebook-domain-verification" content="msc65lq1e60kt58y2jkbo2flkhvm4a"/><!--[if IE 11 ]> <meta name="msapplication-config" content="_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/browserconfig.xml" /> <![endif]--><link rel="icon" type="image/x-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon.ico"/><link rel="icon" type="image/png" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon-32x32.png"/><link rel="apple-touch-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/col_apple_icon.png"/><link rel="manifest" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/manifest.json"/><script src="https://cc.cdn.civiccomputing.com/9/cookieControl-9.x.min.js" type="text/javascript"/><script src="/site-elements/js/cookie-control.js" type="text/javascript"/><script>!function(e,t,a,n,g){e[n]=e[n]||[],e[n].push({"gtm.start":(new Date).getTime(),event:"gtm.js"});var m=t.getElementsByTagName(a)[0],r=t.createElemโ€ฆ
AR13warningonly 154 characters of this page read as its own content, so either the page is thin or its own words cannot be told apart from the parts repeated across the site
What we check
Whether the page's main content is marked off from the navigation and footer around it.
What good looks like
A main or article region marks the primary content off from the navigation and footer around it.
Why it matters
Pulling the page's text returns menus and legal footers mixed with the substance, so the answer arrives buried in noise.
What we found on this page
only 154 characters of this page read as its own content, so either the page is thin or its own words cannot be told apart from the parts repeated across the site
The evidence, taken from the page as served
The main text extracted from the page, as served
154 characters
FooterAccessibility toolbarAccessibility toolbarGo to FacebookGo to TwitterGo to LinkedInGo to MailDate updated: 8/07/2025View the Accessibility statement
CT24warningthe page's own content runs to 154 characters
What we check
The page holds enough main text to be substantive, measured against a 400 character floor.
What good looks like
The page holds enough main text to be substantive.
Why it matters
A page of a few sentences offers almost nothing to quote, so it adds little beyond its own existence.
What we found on this page
the page's own content runs to 154 characters
The evidence, taken from the page as served
How much of this page is its own content

Counted from the page as served, before any script runs. The page's own content is the part it marks out as its main content; where it marks out none, the whole of its text is counted.

What was measuredAs measured on this page
The page's own content154 characters
All the text on the page1237 characters
The point we measure against400 characters
CT13failmain content is 12% of the page's text; the shared furniture around it dominates what is read out
What we check
How much of the page's text sits in the main content region rather than in surrounding furniture.
What good looks like
Most of the page's text sits in its main content region rather than in the surrounding furniture.
Why it matters
When the main region is a small slice of the page, what is pulled out is mostly menus and boilerplate.
What we found on this page
main content is 12% of the page's text; the shared furniture around it dominates what is read out
The evidence, taken from the page as served
How much of this page is its own content

Counted from the page as served, before any script runs. The rest is the menus, header and foot-of-page text that appear on other pages of the site as well.

What was measuredAs measured on this page
The page's own content154 characters
All the text on the page1237 characters
The page's own share of it12%
The point we measure against25%
AJ05warningno site-search control detected on this page
What we check
Whether a search box for the site is present in the page as it is served.
What good looks like
A search box is present in the served markup, so the site's own content can be queried directly.
Why it matters
With no search box on the page, its links are the only route from here into the rest of the site.
What we found on this page
no site-search control detected on this page
The evidence, taken from the page as served
The head of this page, as served

The page was read for a search box: a search form, a control named for search, or a box labelled as one.

<head><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no"/><meta http-equiv="X-UA-Compatible" content="ie=edge"/><meta name="facebook-domain-verification" content="msc65lq1e60kt58y2jkbo2flkhvm4a"/><!--[if IE 11 ]> <meta name="msapplication-config" content="_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/browserconfig.xml" /> <![endif]--><link rel="icon" type="image/x-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon.ico"/><link rel="icon" type="image/png" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon-32x32.png"/><link rel="apple-touch-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/col_apple_icon.png"/><link rel="manifest" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/manifest.json"/><script src="https://cc.cdn.civiccomputing.com/9/cookieControl-9.x.min.js" type="text/javascript"/><script src="/site-elements/js/cookie-control.js" type="text/javascript"/><script>!function(e,t,a,n,g){e[n]=e[n]||[],e[n].push({"gtm.start":(new Date).getTime(),event:"gtm.js"});var m=t.getElementsByTagName(a)[0],r=t.createElemโ€ฆ
MS13warning1 of 1 iframes untitled
What we check
Each embedded panel on the page carries a title saying what it contains.
What good looks like
Each embedded panel carries a title saying what it contains.
Why it matters
The embedded region stays unnamed, so what it holds is left unstated in the page around it.
What we found on this page
1 of 1 iframes untitled
The evidence, taken from the page as served
The iframes with no title attribute, as served
src=https://www.googletagmanager.com/ns.html?id=GTM-5C7LND
<iframe src="https://www.googletagmanager.com/ns.html?id=GTM-5C7LND" height="0" width="0" style="display:none;visibility:hidden"/>
DS28failone link to sources on other sites was refused when it was checked. The page is still published, but the other site turns away requests that do not come from a person using a browser. It is listed in the view
What we check
For a single page, the share of its links to OTHER sites, sampled, that lead nowhere. The site's own links are assessed separately.
What good looks like
The page's references to other sites open for any reader. Where one refuses or has gone, the page carries the fact itself, shows the reference as plain text rather than as a link, or points to a source that answers.
Why it matters
The outside sources this page offers as support did not answer when they were asked for, so what the page claims is left resting on material that does not come back. In a regulated setting, where a link is carrying a figure or a required statement, that is the difference between a claim that is evidenced and one that is merely asserted.
What we found on this page
one link to sources on other sites was refused when it was checked. The page is still published, but the other site turns away requests that do not come from a person using a browser. It is listed in the view
The evidence, taken from the page as served
The external links checked on this page, with the status each returned

A link that did not open appears here in two forms. A DEAD link points at a page that has gone. A REFUSED link points at a page that is still published, but the other site turns away requests that do not come from a person using a browser, so our request was declined. Both land in the same place: the material this page offers as its support did not come back when it was asked for. The consequence is not a matter of tidiness. Where a link carries the weight of a claim, a figure, a policy or a regulatory statement, and the target does not open, the support behind that claim is missing at the moment it is needed. Three things follow, and each of them costs the organisation. The same fact gets taken from somewhere else, which hands a third party control of how the claim is worded. Or the claim is treated as unsupported and set aside. Or an answer is drawn from what remains on the page, and a partial account is presented as a complete one. A refused link is the worst of the three, because the page still reads as though the evidence sits one step away, so the gap is invisible and the answer carries false confidence. A refusal by another site is still this site's matter to resolve, because this site chose to rest a claim on it. Three practical ways close it. Carry the fact being relied on in the page's own words, so the claim stands without the visit. Keep the reference but stop making it a link, showing the address as plain text, so nothing promises a route that does not open. Or point to a source that answers any reader. Where the reference has to stay live, say beside it what a reader will meet, so no one is sent to a closed door without warning.

Link ยท opens in a new tabStatusResult
www.facebook.com/sharer/sharer.php?u=www.cityoflondon.gov.uk/footer/accessibility-toolbar400Reachable
twitter.com/intent/tweet?text=www.cityoflondon.gov.uk/footer/accessibility-toolbar403Access-restricted
www.linkedin.com/shareArticle?mini=true&url=www.cityoflondon.gov.uk/footer/accessibility-toolbar200Reachable
www.websitecarbon.com/website/cityoflondon.gov.uk200Reachable
sitemorse.com/index/uk-local-government/2025-q3200Reachable
CT34failthe page's own words are thin: 3410 of its 3441 words are shared navigation and footer, so it reads as 100% identical to another page, which a machine can then take as a duplicate and pass over, missing the little content that is its own; the matching page is named in the view
What we check
Whether a page's own words are so few against a large shared navigation and footer that it reads as near-identical to other pages.
What good looks like
A page carries enough of its own words that a shared navigation and footer do not make it read as a copy of other pages.
Why it matters
When shared furniture is most of the text, distinct pages look like copies of each other and the little real content is easily passed over.
What we found on this page
the page's own words are thin: 3410 of its 3441 words are shared navigation and footer, so it reads as 100% identical to another page, which a machine can then take as a duplicate and pass over, missing the little content that is its own; the matching page is named in the view
The evidence, taken from the page as served
This page's own words, lost in shared navigation and footer
Page ยท opens in a new tabOwn wordsChromeReads as identical toShared
www.cityoflondon.gov.uk/footer/accessibility-toolbar31 of 344199%www.cityoflondon.gov.uk/footer/legal-notices100%
https://www.cityoflondon.gov.uk/footer/interactive-map-layers 10.6% Extremely likely 7 out of 44
CheckResultEvidence
DS03failan AI crawler asking for this page is refused by the security layer in front of the site, while an ordinary browser is served, so the page's content never reaches the AI and answers about it are left to memory or guesswork
What we check
The same page loads for a browser but is refused when the request names itself as an AI service.
What good looks like
The page returns the same response to a named AI service as to a browser, with no edge block.
Why it matters
The block sits in front of the site and leaves no trace in its own logs, so the estate is closed off unnoticed.
What we found on this page
an AI crawler asking for this page is refused by the security layer in front of the site, while an ordinary browser is served, so the page's content never reaches the AI and answers about it are left to memory or guesswork
The evidence, taken from the page as served
The estate's edge tested with each AI crawler: a browser is served, the crawlers are refused
Hostwww.cityoflondon.gov.uk · resolves to 172.66.155.113, 104.20.19.80 · Cloudflare Address trailwww.cityoflondon.gov.uk Checked2026-07-31 16:45 UTC · request sent from 10.100.100.212 (our checker)
CrawlerHTTPAnswered inSentReceivedOutcome
Browserthe control · a normal visitor200110 ms239 B196.0 KBServed
GPTBotMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko);...40356 ms224 B5.8 KBRefused
OAI-SearchBotMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko);...40360 ms234 B5.8 KBRefused
ChatGPT-UserMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko);...40358 ms227 B5.8 KBRefused
ClaudeBotMozilla/5.0 (compatible; ClaudeBot/1.0; +claudebot@anthropic.com)40360 ms187 B5.8 KBRefused
Claude-UserMozilla/5.0 (compatible; Claude-User/1.0; +https://www.anthropic.com)40361 ms191 B5.8 KBRefused
Googlebot (Gemini)Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko;...200136 ms263 B196.0 KBServed
GoogleOtherMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko);...200117 ms197 B196.0 KBServed
Bingbot (Copilot)Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko;...200137 ms262 B196.0 KBServed
PerplexityBotMozilla/5.0 (compatible; PerplexityBot/1.0;...403122 ms207 B5.8 KBRefused
Perplexity-UserMozilla/5.0 (compatible; Perplexity-User/1.0;...40363 ms211 B5.8 KBRefused
CCBotCCBot/2.0 (https://commoncrawl.org/faq/)40363 ms162 B5.8 KBRefused
BytespiderMozilla/5.0 (Linux; Android 5.0) AppleWebKit/537.36 (KHTML,...40366 ms270 B5.8 KBRefused
AmazonbotMozilla/5.0 (compatible; Amazonbot/0.1;...40363 ms210 B5.8 KBRefused
GrokBotMozilla/5.0 (compatible; GrokBot/1.0; +https://x.ai)200119 ms174 B196.0 KBServed
Meta-ExternalAgentmeta-externalagent/1.1...40361 ms211 B5.8 KBRefused
CT16warningthe page carries no structured data block stating what it is (not required; a hygiene signal)
What we check
The page carries structured data, the machine-readable summary of what it describes.
What good looks like
The page carries structured data summarising what it describes.
Why it matters
Vendors document this as optional rather than required, so its absence is a small forfeit and no more.
What we found on this page
the page carries no structured data block stating what it is (not required; a hygiene signal)
The evidence, taken from the page as served
The head of this page, as served

The page was read for a structured data block describing what the page is.

<head><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no"/><meta http-equiv="X-UA-Compatible" content="ie=edge"/><meta name="facebook-domain-verification" content="msc65lq1e60kt58y2jkbo2flkhvm4a"/><!--[if IE 11 ]> <meta name="msapplication-config" content="_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/browserconfig.xml" /> <![endif]--><link rel="icon" type="image/x-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon.ico"/><link rel="icon" type="image/png" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon-32x32.png"/><link rel="apple-touch-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/col_apple_icon.png"/><link rel="manifest" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/manifest.json"/><script src="https://cc.cdn.civiccomputing.com/9/cookieControl-9.x.min.js" type="text/javascript"/><script src="/site-elements/js/cookie-control.js" type="text/javascript"/><script>!function(e,t,a,n,g){e[n]=e[n]||[],e[n].push({"gtm.start":(new Date).getTime(),event:"gtm.js"});var m=t.getElementsByTagName(a)[0],r=t.createElemโ€ฆ
CT04warningthe page shows the year 2029 in its text, but nothing on the page states it as the date of the content
What we check
The page carries a date, ideally written into the markup rather than sitting only in the text.
What good looks like
The page carries a date, ideally written into the markup rather than sitting only in the text.
Why it matters
An undated page gives nothing to weigh its age against, so old and new material are treated alike.
What we found on this page
the page shows the year 2029 in its text, but nothing on the page states it as the date of the content
The evidence, taken from the page as served
The head of this page, as served

The head of the page was read for a tag stating the date of the content. The year shown above was found in the page's own text.

<head><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no"/><meta http-equiv="X-UA-Compatible" content="ie=edge"/><meta name="facebook-domain-verification" content="msc65lq1e60kt58y2jkbo2flkhvm4a"/><!--[if IE 11 ]> <meta name="msapplication-config" content="_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/browserconfig.xml" /> <![endif]--><link rel="icon" type="image/x-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon.ico"/><link rel="icon" type="image/png" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon-32x32.png"/><link rel="apple-touch-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/col_apple_icon.png"/><link rel="manifest" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/manifest.json"/><script src="https://cc.cdn.civiccomputing.com/9/cookieControl-9.x.min.js" type="text/javascript"/><script src="/site-elements/js/cookie-control.js" type="text/javascript"/><script>!function(e,t,a,n,g){e[n]=e[n]||[],e[n].push({"gtm.start":(new Date).getTime(),event:"gtm.js"});var m=t.getElementsByTagName(a)[0],r=t.createElemโ€ฆ
AJ05warningno site-search control detected on this page
What we check
Whether a search box for the site is present in the page as it is served.
What good looks like
A search box is present in the served markup, so the site's own content can be queried directly.
Why it matters
With no search box on the page, its links are the only route from here into the rest of the site.
What we found on this page
no site-search control detected on this page
The evidence, taken from the page as served
The head of this page, as served

The page was read for a search box: a search form, a control named for search, or a box labelled as one.

<head><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no"/><meta http-equiv="X-UA-Compatible" content="ie=edge"/><meta name="facebook-domain-verification" content="msc65lq1e60kt58y2jkbo2flkhvm4a"/><!--[if IE 11 ]> <meta name="msapplication-config" content="_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/browserconfig.xml" /> <![endif]--><link rel="icon" type="image/x-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon.ico"/><link rel="icon" type="image/png" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon-32x32.png"/><link rel="apple-touch-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/col_apple_icon.png"/><link rel="manifest" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/manifest.json"/><script src="https://cc.cdn.civiccomputing.com/9/cookieControl-9.x.min.js" type="text/javascript"/><script src="/site-elements/js/cookie-control.js" type="text/javascript"/><script>!function(e,t,a,n,g){e[n]=e[n]||[],e[n].push({"gtm.start":(new Date).getTime(),event:"gtm.js"});var m=t.getElementsByTagName(a)[0],r=t.createElemโ€ฆ
MS13warning1 of 1 iframes untitled
What we check
Each embedded panel on the page carries a title saying what it contains.
What good looks like
Each embedded panel carries a title saying what it contains.
Why it matters
The embedded region stays unnamed, so what it holds is left unstated in the page around it.
What we found on this page
1 of 1 iframes untitled
The evidence, taken from the page as served
The iframes with no title attribute, as served
src=https://www.googletagmanager.com/ns.html?id=GTM-5C7LND
<iframe src="https://www.googletagmanager.com/ns.html?id=GTM-5C7LND" height="0" width="0" style="display:none;visibility:hidden"/>
DS28failone link to sources on other sites was refused when it was checked. The page is still published, but the other site turns away requests that do not come from a person using a browser. It is listed in the view
What we check
For a single page, the share of its links to OTHER sites, sampled, that lead nowhere. The site's own links are assessed separately.
What good looks like
The page's references to other sites open for any reader. Where one refuses or has gone, the page carries the fact itself, shows the reference as plain text rather than as a link, or points to a source that answers.
Why it matters
The outside sources this page offers as support did not answer when they were asked for, so what the page claims is left resting on material that does not come back. In a regulated setting, where a link is carrying a figure or a required statement, that is the difference between a claim that is evidenced and one that is merely asserted.
What we found on this page
one link to sources on other sites was refused when it was checked. The page is still published, but the other site turns away requests that do not come from a person using a browser. It is listed in the view
The evidence, taken from the page as served
The external links checked on this page, with the status each returned

A link that did not open appears here in two forms. A DEAD link points at a page that has gone. A REFUSED link points at a page that is still published, but the other site turns away requests that do not come from a person using a browser, so our request was declined. Both land in the same place: the material this page offers as its support did not come back when it was asked for. The consequence is not a matter of tidiness. Where a link carries the weight of a claim, a figure, a policy or a regulatory statement, and the target does not open, the support behind that claim is missing at the moment it is needed. Three things follow, and each of them costs the organisation. The same fact gets taken from somewhere else, which hands a third party control of how the claim is worded. Or the claim is treated as unsupported and set aside. Or an answer is drawn from what remains on the page, and a partial account is presented as a complete one. A refused link is the worst of the three, because the page still reads as though the evidence sits one step away, so the gap is invisible and the answer carries false confidence. A refusal by another site is still this site's matter to resolve, because this site chose to rest a claim on it. Three practical ways close it. Carry the fact being relied on in the page's own words, so the claim stands without the visit. Keep the reference but stop making it a link, showing the address as plain text, so nothing promises a route that does not open. Or point to a source that answers any reader. Where the reference has to stay live, say beside it what a reader will meet, so no one is sent to a closed door without warning.

Link ยท opens in a new tabStatusResult
www.facebook.com/sharer/sharer.php?u=www.cityoflondon.gov.uk/footer/interactive-map-layers400Reachable
twitter.com/intent/tweet?text=www.cityoflondon.gov.uk/footer/interactive-map-layers403Access-restricted
www.linkedin.com/shareArticle?mini=true&url=www.cityoflondon.gov.uk/footer/interactive-map-layers200Reachable
public.londonworks.gov.uk/roadworks/home200Reachable
www.websitecarbon.com/website/cityoflondon.gov.uk200Reachable
CT34failthe page's own words are thin: 3410 of its 3489 words are shared navigation and footer, so it reads as 99% identical to another page, which a machine can then take as a duplicate and pass over, missing the little content that is its own; the matching page is named in the view
What we check
Whether a page's own words are so few against a large shared navigation and footer that it reads as near-identical to other pages.
What good looks like
A page carries enough of its own words that a shared navigation and footer do not make it read as a copy of other pages.
Why it matters
When shared furniture is most of the text, distinct pages look like copies of each other and the little real content is easily passed over.
What we found on this page
the page's own words are thin: 3410 of its 3489 words are shared navigation and footer, so it reads as 99% identical to another page, which a machine can then take as a duplicate and pass over, missing the little content that is its own; the matching page is named in the view
The evidence, taken from the page as served
This page's own words, lost in shared navigation and footer
Page ยท opens in a new tabOwn wordsChromeReads as identical toShared
www.cityoflondon.gov.uk/footer/interactive-map-layers79 of 348998%www.cityoflondon.gov.uk/footer/feedback99%
https://www.cityoflondon.gov.uk/footer/social-media 33.1% Very likely 6 out of 43
CheckResultEvidence
DS03failan AI crawler asking for this page is refused by the security layer in front of the site, while an ordinary browser is served, so the page's content never reaches the AI and answers about it are left to memory or guesswork
What we check
The same page loads for a browser but is refused when the request names itself as an AI service.
What good looks like
The page returns the same response to a named AI service as to a browser, with no edge block.
Why it matters
The block sits in front of the site and leaves no trace in its own logs, so the estate is closed off unnoticed.
What we found on this page
an AI crawler asking for this page is refused by the security layer in front of the site, while an ordinary browser is served, so the page's content never reaches the AI and answers about it are left to memory or guesswork
The evidence, taken from the page as served
The estate's edge tested with each AI crawler: a browser is served, the crawlers are refused
Hostwww.cityoflondon.gov.uk · resolves to 172.66.155.113, 104.20.19.80 · Cloudflare Address trailwww.cityoflondon.gov.uk Checked2026-07-31 16:45 UTC · request sent from 10.100.100.212 (our checker)
CrawlerHTTPAnswered inSentReceivedOutcome
Browserthe control · a normal visitor200110 ms239 B196.0 KBServed
GPTBotMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko);...40356 ms224 B5.8 KBRefused
OAI-SearchBotMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko);...40360 ms234 B5.8 KBRefused
ChatGPT-UserMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko);...40358 ms227 B5.8 KBRefused
ClaudeBotMozilla/5.0 (compatible; ClaudeBot/1.0; +claudebot@anthropic.com)40360 ms187 B5.8 KBRefused
Claude-UserMozilla/5.0 (compatible; Claude-User/1.0; +https://www.anthropic.com)40361 ms191 B5.8 KBRefused
Googlebot (Gemini)Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko;...200136 ms263 B196.0 KBServed
GoogleOtherMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko);...200117 ms197 B196.0 KBServed
Bingbot (Copilot)Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko;...200137 ms262 B196.0 KBServed
PerplexityBotMozilla/5.0 (compatible; PerplexityBot/1.0;...403122 ms207 B5.8 KBRefused
Perplexity-UserMozilla/5.0 (compatible; Perplexity-User/1.0;...40363 ms211 B5.8 KBRefused
CCBotCCBot/2.0 (https://commoncrawl.org/faq/)40363 ms162 B5.8 KBRefused
BytespiderMozilla/5.0 (Linux; Android 5.0) AppleWebKit/537.36 (KHTML,...40366 ms270 B5.8 KBRefused
AmazonbotMozilla/5.0 (compatible; Amazonbot/0.1;...40363 ms210 B5.8 KBRefused
GrokBotMozilla/5.0 (compatible; GrokBot/1.0; +https://x.ai)200119 ms174 B196.0 KBServed
Meta-ExternalAgentmeta-externalagent/1.1...40361 ms211 B5.8 KBRefused
CT16warningthe page carries no structured data block stating what it is (not required; a hygiene signal)
What we check
The page carries structured data, the machine-readable summary of what it describes.
What good looks like
The page carries structured data summarising what it describes.
Why it matters
Vendors document this as optional rather than required, so its absence is a small forfeit and no more.
What we found on this page
the page carries no structured data block stating what it is (not required; a hygiene signal)
The evidence, taken from the page as served
The head of this page, as served

The page was read for a structured data block describing what the page is.

<head><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no"/><meta http-equiv="X-UA-Compatible" content="ie=edge"/><meta name="facebook-domain-verification" content="msc65lq1e60kt58y2jkbo2flkhvm4a"/><!--[if IE 11 ]> <meta name="msapplication-config" content="_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/browserconfig.xml" /> <![endif]--><link rel="icon" type="image/x-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon.ico"/><link rel="icon" type="image/png" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon-32x32.png"/><link rel="apple-touch-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/col_apple_icon.png"/><link rel="manifest" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/manifest.json"/><script src="https://cc.cdn.civiccomputing.com/9/cookieControl-9.x.min.js" type="text/javascript"/><script src="/site-elements/js/cookie-control.js" type="text/javascript"/><script>!function(e,t,a,n,g){e[n]=e[n]||[],e[n].push({"gtm.start":(new Date).getTime(),event:"gtm.js"});var m=t.getElementsByTagName(a)[0],r=t.createElemโ€ฆ
CT04warningthe page shows the year 2029 in its text, but nothing on the page states it as the date of the content
What we check
The page carries a date, ideally written into the markup rather than sitting only in the text.
What good looks like
The page carries a date, ideally written into the markup rather than sitting only in the text.
Why it matters
An undated page gives nothing to weigh its age against, so old and new material are treated alike.
What we found on this page
the page shows the year 2029 in its text, but nothing on the page states it as the date of the content
The evidence, taken from the page as served
The head of this page, as served

The head of the page was read for a tag stating the date of the content. The year shown above was found in the page's own text.

<head><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no"/><meta http-equiv="X-UA-Compatible" content="ie=edge"/><meta name="facebook-domain-verification" content="msc65lq1e60kt58y2jkbo2flkhvm4a"/><!--[if IE 11 ]> <meta name="msapplication-config" content="_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/browserconfig.xml" /> <![endif]--><link rel="icon" type="image/x-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon.ico"/><link rel="icon" type="image/png" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon-32x32.png"/><link rel="apple-touch-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/col_apple_icon.png"/><link rel="manifest" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/manifest.json"/><script src="https://cc.cdn.civiccomputing.com/9/cookieControl-9.x.min.js" type="text/javascript"/><script src="/site-elements/js/cookie-control.js" type="text/javascript"/><script>!function(e,t,a,n,g){e[n]=e[n]||[],e[n].push({"gtm.start":(new Date).getTime(),event:"gtm.js"});var m=t.getElementsByTagName(a)[0],r=t.createElemโ€ฆ
AJ05warningno site-search control detected on this page
What we check
Whether a search box for the site is present in the page as it is served.
What good looks like
A search box is present in the served markup, so the site's own content can be queried directly.
Why it matters
With no search box on the page, its links are the only route from here into the rest of the site.
What we found on this page
no site-search control detected on this page
The evidence, taken from the page as served
The head of this page, as served

The page was read for a search box: a search form, a control named for search, or a box labelled as one.

<head><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no"/><meta http-equiv="X-UA-Compatible" content="ie=edge"/><meta name="facebook-domain-verification" content="msc65lq1e60kt58y2jkbo2flkhvm4a"/><!--[if IE 11 ]> <meta name="msapplication-config" content="_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/browserconfig.xml" /> <![endif]--><link rel="icon" type="image/x-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon.ico"/><link rel="icon" type="image/png" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon-32x32.png"/><link rel="apple-touch-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/col_apple_icon.png"/><link rel="manifest" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/manifest.json"/><script src="https://cc.cdn.civiccomputing.com/9/cookieControl-9.x.min.js" type="text/javascript"/><script src="/site-elements/js/cookie-control.js" type="text/javascript"/><script>!function(e,t,a,n,g){e[n]=e[n]||[],e[n].push({"gtm.start":(new Date).getTime(),event:"gtm.js"});var m=t.getElementsByTagName(a)[0],r=t.createElemโ€ฆ
MS13warning1 of 1 iframes untitled
What we check
Each embedded panel on the page carries a title saying what it contains.
What good looks like
Each embedded panel carries a title saying what it contains.
Why it matters
The embedded region stays unnamed, so what it holds is left unstated in the page around it.
What we found on this page
1 of 1 iframes untitled
The evidence, taken from the page as served
The iframes with no title attribute, as served
src=https://www.googletagmanager.com/ns.html?id=GTM-5C7LND
<iframe src="https://www.googletagmanager.com/ns.html?id=GTM-5C7LND" height="0" width="0" style="display:none;visibility:hidden"/>
DS28failone link to sources on other sites was refused when it was checked. The page is still published, but the other site turns away requests that do not come from a person using a browser. It is listed in the view
What we check
For a single page, the share of its links to OTHER sites, sampled, that lead nowhere. The site's own links are assessed separately.
What good looks like
The page's references to other sites open for any reader. Where one refuses or has gone, the page carries the fact itself, shows the reference as plain text rather than as a link, or points to a source that answers.
Why it matters
The outside sources this page offers as support did not answer when they were asked for, so what the page claims is left resting on material that does not come back. In a regulated setting, where a link is carrying a figure or a required statement, that is the difference between a claim that is evidenced and one that is merely asserted.
What we found on this page
one link to sources on other sites was refused when it was checked. The page is still published, but the other site turns away requests that do not come from a person using a browser. It is listed in the view
The evidence, taken from the page as served
The external links checked on this page, with the status each returned

A link that did not open appears here in two forms. A DEAD link points at a page that has gone. A REFUSED link points at a page that is still published, but the other site turns away requests that do not come from a person using a browser, so our request was declined. Both land in the same place: the material this page offers as its support did not come back when it was asked for. The consequence is not a matter of tidiness. Where a link carries the weight of a claim, a figure, a policy or a regulatory statement, and the target does not open, the support behind that claim is missing at the moment it is needed. Three things follow, and each of them costs the organisation. The same fact gets taken from somewhere else, which hands a third party control of how the claim is worded. Or the claim is treated as unsupported and set aside. Or an answer is drawn from what remains on the page, and a partial account is presented as a complete one. A refused link is the worst of the three, because the page still reads as though the evidence sits one step away, so the gap is invisible and the answer carries false confidence. A refusal by another site is still this site's matter to resolve, because this site chose to rest a claim on it. Three practical ways close it. Carry the fact being relied on in the page's own words, so the claim stands without the visit. Keep the reference but stop making it a link, showing the address as plain text, so nothing promises a route that does not open. Or point to a source that answers any reader. Where the reference has to stay live, say beside it what a reader will meet, so no one is sent to a closed door without warning.

Link ยท opens in a new tabStatusResult
www.facebook.com/sharer/sharer.php?u=www.cityoflondon.gov.uk/footer/social-media400Reachable
twitter.com/intent/tweet?text=www.cityoflondon.gov.uk/footer/social-media403Access-restricted
www.linkedin.com/shareArticle?mini=true&url=www.cityoflondon.gov.uk/footer/social-media200Reachable
www.linkedin.com/company/city-of-london200Reachable
twitter.com/cityoflondon200Reachable
https://www.cityoflondon.gov.uk/footer 10.3% Extremely likely 9 out of 44
CheckResultEvidence
DS03failan AI crawler asking for this page is refused by the security layer in front of the site, while an ordinary browser is served, so the page's content never reaches the AI and answers about it are left to memory or guesswork
What we check
The same page loads for a browser but is refused when the request names itself as an AI service.
What good looks like
The page returns the same response to a named AI service as to a browser, with no edge block.
Why it matters
The block sits in front of the site and leaves no trace in its own logs, so the estate is closed off unnoticed.
What we found on this page
an AI crawler asking for this page is refused by the security layer in front of the site, while an ordinary browser is served, so the page's content never reaches the AI and answers about it are left to memory or guesswork
The evidence, taken from the page as served
The estate's edge tested with each AI crawler: a browser is served, the crawlers are refused
Hostwww.cityoflondon.gov.uk · resolves to 172.66.155.113, 104.20.19.80 · Cloudflare Address trailwww.cityoflondon.gov.uk Checked2026-07-31 16:45 UTC · request sent from 10.100.100.212 (our checker)
CrawlerHTTPAnswered inSentReceivedOutcome
Browserthe control · a normal visitor200110 ms239 B196.0 KBServed
GPTBotMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko);...40356 ms224 B5.8 KBRefused
OAI-SearchBotMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko);...40360 ms234 B5.8 KBRefused
ChatGPT-UserMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko);...40358 ms227 B5.8 KBRefused
ClaudeBotMozilla/5.0 (compatible; ClaudeBot/1.0; +claudebot@anthropic.com)40360 ms187 B5.8 KBRefused
Claude-UserMozilla/5.0 (compatible; Claude-User/1.0; +https://www.anthropic.com)40361 ms191 B5.8 KBRefused
Googlebot (Gemini)Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko;...200136 ms263 B196.0 KBServed
GoogleOtherMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko);...200117 ms197 B196.0 KBServed
Bingbot (Copilot)Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko;...200137 ms262 B196.0 KBServed
PerplexityBotMozilla/5.0 (compatible; PerplexityBot/1.0;...403122 ms207 B5.8 KBRefused
Perplexity-UserMozilla/5.0 (compatible; Perplexity-User/1.0;...40363 ms211 B5.8 KBRefused
CCBotCCBot/2.0 (https://commoncrawl.org/faq/)40363 ms162 B5.8 KBRefused
BytespiderMozilla/5.0 (Linux; Android 5.0) AppleWebKit/537.36 (KHTML,...40366 ms270 B5.8 KBRefused
AmazonbotMozilla/5.0 (compatible; Amazonbot/0.1;...40363 ms210 B5.8 KBRefused
GrokBotMozilla/5.0 (compatible; GrokBot/1.0; +https://x.ai)200119 ms174 B196.0 KBServed
Meta-ExternalAgentmeta-externalagent/1.1...40361 ms211 B5.8 KBRefused
CT16warningthe page carries no structured data block stating what it is (not required; a hygiene signal)
What we check
The page carries structured data, the machine-readable summary of what it describes.
What good looks like
The page carries structured data summarising what it describes.
Why it matters
Vendors document this as optional rather than required, so its absence is a small forfeit and no more.
What we found on this page
the page carries no structured data block stating what it is (not required; a hygiene signal)
The evidence, taken from the page as served
The head of this page, as served

The page was read for a structured data block describing what the page is.

<head><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no"/><meta http-equiv="X-UA-Compatible" content="ie=edge"/><meta name="facebook-domain-verification" content="msc65lq1e60kt58y2jkbo2flkhvm4a"/><!--[if IE 11 ]> <meta name="msapplication-config" content="_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/browserconfig.xml" /> <![endif]--><link rel="icon" type="image/x-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon.ico"/><link rel="icon" type="image/png" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon-32x32.png"/><link rel="apple-touch-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/col_apple_icon.png"/><link rel="manifest" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/manifest.json"/><script src="https://cc.cdn.civiccomputing.com/9/cookieControl-9.x.min.js" type="text/javascript"/><script src="/site-elements/js/cookie-control.js" type="text/javascript"/><script>!function(e,t,a,n,g){e[n]=e[n]||[],e[n].push({"gtm.start":(new Date).getTime(),event:"gtm.js"});var m=t.getElementsByTagName(a)[0],r=t.createElemโ€ฆ
CT04warningthe page shows the year 2029 in its text, but nothing on the page states it as the date of the content
What we check
The page carries a date, ideally written into the markup rather than sitting only in the text.
What good looks like
The page carries a date, ideally written into the markup rather than sitting only in the text.
Why it matters
An undated page gives nothing to weigh its age against, so old and new material are treated alike.
What we found on this page
the page shows the year 2029 in its text, but nothing on the page states it as the date of the content
The evidence, taken from the page as served
The head of this page, as served

The head of the page was read for a tag stating the date of the content. The year shown above was found in the page's own text.

<head><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no"/><meta http-equiv="X-UA-Compatible" content="ie=edge"/><meta name="facebook-domain-verification" content="msc65lq1e60kt58y2jkbo2flkhvm4a"/><!--[if IE 11 ]> <meta name="msapplication-config" content="_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/browserconfig.xml" /> <![endif]--><link rel="icon" type="image/x-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon.ico"/><link rel="icon" type="image/png" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon-32x32.png"/><link rel="apple-touch-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/col_apple_icon.png"/><link rel="manifest" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/manifest.json"/><script src="https://cc.cdn.civiccomputing.com/9/cookieControl-9.x.min.js" type="text/javascript"/><script src="/site-elements/js/cookie-control.js" type="text/javascript"/><script>!function(e,t,a,n,g){e[n]=e[n]||[],e[n].push({"gtm.start":(new Date).getTime(),event:"gtm.js"});var m=t.getElementsByTagName(a)[0],r=t.createElemโ€ฆ
AR13warningonly 6 characters of this page read as its own content, so either the page is thin or its own words cannot be told apart from the parts repeated across the site
What we check
Whether the page's main content is marked off from the navigation and footer around it.
What good looks like
A main or article region marks the primary content off from the navigation and footer around it.
Why it matters
Pulling the page's text returns menus and legal footers mixed with the substance, so the answer arrives buried in noise.
What we found on this page
only 6 characters of this page read as its own content, so either the page is thin or its own words cannot be told apart from the parts repeated across the site
The evidence, taken from the page as served
The main text extracted from the page, as served
6 characters
Footer
CT24warningthe page's own content runs to 6 characters
What we check
The page holds enough main text to be substantive, measured against a 400 character floor.
What good looks like
The page holds enough main text to be substantive.
Why it matters
A page of a few sentences offers almost nothing to quote, so it adds little beyond its own existence.
What we found on this page
the page's own content runs to 6 characters
The evidence, taken from the page as served
How much of this page is its own content

Counted from the page as served, before any script runs. The page's own content is the part it marks out as its main content; where it marks out none, the whole of its text is counted.

What was measuredAs measured on this page
The page's own content6 characters
All the text on the page1066 characters
The point we measure against400 characters
CT13failmain content is 0% of the page's text; the shared furniture around it dominates what is read out
What we check
How much of the page's text sits in the main content region rather than in surrounding furniture.
What good looks like
Most of the page's text sits in its main content region rather than in the surrounding furniture.
Why it matters
When the main region is a small slice of the page, what is pulled out is mostly menus and boilerplate.
What we found on this page
main content is 0% of the page's text; the shared furniture around it dominates what is read out
The evidence, taken from the page as served
How much of this page is its own content

Counted from the page as served, before any script runs. The rest is the menus, header and foot-of-page text that appear on other pages of the site as well.

What was measuredAs measured on this page
The page's own content6 characters
All the text on the page1066 characters
The page's own share of it0%
The point we measure against25%
AJ05warningno site-search control detected on this page
What we check
Whether a search box for the site is present in the page as it is served.
What good looks like
A search box is present in the served markup, so the site's own content can be queried directly.
Why it matters
With no search box on the page, its links are the only route from here into the rest of the site.
What we found on this page
no site-search control detected on this page
The evidence, taken from the page as served
The head of this page, as served

The page was read for a search box: a search form, a control named for search, or a box labelled as one.

<head><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no"/><meta http-equiv="X-UA-Compatible" content="ie=edge"/><meta name="facebook-domain-verification" content="msc65lq1e60kt58y2jkbo2flkhvm4a"/><!--[if IE 11 ]> <meta name="msapplication-config" content="_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/browserconfig.xml" /> <![endif]--><link rel="icon" type="image/x-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon.ico"/><link rel="icon" type="image/png" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon-32x32.png"/><link rel="apple-touch-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/col_apple_icon.png"/><link rel="manifest" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/manifest.json"/><script src="https://cc.cdn.civiccomputing.com/9/cookieControl-9.x.min.js" type="text/javascript"/><script src="/site-elements/js/cookie-control.js" type="text/javascript"/><script>!function(e,t,a,n,g){e[n]=e[n]||[],e[n].push({"gtm.start":(new Date).getTime(),event:"gtm.js"});var m=t.getElementsByTagName(a)[0],r=t.createElemโ€ฆ
MS13warning1 of 1 iframes untitled
What we check
Each embedded panel on the page carries a title saying what it contains.
What good looks like
Each embedded panel carries a title saying what it contains.
Why it matters
The embedded region stays unnamed, so what it holds is left unstated in the page around it.
What we found on this page
1 of 1 iframes untitled
The evidence, taken from the page as served
The iframes with no title attribute, as served
src=https://www.googletagmanager.com/ns.html?id=GTM-5C7LND
<iframe src="https://www.googletagmanager.com/ns.html?id=GTM-5C7LND" height="0" width="0" style="display:none;visibility:hidden"/>
CT34failthe page's own words are thin: 3406 of its 3414 words are shared navigation and footer, so it reads as 99% identical to another page, which a machine can then take as a duplicate and pass over, missing the little content that is its own; the matching page is named in the view
What we check
Whether a page's own words are so few against a large shared navigation and footer that it reads as near-identical to other pages.
What good looks like
A page carries enough of its own words that a shared navigation and footer do not make it read as a copy of other pages.
Why it matters
When shared furniture is most of the text, distinct pages look like copies of each other and the little real content is easily passed over.
What we found on this page
the page's own words are thin: 3406 of its 3414 words are shared navigation and footer, so it reads as 99% identical to another page, which a machine can then take as a duplicate and pass over, missing the little content that is its own; the matching page is named in the view
The evidence, taken from the page as served
This page's own words, lost in shared navigation and footer
Page ยท opens in a new tabOwn wordsChromeReads as identical toShared
www.cityoflondon.gov.uk/footer8 of 3414100%www.cityoflondon.gov.uk/footer/accessibility-toolbar99%
https://www.cityoflondon.gov.uk/services/environmental-health 10.5% Extremely likely 9 out of 44
CheckResultEvidence
DS03failan AI crawler asking for this page is refused by the security layer in front of the site, while an ordinary browser is served, so the page's content never reaches the AI and answers about it are left to memory or guesswork
What we check
The same page loads for a browser but is refused when the request names itself as an AI service.
What good looks like
The page returns the same response to a named AI service as to a browser, with no edge block.
Why it matters
The block sits in front of the site and leaves no trace in its own logs, so the estate is closed off unnoticed.
What we found on this page
an AI crawler asking for this page is refused by the security layer in front of the site, while an ordinary browser is served, so the page's content never reaches the AI and answers about it are left to memory or guesswork
The evidence, taken from the page as served
The estate's edge tested with each AI crawler: a browser is served, the crawlers are refused
Hostwww.cityoflondon.gov.uk · resolves to 172.66.155.113, 104.20.19.80 · Cloudflare Address trailwww.cityoflondon.gov.uk Checked2026-07-31 16:45 UTC · request sent from 10.100.100.212 (our checker)
CrawlerHTTPAnswered inSentReceivedOutcome
Browserthe control · a normal visitor200110 ms239 B196.0 KBServed
GPTBotMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko);...40356 ms224 B5.8 KBRefused
OAI-SearchBotMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko);...40360 ms234 B5.8 KBRefused
ChatGPT-UserMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko);...40358 ms227 B5.8 KBRefused
ClaudeBotMozilla/5.0 (compatible; ClaudeBot/1.0; +claudebot@anthropic.com)40360 ms187 B5.8 KBRefused
Claude-UserMozilla/5.0 (compatible; Claude-User/1.0; +https://www.anthropic.com)40361 ms191 B5.8 KBRefused
Googlebot (Gemini)Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko;...200136 ms263 B196.0 KBServed
GoogleOtherMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko);...200117 ms197 B196.0 KBServed
Bingbot (Copilot)Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko;...200137 ms262 B196.0 KBServed
PerplexityBotMozilla/5.0 (compatible; PerplexityBot/1.0;...403122 ms207 B5.8 KBRefused
Perplexity-UserMozilla/5.0 (compatible; Perplexity-User/1.0;...40363 ms211 B5.8 KBRefused
CCBotCCBot/2.0 (https://commoncrawl.org/faq/)40363 ms162 B5.8 KBRefused
BytespiderMozilla/5.0 (Linux; Android 5.0) AppleWebKit/537.36 (KHTML,...40366 ms270 B5.8 KBRefused
AmazonbotMozilla/5.0 (compatible; Amazonbot/0.1;...40363 ms210 B5.8 KBRefused
GrokBotMozilla/5.0 (compatible; GrokBot/1.0; +https://x.ai)200119 ms174 B196.0 KBServed
Meta-ExternalAgentmeta-externalagent/1.1...40361 ms211 B5.8 KBRefused
CT32warninglength 4
What we check
The meta description's length is usable, between 50 and 170 characters.
What good looks like
The meta description's length is usable, long enough to say something and short enough not to be cut.
Why it matters
Too short says nothing and too long gets cut, so the summary field is spent without doing its job.
What we found on this page
length 4
The evidence, taken from the page as served
The page's description, as served
4 characters
<meta data-react-helmet="true" name="description" content="null"/>
CT16warningthe page carries no structured data block stating what it is (not required; a hygiene signal)
What we check
The page carries structured data, the machine-readable summary of what it describes.
What good looks like
The page carries structured data summarising what it describes.
Why it matters
Vendors document this as optional rather than required, so its absence is a small forfeit and no more.
What we found on this page
the page carries no structured data block stating what it is (not required; a hygiene signal)
The evidence, taken from the page as served
The head of this page, as served

The page was read for a structured data block describing what the page is.

<head><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no"/><meta http-equiv="X-UA-Compatible" content="ie=edge"/><meta name="facebook-domain-verification" content="msc65lq1e60kt58y2jkbo2flkhvm4a"/><!--[if IE 11 ]> <meta name="msapplication-config" content="_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/browserconfig.xml" /> <![endif]--><link rel="icon" type="image/x-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon.ico"/><link rel="icon" type="image/png" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon-32x32.png"/><link rel="apple-touch-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/col_apple_icon.png"/><link rel="manifest" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/manifest.json"/><script src="https://cc.cdn.civiccomputing.com/9/cookieControl-9.x.min.js" type="text/javascript"/><script src="/site-elements/js/cookie-control.js" type="text/javascript"/><script>!function(e,t,a,n,g){e[n]=e[n]||[],e[n].push({"gtm.start":(new Date).getTime(),event:"gtm.js"});var m=t.getElementsByTagName(a)[0],r=t.createElemโ€ฆ
CT04warningthe page shows the year 2029 in its text, but nothing on the page states it as the date of the content
What we check
The page carries a date, ideally written into the markup rather than sitting only in the text.
What good looks like
The page carries a date, ideally written into the markup rather than sitting only in the text.
Why it matters
An undated page gives nothing to weigh its age against, so old and new material are treated alike.
What we found on this page
the page shows the year 2029 in its text, but nothing on the page states it as the date of the content
The evidence, taken from the page as served
The head of this page, as served

The head of the page was read for a tag stating the date of the content. The year shown above was found in the page's own text.

<head><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no"/><meta http-equiv="X-UA-Compatible" content="ie=edge"/><meta name="facebook-domain-verification" content="msc65lq1e60kt58y2jkbo2flkhvm4a"/><!--[if IE 11 ]> <meta name="msapplication-config" content="_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/browserconfig.xml" /> <![endif]--><link rel="icon" type="image/x-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon.ico"/><link rel="icon" type="image/png" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon-32x32.png"/><link rel="apple-touch-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/col_apple_icon.png"/><link rel="manifest" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/manifest.json"/><script src="https://cc.cdn.civiccomputing.com/9/cookieControl-9.x.min.js" type="text/javascript"/><script src="/site-elements/js/cookie-control.js" type="text/javascript"/><script>!function(e,t,a,n,g){e[n]=e[n]||[],e[n].push({"gtm.start":(new Date).getTime(),event:"gtm.js"});var m=t.getElementsByTagName(a)[0],r=t.createElemโ€ฆ
CT24warningthe page's own content runs to 326 characters
What we check
The page holds enough main text to be substantive, measured against a 400 character floor.
What good looks like
The page holds enough main text to be substantive.
Why it matters
A page of a few sentences offers almost nothing to quote, so it adds little beyond its own existence.
What we found on this page
the page's own content runs to 326 characters
The evidence, taken from the page as served
How much of this page is its own content

Counted from the page as served, before any script runs. The page's own content is the part it marks out as its main content; where it marks out none, the whole of its text is counted.

What was measuredAs measured on this page
The page's own content326 characters
All the text on the page1419 characters
The point we measure against400 characters
CT13warningmain content is 22% of the page's text; the shared furniture around it dominates what is read out
What we check
How much of the page's text sits in the main content region rather than in surrounding furniture.
What good looks like
Most of the page's text sits in its main content region rather than in the surrounding furniture.
Why it matters
When the main region is a small slice of the page, what is pulled out is mostly menus and boilerplate.
What we found on this page
main content is 22% of the page's text; the shared furniture around it dominates what is read out
The evidence, taken from the page as served
How much of this page is its own content

Counted from the page as served, before any script runs. The rest is the menus, header and foot-of-page text that appear on other pages of the site as well.

What was measuredAs measured on this page
The page's own content326 characters
All the text on the page1419 characters
The page's own share of it22%
The point we measure against25%
AJ05warningno site-search control detected on this page
What we check
Whether a search box for the site is present in the page as it is served.
What good looks like
A search box is present in the served markup, so the site's own content can be queried directly.
Why it matters
With no search box on the page, its links are the only route from here into the rest of the site.
What we found on this page
no site-search control detected on this page
The evidence, taken from the page as served
The head of this page, as served

The page was read for a search box: a search form, a control named for search, or a box labelled as one.

<head><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no"/><meta http-equiv="X-UA-Compatible" content="ie=edge"/><meta name="facebook-domain-verification" content="msc65lq1e60kt58y2jkbo2flkhvm4a"/><!--[if IE 11 ]> <meta name="msapplication-config" content="_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/browserconfig.xml" /> <![endif]--><link rel="icon" type="image/x-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon.ico"/><link rel="icon" type="image/png" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon-32x32.png"/><link rel="apple-touch-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/col_apple_icon.png"/><link rel="manifest" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/manifest.json"/><script src="https://cc.cdn.civiccomputing.com/9/cookieControl-9.x.min.js" type="text/javascript"/><script src="/site-elements/js/cookie-control.js" type="text/javascript"/><script>!function(e,t,a,n,g){e[n]=e[n]||[],e[n].push({"gtm.start":(new Date).getTime(),event:"gtm.js"});var m=t.getElementsByTagName(a)[0],r=t.createElemโ€ฆ
MS13warning1 of 1 iframes untitled
What we check
Each embedded panel on the page carries a title saying what it contains.
What good looks like
Each embedded panel carries a title saying what it contains.
Why it matters
The embedded region stays unnamed, so what it holds is left unstated in the page around it.
What we found on this page
1 of 1 iframes untitled
The evidence, taken from the page as served
The iframes with no title attribute, as served
src=https://www.googletagmanager.com/ns.html?id=GTM-5C7LND
<iframe src="https://www.googletagmanager.com/ns.html?id=GTM-5C7LND" height="0" width="0" style="display:none;visibility:hidden"/>
CT34failthe page's own words are thin: 3406 of its 3458 words are shared navigation and footer, so it reads as 99% identical to another page, which a machine can then take as a duplicate and pass over, missing the little content that is its own; the matching page is named in the view
What we check
Whether a page's own words are so few against a large shared navigation and footer that it reads as near-identical to other pages.
What good looks like
A page carries enough of its own words that a shared navigation and footer do not make it read as a copy of other pages.
Why it matters
When shared furniture is most of the text, distinct pages look like copies of each other and the little real content is easily passed over.
What we found on this page
the page's own words are thin: 3406 of its 3458 words are shared navigation and footer, so it reads as 99% identical to another page, which a machine can then take as a duplicate and pass over, missing the little content that is its own; the matching page is named in the view
The evidence, taken from the page as served
This page's own words, lost in shared navigation and footer
Page ยท opens in a new tabOwn wordsChromeReads as identical toShared
www.cityoflondon.gov.uk/services/environmental-health52 of 345898%www.cityoflondon.gov.uk/about-us99%
https://www.cityoflondon.gov.uk/services/housing-and-homelessness 10.8% Extremely likely 6 out of 44
CheckResultEvidence
DS03failan AI crawler asking for this page is refused by the security layer in front of the site, while an ordinary browser is served, so the page's content never reaches the AI and answers about it are left to memory or guesswork
What we check
The same page loads for a browser but is refused when the request names itself as an AI service.
What good looks like
The page returns the same response to a named AI service as to a browser, with no edge block.
Why it matters
The block sits in front of the site and leaves no trace in its own logs, so the estate is closed off unnoticed.
What we found on this page
an AI crawler asking for this page is refused by the security layer in front of the site, while an ordinary browser is served, so the page's content never reaches the AI and answers about it are left to memory or guesswork
The evidence, taken from the page as served
The estate's edge tested with each AI crawler: a browser is served, the crawlers are refused
Hostwww.cityoflondon.gov.uk · resolves to 172.66.155.113, 104.20.19.80 · Cloudflare Address trailwww.cityoflondon.gov.uk Checked2026-07-31 16:45 UTC · request sent from 10.100.100.212 (our checker)
CrawlerHTTPAnswered inSentReceivedOutcome
Browserthe control · a normal visitor200110 ms239 B196.0 KBServed
GPTBotMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko);...40356 ms224 B5.8 KBRefused
OAI-SearchBotMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko);...40360 ms234 B5.8 KBRefused
ChatGPT-UserMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko);...40358 ms227 B5.8 KBRefused
ClaudeBotMozilla/5.0 (compatible; ClaudeBot/1.0; +claudebot@anthropic.com)40360 ms187 B5.8 KBRefused
Claude-UserMozilla/5.0 (compatible; Claude-User/1.0; +https://www.anthropic.com)40361 ms191 B5.8 KBRefused
Googlebot (Gemini)Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko;...200136 ms263 B196.0 KBServed
GoogleOtherMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko);...200117 ms197 B196.0 KBServed
Bingbot (Copilot)Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko;...200137 ms262 B196.0 KBServed
PerplexityBotMozilla/5.0 (compatible; PerplexityBot/1.0;...403122 ms207 B5.8 KBRefused
Perplexity-UserMozilla/5.0 (compatible; Perplexity-User/1.0;...40363 ms211 B5.8 KBRefused
CCBotCCBot/2.0 (https://commoncrawl.org/faq/)40363 ms162 B5.8 KBRefused
BytespiderMozilla/5.0 (Linux; Android 5.0) AppleWebKit/537.36 (KHTML,...40366 ms270 B5.8 KBRefused
AmazonbotMozilla/5.0 (compatible; Amazonbot/0.1;...40363 ms210 B5.8 KBRefused
GrokBotMozilla/5.0 (compatible; GrokBot/1.0; +https://x.ai)200119 ms174 B196.0 KBServed
Meta-ExternalAgentmeta-externalagent/1.1...40361 ms211 B5.8 KBRefused
CT16warningthe page carries no structured data block stating what it is (not required; a hygiene signal)
What we check
The page carries structured data, the machine-readable summary of what it describes.
What good looks like
The page carries structured data summarising what it describes.
Why it matters
Vendors document this as optional rather than required, so its absence is a small forfeit and no more.
What we found on this page
the page carries no structured data block stating what it is (not required; a hygiene signal)
The evidence, taken from the page as served
The head of this page, as served

The page was read for a structured data block describing what the page is.

<head><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no"/><meta http-equiv="X-UA-Compatible" content="ie=edge"/><meta name="facebook-domain-verification" content="msc65lq1e60kt58y2jkbo2flkhvm4a"/><!--[if IE 11 ]> <meta name="msapplication-config" content="_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/browserconfig.xml" /> <![endif]--><link rel="icon" type="image/x-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon.ico"/><link rel="icon" type="image/png" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon-32x32.png"/><link rel="apple-touch-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/col_apple_icon.png"/><link rel="manifest" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/manifest.json"/><script src="https://cc.cdn.civiccomputing.com/9/cookieControl-9.x.min.js" type="text/javascript"/><script src="/site-elements/js/cookie-control.js" type="text/javascript"/><script>!function(e,t,a,n,g){e[n]=e[n]||[],e[n].push({"gtm.start":(new Date).getTime(),event:"gtm.js"});var m=t.getElementsByTagName(a)[0],r=t.createElemโ€ฆ
CT04warningthe page shows the year 2029 in its text, but nothing on the page states it as the date of the content
What we check
The page carries a date, ideally written into the markup rather than sitting only in the text.
What good looks like
The page carries a date, ideally written into the markup rather than sitting only in the text.
Why it matters
An undated page gives nothing to weigh its age against, so old and new material are treated alike.
What we found on this page
the page shows the year 2029 in its text, but nothing on the page states it as the date of the content
The evidence, taken from the page as served
The head of this page, as served

The head of the page was read for a tag stating the date of the content. The year shown above was found in the page's own text.

<head><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no"/><meta http-equiv="X-UA-Compatible" content="ie=edge"/><meta name="facebook-domain-verification" content="msc65lq1e60kt58y2jkbo2flkhvm4a"/><!--[if IE 11 ]> <meta name="msapplication-config" content="_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/browserconfig.xml" /> <![endif]--><link rel="icon" type="image/x-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon.ico"/><link rel="icon" type="image/png" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon-32x32.png"/><link rel="apple-touch-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/col_apple_icon.png"/><link rel="manifest" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/manifest.json"/><script src="https://cc.cdn.civiccomputing.com/9/cookieControl-9.x.min.js" type="text/javascript"/><script src="/site-elements/js/cookie-control.js" type="text/javascript"/><script>!function(e,t,a,n,g){e[n]=e[n]||[],e[n].push({"gtm.start":(new Date).getTime(),event:"gtm.js"});var m=t.getElementsByTagName(a)[0],r=t.createElemโ€ฆ
AJ05warningno site-search control detected on this page
What we check
Whether a search box for the site is present in the page as it is served.
What good looks like
A search box is present in the served markup, so the site's own content can be queried directly.
Why it matters
With no search box on the page, its links are the only route from here into the rest of the site.
What we found on this page
no site-search control detected on this page
The evidence, taken from the page as served
The head of this page, as served

The page was read for a search box: a search form, a control named for search, or a box labelled as one.

<head><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no"/><meta http-equiv="X-UA-Compatible" content="ie=edge"/><meta name="facebook-domain-verification" content="msc65lq1e60kt58y2jkbo2flkhvm4a"/><!--[if IE 11 ]> <meta name="msapplication-config" content="_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/browserconfig.xml" /> <![endif]--><link rel="icon" type="image/x-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon.ico"/><link rel="icon" type="image/png" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon-32x32.png"/><link rel="apple-touch-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/col_apple_icon.png"/><link rel="manifest" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/manifest.json"/><script src="https://cc.cdn.civiccomputing.com/9/cookieControl-9.x.min.js" type="text/javascript"/><script src="/site-elements/js/cookie-control.js" type="text/javascript"/><script>!function(e,t,a,n,g){e[n]=e[n]||[],e[n].push({"gtm.start":(new Date).getTime(),event:"gtm.js"});var m=t.getElementsByTagName(a)[0],r=t.createElemโ€ฆ
MS13warning1 of 1 iframes untitled
What we check
Each embedded panel on the page carries a title saying what it contains.
What good looks like
Each embedded panel carries a title saying what it contains.
Why it matters
The embedded region stays unnamed, so what it holds is left unstated in the page around it.
What we found on this page
1 of 1 iframes untitled
The evidence, taken from the page as served
The iframes with no title attribute, as served
src=https://www.googletagmanager.com/ns.html?id=GTM-5C7LND
<iframe src="https://www.googletagmanager.com/ns.html?id=GTM-5C7LND" height="0" width="0" style="display:none;visibility:hidden"/>
CT34failthe page's own words are thin: 3410 of its 3487 words are shared navigation and footer, so it reads as 98% identical to another page, which a machine can then take as a duplicate and pass over, missing the little content that is its own; the matching page is named in the view
What we check
Whether a page's own words are so few against a large shared navigation and footer that it reads as near-identical to other pages.
What good looks like
A page carries enough of its own words that a shared navigation and footer do not make it read as a copy of other pages.
Why it matters
When shared furniture is most of the text, distinct pages look like copies of each other and the little real content is easily passed over.
What we found on this page
the page's own words are thin: 3410 of its 3487 words are shared navigation and footer, so it reads as 98% identical to another page, which a machine can then take as a duplicate and pass over, missing the little content that is its own; the matching page is named in the view
The evidence, taken from the page as served
This page's own words, lost in shared navigation and footer
Page ยท opens in a new tabOwn wordsChromeReads as identical toShared
www.cityoflondon.gov.uk/services/housing-and-homelessness77 of 348798%www.cityoflondon.gov.uk98%
https://www.cityoflondon.gov.uk/services/libraries 10.8% Extremely likely 7 out of 44
CheckResultEvidence
DS03failan AI crawler asking for this page is refused by the security layer in front of the site, while an ordinary browser is served, so the page's content never reaches the AI and answers about it are left to memory or guesswork
What we check
The same page loads for a browser but is refused when the request names itself as an AI service.
What good looks like
The page returns the same response to a named AI service as to a browser, with no edge block.
Why it matters
The block sits in front of the site and leaves no trace in its own logs, so the estate is closed off unnoticed.
What we found on this page
an AI crawler asking for this page is refused by the security layer in front of the site, while an ordinary browser is served, so the page's content never reaches the AI and answers about it are left to memory or guesswork
The evidence, taken from the page as served
The estate's edge tested with each AI crawler: a browser is served, the crawlers are refused
Hostwww.cityoflondon.gov.uk · resolves to 172.66.155.113, 104.20.19.80 · Cloudflare Address trailwww.cityoflondon.gov.uk Checked2026-07-31 16:45 UTC · request sent from 10.100.100.212 (our checker)
CrawlerHTTPAnswered inSentReceivedOutcome
Browserthe control · a normal visitor200110 ms239 B196.0 KBServed
GPTBotMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko);...40356 ms224 B5.8 KBRefused
OAI-SearchBotMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko);...40360 ms234 B5.8 KBRefused
ChatGPT-UserMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko);...40358 ms227 B5.8 KBRefused
ClaudeBotMozilla/5.0 (compatible; ClaudeBot/1.0; +claudebot@anthropic.com)40360 ms187 B5.8 KBRefused
Claude-UserMozilla/5.0 (compatible; Claude-User/1.0; +https://www.anthropic.com)40361 ms191 B5.8 KBRefused
Googlebot (Gemini)Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko;...200136 ms263 B196.0 KBServed
GoogleOtherMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko);...200117 ms197 B196.0 KBServed
Bingbot (Copilot)Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko;...200137 ms262 B196.0 KBServed
PerplexityBotMozilla/5.0 (compatible; PerplexityBot/1.0;...403122 ms207 B5.8 KBRefused
Perplexity-UserMozilla/5.0 (compatible; Perplexity-User/1.0;...40363 ms211 B5.8 KBRefused
CCBotCCBot/2.0 (https://commoncrawl.org/faq/)40363 ms162 B5.8 KBRefused
BytespiderMozilla/5.0 (Linux; Android 5.0) AppleWebKit/537.36 (KHTML,...40366 ms270 B5.8 KBRefused
AmazonbotMozilla/5.0 (compatible; Amazonbot/0.1;...40363 ms210 B5.8 KBRefused
GrokBotMozilla/5.0 (compatible; GrokBot/1.0; +https://x.ai)200119 ms174 B196.0 KBServed
Meta-ExternalAgentmeta-externalagent/1.1...40361 ms211 B5.8 KBRefused
CT16warningthe page carries no structured data block stating what it is (not required; a hygiene signal)
What we check
The page carries structured data, the machine-readable summary of what it describes.
What good looks like
The page carries structured data summarising what it describes.
Why it matters
Vendors document this as optional rather than required, so its absence is a small forfeit and no more.
What we found on this page
the page carries no structured data block stating what it is (not required; a hygiene signal)
The evidence, taken from the page as served
The head of this page, as served

The page was read for a structured data block describing what the page is.

<head><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no"/><meta http-equiv="X-UA-Compatible" content="ie=edge"/><meta name="facebook-domain-verification" content="msc65lq1e60kt58y2jkbo2flkhvm4a"/><!--[if IE 11 ]> <meta name="msapplication-config" content="_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/browserconfig.xml" /> <![endif]--><link rel="icon" type="image/x-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon.ico"/><link rel="icon" type="image/png" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon-32x32.png"/><link rel="apple-touch-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/col_apple_icon.png"/><link rel="manifest" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/manifest.json"/><script src="https://cc.cdn.civiccomputing.com/9/cookieControl-9.x.min.js" type="text/javascript"/><script src="/site-elements/js/cookie-control.js" type="text/javascript"/><script>!function(e,t,a,n,g){e[n]=e[n]||[],e[n].push({"gtm.start":(new Date).getTime(),event:"gtm.js"});var m=t.getElementsByTagName(a)[0],r=t.createElemโ€ฆ
CT04warningthe page shows the year 2029 in its text, but nothing on the page states it as the date of the content
What we check
The page carries a date, ideally written into the markup rather than sitting only in the text.
What good looks like
The page carries a date, ideally written into the markup rather than sitting only in the text.
Why it matters
An undated page gives nothing to weigh its age against, so old and new material are treated alike.
What we found on this page
the page shows the year 2029 in its text, but nothing on the page states it as the date of the content
The evidence, taken from the page as served
The head of this page, as served

The head of the page was read for a tag stating the date of the content. The year shown above was found in the page's own text.

<head><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no"/><meta http-equiv="X-UA-Compatible" content="ie=edge"/><meta name="facebook-domain-verification" content="msc65lq1e60kt58y2jkbo2flkhvm4a"/><!--[if IE 11 ]> <meta name="msapplication-config" content="_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/browserconfig.xml" /> <![endif]--><link rel="icon" type="image/x-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon.ico"/><link rel="icon" type="image/png" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon-32x32.png"/><link rel="apple-touch-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/col_apple_icon.png"/><link rel="manifest" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/manifest.json"/><script src="https://cc.cdn.civiccomputing.com/9/cookieControl-9.x.min.js" type="text/javascript"/><script src="/site-elements/js/cookie-control.js" type="text/javascript"/><script>!function(e,t,a,n,g){e[n]=e[n]||[],e[n].push({"gtm.start":(new Date).getTime(),event:"gtm.js"});var m=t.getElementsByTagName(a)[0],r=t.createElemโ€ฆ
CT24warningthe page's own content runs to 378 characters
What we check
The page holds enough main text to be substantive, measured against a 400 character floor.
What good looks like
The page holds enough main text to be substantive.
Why it matters
A page of a few sentences offers almost nothing to quote, so it adds little beyond its own existence.
What we found on this page
the page's own content runs to 378 characters
The evidence, taken from the page as served
How much of this page is its own content

Counted from the page as served, before any script runs. The page's own content is the part it marks out as its main content; where it marks out none, the whole of its text is counted.

What was measuredAs measured on this page
The page's own content378 characters
All the text on the page1458 characters
The point we measure against400 characters
AJ05warningno site-search control detected on this page
What we check
Whether a search box for the site is present in the page as it is served.
What good looks like
A search box is present in the served markup, so the site's own content can be queried directly.
Why it matters
With no search box on the page, its links are the only route from here into the rest of the site.
What we found on this page
no site-search control detected on this page
The evidence, taken from the page as served
The head of this page, as served

The page was read for a search box: a search form, a control named for search, or a box labelled as one.

<head><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no"/><meta http-equiv="X-UA-Compatible" content="ie=edge"/><meta name="facebook-domain-verification" content="msc65lq1e60kt58y2jkbo2flkhvm4a"/><!--[if IE 11 ]> <meta name="msapplication-config" content="_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/browserconfig.xml" /> <![endif]--><link rel="icon" type="image/x-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon.ico"/><link rel="icon" type="image/png" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon-32x32.png"/><link rel="apple-touch-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/col_apple_icon.png"/><link rel="manifest" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/manifest.json"/><script src="https://cc.cdn.civiccomputing.com/9/cookieControl-9.x.min.js" type="text/javascript"/><script src="/site-elements/js/cookie-control.js" type="text/javascript"/><script>!function(e,t,a,n,g){e[n]=e[n]||[],e[n].push({"gtm.start":(new Date).getTime(),event:"gtm.js"});var m=t.getElementsByTagName(a)[0],r=t.createElemโ€ฆ
MS13warning1 of 1 iframes untitled
What we check
Each embedded panel on the page carries a title saying what it contains.
What good looks like
Each embedded panel carries a title saying what it contains.
Why it matters
The embedded region stays unnamed, so what it holds is left unstated in the page around it.
What we found on this page
1 of 1 iframes untitled
The evidence, taken from the page as served
The iframes with no title attribute, as served
src=https://www.googletagmanager.com/ns.html?id=GTM-5C7LND
<iframe src="https://www.googletagmanager.com/ns.html?id=GTM-5C7LND" height="0" width="0" style="display:none;visibility:hidden"/>
CT34failthe page's own words are thin: 3410 of its 3461 words are shared navigation and footer, so it reads as 99% identical to another page, which a machine can then take as a duplicate and pass over, missing the little content that is its own; the matching page is named in the view
What we check
Whether a page's own words are so few against a large shared navigation and footer that it reads as near-identical to other pages.
What good looks like
A page carries enough of its own words that a shared navigation and footer do not make it read as a copy of other pages.
Why it matters
When shared furniture is most of the text, distinct pages look like copies of each other and the little real content is easily passed over.
What we found on this page
the page's own words are thin: 3410 of its 3461 words are shared navigation and footer, so it reads as 99% identical to another page, which a machine can then take as a duplicate and pass over, missing the little content that is its own; the matching page is named in the view
The evidence, taken from the page as served
This page's own words, lost in shared navigation and footer
Page ยท opens in a new tabOwn wordsChromeReads as identical toShared
www.cityoflondon.gov.uk/services/libraries51 of 346199%www.cityoflondon.gov.uk/services/housing-and-homelessness/housing-benefits99%
https://www.cityoflondon.gov.uk/about-us/about-the-city-of-london-corporation 10.8% Extremely likely 6 out of 44
CheckResultEvidence
DS03failan AI crawler asking for this page is refused by the security layer in front of the site, while an ordinary browser is served, so the page's content never reaches the AI and answers about it are left to memory or guesswork
What we check
The same page loads for a browser but is refused when the request names itself as an AI service.
What good looks like
The page returns the same response to a named AI service as to a browser, with no edge block.
Why it matters
The block sits in front of the site and leaves no trace in its own logs, so the estate is closed off unnoticed.
What we found on this page
an AI crawler asking for this page is refused by the security layer in front of the site, while an ordinary browser is served, so the page's content never reaches the AI and answers about it are left to memory or guesswork
The evidence, taken from the page as served
The estate's edge tested with each AI crawler: a browser is served, the crawlers are refused
Hostwww.cityoflondon.gov.uk · resolves to 172.66.155.113, 104.20.19.80 · Cloudflare Address trailwww.cityoflondon.gov.uk Checked2026-07-31 16:45 UTC · request sent from 10.100.100.212 (our checker)
CrawlerHTTPAnswered inSentReceivedOutcome
Browserthe control · a normal visitor200110 ms239 B196.0 KBServed
GPTBotMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko);...40356 ms224 B5.8 KBRefused
OAI-SearchBotMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko);...40360 ms234 B5.8 KBRefused
ChatGPT-UserMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko);...40358 ms227 B5.8 KBRefused
ClaudeBotMozilla/5.0 (compatible; ClaudeBot/1.0; +claudebot@anthropic.com)40360 ms187 B5.8 KBRefused
Claude-UserMozilla/5.0 (compatible; Claude-User/1.0; +https://www.anthropic.com)40361 ms191 B5.8 KBRefused
Googlebot (Gemini)Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko;...200136 ms263 B196.0 KBServed
GoogleOtherMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko);...200117 ms197 B196.0 KBServed
Bingbot (Copilot)Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko;...200137 ms262 B196.0 KBServed
PerplexityBotMozilla/5.0 (compatible; PerplexityBot/1.0;...403122 ms207 B5.8 KBRefused
Perplexity-UserMozilla/5.0 (compatible; Perplexity-User/1.0;...40363 ms211 B5.8 KBRefused
CCBotCCBot/2.0 (https://commoncrawl.org/faq/)40363 ms162 B5.8 KBRefused
BytespiderMozilla/5.0 (Linux; Android 5.0) AppleWebKit/537.36 (KHTML,...40366 ms270 B5.8 KBRefused
AmazonbotMozilla/5.0 (compatible; Amazonbot/0.1;...40363 ms210 B5.8 KBRefused
GrokBotMozilla/5.0 (compatible; GrokBot/1.0; +https://x.ai)200119 ms174 B196.0 KBServed
Meta-ExternalAgentmeta-externalagent/1.1...40361 ms211 B5.8 KBRefused
CT16warningthe page carries no structured data block stating what it is (not required; a hygiene signal)
What we check
The page carries structured data, the machine-readable summary of what it describes.
What good looks like
The page carries structured data summarising what it describes.
Why it matters
Vendors document this as optional rather than required, so its absence is a small forfeit and no more.
What we found on this page
the page carries no structured data block stating what it is (not required; a hygiene signal)
The evidence, taken from the page as served
The head of this page, as served

The page was read for a structured data block describing what the page is.

<head><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no"/><meta http-equiv="X-UA-Compatible" content="ie=edge"/><meta name="facebook-domain-verification" content="msc65lq1e60kt58y2jkbo2flkhvm4a"/><!--[if IE 11 ]> <meta name="msapplication-config" content="_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/browserconfig.xml" /> <![endif]--><link rel="icon" type="image/x-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon.ico"/><link rel="icon" type="image/png" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon-32x32.png"/><link rel="apple-touch-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/col_apple_icon.png"/><link rel="manifest" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/manifest.json"/><script src="https://cc.cdn.civiccomputing.com/9/cookieControl-9.x.min.js" type="text/javascript"/><script src="/site-elements/js/cookie-control.js" type="text/javascript"/><script>!function(e,t,a,n,g){e[n]=e[n]||[],e[n].push({"gtm.start":(new Date).getTime(),event:"gtm.js"});var m=t.getElementsByTagName(a)[0],r=t.createElemโ€ฆ
CT04warningthe page shows the year 2029 in its text, but nothing on the page states it as the date of the content
What we check
The page carries a date, ideally written into the markup rather than sitting only in the text.
What good looks like
The page carries a date, ideally written into the markup rather than sitting only in the text.
Why it matters
An undated page gives nothing to weigh its age against, so old and new material are treated alike.
What we found on this page
the page shows the year 2029 in its text, but nothing on the page states it as the date of the content
The evidence, taken from the page as served
The head of this page, as served

The head of the page was read for a tag stating the date of the content. The year shown above was found in the page's own text.

<head><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no"/><meta http-equiv="X-UA-Compatible" content="ie=edge"/><meta name="facebook-domain-verification" content="msc65lq1e60kt58y2jkbo2flkhvm4a"/><!--[if IE 11 ]> <meta name="msapplication-config" content="_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/browserconfig.xml" /> <![endif]--><link rel="icon" type="image/x-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon.ico"/><link rel="icon" type="image/png" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon-32x32.png"/><link rel="apple-touch-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/col_apple_icon.png"/><link rel="manifest" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/manifest.json"/><script src="https://cc.cdn.civiccomputing.com/9/cookieControl-9.x.min.js" type="text/javascript"/><script src="/site-elements/js/cookie-control.js" type="text/javascript"/><script>!function(e,t,a,n,g){e[n]=e[n]||[],e[n].push({"gtm.start":(new Date).getTime(),event:"gtm.js"});var m=t.getElementsByTagName(a)[0],r=t.createElemโ€ฆ
AJ05warningno site-search control detected on this page
What we check
Whether a search box for the site is present in the page as it is served.
What good looks like
A search box is present in the served markup, so the site's own content can be queried directly.
Why it matters
With no search box on the page, its links are the only route from here into the rest of the site.
What we found on this page
no site-search control detected on this page
The evidence, taken from the page as served
The head of this page, as served

The page was read for a search box: a search form, a control named for search, or a box labelled as one.

<head><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no"/><meta http-equiv="X-UA-Compatible" content="ie=edge"/><meta name="facebook-domain-verification" content="msc65lq1e60kt58y2jkbo2flkhvm4a"/><!--[if IE 11 ]> <meta name="msapplication-config" content="_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/browserconfig.xml" /> <![endif]--><link rel="icon" type="image/x-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon.ico"/><link rel="icon" type="image/png" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon-32x32.png"/><link rel="apple-touch-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/col_apple_icon.png"/><link rel="manifest" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/manifest.json"/><script src="https://cc.cdn.civiccomputing.com/9/cookieControl-9.x.min.js" type="text/javascript"/><script src="/site-elements/js/cookie-control.js" type="text/javascript"/><script>!function(e,t,a,n,g){e[n]=e[n]||[],e[n].push({"gtm.start":(new Date).getTime(),event:"gtm.js"});var m=t.getElementsByTagName(a)[0],r=t.createElemโ€ฆ
MS13warning1 of 1 iframes untitled
What we check
Each embedded panel on the page carries a title saying what it contains.
What good looks like
Each embedded panel carries a title saying what it contains.
Why it matters
The embedded region stays unnamed, so what it holds is left unstated in the page around it.
What we found on this page
1 of 1 iframes untitled
The evidence, taken from the page as served
The iframes with no title attribute, as served
src=https://www.googletagmanager.com/ns.html?id=GTM-5C7LND
<iframe src="https://www.googletagmanager.com/ns.html?id=GTM-5C7LND" height="0" width="0" style="display:none;visibility:hidden"/>
CT34failthe page's own words are thin: 3410 of its 3455 words are shared navigation and footer, so it reads as 99% identical to another page, which a machine can then take as a duplicate and pass over, missing the little content that is its own; the matching page is named in the view
What we check
Whether a page's own words are so few against a large shared navigation and footer that it reads as near-identical to other pages.
What good looks like
A page carries enough of its own words that a shared navigation and footer do not make it read as a copy of other pages.
Why it matters
When shared furniture is most of the text, distinct pages look like copies of each other and the little real content is easily passed over.
What we found on this page
the page's own words are thin: 3410 of its 3455 words are shared navigation and footer, so it reads as 99% identical to another page, which a machine can then take as a duplicate and pass over, missing the little content that is its own; the matching page is named in the view
The evidence, taken from the page as served
This page's own words, lost in shared navigation and footer
Page ยท opens in a new tabOwn wordsChromeReads as identical toShared
www.cityoflondon.gov.uk/about-us/about-the-city-of-london-corporation45 of 345599%www.cityoflondon.gov.uk/services/housing-and-homelessness/housing-benefits99%
https://www.cityoflondon.gov.uk/services/environmental-health/climate-action/climate-action-projects 10.8% Extremely likely 6 out of 44
CheckResultEvidence
DS03failan AI crawler asking for this page is refused by the security layer in front of the site, while an ordinary browser is served, so the page's content never reaches the AI and answers about it are left to memory or guesswork
What we check
The same page loads for a browser but is refused when the request names itself as an AI service.
What good looks like
The page returns the same response to a named AI service as to a browser, with no edge block.
Why it matters
The block sits in front of the site and leaves no trace in its own logs, so the estate is closed off unnoticed.
What we found on this page
an AI crawler asking for this page is refused by the security layer in front of the site, while an ordinary browser is served, so the page's content never reaches the AI and answers about it are left to memory or guesswork
The evidence, taken from the page as served
The estate's edge tested with each AI crawler: a browser is served, the crawlers are refused
Hostwww.cityoflondon.gov.uk · resolves to 172.66.155.113, 104.20.19.80 · Cloudflare Address trailwww.cityoflondon.gov.uk Checked2026-07-31 16:45 UTC · request sent from 10.100.100.212 (our checker)
CrawlerHTTPAnswered inSentReceivedOutcome
Browserthe control · a normal visitor200110 ms239 B196.0 KBServed
GPTBotMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko);...40356 ms224 B5.8 KBRefused
OAI-SearchBotMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko);...40360 ms234 B5.8 KBRefused
ChatGPT-UserMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko);...40358 ms227 B5.8 KBRefused
ClaudeBotMozilla/5.0 (compatible; ClaudeBot/1.0; +claudebot@anthropic.com)40360 ms187 B5.8 KBRefused
Claude-UserMozilla/5.0 (compatible; Claude-User/1.0; +https://www.anthropic.com)40361 ms191 B5.8 KBRefused
Googlebot (Gemini)Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko;...200136 ms263 B196.0 KBServed
GoogleOtherMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko);...200117 ms197 B196.0 KBServed
Bingbot (Copilot)Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko;...200137 ms262 B196.0 KBServed
PerplexityBotMozilla/5.0 (compatible; PerplexityBot/1.0;...403122 ms207 B5.8 KBRefused
Perplexity-UserMozilla/5.0 (compatible; Perplexity-User/1.0;...40363 ms211 B5.8 KBRefused
CCBotCCBot/2.0 (https://commoncrawl.org/faq/)40363 ms162 B5.8 KBRefused
BytespiderMozilla/5.0 (Linux; Android 5.0) AppleWebKit/537.36 (KHTML,...40366 ms270 B5.8 KBRefused
AmazonbotMozilla/5.0 (compatible; Amazonbot/0.1;...40363 ms210 B5.8 KBRefused
GrokBotMozilla/5.0 (compatible; GrokBot/1.0; +https://x.ai)200119 ms174 B196.0 KBServed
Meta-ExternalAgentmeta-externalagent/1.1...40361 ms211 B5.8 KBRefused
CT16warningthe page carries no structured data block stating what it is (not required; a hygiene signal)
What we check
The page carries structured data, the machine-readable summary of what it describes.
What good looks like
The page carries structured data summarising what it describes.
Why it matters
Vendors document this as optional rather than required, so its absence is a small forfeit and no more.
What we found on this page
the page carries no structured data block stating what it is (not required; a hygiene signal)
The evidence, taken from the page as served
The head of this page, as served

The page was read for a structured data block describing what the page is.

<head><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no"/><meta http-equiv="X-UA-Compatible" content="ie=edge"/><meta name="facebook-domain-verification" content="msc65lq1e60kt58y2jkbo2flkhvm4a"/><!--[if IE 11 ]> <meta name="msapplication-config" content="_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/browserconfig.xml" /> <![endif]--><link rel="icon" type="image/x-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon.ico"/><link rel="icon" type="image/png" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon-32x32.png"/><link rel="apple-touch-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/col_apple_icon.png"/><link rel="manifest" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/manifest.json"/><script src="https://cc.cdn.civiccomputing.com/9/cookieControl-9.x.min.js" type="text/javascript"/><script src="/site-elements/js/cookie-control.js" type="text/javascript"/><script>!function(e,t,a,n,g){e[n]=e[n]||[],e[n].push({"gtm.start":(new Date).getTime(),event:"gtm.js"});var m=t.getElementsByTagName(a)[0],r=t.createElemโ€ฆ
CT04warningthe page shows the year 2029 in its text, but nothing on the page states it as the date of the content
What we check
The page carries a date, ideally written into the markup rather than sitting only in the text.
What good looks like
The page carries a date, ideally written into the markup rather than sitting only in the text.
Why it matters
An undated page gives nothing to weigh its age against, so old and new material are treated alike.
What we found on this page
the page shows the year 2029 in its text, but nothing on the page states it as the date of the content
The evidence, taken from the page as served
The head of this page, as served

The head of the page was read for a tag stating the date of the content. The year shown above was found in the page's own text.

<head><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no"/><meta http-equiv="X-UA-Compatible" content="ie=edge"/><meta name="facebook-domain-verification" content="msc65lq1e60kt58y2jkbo2flkhvm4a"/><!--[if IE 11 ]> <meta name="msapplication-config" content="_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/browserconfig.xml" /> <![endif]--><link rel="icon" type="image/x-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon.ico"/><link rel="icon" type="image/png" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon-32x32.png"/><link rel="apple-touch-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/col_apple_icon.png"/><link rel="manifest" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/manifest.json"/><script src="https://cc.cdn.civiccomputing.com/9/cookieControl-9.x.min.js" type="text/javascript"/><script src="/site-elements/js/cookie-control.js" type="text/javascript"/><script>!function(e,t,a,n,g){e[n]=e[n]||[],e[n].push({"gtm.start":(new Date).getTime(),event:"gtm.js"});var m=t.getElementsByTagName(a)[0],r=t.createElemโ€ฆ
AJ05warningno site-search control detected on this page
What we check
Whether a search box for the site is present in the page as it is served.
What good looks like
A search box is present in the served markup, so the site's own content can be queried directly.
Why it matters
With no search box on the page, its links are the only route from here into the rest of the site.
What we found on this page
no site-search control detected on this page
The evidence, taken from the page as served
The head of this page, as served

The page was read for a search box: a search form, a control named for search, or a box labelled as one.

<head><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no"/><meta http-equiv="X-UA-Compatible" content="ie=edge"/><meta name="facebook-domain-verification" content="msc65lq1e60kt58y2jkbo2flkhvm4a"/><!--[if IE 11 ]> <meta name="msapplication-config" content="_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/browserconfig.xml" /> <![endif]--><link rel="icon" type="image/x-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon.ico"/><link rel="icon" type="image/png" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon-32x32.png"/><link rel="apple-touch-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/col_apple_icon.png"/><link rel="manifest" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/manifest.json"/><script src="https://cc.cdn.civiccomputing.com/9/cookieControl-9.x.min.js" type="text/javascript"/><script src="/site-elements/js/cookie-control.js" type="text/javascript"/><script>!function(e,t,a,n,g){e[n]=e[n]||[],e[n].push({"gtm.start":(new Date).getTime(),event:"gtm.js"});var m=t.getElementsByTagName(a)[0],r=t.createElemโ€ฆ
MS13warning1 of 1 iframes untitled
What we check
Each embedded panel on the page carries a title saying what it contains.
What good looks like
Each embedded panel carries a title saying what it contains.
Why it matters
The embedded region stays unnamed, so what it holds is left unstated in the page around it.
What we found on this page
1 of 1 iframes untitled
The evidence, taken from the page as served
The iframes with no title attribute, as served
src=https://www.googletagmanager.com/ns.html?id=GTM-5C7LND
<iframe src="https://www.googletagmanager.com/ns.html?id=GTM-5C7LND" height="0" width="0" style="display:none;visibility:hidden"/>
CT34failthe page's own words are thin: 3410 of its 3482 words are shared navigation and footer, so it reads as 98% identical to another page, which a machine can then take as a duplicate and pass over, missing the little content that is its own; the matching page is named in the view
What we check
Whether a page's own words are so few against a large shared navigation and footer that it reads as near-identical to other pages.
What good looks like
A page carries enough of its own words that a shared navigation and footer do not make it read as a copy of other pages.
Why it matters
When shared furniture is most of the text, distinct pages look like copies of each other and the little real content is easily passed over.
What we found on this page
the page's own words are thin: 3410 of its 3482 words are shared navigation and footer, so it reads as 98% identical to another page, which a machine can then take as a duplicate and pass over, missing the little content that is its own; the matching page is named in the view
The evidence, taken from the page as served
This page's own words, lost in shared navigation and footer
Page ยท opens in a new tabOwn wordsChromeReads as identical toShared
www.cityoflondon.gov.uk/services/environmental-health/climate-action/climate-action-projects72 of 348298%www.cityoflondon.gov.uk/services/environmental-health/climate-action98%
https://www.cityoflondon.gov.uk/services/community-and-safety 10.6% Extremely likely 7 out of 44
CheckResultEvidence
DS03failan AI crawler asking for this page is refused by the security layer in front of the site, while an ordinary browser is served, so the page's content never reaches the AI and answers about it are left to memory or guesswork
What we check
The same page loads for a browser but is refused when the request names itself as an AI service.
What good looks like
The page returns the same response to a named AI service as to a browser, with no edge block.
Why it matters
The block sits in front of the site and leaves no trace in its own logs, so the estate is closed off unnoticed.
What we found on this page
an AI crawler asking for this page is refused by the security layer in front of the site, while an ordinary browser is served, so the page's content never reaches the AI and answers about it are left to memory or guesswork
The evidence, taken from the page as served
The estate's edge tested with each AI crawler: a browser is served, the crawlers are refused
Hostwww.cityoflondon.gov.uk · resolves to 172.66.155.113, 104.20.19.80 · Cloudflare Address trailwww.cityoflondon.gov.uk Checked2026-07-31 16:45 UTC · request sent from 10.100.100.212 (our checker)
CrawlerHTTPAnswered inSentReceivedOutcome
Browserthe control · a normal visitor200110 ms239 B196.0 KBServed
GPTBotMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko);...40356 ms224 B5.8 KBRefused
OAI-SearchBotMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko);...40360 ms234 B5.8 KBRefused
ChatGPT-UserMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko);...40358 ms227 B5.8 KBRefused
ClaudeBotMozilla/5.0 (compatible; ClaudeBot/1.0; +claudebot@anthropic.com)40360 ms187 B5.8 KBRefused
Claude-UserMozilla/5.0 (compatible; Claude-User/1.0; +https://www.anthropic.com)40361 ms191 B5.8 KBRefused
Googlebot (Gemini)Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko;...200136 ms263 B196.0 KBServed
GoogleOtherMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko);...200117 ms197 B196.0 KBServed
Bingbot (Copilot)Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko;...200137 ms262 B196.0 KBServed
PerplexityBotMozilla/5.0 (compatible; PerplexityBot/1.0;...403122 ms207 B5.8 KBRefused
Perplexity-UserMozilla/5.0 (compatible; Perplexity-User/1.0;...40363 ms211 B5.8 KBRefused
CCBotCCBot/2.0 (https://commoncrawl.org/faq/)40363 ms162 B5.8 KBRefused
BytespiderMozilla/5.0 (Linux; Android 5.0) AppleWebKit/537.36 (KHTML,...40366 ms270 B5.8 KBRefused
AmazonbotMozilla/5.0 (compatible; Amazonbot/0.1;...40363 ms210 B5.8 KBRefused
GrokBotMozilla/5.0 (compatible; GrokBot/1.0; +https://x.ai)200119 ms174 B196.0 KBServed
Meta-ExternalAgentmeta-externalagent/1.1...40361 ms211 B5.8 KBRefused
CT16warningthe page carries no structured data block stating what it is (not required; a hygiene signal)
What we check
The page carries structured data, the machine-readable summary of what it describes.
What good looks like
The page carries structured data summarising what it describes.
Why it matters
Vendors document this as optional rather than required, so its absence is a small forfeit and no more.
What we found on this page
the page carries no structured data block stating what it is (not required; a hygiene signal)
The evidence, taken from the page as served
The head of this page, as served

The page was read for a structured data block describing what the page is.

<head><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no"/><meta http-equiv="X-UA-Compatible" content="ie=edge"/><meta name="facebook-domain-verification" content="msc65lq1e60kt58y2jkbo2flkhvm4a"/><!--[if IE 11 ]> <meta name="msapplication-config" content="_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/browserconfig.xml" /> <![endif]--><link rel="icon" type="image/x-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon.ico"/><link rel="icon" type="image/png" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon-32x32.png"/><link rel="apple-touch-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/col_apple_icon.png"/><link rel="manifest" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/manifest.json"/><script src="https://cc.cdn.civiccomputing.com/9/cookieControl-9.x.min.js" type="text/javascript"/><script src="/site-elements/js/cookie-control.js" type="text/javascript"/><script>!function(e,t,a,n,g){e[n]=e[n]||[],e[n].push({"gtm.start":(new Date).getTime(),event:"gtm.js"});var m=t.getElementsByTagName(a)[0],r=t.createElemโ€ฆ
CT04warningthe page shows the year 2029 in its text, but nothing on the page states it as the date of the content
What we check
The page carries a date, ideally written into the markup rather than sitting only in the text.
What good looks like
The page carries a date, ideally written into the markup rather than sitting only in the text.
Why it matters
An undated page gives nothing to weigh its age against, so old and new material are treated alike.
What we found on this page
the page shows the year 2029 in its text, but nothing on the page states it as the date of the content
The evidence, taken from the page as served
The head of this page, as served

The head of the page was read for a tag stating the date of the content. The year shown above was found in the page's own text.

<head><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no"/><meta http-equiv="X-UA-Compatible" content="ie=edge"/><meta name="facebook-domain-verification" content="msc65lq1e60kt58y2jkbo2flkhvm4a"/><!--[if IE 11 ]> <meta name="msapplication-config" content="_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/browserconfig.xml" /> <![endif]--><link rel="icon" type="image/x-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon.ico"/><link rel="icon" type="image/png" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon-32x32.png"/><link rel="apple-touch-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/col_apple_icon.png"/><link rel="manifest" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/manifest.json"/><script src="https://cc.cdn.civiccomputing.com/9/cookieControl-9.x.min.js" type="text/javascript"/><script src="/site-elements/js/cookie-control.js" type="text/javascript"/><script>!function(e,t,a,n,g){e[n]=e[n]||[],e[n].push({"gtm.start":(new Date).getTime(),event:"gtm.js"});var m=t.getElementsByTagName(a)[0],r=t.createElemโ€ฆ
AJ05warningno site-search control detected on this page
What we check
Whether a search box for the site is present in the page as it is served.
What good looks like
A search box is present in the served markup, so the site's own content can be queried directly.
Why it matters
With no search box on the page, its links are the only route from here into the rest of the site.
What we found on this page
no site-search control detected on this page
The evidence, taken from the page as served
The head of this page, as served

The page was read for a search box: a search form, a control named for search, or a box labelled as one.

<head><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no"/><meta http-equiv="X-UA-Compatible" content="ie=edge"/><meta name="facebook-domain-verification" content="msc65lq1e60kt58y2jkbo2flkhvm4a"/><!--[if IE 11 ]> <meta name="msapplication-config" content="_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/browserconfig.xml" /> <![endif]--><link rel="icon" type="image/x-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon.ico"/><link rel="icon" type="image/png" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon-32x32.png"/><link rel="apple-touch-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/col_apple_icon.png"/><link rel="manifest" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/manifest.json"/><script src="https://cc.cdn.civiccomputing.com/9/cookieControl-9.x.min.js" type="text/javascript"/><script src="/site-elements/js/cookie-control.js" type="text/javascript"/><script>!function(e,t,a,n,g){e[n]=e[n]||[],e[n].push({"gtm.start":(new Date).getTime(),event:"gtm.js"});var m=t.getElementsByTagName(a)[0],r=t.createElemโ€ฆ
MS13warning1 of 1 iframes untitled
What we check
Each embedded panel on the page carries a title saying what it contains.
What good looks like
Each embedded panel carries a title saying what it contains.
Why it matters
The embedded region stays unnamed, so what it holds is left unstated in the page around it.
What we found on this page
1 of 1 iframes untitled
The evidence, taken from the page as served
The iframes with no title attribute, as served
src=https://www.googletagmanager.com/ns.html?id=GTM-5C7LND
<iframe src="https://www.googletagmanager.com/ns.html?id=GTM-5C7LND" height="0" width="0" style="display:none;visibility:hidden"/>
DS28failone link to sources on other sites was refused when it was checked. The page is still published, but the other site turns away requests that do not come from a person using a browser. It is listed in the view
What we check
For a single page, the share of its links to OTHER sites, sampled, that lead nowhere. The site's own links are assessed separately.
What good looks like
The page's references to other sites open for any reader. Where one refuses or has gone, the page carries the fact itself, shows the reference as plain text rather than as a link, or points to a source that answers.
Why it matters
The outside sources this page offers as support did not answer when they were asked for, so what the page claims is left resting on material that does not come back. In a regulated setting, where a link is carrying a figure or a required statement, that is the difference between a claim that is evidenced and one that is merely asserted.
What we found on this page
one link to sources on other sites was refused when it was checked. The page is still published, but the other site turns away requests that do not come from a person using a browser. It is listed in the view
The evidence, taken from the page as served
The external links checked on this page, with the status each returned

A link that did not open appears here in two forms. A DEAD link points at a page that has gone. A REFUSED link points at a page that is still published, but the other site turns away requests that do not come from a person using a browser, so our request was declined. Both land in the same place: the material this page offers as its support did not come back when it was asked for. The consequence is not a matter of tidiness. Where a link carries the weight of a claim, a figure, a policy or a regulatory statement, and the target does not open, the support behind that claim is missing at the moment it is needed. Three things follow, and each of them costs the organisation. The same fact gets taken from somewhere else, which hands a third party control of how the claim is worded. Or the claim is treated as unsupported and set aside. Or an answer is drawn from what remains on the page, and a partial account is presented as a complete one. A refused link is the worst of the three, because the page still reads as though the evidence sits one step away, so the gap is invisible and the answer carries false confidence. A refusal by another site is still this site's matter to resolve, because this site chose to rest a claim on it. Three practical ways close it. Carry the fact being relied on in the page's own words, so the claim stands without the visit. Keep the reference but stop making it a link, showing the address as plain text, so nothing promises a route that does not open. Or point to a source that answers any reader. Where the reference has to stay live, say beside it what a reader will meet, so no one is sent to a closed door without warning.

Link ยท opens in a new tabStatusResult
www.cityoflondon.police.uk/403Access-restricted
www.womensaid.org.uk/information-support/what-is-domestic-abuse/cover-your-tracks-online200Reachable
www.websitecarbon.com/website/cityoflondon.gov.uk200Reachable
sitemorse.com/index/uk-local-government/2025-q3200Reachable
www.theglobalcity.uk/200Reachable
CT34failthe page's own words are thin: 3410 of its 3481 words are shared navigation and footer, so it reads as 98% identical to another page, which a machine can then take as a duplicate and pass over, missing the little content that is its own; the matching page is named in the view
What we check
Whether a page's own words are so few against a large shared navigation and footer that it reads as near-identical to other pages.
What good looks like
A page carries enough of its own words that a shared navigation and footer do not make it read as a copy of other pages.
Why it matters
When shared furniture is most of the text, distinct pages look like copies of each other and the little real content is easily passed over.
What we found on this page
the page's own words are thin: 3410 of its 3481 words are shared navigation and footer, so it reads as 98% identical to another page, which a machine can then take as a duplicate and pass over, missing the little content that is its own; the matching page is named in the view
The evidence, taken from the page as served
This page's own words, lost in shared navigation and footer
Page ยท opens in a new tabOwn wordsChromeReads as identical toShared
www.cityoflondon.gov.uk/services/community-and-safety71 of 348198%www.cityoflondon.gov.uk/footer/privacy-notice98%
https://www.cityoflondon.gov.uk/services/children-and-families/help-with-childcare-costs 10.6% Extremely likely 7 out of 44
CheckResultEvidence
DS03failan AI crawler asking for this page is refused by the security layer in front of the site, while an ordinary browser is served, so the page's content never reaches the AI and answers about it are left to memory or guesswork
What we check
The same page loads for a browser but is refused when the request names itself as an AI service.
What good looks like
The page returns the same response to a named AI service as to a browser, with no edge block.
Why it matters
The block sits in front of the site and leaves no trace in its own logs, so the estate is closed off unnoticed.
What we found on this page
an AI crawler asking for this page is refused by the security layer in front of the site, while an ordinary browser is served, so the page's content never reaches the AI and answers about it are left to memory or guesswork
The evidence, taken from the page as served
The estate's edge tested with each AI crawler: a browser is served, the crawlers are refused
Hostwww.cityoflondon.gov.uk · resolves to 172.66.155.113, 104.20.19.80 · Cloudflare Address trailwww.cityoflondon.gov.uk Checked2026-07-31 16:45 UTC · request sent from 10.100.100.212 (our checker)
CrawlerHTTPAnswered inSentReceivedOutcome
Browserthe control · a normal visitor200110 ms239 B196.0 KBServed
GPTBotMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko);...40356 ms224 B5.8 KBRefused
OAI-SearchBotMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko);...40360 ms234 B5.8 KBRefused
ChatGPT-UserMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko);...40358 ms227 B5.8 KBRefused
ClaudeBotMozilla/5.0 (compatible; ClaudeBot/1.0; +claudebot@anthropic.com)40360 ms187 B5.8 KBRefused
Claude-UserMozilla/5.0 (compatible; Claude-User/1.0; +https://www.anthropic.com)40361 ms191 B5.8 KBRefused
Googlebot (Gemini)Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko;...200136 ms263 B196.0 KBServed
GoogleOtherMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko);...200117 ms197 B196.0 KBServed
Bingbot (Copilot)Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko;...200137 ms262 B196.0 KBServed
PerplexityBotMozilla/5.0 (compatible; PerplexityBot/1.0;...403122 ms207 B5.8 KBRefused
Perplexity-UserMozilla/5.0 (compatible; Perplexity-User/1.0;...40363 ms211 B5.8 KBRefused
CCBotCCBot/2.0 (https://commoncrawl.org/faq/)40363 ms162 B5.8 KBRefused
BytespiderMozilla/5.0 (Linux; Android 5.0) AppleWebKit/537.36 (KHTML,...40366 ms270 B5.8 KBRefused
AmazonbotMozilla/5.0 (compatible; Amazonbot/0.1;...40363 ms210 B5.8 KBRefused
GrokBotMozilla/5.0 (compatible; GrokBot/1.0; +https://x.ai)200119 ms174 B196.0 KBServed
Meta-ExternalAgentmeta-externalagent/1.1...40361 ms211 B5.8 KBRefused
CT16warningthe page carries no structured data block stating what it is (not required; a hygiene signal)
What we check
The page carries structured data, the machine-readable summary of what it describes.
What good looks like
The page carries structured data summarising what it describes.
Why it matters
Vendors document this as optional rather than required, so its absence is a small forfeit and no more.
What we found on this page
the page carries no structured data block stating what it is (not required; a hygiene signal)
The evidence, taken from the page as served
The head of this page, as served

The page was read for a structured data block describing what the page is.

<head><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no"/><meta http-equiv="X-UA-Compatible" content="ie=edge"/><meta name="facebook-domain-verification" content="msc65lq1e60kt58y2jkbo2flkhvm4a"/><!--[if IE 11 ]> <meta name="msapplication-config" content="_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/browserconfig.xml" /> <![endif]--><link rel="icon" type="image/x-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon.ico"/><link rel="icon" type="image/png" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon-32x32.png"/><link rel="apple-touch-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/col_apple_icon.png"/><link rel="manifest" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/manifest.json"/><script src="https://cc.cdn.civiccomputing.com/9/cookieControl-9.x.min.js" type="text/javascript"/><script src="/site-elements/js/cookie-control.js" type="text/javascript"/><script>!function(e,t,a,n,g){e[n]=e[n]||[],e[n].push({"gtm.start":(new Date).getTime(),event:"gtm.js"});var m=t.getElementsByTagName(a)[0],r=t.createElemโ€ฆ
CT04warningthe page shows the year 2029 in its text, but nothing on the page states it as the date of the content
What we check
The page carries a date, ideally written into the markup rather than sitting only in the text.
What good looks like
The page carries a date, ideally written into the markup rather than sitting only in the text.
Why it matters
An undated page gives nothing to weigh its age against, so old and new material are treated alike.
What we found on this page
the page shows the year 2029 in its text, but nothing on the page states it as the date of the content
The evidence, taken from the page as served
The head of this page, as served

The head of the page was read for a tag stating the date of the content. The year shown above was found in the page's own text.

<head><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no"/><meta http-equiv="X-UA-Compatible" content="ie=edge"/><meta name="facebook-domain-verification" content="msc65lq1e60kt58y2jkbo2flkhvm4a"/><!--[if IE 11 ]> <meta name="msapplication-config" content="_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/browserconfig.xml" /> <![endif]--><link rel="icon" type="image/x-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon.ico"/><link rel="icon" type="image/png" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon-32x32.png"/><link rel="apple-touch-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/col_apple_icon.png"/><link rel="manifest" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/manifest.json"/><script src="https://cc.cdn.civiccomputing.com/9/cookieControl-9.x.min.js" type="text/javascript"/><script src="/site-elements/js/cookie-control.js" type="text/javascript"/><script>!function(e,t,a,n,g){e[n]=e[n]||[],e[n].push({"gtm.start":(new Date).getTime(),event:"gtm.js"});var m=t.getElementsByTagName(a)[0],r=t.createElemโ€ฆ
AJ05warningno site-search control detected on this page
What we check
Whether a search box for the site is present in the page as it is served.
What good looks like
A search box is present in the served markup, so the site's own content can be queried directly.
Why it matters
With no search box on the page, its links are the only route from here into the rest of the site.
What we found on this page
no site-search control detected on this page
The evidence, taken from the page as served
The head of this page, as served

The page was read for a search box: a search form, a control named for search, or a box labelled as one.

<head><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no"/><meta http-equiv="X-UA-Compatible" content="ie=edge"/><meta name="facebook-domain-verification" content="msc65lq1e60kt58y2jkbo2flkhvm4a"/><!--[if IE 11 ]> <meta name="msapplication-config" content="_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/browserconfig.xml" /> <![endif]--><link rel="icon" type="image/x-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon.ico"/><link rel="icon" type="image/png" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon-32x32.png"/><link rel="apple-touch-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/col_apple_icon.png"/><link rel="manifest" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/manifest.json"/><script src="https://cc.cdn.civiccomputing.com/9/cookieControl-9.x.min.js" type="text/javascript"/><script src="/site-elements/js/cookie-control.js" type="text/javascript"/><script>!function(e,t,a,n,g){e[n]=e[n]||[],e[n].push({"gtm.start":(new Date).getTime(),event:"gtm.js"});var m=t.getElementsByTagName(a)[0],r=t.createElemโ€ฆ
MS13warning1 of 1 iframes untitled
What we check
Each embedded panel on the page carries a title saying what it contains.
What good looks like
Each embedded panel carries a title saying what it contains.
Why it matters
The embedded region stays unnamed, so what it holds is left unstated in the page around it.
What we found on this page
1 of 1 iframes untitled
The evidence, taken from the page as served
The iframes with no title attribute, as served
src=https://www.googletagmanager.com/ns.html?id=GTM-5C7LND
<iframe src="https://www.googletagmanager.com/ns.html?id=GTM-5C7LND" height="0" width="0" style="display:none;visibility:hidden"/>
DS28failone link to sources on other sites was refused when it was checked. The page is still published, but the other site turns away requests that do not come from a person using a browser. It is listed in the view
What we check
For a single page, the share of its links to OTHER sites, sampled, that lead nowhere. The site's own links are assessed separately.
What good looks like
The page's references to other sites open for any reader. Where one refuses or has gone, the page carries the fact itself, shows the reference as plain text rather than as a link, or points to a source that answers.
Why it matters
The outside sources this page offers as support did not answer when they were asked for, so what the page claims is left resting on material that does not come back. In a regulated setting, where a link is carrying a figure or a required statement, that is the difference between a claim that is evidenced and one that is merely asserted.
What we found on this page
one link to sources on other sites was refused when it was checked. The page is still published, but the other site turns away requests that do not come from a person using a browser. It is listed in the view
The evidence, taken from the page as served
The external links checked on this page, with the status each returned

A link that did not open appears here in two forms. A DEAD link points at a page that has gone. A REFUSED link points at a page that is still published, but the other site turns away requests that do not come from a person using a browser, so our request was declined. Both land in the same place: the material this page offers as its support did not come back when it was asked for. The consequence is not a matter of tidiness. Where a link carries the weight of a claim, a figure, a policy or a regulatory statement, and the target does not open, the support behind that claim is missing at the moment it is needed. Three things follow, and each of them costs the organisation. The same fact gets taken from somewhere else, which hands a third party control of how the claim is worded. Or the claim is treated as unsupported and set aside. Or an answer is drawn from what remains on the page, and a partial account is presented as a complete one. A refused link is the worst of the three, because the page still reads as though the evidence sits one step away, so the gap is invisible and the answer carries false confidence. A refusal by another site is still this site's matter to resolve, because this site chose to rest a claim on it. Three practical ways close it. Carry the fact being relied on in the page's own words, so the claim stands without the visit. Keep the reference but stop making it a link, showing the address as plain text, so nothing promises a route that does not open. Or point to a source that answers any reader. Where the reference has to stay live, say beside it what a reader will meet, so no one is sent to a closed door without warning.

Link ยท opens in a new tabStatusResult
www.facebook.com/sharer/sharer.php?u=www.cityoflondon.gov.uk/services/children-and-families/help-with-childcare-costs400Reachable
twitter.com/intent/tweet?text=www.cityoflondon.gov.uk/services/children-and-families/help-with-childcare-costs403Access-restricted
www.linkedin.com/shareArticle?mini=true&url=www.cityoflondon.gov.uk/services/children-and-families/help-with-childcare-costs200Reachable
cityoflondon-self.achieveservice.com/en/service/Contact_the_City?sid=14200Reachable
www.gov.uk/help-with-childcare-costs/free-childcare-2-year-olds200Reachable
CT34failthe page's own words are thin: 3410 of its 3457 words are shared navigation and footer, so it reads as 99% identical to another page, which a machine can then take as a duplicate and pass over, missing the little content that is its own; the matching page is named in the view
What we check
Whether a page's own words are so few against a large shared navigation and footer that it reads as near-identical to other pages.
What good looks like
A page carries enough of its own words that a shared navigation and footer do not make it read as a copy of other pages.
Why it matters
When shared furniture is most of the text, distinct pages look like copies of each other and the little real content is easily passed over.
What we found on this page
the page's own words are thin: 3410 of its 3457 words are shared navigation and footer, so it reads as 99% identical to another page, which a machine can then take as a duplicate and pass over, missing the little content that is its own; the matching page is named in the view
The evidence, taken from the page as served
This page's own words, lost in shared navigation and footer
Page ยท opens in a new tabOwn wordsChromeReads as identical toShared
www.cityoflondon.gov.uk/services/children-and-families/help-with-childcare-costs47 of 345799%www.cityoflondon.gov.uk/about-us/filming99%
https://www.cityoflondon.gov.uk/services/housing-and-homelessness/housing-benefits/emergency-support-scheme 10.6% Extremely likely 7 out of 44
CheckResultEvidence
DS03failan AI crawler asking for this page is refused by the security layer in front of the site, while an ordinary browser is served, so the page's content never reaches the AI and answers about it are left to memory or guesswork
What we check
The same page loads for a browser but is refused when the request names itself as an AI service.
What good looks like
The page returns the same response to a named AI service as to a browser, with no edge block.
Why it matters
The block sits in front of the site and leaves no trace in its own logs, so the estate is closed off unnoticed.
What we found on this page
an AI crawler asking for this page is refused by the security layer in front of the site, while an ordinary browser is served, so the page's content never reaches the AI and answers about it are left to memory or guesswork
The evidence, taken from the page as served
The estate's edge tested with each AI crawler: a browser is served, the crawlers are refused
Hostwww.cityoflondon.gov.uk · resolves to 172.66.155.113, 104.20.19.80 · Cloudflare Address trailwww.cityoflondon.gov.uk Checked2026-07-31 16:45 UTC · request sent from 10.100.100.212 (our checker)
CrawlerHTTPAnswered inSentReceivedOutcome
Browserthe control · a normal visitor200110 ms239 B196.0 KBServed
GPTBotMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko);...40356 ms224 B5.8 KBRefused
OAI-SearchBotMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko);...40360 ms234 B5.8 KBRefused
ChatGPT-UserMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko);...40358 ms227 B5.8 KBRefused
ClaudeBotMozilla/5.0 (compatible; ClaudeBot/1.0; +claudebot@anthropic.com)40360 ms187 B5.8 KBRefused
Claude-UserMozilla/5.0 (compatible; Claude-User/1.0; +https://www.anthropic.com)40361 ms191 B5.8 KBRefused
Googlebot (Gemini)Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko;...200136 ms263 B196.0 KBServed
GoogleOtherMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko);...200117 ms197 B196.0 KBServed
Bingbot (Copilot)Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko;...200137 ms262 B196.0 KBServed
PerplexityBotMozilla/5.0 (compatible; PerplexityBot/1.0;...403122 ms207 B5.8 KBRefused
Perplexity-UserMozilla/5.0 (compatible; Perplexity-User/1.0;...40363 ms211 B5.8 KBRefused
CCBotCCBot/2.0 (https://commoncrawl.org/faq/)40363 ms162 B5.8 KBRefused
BytespiderMozilla/5.0 (Linux; Android 5.0) AppleWebKit/537.36 (KHTML,...40366 ms270 B5.8 KBRefused
AmazonbotMozilla/5.0 (compatible; Amazonbot/0.1;...40363 ms210 B5.8 KBRefused
GrokBotMozilla/5.0 (compatible; GrokBot/1.0; +https://x.ai)200119 ms174 B196.0 KBServed
Meta-ExternalAgentmeta-externalagent/1.1...40361 ms211 B5.8 KBRefused
CT16warningthe page carries no structured data block stating what it is (not required; a hygiene signal)
What we check
The page carries structured data, the machine-readable summary of what it describes.
What good looks like
The page carries structured data summarising what it describes.
Why it matters
Vendors document this as optional rather than required, so its absence is a small forfeit and no more.
What we found on this page
the page carries no structured data block stating what it is (not required; a hygiene signal)
The evidence, taken from the page as served
The head of this page, as served

The page was read for a structured data block describing what the page is.

<head><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no"/><meta http-equiv="X-UA-Compatible" content="ie=edge"/><meta name="facebook-domain-verification" content="msc65lq1e60kt58y2jkbo2flkhvm4a"/><!--[if IE 11 ]> <meta name="msapplication-config" content="_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/browserconfig.xml" /> <![endif]--><link rel="icon" type="image/x-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon.ico"/><link rel="icon" type="image/png" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon-32x32.png"/><link rel="apple-touch-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/col_apple_icon.png"/><link rel="manifest" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/manifest.json"/><script src="https://cc.cdn.civiccomputing.com/9/cookieControl-9.x.min.js" type="text/javascript"/><script src="/site-elements/js/cookie-control.js" type="text/javascript"/><script>!function(e,t,a,n,g){e[n]=e[n]||[],e[n].push({"gtm.start":(new Date).getTime(),event:"gtm.js"});var m=t.getElementsByTagName(a)[0],r=t.createElemโ€ฆ
CT04warningthe page shows the year 2029 in its text, but nothing on the page states it as the date of the content
What we check
The page carries a date, ideally written into the markup rather than sitting only in the text.
What good looks like
The page carries a date, ideally written into the markup rather than sitting only in the text.
Why it matters
An undated page gives nothing to weigh its age against, so old and new material are treated alike.
What we found on this page
the page shows the year 2029 in its text, but nothing on the page states it as the date of the content
The evidence, taken from the page as served
The head of this page, as served

The head of the page was read for a tag stating the date of the content. The year shown above was found in the page's own text.

<head><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no"/><meta http-equiv="X-UA-Compatible" content="ie=edge"/><meta name="facebook-domain-verification" content="msc65lq1e60kt58y2jkbo2flkhvm4a"/><!--[if IE 11 ]> <meta name="msapplication-config" content="_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/browserconfig.xml" /> <![endif]--><link rel="icon" type="image/x-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon.ico"/><link rel="icon" type="image/png" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon-32x32.png"/><link rel="apple-touch-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/col_apple_icon.png"/><link rel="manifest" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/manifest.json"/><script src="https://cc.cdn.civiccomputing.com/9/cookieControl-9.x.min.js" type="text/javascript"/><script src="/site-elements/js/cookie-control.js" type="text/javascript"/><script>!function(e,t,a,n,g){e[n]=e[n]||[],e[n].push({"gtm.start":(new Date).getTime(),event:"gtm.js"});var m=t.getElementsByTagName(a)[0],r=t.createElemโ€ฆ
AJ05warningno site-search control detected on this page
What we check
Whether a search box for the site is present in the page as it is served.
What good looks like
A search box is present in the served markup, so the site's own content can be queried directly.
Why it matters
With no search box on the page, its links are the only route from here into the rest of the site.
What we found on this page
no site-search control detected on this page
The evidence, taken from the page as served
The head of this page, as served

The page was read for a search box: a search form, a control named for search, or a box labelled as one.

<head><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no"/><meta http-equiv="X-UA-Compatible" content="ie=edge"/><meta name="facebook-domain-verification" content="msc65lq1e60kt58y2jkbo2flkhvm4a"/><!--[if IE 11 ]> <meta name="msapplication-config" content="_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/browserconfig.xml" /> <![endif]--><link rel="icon" type="image/x-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon.ico"/><link rel="icon" type="image/png" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon-32x32.png"/><link rel="apple-touch-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/col_apple_icon.png"/><link rel="manifest" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/manifest.json"/><script src="https://cc.cdn.civiccomputing.com/9/cookieControl-9.x.min.js" type="text/javascript"/><script src="/site-elements/js/cookie-control.js" type="text/javascript"/><script>!function(e,t,a,n,g){e[n]=e[n]||[],e[n].push({"gtm.start":(new Date).getTime(),event:"gtm.js"});var m=t.getElementsByTagName(a)[0],r=t.createElemโ€ฆ
MS13warning1 of 1 iframes untitled
What we check
Each embedded panel on the page carries a title saying what it contains.
What good looks like
Each embedded panel carries a title saying what it contains.
Why it matters
The embedded region stays unnamed, so what it holds is left unstated in the page around it.
What we found on this page
1 of 1 iframes untitled
The evidence, taken from the page as served
The iframes with no title attribute, as served
src=https://www.googletagmanager.com/ns.html?id=GTM-5C7LND
<iframe src="https://www.googletagmanager.com/ns.html?id=GTM-5C7LND" height="0" width="0" style="display:none;visibility:hidden"/>
DS28failone link to sources on other sites was refused when it was checked. The page is still published, but the other site turns away requests that do not come from a person using a browser. It is listed in the view
What we check
For a single page, the share of its links to OTHER sites, sampled, that lead nowhere. The site's own links are assessed separately.
What good looks like
The page's references to other sites open for any reader. Where one refuses or has gone, the page carries the fact itself, shows the reference as plain text rather than as a link, or points to a source that answers.
Why it matters
The outside sources this page offers as support did not answer when they were asked for, so what the page claims is left resting on material that does not come back. In a regulated setting, where a link is carrying a figure or a required statement, that is the difference between a claim that is evidenced and one that is merely asserted.
What we found on this page
one link to sources on other sites was refused when it was checked. The page is still published, but the other site turns away requests that do not come from a person using a browser. It is listed in the view
The evidence, taken from the page as served
The external links checked on this page, with the status each returned

A link that did not open appears here in two forms. A DEAD link points at a page that has gone. A REFUSED link points at a page that is still published, but the other site turns away requests that do not come from a person using a browser, so our request was declined. Both land in the same place: the material this page offers as its support did not come back when it was asked for. The consequence is not a matter of tidiness. Where a link carries the weight of a claim, a figure, a policy or a regulatory statement, and the target does not open, the support behind that claim is missing at the moment it is needed. Three things follow, and each of them costs the organisation. The same fact gets taken from somewhere else, which hands a third party control of how the claim is worded. Or the claim is treated as unsupported and set aside. Or an answer is drawn from what remains on the page, and a partial account is presented as a complete one. A refused link is the worst of the three, because the page still reads as though the evidence sits one step away, so the gap is invisible and the answer carries false confidence. A refusal by another site is still this site's matter to resolve, because this site chose to rest a claim on it. Three practical ways close it. Carry the fact being relied on in the page's own words, so the claim stands without the visit. Keep the reference but stop making it a link, showing the address as plain text, so nothing promises a route that does not open. Or point to a source that answers any reader. Where the reference has to stay live, say beside it what a reader will meet, so no one is sent to a closed door without warning.

Link ยท opens in a new tabStatusResult
www.facebook.com/sharer/sharer.php?u=www.cityoflondon.gov.uk/services/housing-and-homelessness/housing-benefits/emergency-support-scheme400Reachable
twitter.com/intent/tweet?text=www.cityoflondon.gov.uk/services/housing-and-homelessness/housing-benefits/emergency-support-scheme403Access-restricted
www.linkedin.com/shareArticle?mini=true&url=www.cityoflondon.gov.uk/services/housing-and-homelessness/housing-benefits/emergency-support-scheme200Reachable
www.gov.uk/find-local-council200Reachable
www.websitecarbon.com/website/cityoflondon.gov.uk200Reachable
CT34failthe page's own words are thin: 3410 of its 3470 words are shared navigation and footer, so it reads as 99% identical to another page, which a machine can then take as a duplicate and pass over, missing the little content that is its own; the matching page is named in the view
What we check
Whether a page's own words are so few against a large shared navigation and footer that it reads as near-identical to other pages.
What good looks like
A page carries enough of its own words that a shared navigation and footer do not make it read as a copy of other pages.
Why it matters
When shared furniture is most of the text, distinct pages look like copies of each other and the little real content is easily passed over.
What we found on this page
the page's own words are thin: 3410 of its 3470 words are shared navigation and footer, so it reads as 99% identical to another page, which a machine can then take as a duplicate and pass over, missing the little content that is its own; the matching page is named in the view
The evidence, taken from the page as served
This page's own words, lost in shared navigation and footer
Page ยท opens in a new tabOwn wordsChromeReads as identical toShared
www.cityoflondon.gov.uk/services/housing-and-homelessness/housing-benefits/emergency-support-scheme60 of 347098%www.cityoflondon.gov.uk/services/children-and-families/help-with-childcare-costs99%
https://www.cityoflondon.gov.uk/services/education-and-learning/schools/support-with-school-uniforms-free-school-meals-and-more 10.5% Extremely likely 8 out of 44
CheckResultEvidence
DS03failan AI crawler asking for this page is refused by the security layer in front of the site, while an ordinary browser is served, so the page's content never reaches the AI and answers about it are left to memory or guesswork
What we check
The same page loads for a browser but is refused when the request names itself as an AI service.
What good looks like
The page returns the same response to a named AI service as to a browser, with no edge block.
Why it matters
The block sits in front of the site and leaves no trace in its own logs, so the estate is closed off unnoticed.
What we found on this page
an AI crawler asking for this page is refused by the security layer in front of the site, while an ordinary browser is served, so the page's content never reaches the AI and answers about it are left to memory or guesswork
The evidence, taken from the page as served
The estate's edge tested with each AI crawler: a browser is served, the crawlers are refused
Hostwww.cityoflondon.gov.uk · resolves to 172.66.155.113, 104.20.19.80 · Cloudflare Address trailwww.cityoflondon.gov.uk Checked2026-07-31 16:45 UTC · request sent from 10.100.100.212 (our checker)
CrawlerHTTPAnswered inSentReceivedOutcome
Browserthe control · a normal visitor200110 ms239 B196.0 KBServed
GPTBotMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko);...40356 ms224 B5.8 KBRefused
OAI-SearchBotMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko);...40360 ms234 B5.8 KBRefused
ChatGPT-UserMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko);...40358 ms227 B5.8 KBRefused
ClaudeBotMozilla/5.0 (compatible; ClaudeBot/1.0; +claudebot@anthropic.com)40360 ms187 B5.8 KBRefused
Claude-UserMozilla/5.0 (compatible; Claude-User/1.0; +https://www.anthropic.com)40361 ms191 B5.8 KBRefused
Googlebot (Gemini)Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko;...200136 ms263 B196.0 KBServed
GoogleOtherMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko);...200117 ms197 B196.0 KBServed
Bingbot (Copilot)Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko;...200137 ms262 B196.0 KBServed
PerplexityBotMozilla/5.0 (compatible; PerplexityBot/1.0;...403122 ms207 B5.8 KBRefused
Perplexity-UserMozilla/5.0 (compatible; Perplexity-User/1.0;...40363 ms211 B5.8 KBRefused
CCBotCCBot/2.0 (https://commoncrawl.org/faq/)40363 ms162 B5.8 KBRefused
BytespiderMozilla/5.0 (Linux; Android 5.0) AppleWebKit/537.36 (KHTML,...40366 ms270 B5.8 KBRefused
AmazonbotMozilla/5.0 (compatible; Amazonbot/0.1;...40363 ms210 B5.8 KBRefused
GrokBotMozilla/5.0 (compatible; GrokBot/1.0; +https://x.ai)200119 ms174 B196.0 KBServed
Meta-ExternalAgentmeta-externalagent/1.1...40361 ms211 B5.8 KBRefused
CT06warningtitle length 73 chars
What we check
The title's length sits in a usable window, between 10 and 65 characters.
What good looks like
The title's length sits in a usable window, neither too short to say anything nor too long to be cut.
Why it matters
A title outside that window is liable to be rewritten elsewhere, and control of the page's name goes with it.
What we found on this page
title length 73 chars
The evidence, taken from the page as served
The page title, as served
73 characters
<title data-react-helmet="true">Support with school uniforms, free school meals and more - City of London</title>
CT16warningthe page carries no structured data block stating what it is (not required; a hygiene signal)
What we check
The page carries structured data, the machine-readable summary of what it describes.
What good looks like
The page carries structured data summarising what it describes.
Why it matters
Vendors document this as optional rather than required, so its absence is a small forfeit and no more.
What we found on this page
the page carries no structured data block stating what it is (not required; a hygiene signal)
The evidence, taken from the page as served
The head of this page, as served

The page was read for a structured data block describing what the page is.

<head><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no"/><meta http-equiv="X-UA-Compatible" content="ie=edge"/><meta name="facebook-domain-verification" content="msc65lq1e60kt58y2jkbo2flkhvm4a"/><!--[if IE 11 ]> <meta name="msapplication-config" content="_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/browserconfig.xml" /> <![endif]--><link rel="icon" type="image/x-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon.ico"/><link rel="icon" type="image/png" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon-32x32.png"/><link rel="apple-touch-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/col_apple_icon.png"/><link rel="manifest" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/manifest.json"/><script src="https://cc.cdn.civiccomputing.com/9/cookieControl-9.x.min.js" type="text/javascript"/><script src="/site-elements/js/cookie-control.js" type="text/javascript"/><script>!function(e,t,a,n,g){e[n]=e[n]||[],e[n].push({"gtm.start":(new Date).getTime(),event:"gtm.js"});var m=t.getElementsByTagName(a)[0],r=t.createElemโ€ฆ
CT04warningthe page shows the year 2029 in its text, but nothing on the page states it as the date of the content
What we check
The page carries a date, ideally written into the markup rather than sitting only in the text.
What good looks like
The page carries a date, ideally written into the markup rather than sitting only in the text.
Why it matters
An undated page gives nothing to weigh its age against, so old and new material are treated alike.
What we found on this page
the page shows the year 2029 in its text, but nothing on the page states it as the date of the content
The evidence, taken from the page as served
The head of this page, as served

The head of the page was read for a tag stating the date of the content. The year shown above was found in the page's own text.

<head><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no"/><meta http-equiv="X-UA-Compatible" content="ie=edge"/><meta name="facebook-domain-verification" content="msc65lq1e60kt58y2jkbo2flkhvm4a"/><!--[if IE 11 ]> <meta name="msapplication-config" content="_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/browserconfig.xml" /> <![endif]--><link rel="icon" type="image/x-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon.ico"/><link rel="icon" type="image/png" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon-32x32.png"/><link rel="apple-touch-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/col_apple_icon.png"/><link rel="manifest" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/manifest.json"/><script src="https://cc.cdn.civiccomputing.com/9/cookieControl-9.x.min.js" type="text/javascript"/><script src="/site-elements/js/cookie-control.js" type="text/javascript"/><script>!function(e,t,a,n,g){e[n]=e[n]||[],e[n].push({"gtm.start":(new Date).getTime(),event:"gtm.js"});var m=t.getElementsByTagName(a)[0],r=t.createElemโ€ฆ
AJ05warningno site-search control detected on this page
What we check
Whether a search box for the site is present in the page as it is served.
What good looks like
A search box is present in the served markup, so the site's own content can be queried directly.
Why it matters
With no search box on the page, its links are the only route from here into the rest of the site.
What we found on this page
no site-search control detected on this page
The evidence, taken from the page as served
The head of this page, as served

The page was read for a search box: a search form, a control named for search, or a box labelled as one.

<head><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no"/><meta http-equiv="X-UA-Compatible" content="ie=edge"/><meta name="facebook-domain-verification" content="msc65lq1e60kt58y2jkbo2flkhvm4a"/><!--[if IE 11 ]> <meta name="msapplication-config" content="_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/browserconfig.xml" /> <![endif]--><link rel="icon" type="image/x-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon.ico"/><link rel="icon" type="image/png" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon-32x32.png"/><link rel="apple-touch-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/col_apple_icon.png"/><link rel="manifest" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/manifest.json"/><script src="https://cc.cdn.civiccomputing.com/9/cookieControl-9.x.min.js" type="text/javascript"/><script src="/site-elements/js/cookie-control.js" type="text/javascript"/><script>!function(e,t,a,n,g){e[n]=e[n]||[],e[n].push({"gtm.start":(new Date).getTime(),event:"gtm.js"});var m=t.getElementsByTagName(a)[0],r=t.createElemโ€ฆ
MS13warning1 of 1 iframes untitled
What we check
Each embedded panel on the page carries a title saying what it contains.
What good looks like
Each embedded panel carries a title saying what it contains.
Why it matters
The embedded region stays unnamed, so what it holds is left unstated in the page around it.
What we found on this page
1 of 1 iframes untitled
The evidence, taken from the page as served
The iframes with no title attribute, as served
src=https://www.googletagmanager.com/ns.html?id=GTM-5C7LND
<iframe src="https://www.googletagmanager.com/ns.html?id=GTM-5C7LND" height="0" width="0" style="display:none;visibility:hidden"/>
DS28failone link to sources on other sites was refused when it was checked. The page is still published, but the other site turns away requests that do not come from a person using a browser. It is listed in the view
What we check
For a single page, the share of its links to OTHER sites, sampled, that lead nowhere. The site's own links are assessed separately.
What good looks like
The page's references to other sites open for any reader. Where one refuses or has gone, the page carries the fact itself, shows the reference as plain text rather than as a link, or points to a source that answers.
Why it matters
The outside sources this page offers as support did not answer when they were asked for, so what the page claims is left resting on material that does not come back. In a regulated setting, where a link is carrying a figure or a required statement, that is the difference between a claim that is evidenced and one that is merely asserted.
What we found on this page
one link to sources on other sites was refused when it was checked. The page is still published, but the other site turns away requests that do not come from a person using a browser. It is listed in the view
The evidence, taken from the page as served
The external links checked on this page, with the status each returned

A link that did not open appears here in two forms. A DEAD link points at a page that has gone. A REFUSED link points at a page that is still published, but the other site turns away requests that do not come from a person using a browser, so our request was declined. Both land in the same place: the material this page offers as its support did not come back when it was asked for. The consequence is not a matter of tidiness. Where a link carries the weight of a claim, a figure, a policy or a regulatory statement, and the target does not open, the support behind that claim is missing at the moment it is needed. Three things follow, and each of them costs the organisation. The same fact gets taken from somewhere else, which hands a third party control of how the claim is worded. Or the claim is treated as unsupported and set aside. Or an answer is drawn from what remains on the page, and a partial account is presented as a complete one. A refused link is the worst of the three, because the page still reads as though the evidence sits one step away, so the gap is invisible and the answer carries false confidence. A refusal by another site is still this site's matter to resolve, because this site chose to rest a claim on it. Three practical ways close it. Carry the fact being relied on in the page's own words, so the claim stands without the visit. Keep the reference but stop making it a link, showing the address as plain text, so nothing promises a route that does not open. Or point to a source that answers any reader. Where the reference has to stay live, say beside it what a reader will meet, so no one is sent to a closed door without warning.

Link ยท opens in a new tabStatusResult
www.facebook.com/sharer/sharer.php?u=www.cityoflondon.gov.uk/services/education-and-learning/schools/support-with-school-uniforms-free-school-meals-and-more400Reachable
twitter.com/intent/tweet?text=www.cityoflondon.gov.uk/services/education-and-learning/schools/support-with-school-uniforms-free-school-meals-and-more403Access-restricted
www.linkedin.com/shareArticle?mini=true&url=www.cityoflondon.gov.uk/services/education-and-learning/schools/support-with-school-uniforms-free-school-meals-and-more200Reachable
www.gov.uk/guidance/free-meals-in-further-education-funded-institutions-guide-for-the-2021-to-2022-academic-year200Reachable
www.gov.uk/1619-bursary-fund200Reachable
CT34failthe page's own words are thin: 3410 of its 3571 words are shared navigation and footer, so it reads as 97% identical to another page, which a machine can then take as a duplicate and pass over, missing the little content that is its own; the matching page is named in the view
What we check
Whether a page's own words are so few against a large shared navigation and footer that it reads as near-identical to other pages.
What good looks like
A page carries enough of its own words that a shared navigation and footer do not make it read as a copy of other pages.
Why it matters
When shared furniture is most of the text, distinct pages look like copies of each other and the little real content is easily passed over.
What we found on this page
the page's own words are thin: 3410 of its 3571 words are shared navigation and footer, so it reads as 97% identical to another page, which a machine can then take as a duplicate and pass over, missing the little content that is its own; the matching page is named in the view
The evidence, taken from the page as served
This page's own words, lost in shared navigation and footer
Page ยท opens in a new tabOwn wordsChromeReads as identical toShared
www.cityoflondon.gov.uk/services/education-and-learning/schools/support-with-school-uniforms-free-school-meals-and-more161 of 357195%www.cityoflondon.gov.uk/footer/feedback97%
https://www.cityoflondon.gov.uk/services/housing-and-homelessness/housing-benefits 10.4% Extremely likely 9 out of 44
CheckResultEvidence
DS03failan AI crawler asking for this page is refused by the security layer in front of the site, while an ordinary browser is served, so the page's content never reaches the AI and answers about it are left to memory or guesswork
What we check
The same page loads for a browser but is refused when the request names itself as an AI service.
What good looks like
The page returns the same response to a named AI service as to a browser, with no edge block.
Why it matters
The block sits in front of the site and leaves no trace in its own logs, so the estate is closed off unnoticed.
What we found on this page
an AI crawler asking for this page is refused by the security layer in front of the site, while an ordinary browser is served, so the page's content never reaches the AI and answers about it are left to memory or guesswork
The evidence, taken from the page as served
The estate's edge tested with each AI crawler: a browser is served, the crawlers are refused
Hostwww.cityoflondon.gov.uk · resolves to 172.66.155.113, 104.20.19.80 · Cloudflare Address trailwww.cityoflondon.gov.uk Checked2026-07-31 16:45 UTC · request sent from 10.100.100.212 (our checker)
CrawlerHTTPAnswered inSentReceivedOutcome
Browserthe control · a normal visitor200110 ms239 B196.0 KBServed
GPTBotMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko);...40356 ms224 B5.8 KBRefused
OAI-SearchBotMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko);...40360 ms234 B5.8 KBRefused
ChatGPT-UserMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko);...40358 ms227 B5.8 KBRefused
ClaudeBotMozilla/5.0 (compatible; ClaudeBot/1.0; +claudebot@anthropic.com)40360 ms187 B5.8 KBRefused
Claude-UserMozilla/5.0 (compatible; Claude-User/1.0; +https://www.anthropic.com)40361 ms191 B5.8 KBRefused
Googlebot (Gemini)Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko;...200136 ms263 B196.0 KBServed
GoogleOtherMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko);...200117 ms197 B196.0 KBServed
Bingbot (Copilot)Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko;...200137 ms262 B196.0 KBServed
PerplexityBotMozilla/5.0 (compatible; PerplexityBot/1.0;...403122 ms207 B5.8 KBRefused
Perplexity-UserMozilla/5.0 (compatible; Perplexity-User/1.0;...40363 ms211 B5.8 KBRefused
CCBotCCBot/2.0 (https://commoncrawl.org/faq/)40363 ms162 B5.8 KBRefused
BytespiderMozilla/5.0 (Linux; Android 5.0) AppleWebKit/537.36 (KHTML,...40366 ms270 B5.8 KBRefused
AmazonbotMozilla/5.0 (compatible; Amazonbot/0.1;...40363 ms210 B5.8 KBRefused
GrokBotMozilla/5.0 (compatible; GrokBot/1.0; +https://x.ai)200119 ms174 B196.0 KBServed
Meta-ExternalAgentmeta-externalagent/1.1...40361 ms211 B5.8 KBRefused
CT16warningthe page carries no structured data block stating what it is (not required; a hygiene signal)
What we check
The page carries structured data, the machine-readable summary of what it describes.
What good looks like
The page carries structured data summarising what it describes.
Why it matters
Vendors document this as optional rather than required, so its absence is a small forfeit and no more.
What we found on this page
the page carries no structured data block stating what it is (not required; a hygiene signal)
The evidence, taken from the page as served
The head of this page, as served

The page was read for a structured data block describing what the page is.

<head><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no"/><meta http-equiv="X-UA-Compatible" content="ie=edge"/><meta name="facebook-domain-verification" content="msc65lq1e60kt58y2jkbo2flkhvm4a"/><!--[if IE 11 ]> <meta name="msapplication-config" content="_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/browserconfig.xml" /> <![endif]--><link rel="icon" type="image/x-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon.ico"/><link rel="icon" type="image/png" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon-32x32.png"/><link rel="apple-touch-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/col_apple_icon.png"/><link rel="manifest" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/manifest.json"/><script src="https://cc.cdn.civiccomputing.com/9/cookieControl-9.x.min.js" type="text/javascript"/><script src="/site-elements/js/cookie-control.js" type="text/javascript"/><script>!function(e,t,a,n,g){e[n]=e[n]||[],e[n].push({"gtm.start":(new Date).getTime(),event:"gtm.js"});var m=t.getElementsByTagName(a)[0],r=t.createElemโ€ฆ
CT04warningthe page shows the year 2029 in its text, but nothing on the page states it as the date of the content
What we check
The page carries a date, ideally written into the markup rather than sitting only in the text.
What good looks like
The page carries a date, ideally written into the markup rather than sitting only in the text.
Why it matters
An undated page gives nothing to weigh its age against, so old and new material are treated alike.
What we found on this page
the page shows the year 2029 in its text, but nothing on the page states it as the date of the content
The evidence, taken from the page as served
The head of this page, as served

The head of the page was read for a tag stating the date of the content. The year shown above was found in the page's own text.

<head><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no"/><meta http-equiv="X-UA-Compatible" content="ie=edge"/><meta name="facebook-domain-verification" content="msc65lq1e60kt58y2jkbo2flkhvm4a"/><!--[if IE 11 ]> <meta name="msapplication-config" content="_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/browserconfig.xml" /> <![endif]--><link rel="icon" type="image/x-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon.ico"/><link rel="icon" type="image/png" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon-32x32.png"/><link rel="apple-touch-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/col_apple_icon.png"/><link rel="manifest" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/manifest.json"/><script src="https://cc.cdn.civiccomputing.com/9/cookieControl-9.x.min.js" type="text/javascript"/><script src="/site-elements/js/cookie-control.js" type="text/javascript"/><script>!function(e,t,a,n,g){e[n]=e[n]||[],e[n].push({"gtm.start":(new Date).getTime(),event:"gtm.js"});var m=t.getElementsByTagName(a)[0],r=t.createElemโ€ฆ
AR13warningonly 260 characters of this page read as its own content, so either the page is thin or its own words cannot be told apart from the parts repeated across the site
What we check
Whether the page's main content is marked off from the navigation and footer around it.
What good looks like
A main or article region marks the primary content off from the navigation and footer around it.
Why it matters
Pulling the page's text returns menus and legal footers mixed with the substance, so the answer arrives buried in noise.
What we found on this page
only 260 characters of this page read as its own content, so either the page is thin or its own words cannot be told apart from the parts repeated across the site
The evidence, taken from the page as served
The main text extracted from the page, as served
260 characters
ServicesHousing and HomelessnessHousing BenefitsHousing BenefitsServicesHousing and HomelessnessHousing BenefitsBenefit fraudClaiming benefits and Universal CreditContact the Benefits teamEmergency support schemeFurther discretionary support with housing costs
CT24warningthe page's own content runs to 260 characters
What we check
The page holds enough main text to be substantive, measured against a 400 character floor.
What good looks like
The page holds enough main text to be substantive.
Why it matters
A page of a few sentences offers almost nothing to quote, so it adds little beyond its own existence.
What we found on this page
the page's own content runs to 260 characters
The evidence, taken from the page as served
How much of this page is its own content

Counted from the page as served, before any script runs. The page's own content is the part it marks out as its main content; where it marks out none, the whole of its text is counted.

What was measuredAs measured on this page
The page's own content260 characters
All the text on the page1341 characters
The point we measure against400 characters
CT13warningmain content is 19% of the page's text; the shared furniture around it dominates what is read out
What we check
How much of the page's text sits in the main content region rather than in surrounding furniture.
What good looks like
Most of the page's text sits in its main content region rather than in the surrounding furniture.
Why it matters
When the main region is a small slice of the page, what is pulled out is mostly menus and boilerplate.
What we found on this page
main content is 19% of the page's text; the shared furniture around it dominates what is read out
The evidence, taken from the page as served
How much of this page is its own content

Counted from the page as served, before any script runs. The rest is the menus, header and foot-of-page text that appear on other pages of the site as well.

What was measuredAs measured on this page
The page's own content260 characters
All the text on the page1341 characters
The page's own share of it19%
The point we measure against25%
AJ05warningno site-search control detected on this page
What we check
Whether a search box for the site is present in the page as it is served.
What good looks like
A search box is present in the served markup, so the site's own content can be queried directly.
Why it matters
With no search box on the page, its links are the only route from here into the rest of the site.
What we found on this page
no site-search control detected on this page
The evidence, taken from the page as served
The head of this page, as served

The page was read for a search box: a search form, a control named for search, or a box labelled as one.

<head><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no"/><meta http-equiv="X-UA-Compatible" content="ie=edge"/><meta name="facebook-domain-verification" content="msc65lq1e60kt58y2jkbo2flkhvm4a"/><!--[if IE 11 ]> <meta name="msapplication-config" content="_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/browserconfig.xml" /> <![endif]--><link rel="icon" type="image/x-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon.ico"/><link rel="icon" type="image/png" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon-32x32.png"/><link rel="apple-touch-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/col_apple_icon.png"/><link rel="manifest" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/manifest.json"/><script src="https://cc.cdn.civiccomputing.com/9/cookieControl-9.x.min.js" type="text/javascript"/><script src="/site-elements/js/cookie-control.js" type="text/javascript"/><script>!function(e,t,a,n,g){e[n]=e[n]||[],e[n].push({"gtm.start":(new Date).getTime(),event:"gtm.js"});var m=t.getElementsByTagName(a)[0],r=t.createElemโ€ฆ
MS13warning1 of 1 iframes untitled
What we check
Each embedded panel on the page carries a title saying what it contains.
What good looks like
Each embedded panel carries a title saying what it contains.
Why it matters
The embedded region stays unnamed, so what it holds is left unstated in the page around it.
What we found on this page
1 of 1 iframes untitled
The evidence, taken from the page as served
The iframes with no title attribute, as served
src=https://www.googletagmanager.com/ns.html?id=GTM-5C7LND
<iframe src="https://www.googletagmanager.com/ns.html?id=GTM-5C7LND" height="0" width="0" style="display:none;visibility:hidden"/>
CT34failthe page's own words are thin: 3410 of its 3442 words are shared navigation and footer, so it reads as 99% identical to another page, which a machine can then take as a duplicate and pass over, missing the little content that is its own; the matching page is named in the view
What we check
Whether a page's own words are so few against a large shared navigation and footer that it reads as near-identical to other pages.
What good looks like
A page carries enough of its own words that a shared navigation and footer do not make it read as a copy of other pages.
Why it matters
When shared furniture is most of the text, distinct pages look like copies of each other and the little real content is easily passed over.
What we found on this page
the page's own words are thin: 3410 of its 3442 words are shared navigation and footer, so it reads as 99% identical to another page, which a machine can then take as a duplicate and pass over, missing the little content that is its own; the matching page is named in the view
The evidence, taken from the page as served
This page's own words, lost in shared navigation and footer
Page ยท opens in a new tabOwn wordsChromeReads as identical toShared
www.cityoflondon.gov.uk/services/housing-and-homelessness/housing-benefits32 of 344299%www.cityoflondon.gov.uk/services/getting-help-with-the-cost-of-living99%
https://www.cityoflondon.gov.uk/services/environmental-health/climate-action/climate-action-strategy 10.6% Extremely likely 8 out of 44
CheckResultEvidence
DS03failan AI crawler asking for this page is refused by the security layer in front of the site, while an ordinary browser is served, so the page's content never reaches the AI and answers about it are left to memory or guesswork
What we check
The same page loads for a browser but is refused when the request names itself as an AI service.
What good looks like
The page returns the same response to a named AI service as to a browser, with no edge block.
Why it matters
The block sits in front of the site and leaves no trace in its own logs, so the estate is closed off unnoticed.
What we found on this page
an AI crawler asking for this page is refused by the security layer in front of the site, while an ordinary browser is served, so the page's content never reaches the AI and answers about it are left to memory or guesswork
The evidence, taken from the page as served
The estate's edge tested with each AI crawler: a browser is served, the crawlers are refused
Hostwww.cityoflondon.gov.uk · resolves to 172.66.155.113, 104.20.19.80 · Cloudflare Address trailwww.cityoflondon.gov.uk Checked2026-07-31 16:45 UTC · request sent from 10.100.100.212 (our checker)
CrawlerHTTPAnswered inSentReceivedOutcome
Browserthe control · a normal visitor200110 ms239 B196.0 KBServed
GPTBotMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko);...40356 ms224 B5.8 KBRefused
OAI-SearchBotMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko);...40360 ms234 B5.8 KBRefused
ChatGPT-UserMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko);...40358 ms227 B5.8 KBRefused
ClaudeBotMozilla/5.0 (compatible; ClaudeBot/1.0; +claudebot@anthropic.com)40360 ms187 B5.8 KBRefused
Claude-UserMozilla/5.0 (compatible; Claude-User/1.0; +https://www.anthropic.com)40361 ms191 B5.8 KBRefused
Googlebot (Gemini)Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko;...200136 ms263 B196.0 KBServed
GoogleOtherMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko);...200117 ms197 B196.0 KBServed
Bingbot (Copilot)Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko;...200137 ms262 B196.0 KBServed
PerplexityBotMozilla/5.0 (compatible; PerplexityBot/1.0;...403122 ms207 B5.8 KBRefused
Perplexity-UserMozilla/5.0 (compatible; Perplexity-User/1.0;...40363 ms211 B5.8 KBRefused
CCBotCCBot/2.0 (https://commoncrawl.org/faq/)40363 ms162 B5.8 KBRefused
BytespiderMozilla/5.0 (Linux; Android 5.0) AppleWebKit/537.36 (KHTML,...40366 ms270 B5.8 KBRefused
AmazonbotMozilla/5.0 (compatible; Amazonbot/0.1;...40363 ms210 B5.8 KBRefused
GrokBotMozilla/5.0 (compatible; GrokBot/1.0; +https://x.ai)200119 ms174 B196.0 KBServed
Meta-ExternalAgentmeta-externalagent/1.1...40361 ms211 B5.8 KBRefused
CT16warningthe page carries no structured data block stating what it is (not required; a hygiene signal)
What we check
The page carries structured data, the machine-readable summary of what it describes.
What good looks like
The page carries structured data summarising what it describes.
Why it matters
Vendors document this as optional rather than required, so its absence is a small forfeit and no more.
What we found on this page
the page carries no structured data block stating what it is (not required; a hygiene signal)
The evidence, taken from the page as served
The head of this page, as served

The page was read for a structured data block describing what the page is.

<head><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no"/><meta http-equiv="X-UA-Compatible" content="ie=edge"/><meta name="facebook-domain-verification" content="msc65lq1e60kt58y2jkbo2flkhvm4a"/><!--[if IE 11 ]> <meta name="msapplication-config" content="_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/browserconfig.xml" /> <![endif]--><link rel="icon" type="image/x-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon.ico"/><link rel="icon" type="image/png" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon-32x32.png"/><link rel="apple-touch-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/col_apple_icon.png"/><link rel="manifest" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/manifest.json"/><script src="https://cc.cdn.civiccomputing.com/9/cookieControl-9.x.min.js" type="text/javascript"/><script src="/site-elements/js/cookie-control.js" type="text/javascript"/><script>!function(e,t,a,n,g){e[n]=e[n]||[],e[n].push({"gtm.start":(new Date).getTime(),event:"gtm.js"});var m=t.getElementsByTagName(a)[0],r=t.createElemโ€ฆ
CT04warningthe page shows the year 2029 in its text, but nothing on the page states it as the date of the content
What we check
The page carries a date, ideally written into the markup rather than sitting only in the text.
What good looks like
The page carries a date, ideally written into the markup rather than sitting only in the text.
Why it matters
An undated page gives nothing to weigh its age against, so old and new material are treated alike.
What we found on this page
the page shows the year 2029 in its text, but nothing on the page states it as the date of the content
The evidence, taken from the page as served
The head of this page, as served

The head of the page was read for a tag stating the date of the content. The year shown above was found in the page's own text.

<head><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no"/><meta http-equiv="X-UA-Compatible" content="ie=edge"/><meta name="facebook-domain-verification" content="msc65lq1e60kt58y2jkbo2flkhvm4a"/><!--[if IE 11 ]> <meta name="msapplication-config" content="_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/browserconfig.xml" /> <![endif]--><link rel="icon" type="image/x-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon.ico"/><link rel="icon" type="image/png" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon-32x32.png"/><link rel="apple-touch-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/col_apple_icon.png"/><link rel="manifest" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/manifest.json"/><script src="https://cc.cdn.civiccomputing.com/9/cookieControl-9.x.min.js" type="text/javascript"/><script src="/site-elements/js/cookie-control.js" type="text/javascript"/><script>!function(e,t,a,n,g){e[n]=e[n]||[],e[n].push({"gtm.start":(new Date).getTime(),event:"gtm.js"});var m=t.getElementsByTagName(a)[0],r=t.createElemโ€ฆ
AJ05warningno site-search control detected on this page
What we check
Whether a search box for the site is present in the page as it is served.
What good looks like
A search box is present in the served markup, so the site's own content can be queried directly.
Why it matters
With no search box on the page, its links are the only route from here into the rest of the site.
What we found on this page
no site-search control detected on this page
The evidence, taken from the page as served
The head of this page, as served

The page was read for a search box: a search form, a control named for search, or a box labelled as one.

<head><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no"/><meta http-equiv="X-UA-Compatible" content="ie=edge"/><meta name="facebook-domain-verification" content="msc65lq1e60kt58y2jkbo2flkhvm4a"/><!--[if IE 11 ]> <meta name="msapplication-config" content="_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/browserconfig.xml" /> <![endif]--><link rel="icon" type="image/x-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon.ico"/><link rel="icon" type="image/png" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon-32x32.png"/><link rel="apple-touch-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/col_apple_icon.png"/><link rel="manifest" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/manifest.json"/><script src="https://cc.cdn.civiccomputing.com/9/cookieControl-9.x.min.js" type="text/javascript"/><script src="/site-elements/js/cookie-control.js" type="text/javascript"/><script>!function(e,t,a,n,g){e[n]=e[n]||[],e[n].push({"gtm.start":(new Date).getTime(),event:"gtm.js"});var m=t.getElementsByTagName(a)[0],r=t.createElemโ€ฆ
MS13warning1 of 2 iframes untitled
What we check
Each embedded panel on the page carries a title saying what it contains.
What good looks like
Each embedded panel carries a title saying what it contains.
Why it matters
The embedded region stays unnamed, so what it holds is left unstated in the page around it.
What we found on this page
1 of 2 iframes untitled
The evidence, taken from the page as served
The iframes with no title attribute, as served
src=https://www.googletagmanager.com/ns.html?id=GTM-5C7LND
<iframe src="https://www.googletagmanager.com/ns.html?id=GTM-5C7LND" height="0" width="0" style="display:none;visibility:hidden"/>
MS14warning1 video(s) on the page carry no captions of their own; a written transcript on the page holds the words, but not as timed text with the video
What we check
Whether each video carries captions of its own, timed text on the video itself, judged together with whether the page holds a written transcript.
What good looks like
Captions carried on the video. A WARNING means the video has no captions but a written transcript on the page holds the words. A FAIL means neither exists, so nothing spoken is available as text in any form; that total absence is marked here once, not spread across two findings.
Why it matters
Spoken content that exists only as sound is invisible to a reader, human or machine: nothing said in the video can be found, read or quoted.
What we found on this page
1 video(s) on the page carry no captions of their own; a written transcript on the page holds the words, but not as timed text with the video
The evidence, taken from the page as served
Each video on the page, as served: its code, source file and caption track
Source file https://www.youtube.com/embed/GQ8m7RLxD8Y?si=cnjSQhFiHGMNd_Qm  ·  Captions none
<iframe width="560" height="315" src="https://www.youtube.com/embed/GQ8m7RLxD8Y?si=cnjSQhFiHGMNd_Qm" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen=""/>
DS28failone link to sources on other sites was refused when it was checked. The page is still published, but the other site turns away requests that do not come from a person using a browser. It is listed in the view
What we check
For a single page, the share of its links to OTHER sites, sampled, that lead nowhere. The site's own links are assessed separately.
What good looks like
The page's references to other sites open for any reader. Where one refuses or has gone, the page carries the fact itself, shows the reference as plain text rather than as a link, or points to a source that answers.
Why it matters
The outside sources this page offers as support did not answer when they were asked for, so what the page claims is left resting on material that does not come back. In a regulated setting, where a link is carrying a figure or a required statement, that is the difference between a claim that is evidenced and one that is merely asserted.
What we found on this page
one link to sources on other sites was refused when it was checked. The page is still published, but the other site turns away requests that do not come from a person using a browser. It is listed in the view
The evidence, taken from the page as served
The external links checked on this page, with the status each returned

A link that did not open appears here in two forms. A DEAD link points at a page that has gone. A REFUSED link points at a page that is still published, but the other site turns away requests that do not come from a person using a browser, so our request was declined. Both land in the same place: the material this page offers as its support did not come back when it was asked for. The consequence is not a matter of tidiness. Where a link carries the weight of a claim, a figure, a policy or a regulatory statement, and the target does not open, the support behind that claim is missing at the moment it is needed. Three things follow, and each of them costs the organisation. The same fact gets taken from somewhere else, which hands a third party control of how the claim is worded. Or the claim is treated as unsupported and set aside. Or an answer is drawn from what remains on the page, and a partial account is presented as a complete one. A refused link is the worst of the three, because the page still reads as though the evidence sits one step away, so the gap is invisible and the answer carries false confidence. A refusal by another site is still this site's matter to resolve, because this site chose to rest a claim on it. Three practical ways close it. Carry the fact being relied on in the page's own words, so the claim stands without the visit. Keep the reference but stop making it a link, showing the address as plain text, so nothing promises a route that does not open. Or point to a source that answers any reader. Where the reference has to stay live, say beside it what a reader will meet, so no one is sent to a closed door without warning.

Link ยท opens in a new tabStatusResult
www.facebook.com/sharer/sharer.php?u=www.cityoflondon.gov.uk/services/environmental-health/climate-action/climate-action-strategy400Reachable
twitter.com/intent/tweet?text=www.cityoflondon.gov.uk/services/environmental-health/climate-action/climate-action-strategy403Access-restricted
www.linkedin.com/shareArticle?mini=true&url=www.cityoflondon.gov.uk/services/environmental-health/climate-action/climate-action-strategy200Reachable
app.powerbi.com/view?r=eyJrIjoiOGVjNmNmYjItZWQwZS00ZDUyLTg3ZTctYWY2MGQ1YzQ4NTE3IiwidCI6IjlmZTY1OGNkLWIzY2QtNDA1Ni04NTE5LTMyMjJmZmE5NmJlOCJ9200Reachable
eepurl.com/h8ZxYj200Reachable
CT34failthe page's own words are thin: 3410 of its 3517 words are shared navigation and footer, so it reads as 98% identical to another page, which a machine can then take as a duplicate and pass over, missing the little content that is its own; the matching page is named in the view
What we check
Whether a page's own words are so few against a large shared navigation and footer that it reads as near-identical to other pages.
What good looks like
A page carries enough of its own words that a shared navigation and footer do not make it read as a copy of other pages.
Why it matters
When shared furniture is most of the text, distinct pages look like copies of each other and the little real content is easily passed over.
What we found on this page
the page's own words are thin: 3410 of its 3517 words are shared navigation and footer, so it reads as 98% identical to another page, which a machine can then take as a duplicate and pass over, missing the little content that is its own; the matching page is named in the view
The evidence, taken from the page as served
This page's own words, lost in shared navigation and footer
Page ยท opens in a new tabOwn wordsChromeReads as identical toShared
www.cityoflondon.gov.uk/services/environmental-health/climate-action/climate-action-strategy107 of 351797%www.cityoflondon.gov.uk/services/getting-help-with-the-cost-of-living/help-with-health-and-wellbeing98%
https://www.cityoflondon.gov.uk/services/environmental-health/climate-action/our-climate-action-progress 10.6% Extremely likely 8 out of 44
CheckResultEvidence
DS03failan AI crawler asking for this page is refused by the security layer in front of the site, while an ordinary browser is served, so the page's content never reaches the AI and answers about it are left to memory or guesswork
What we check
The same page loads for a browser but is refused when the request names itself as an AI service.
What good looks like
The page returns the same response to a named AI service as to a browser, with no edge block.
Why it matters
The block sits in front of the site and leaves no trace in its own logs, so the estate is closed off unnoticed.
What we found on this page
an AI crawler asking for this page is refused by the security layer in front of the site, while an ordinary browser is served, so the page's content never reaches the AI and answers about it are left to memory or guesswork
The evidence, taken from the page as served
The estate's edge tested with each AI crawler: a browser is served, the crawlers are refused
Hostwww.cityoflondon.gov.uk · resolves to 172.66.155.113, 104.20.19.80 · Cloudflare Address trailwww.cityoflondon.gov.uk Checked2026-07-31 16:45 UTC · request sent from 10.100.100.212 (our checker)
CrawlerHTTPAnswered inSentReceivedOutcome
Browserthe control · a normal visitor200110 ms239 B196.0 KBServed
GPTBotMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko);...40356 ms224 B5.8 KBRefused
OAI-SearchBotMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko);...40360 ms234 B5.8 KBRefused
ChatGPT-UserMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko);...40358 ms227 B5.8 KBRefused
ClaudeBotMozilla/5.0 (compatible; ClaudeBot/1.0; +claudebot@anthropic.com)40360 ms187 B5.8 KBRefused
Claude-UserMozilla/5.0 (compatible; Claude-User/1.0; +https://www.anthropic.com)40361 ms191 B5.8 KBRefused
Googlebot (Gemini)Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko;...200136 ms263 B196.0 KBServed
GoogleOtherMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko);...200117 ms197 B196.0 KBServed
Bingbot (Copilot)Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko;...200137 ms262 B196.0 KBServed
PerplexityBotMozilla/5.0 (compatible; PerplexityBot/1.0;...403122 ms207 B5.8 KBRefused
Perplexity-UserMozilla/5.0 (compatible; Perplexity-User/1.0;...40363 ms211 B5.8 KBRefused
CCBotCCBot/2.0 (https://commoncrawl.org/faq/)40363 ms162 B5.8 KBRefused
BytespiderMozilla/5.0 (Linux; Android 5.0) AppleWebKit/537.36 (KHTML,...40366 ms270 B5.8 KBRefused
AmazonbotMozilla/5.0 (compatible; Amazonbot/0.1;...40363 ms210 B5.8 KBRefused
GrokBotMozilla/5.0 (compatible; GrokBot/1.0; +https://x.ai)200119 ms174 B196.0 KBServed
Meta-ExternalAgentmeta-externalagent/1.1...40361 ms211 B5.8 KBRefused
CT16warningthe page carries no structured data block stating what it is (not required; a hygiene signal)
What we check
The page carries structured data, the machine-readable summary of what it describes.
What good looks like
The page carries structured data summarising what it describes.
Why it matters
Vendors document this as optional rather than required, so its absence is a small forfeit and no more.
What we found on this page
the page carries no structured data block stating what it is (not required; a hygiene signal)
The evidence, taken from the page as served
The head of this page, as served

The page was read for a structured data block describing what the page is.

<head><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no"/><meta http-equiv="X-UA-Compatible" content="ie=edge"/><meta name="facebook-domain-verification" content="msc65lq1e60kt58y2jkbo2flkhvm4a"/><!--[if IE 11 ]> <meta name="msapplication-config" content="_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/browserconfig.xml" /> <![endif]--><link rel="icon" type="image/x-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon.ico"/><link rel="icon" type="image/png" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon-32x32.png"/><link rel="apple-touch-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/col_apple_icon.png"/><link rel="manifest" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/manifest.json"/><script src="https://cc.cdn.civiccomputing.com/9/cookieControl-9.x.min.js" type="text/javascript"/><script src="/site-elements/js/cookie-control.js" type="text/javascript"/><script>!function(e,t,a,n,g){e[n]=e[n]||[],e[n].push({"gtm.start":(new Date).getTime(),event:"gtm.js"});var m=t.getElementsByTagName(a)[0],r=t.createElemโ€ฆ
CT04warningthe page shows the year 2029 in its text, but nothing on the page states it as the date of the content
What we check
The page carries a date, ideally written into the markup rather than sitting only in the text.
What good looks like
The page carries a date, ideally written into the markup rather than sitting only in the text.
Why it matters
An undated page gives nothing to weigh its age against, so old and new material are treated alike.
What we found on this page
the page shows the year 2029 in its text, but nothing on the page states it as the date of the content
The evidence, taken from the page as served
The head of this page, as served

The head of the page was read for a tag stating the date of the content. The year shown above was found in the page's own text.

<head><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no"/><meta http-equiv="X-UA-Compatible" content="ie=edge"/><meta name="facebook-domain-verification" content="msc65lq1e60kt58y2jkbo2flkhvm4a"/><!--[if IE 11 ]> <meta name="msapplication-config" content="_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/browserconfig.xml" /> <![endif]--><link rel="icon" type="image/x-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon.ico"/><link rel="icon" type="image/png" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon-32x32.png"/><link rel="apple-touch-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/col_apple_icon.png"/><link rel="manifest" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/manifest.json"/><script src="https://cc.cdn.civiccomputing.com/9/cookieControl-9.x.min.js" type="text/javascript"/><script src="/site-elements/js/cookie-control.js" type="text/javascript"/><script>!function(e,t,a,n,g){e[n]=e[n]||[],e[n].push({"gtm.start":(new Date).getTime(),event:"gtm.js"});var m=t.getElementsByTagName(a)[0],r=t.createElemโ€ฆ
AJ05warningno site-search control detected on this page
What we check
Whether a search box for the site is present in the page as it is served.
What good looks like
A search box is present in the served markup, so the site's own content can be queried directly.
Why it matters
With no search box on the page, its links are the only route from here into the rest of the site.
What we found on this page
no site-search control detected on this page
The evidence, taken from the page as served
The head of this page, as served

The page was read for a search box: a search form, a control named for search, or a box labelled as one.

<head><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no"/><meta http-equiv="X-UA-Compatible" content="ie=edge"/><meta name="facebook-domain-verification" content="msc65lq1e60kt58y2jkbo2flkhvm4a"/><!--[if IE 11 ]> <meta name="msapplication-config" content="_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/browserconfig.xml" /> <![endif]--><link rel="icon" type="image/x-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon.ico"/><link rel="icon" type="image/png" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon-32x32.png"/><link rel="apple-touch-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/col_apple_icon.png"/><link rel="manifest" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/manifest.json"/><script src="https://cc.cdn.civiccomputing.com/9/cookieControl-9.x.min.js" type="text/javascript"/><script src="/site-elements/js/cookie-control.js" type="text/javascript"/><script>!function(e,t,a,n,g){e[n]=e[n]||[],e[n].push({"gtm.start":(new Date).getTime(),event:"gtm.js"});var m=t.getElementsByTagName(a)[0],r=t.createElemโ€ฆ
MS13warning1 of 3 iframes untitled
What we check
Each embedded panel on the page carries a title saying what it contains.
What good looks like
Each embedded panel carries a title saying what it contains.
Why it matters
The embedded region stays unnamed, so what it holds is left unstated in the page around it.
What we found on this page
1 of 3 iframes untitled
The evidence, taken from the page as served
The iframes with no title attribute, as served
src=https://www.googletagmanager.com/ns.html?id=GTM-5C7LND
<iframe src="https://www.googletagmanager.com/ns.html?id=GTM-5C7LND" height="0" width="0" style="display:none;visibility:hidden"/>
MS14warning1 video(s) on the page carry no captions of their own; a written transcript on the page holds the words, but not as timed text with the video
What we check
Whether each video carries captions of its own, timed text on the video itself, judged together with whether the page holds a written transcript.
What good looks like
Captions carried on the video. A WARNING means the video has no captions but a written transcript on the page holds the words. A FAIL means neither exists, so nothing spoken is available as text in any form; that total absence is marked here once, not spread across two findings.
Why it matters
Spoken content that exists only as sound is invisible to a reader, human or machine: nothing said in the video can be found, read or quoted.
What we found on this page
1 video(s) on the page carry no captions of their own; a written transcript on the page holds the words, but not as timed text with the video
The evidence, taken from the page as served
Each video on the page, as served: its code, source file and caption track
Source file https://www.youtube.com/embed/IUT2oI6nvuE?si=euLFliuwUNxx13x6  ·  Captions none
<iframe width="560" height="315" src="https://www.youtube.com/embed/IUT2oI6nvuE?si=euLFliuwUNxx13x6" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen=""/>
DS28failone link to sources on other sites was refused when it was checked. The page is still published, but the other site turns away requests that do not come from a person using a browser. It is listed in the view
What we check
For a single page, the share of its links to OTHER sites, sampled, that lead nowhere. The site's own links are assessed separately.
What good looks like
The page's references to other sites open for any reader. Where one refuses or has gone, the page carries the fact itself, shows the reference as plain text rather than as a link, or points to a source that answers.
Why it matters
The outside sources this page offers as support did not answer when they were asked for, so what the page claims is left resting on material that does not come back. In a regulated setting, where a link is carrying a figure or a required statement, that is the difference between a claim that is evidenced and one that is merely asserted.
What we found on this page
one link to sources on other sites was refused when it was checked. The page is still published, but the other site turns away requests that do not come from a person using a browser. It is listed in the view
The evidence, taken from the page as served
The external links checked on this page, with the status each returned

A link that did not open appears here in two forms. A DEAD link points at a page that has gone. A REFUSED link points at a page that is still published, but the other site turns away requests that do not come from a person using a browser, so our request was declined. Both land in the same place: the material this page offers as its support did not come back when it was asked for. The consequence is not a matter of tidiness. Where a link carries the weight of a claim, a figure, a policy or a regulatory statement, and the target does not open, the support behind that claim is missing at the moment it is needed. Three things follow, and each of them costs the organisation. The same fact gets taken from somewhere else, which hands a third party control of how the claim is worded. Or the claim is treated as unsupported and set aside. Or an answer is drawn from what remains on the page, and a partial account is presented as a complete one. A refused link is the worst of the three, because the page still reads as though the evidence sits one step away, so the gap is invisible and the answer carries false confidence. A refusal by another site is still this site's matter to resolve, because this site chose to rest a claim on it. Three practical ways close it. Carry the fact being relied on in the page's own words, so the claim stands without the visit. Keep the reference but stop making it a link, showing the address as plain text, so nothing promises a route that does not open. Or point to a source that answers any reader. Where the reference has to stay live, say beside it what a reader will meet, so no one is sent to a closed door without warning.

Link ยท opens in a new tabStatusResult
www.facebook.com/sharer/sharer.php?u=www.cityoflondon.gov.uk/services/environmental-health/climate-action/our-climate-action-progress400Reachable
twitter.com/intent/tweet?text=www.cityoflondon.gov.uk/services/environmental-health/climate-action/our-climate-action-progress403Access-restricted
www.linkedin.com/shareArticle?mini=true&url=www.cityoflondon.gov.uk/services/environmental-health/climate-action/our-climate-action-progress200Reachable
app.powerbi.com/view?r=eyJrIjoiOGVjNmNmYjItZWQwZS00ZDUyLTg3ZTctYWY2MGQ1YzQ4NTE3IiwidCI6IjlmZTY1OGNkLWIzY2QtNDA1Ni04NTE5LTMyMjJmZmE5NmJlOCJ9200Reachable
www.achilles.com/200Reachable
CT34failthe page's own words are thin: 3410 of its 3571 words are shared navigation and footer, so it reads as 96% identical to another page, which a machine can then take as a duplicate and pass over, missing the little content that is its own; the matching page is named in the view
What we check
Whether a page's own words are so few against a large shared navigation and footer that it reads as near-identical to other pages.
What good looks like
A page carries enough of its own words that a shared navigation and footer do not make it read as a copy of other pages.
Why it matters
When shared furniture is most of the text, distinct pages look like copies of each other and the little real content is easily passed over.
What we found on this page
the page's own words are thin: 3410 of its 3571 words are shared navigation and footer, so it reads as 96% identical to another page, which a machine can then take as a duplicate and pass over, missing the little content that is its own; the matching page is named in the view
The evidence, taken from the page as served
This page's own words, lost in shared navigation and footer
Page ยท opens in a new tabOwn wordsChromeReads as identical toShared
www.cityoflondon.gov.uk/services/environmental-health/climate-action/our-climate-action-progress161 of 357195%www.cityoflondon.gov.uk/services/getting-help-with-the-cost-of-living/help-with-health-and-wellbeing96%
https://www.cityoflondon.gov.uk/supporting-businesses/business-support-and-advice 9.9% Extremely likely 7 out of 44
CheckResultEvidence
DS03failan AI crawler asking for this page is refused by the security layer in front of the site, while an ordinary browser is served, so the page's content never reaches the AI and answers about it are left to memory or guesswork
What we check
The same page loads for a browser but is refused when the request names itself as an AI service.
What good looks like
The page returns the same response to a named AI service as to a browser, with no edge block.
Why it matters
The block sits in front of the site and leaves no trace in its own logs, so the estate is closed off unnoticed.
What we found on this page
an AI crawler asking for this page is refused by the security layer in front of the site, while an ordinary browser is served, so the page's content never reaches the AI and answers about it are left to memory or guesswork
The evidence, taken from the page as served
The estate's edge tested with each AI crawler: a browser is served, the crawlers are refused
Hostwww.cityoflondon.gov.uk · resolves to 172.66.155.113, 104.20.19.80 · Cloudflare Address trailwww.cityoflondon.gov.uk Checked2026-07-31 16:45 UTC · request sent from 10.100.100.212 (our checker)
CrawlerHTTPAnswered inSentReceivedOutcome
Browserthe control · a normal visitor200110 ms239 B196.0 KBServed
GPTBotMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko);...40356 ms224 B5.8 KBRefused
OAI-SearchBotMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko);...40360 ms234 B5.8 KBRefused
ChatGPT-UserMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko);...40358 ms227 B5.8 KBRefused
ClaudeBotMozilla/5.0 (compatible; ClaudeBot/1.0; +claudebot@anthropic.com)40360 ms187 B5.8 KBRefused
Claude-UserMozilla/5.0 (compatible; Claude-User/1.0; +https://www.anthropic.com)40361 ms191 B5.8 KBRefused
Googlebot (Gemini)Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko;...200136 ms263 B196.0 KBServed
GoogleOtherMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko);...200117 ms197 B196.0 KBServed
Bingbot (Copilot)Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko;...200137 ms262 B196.0 KBServed
PerplexityBotMozilla/5.0 (compatible; PerplexityBot/1.0;...403122 ms207 B5.8 KBRefused
Perplexity-UserMozilla/5.0 (compatible; Perplexity-User/1.0;...40363 ms211 B5.8 KBRefused
CCBotCCBot/2.0 (https://commoncrawl.org/faq/)40363 ms162 B5.8 KBRefused
BytespiderMozilla/5.0 (Linux; Android 5.0) AppleWebKit/537.36 (KHTML,...40366 ms270 B5.8 KBRefused
AmazonbotMozilla/5.0 (compatible; Amazonbot/0.1;...40363 ms210 B5.8 KBRefused
GrokBotMozilla/5.0 (compatible; GrokBot/1.0; +https://x.ai)200119 ms174 B196.0 KBServed
Meta-ExternalAgentmeta-externalagent/1.1...40361 ms211 B5.8 KBRefused
CT16warningthe page carries no structured data block stating what it is (not required; a hygiene signal)
What we check
The page carries structured data, the machine-readable summary of what it describes.
What good looks like
The page carries structured data summarising what it describes.
Why it matters
Vendors document this as optional rather than required, so its absence is a small forfeit and no more.
What we found on this page
the page carries no structured data block stating what it is (not required; a hygiene signal)
The evidence, taken from the page as served
The head of this page, as served

The page was read for a structured data block describing what the page is.

<head><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no"/><meta http-equiv="X-UA-Compatible" content="ie=edge"/><meta name="facebook-domain-verification" content="msc65lq1e60kt58y2jkbo2flkhvm4a"/><!--[if IE 11 ]> <meta name="msapplication-config" content="_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/browserconfig.xml" /> <![endif]--><link rel="icon" type="image/x-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon.ico"/><link rel="icon" type="image/png" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon-32x32.png"/><link rel="apple-touch-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/col_apple_icon.png"/><link rel="manifest" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/manifest.json"/><script src="https://cc.cdn.civiccomputing.com/9/cookieControl-9.x.min.js" type="text/javascript"/><script src="/site-elements/js/cookie-control.js" type="text/javascript"/><script>!function(e,t,a,n,g){e[n]=e[n]||[],e[n].push({"gtm.start":(new Date).getTime(),event:"gtm.js"});var m=t.getElementsByTagName(a)[0],r=t.createElemโ€ฆ
CT04warningthe page shows the year 2029 in its text, but nothing on the page states it as the date of the content
What we check
The page carries a date, ideally written into the markup rather than sitting only in the text.
What good looks like
The page carries a date, ideally written into the markup rather than sitting only in the text.
Why it matters
An undated page gives nothing to weigh its age against, so old and new material are treated alike.
What we found on this page
the page shows the year 2029 in its text, but nothing on the page states it as the date of the content
The evidence, taken from the page as served
The head of this page, as served

The head of the page was read for a tag stating the date of the content. The year shown above was found in the page's own text.

<head><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no"/><meta http-equiv="X-UA-Compatible" content="ie=edge"/><meta name="facebook-domain-verification" content="msc65lq1e60kt58y2jkbo2flkhvm4a"/><!--[if IE 11 ]> <meta name="msapplication-config" content="_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/browserconfig.xml" /> <![endif]--><link rel="icon" type="image/x-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon.ico"/><link rel="icon" type="image/png" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon-32x32.png"/><link rel="apple-touch-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/col_apple_icon.png"/><link rel="manifest" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/manifest.json"/><script src="https://cc.cdn.civiccomputing.com/9/cookieControl-9.x.min.js" type="text/javascript"/><script src="/site-elements/js/cookie-control.js" type="text/javascript"/><script>!function(e,t,a,n,g){e[n]=e[n]||[],e[n].push({"gtm.start":(new Date).getTime(),event:"gtm.js"});var m=t.getElementsByTagName(a)[0],r=t.createElemโ€ฆ
AJ05warningno site-search control detected on this page
What we check
Whether a search box for the site is present in the page as it is served.
What good looks like
A search box is present in the served markup, so the site's own content can be queried directly.
Why it matters
With no search box on the page, its links are the only route from here into the rest of the site.
What we found on this page
no site-search control detected on this page
The evidence, taken from the page as served
The head of this page, as served

The page was read for a search box: a search form, a control named for search, or a box labelled as one.

<head><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no"/><meta http-equiv="X-UA-Compatible" content="ie=edge"/><meta name="facebook-domain-verification" content="msc65lq1e60kt58y2jkbo2flkhvm4a"/><!--[if IE 11 ]> <meta name="msapplication-config" content="_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/browserconfig.xml" /> <![endif]--><link rel="icon" type="image/x-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon.ico"/><link rel="icon" type="image/png" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon-32x32.png"/><link rel="apple-touch-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/col_apple_icon.png"/><link rel="manifest" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/manifest.json"/><script src="https://cc.cdn.civiccomputing.com/9/cookieControl-9.x.min.js" type="text/javascript"/><script src="/site-elements/js/cookie-control.js" type="text/javascript"/><script>!function(e,t,a,n,g){e[n]=e[n]||[],e[n].push({"gtm.start":(new Date).getTime(),event:"gtm.js"});var m=t.getElementsByTagName(a)[0],r=t.createElemโ€ฆ
MS13warning1 of 1 iframes untitled
What we check
Each embedded panel on the page carries a title saying what it contains.
What good looks like
Each embedded panel carries a title saying what it contains.
Why it matters
The embedded region stays unnamed, so what it holds is left unstated in the page around it.
What we found on this page
1 of 1 iframes untitled
The evidence, taken from the page as served
The iframes with no title attribute, as served
src=https://www.googletagmanager.com/ns.html?id=GTM-5C7LND
<iframe src="https://www.googletagmanager.com/ns.html?id=GTM-5C7LND" height="0" width="0" style="display:none;visibility:hidden"/>
DS28fail24% of the links to sources on other sites did not open when they were checked. 2 were refused, meaning the page is still published but the other site turns away requests that do not come from a person using a browser. That is 2 of the 5 checked, which stand for the 11 links to other sites on this page
What we check
For a single page, the share of its links to OTHER sites, sampled, that lead nowhere. The site's own links are assessed separately.
What good looks like
The page's references to other sites open for any reader. Where one refuses or has gone, the page carries the fact itself, shows the reference as plain text rather than as a link, or points to a source that answers.
Why it matters
The outside sources this page offers as support did not answer when they were asked for, so what the page claims is left resting on material that does not come back. In a regulated setting, where a link is carrying a figure or a required statement, that is the difference between a claim that is evidenced and one that is merely asserted.
What we found on this page
24% of the links to sources on other sites did not open when they were checked. 2 were refused, meaning the page is still published but the other site turns away requests that do not come from a person using a browser. That is 2 of the 5 checked, which stand for the 11 links to other sites on this page
The evidence, taken from the page as served
The external links checked on this page, with the status each returned

A link that did not open appears here in two forms. A DEAD link points at a page that has gone. A REFUSED link points at a page that is still published, but the other site turns away requests that do not come from a person using a browser, so our request was declined. Both land in the same place: the material this page offers as its support did not come back when it was asked for. The consequence is not a matter of tidiness. Where a link carries the weight of a claim, a figure, a policy or a regulatory statement, and the target does not open, the support behind that claim is missing at the moment it is needed. Three things follow, and each of them costs the organisation. The same fact gets taken from somewhere else, which hands a third party control of how the claim is worded. Or the claim is treated as unsupported and set aside. Or an answer is drawn from what remains on the page, and a partial account is presented as a complete one. A refused link is the worst of the three, because the page still reads as though the evidence sits one step away, so the gap is invisible and the answer carries false confidence. A refusal by another site is still this site's matter to resolve, because this site chose to rest a claim on it. Three practical ways close it. Carry the fact being relied on in the page's own words, so the claim stands without the visit. Keep the reference but stop making it a link, showing the address as plain text, so nothing promises a route that does not open. Or point to a source that answers any reader. Where the reference has to stay live, say beside it what a reader will meet, so no one is sent to a closed door without warning.

Link ยท opens in a new tabStatusResult
theheartofthecity.com/200Reachable
www.growlondonlocal.london/403Access-restricted
capitalenterprise.org/200Reachable
digitalboost.org.uk/200Reachable
www.enterprisenation.com/403Access-restricted
CT34failthe page's own words are thin: 3410 of its 3479 words are shared navigation and footer, so it reads as 98% identical to another page, which a machine can then take as a duplicate and pass over, missing the little content that is its own; the matching page is named in the view
What we check
Whether a page's own words are so few against a large shared navigation and footer that it reads as near-identical to other pages.
What good looks like
A page carries enough of its own words that a shared navigation and footer do not make it read as a copy of other pages.
Why it matters
When shared furniture is most of the text, distinct pages look like copies of each other and the little real content is easily passed over.
What we found on this page
the page's own words are thin: 3410 of its 3479 words are shared navigation and footer, so it reads as 98% identical to another page, which a machine can then take as a duplicate and pass over, missing the little content that is its own; the matching page is named in the view
The evidence, taken from the page as served
This page's own words, lost in shared navigation and footer
Page ยท opens in a new tabOwn wordsChromeReads as identical toShared
www.cityoflondon.gov.uk/supporting-businesses/business-support-and-advice69 of 347998%www.cityoflondon.gov.uk/services/housing-and-homelessness/housing-benefits98%
https://www.cityoflondon.gov.uk/services/getting-help-with-the-cost-of-living/help-with-health-and-wellbeing 10.6% Extremely likely 7 out of 44
CheckResultEvidence
DS03failan AI crawler asking for this page is refused by the security layer in front of the site, while an ordinary browser is served, so the page's content never reaches the AI and answers about it are left to memory or guesswork
What we check
The same page loads for a browser but is refused when the request names itself as an AI service.
What good looks like
The page returns the same response to a named AI service as to a browser, with no edge block.
Why it matters
The block sits in front of the site and leaves no trace in its own logs, so the estate is closed off unnoticed.
What we found on this page
an AI crawler asking for this page is refused by the security layer in front of the site, while an ordinary browser is served, so the page's content never reaches the AI and answers about it are left to memory or guesswork
The evidence, taken from the page as served
The estate's edge tested with each AI crawler: a browser is served, the crawlers are refused
Hostwww.cityoflondon.gov.uk · resolves to 172.66.155.113, 104.20.19.80 · Cloudflare Address trailwww.cityoflondon.gov.uk Checked2026-07-31 16:45 UTC · request sent from 10.100.100.212 (our checker)
CrawlerHTTPAnswered inSentReceivedOutcome
Browserthe control · a normal visitor200110 ms239 B196.0 KBServed
GPTBotMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko);...40356 ms224 B5.8 KBRefused
OAI-SearchBotMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko);...40360 ms234 B5.8 KBRefused
ChatGPT-UserMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko);...40358 ms227 B5.8 KBRefused
ClaudeBotMozilla/5.0 (compatible; ClaudeBot/1.0; +claudebot@anthropic.com)40360 ms187 B5.8 KBRefused
Claude-UserMozilla/5.0 (compatible; Claude-User/1.0; +https://www.anthropic.com)40361 ms191 B5.8 KBRefused
Googlebot (Gemini)Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko;...200136 ms263 B196.0 KBServed
GoogleOtherMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko);...200117 ms197 B196.0 KBServed
Bingbot (Copilot)Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko;...200137 ms262 B196.0 KBServed
PerplexityBotMozilla/5.0 (compatible; PerplexityBot/1.0;...403122 ms207 B5.8 KBRefused
Perplexity-UserMozilla/5.0 (compatible; Perplexity-User/1.0;...40363 ms211 B5.8 KBRefused
CCBotCCBot/2.0 (https://commoncrawl.org/faq/)40363 ms162 B5.8 KBRefused
BytespiderMozilla/5.0 (Linux; Android 5.0) AppleWebKit/537.36 (KHTML,...40366 ms270 B5.8 KBRefused
AmazonbotMozilla/5.0 (compatible; Amazonbot/0.1;...40363 ms210 B5.8 KBRefused
GrokBotMozilla/5.0 (compatible; GrokBot/1.0; +https://x.ai)200119 ms174 B196.0 KBServed
Meta-ExternalAgentmeta-externalagent/1.1...40361 ms211 B5.8 KBRefused
CT16warningthe page carries no structured data block stating what it is (not required; a hygiene signal)
What we check
The page carries structured data, the machine-readable summary of what it describes.
What good looks like
The page carries structured data summarising what it describes.
Why it matters
Vendors document this as optional rather than required, so its absence is a small forfeit and no more.
What we found on this page
the page carries no structured data block stating what it is (not required; a hygiene signal)
The evidence, taken from the page as served
The head of this page, as served

The page was read for a structured data block describing what the page is.

<head><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no"/><meta http-equiv="X-UA-Compatible" content="ie=edge"/><meta name="facebook-domain-verification" content="msc65lq1e60kt58y2jkbo2flkhvm4a"/><!--[if IE 11 ]> <meta name="msapplication-config" content="_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/browserconfig.xml" /> <![endif]--><link rel="icon" type="image/x-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon.ico"/><link rel="icon" type="image/png" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon-32x32.png"/><link rel="apple-touch-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/col_apple_icon.png"/><link rel="manifest" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/manifest.json"/><script src="https://cc.cdn.civiccomputing.com/9/cookieControl-9.x.min.js" type="text/javascript"/><script src="/site-elements/js/cookie-control.js" type="text/javascript"/><script>!function(e,t,a,n,g){e[n]=e[n]||[],e[n].push({"gtm.start":(new Date).getTime(),event:"gtm.js"});var m=t.getElementsByTagName(a)[0],r=t.createElemโ€ฆ
CT04warningthe page shows the year 2029 in its text, but nothing on the page states it as the date of the content
What we check
The page carries a date, ideally written into the markup rather than sitting only in the text.
What good looks like
The page carries a date, ideally written into the markup rather than sitting only in the text.
Why it matters
An undated page gives nothing to weigh its age against, so old and new material are treated alike.
What we found on this page
the page shows the year 2029 in its text, but nothing on the page states it as the date of the content
The evidence, taken from the page as served
The head of this page, as served

The head of the page was read for a tag stating the date of the content. The year shown above was found in the page's own text.

<head><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no"/><meta http-equiv="X-UA-Compatible" content="ie=edge"/><meta name="facebook-domain-verification" content="msc65lq1e60kt58y2jkbo2flkhvm4a"/><!--[if IE 11 ]> <meta name="msapplication-config" content="_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/browserconfig.xml" /> <![endif]--><link rel="icon" type="image/x-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon.ico"/><link rel="icon" type="image/png" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon-32x32.png"/><link rel="apple-touch-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/col_apple_icon.png"/><link rel="manifest" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/manifest.json"/><script src="https://cc.cdn.civiccomputing.com/9/cookieControl-9.x.min.js" type="text/javascript"/><script src="/site-elements/js/cookie-control.js" type="text/javascript"/><script>!function(e,t,a,n,g){e[n]=e[n]||[],e[n].push({"gtm.start":(new Date).getTime(),event:"gtm.js"});var m=t.getElementsByTagName(a)[0],r=t.createElemโ€ฆ
AJ05warningno site-search control detected on this page
What we check
Whether a search box for the site is present in the page as it is served.
What good looks like
A search box is present in the served markup, so the site's own content can be queried directly.
Why it matters
With no search box on the page, its links are the only route from here into the rest of the site.
What we found on this page
no site-search control detected on this page
The evidence, taken from the page as served
The head of this page, as served

The page was read for a search box: a search form, a control named for search, or a box labelled as one.

<head><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no"/><meta http-equiv="X-UA-Compatible" content="ie=edge"/><meta name="facebook-domain-verification" content="msc65lq1e60kt58y2jkbo2flkhvm4a"/><!--[if IE 11 ]> <meta name="msapplication-config" content="_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/browserconfig.xml" /> <![endif]--><link rel="icon" type="image/x-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon.ico"/><link rel="icon" type="image/png" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/favicon-32x32.png"/><link rel="apple-touch-icon" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/col_apple_icon.png"/><link rel="manifest" href="/_IHS62Q_ff4a8f4f-f506-4eb1-b9c9-87c6a5e720af/static/img/favicon/manifest.json"/><script src="https://cc.cdn.civiccomputing.com/9/cookieControl-9.x.min.js" type="text/javascript"/><script src="/site-elements/js/cookie-control.js" type="text/javascript"/><script>!function(e,t,a,n,g){e[n]=e[n]||[],e[n].push({"gtm.start":(new Date).getTime(),event:"gtm.js"});var m=t.getElementsByTagName(a)[0],r=t.createElemโ€ฆ
MS13warning1 of 1 iframes untitled
What we check
Each embedded panel on the page carries a title saying what it contains.
What good looks like
Each embedded panel carries a title saying what it contains.
Why it matters
The embedded region stays unnamed, so what it holds is left unstated in the page around it.
What we found on this page
1 of 1 iframes untitled
The evidence, taken from the page as served
The iframes with no title attribute, as served
src=https://www.googletagmanager.com/ns.html?id=GTM-5C7LND
<iframe src="https://www.googletagmanager.com/ns.html?id=GTM-5C7LND" height="0" width="0" style="display:none;visibility:hidden"/>
DS28failone link to sources on other sites was refused when it was checked. The page is still published, but the other site turns away requests that do not come from a person using a browser. It is listed in the view
What we check
For a single page, the share of its links to OTHER sites, sampled, that lead nowhere. The site's own links are assessed separately.
What good looks like
The page's references to other sites open for any reader. Where one refuses or has gone, the page carries the fact itself, shows the reference as plain text rather than as a link, or points to a source that answers.
Why it matters
The outside sources this page offers as support did not answer when they were asked for, so what the page claims is left resting on material that does not come back. In a regulated setting, where a link is carrying a figure or a required statement, that is the difference between a claim that is evidenced and one that is merely asserted.
What we found on this page
one link to sources on other sites was refused when it was checked. The page is still published, but the other site turns away requests that do not come from a person using a browser. It is listed in the view
The evidence, taken from the page as served
The external links checked on this page, with the status each returned

A link that did not open appears here in two forms. A DEAD link points at a page that has gone. A REFUSED link points at a page that is still published, but the other site turns away requests that do not come from a person using a browser, so our request was declined. Both land in the same place: the material this page offers as its support did not come back when it was asked for. The consequence is not a matter of tidiness. Where a link carries the weight of a claim, a figure, a policy or a regulatory statement, and the target does not open, the support behind that claim is missing at the moment it is needed. Three things follow, and each of them costs the organisation. The same fact gets taken from somewhere else, which hands a third party control of how the claim is worded. Or the claim is treated as unsupported and set aside. Or an answer is drawn from what remains on the page, and a partial account is presented as a complete one. A refused link is the worst of the three, because the page still reads as though the evidence sits one step away, so the gap is invisible and the answer carries false confidence. A refusal by another site is still this site's matter to resolve, because this site chose to rest a claim on it. Three practical ways close it. Carry the fact being relied on in the page's own words, so the claim stands without the visit. Keep the reference but stop making it a link, showing the address as plain text, so nothing promises a route that does not open. Or point to a source that answers any reader. Where the reference has to stay live, say beside it what a reader will meet, so no one is sent to a closed door without warning.

Link ยท opens in a new tabStatusResult
www.facebook.com/sharer/sharer.php?u=www.cityoflondon.gov.uk/services/getting-help-with-the-cost-of-living/help-with-health-and-wellbeing400Reachable
twitter.com/intent/tweet?text=www.cityoflondon.gov.uk/services/getting-help-with-the-cost-of-living/help-with-health-and-wellbeing403Access-restricted
www.linkedin.com/shareArticle?mini=true&url=www.cityoflondon.gov.uk/services/getting-help-with-the-cost-of-living/help-with-health-and-wellbeing200Reachable
www.websitecarbon.com/website/cityoflondon.gov.uk200Reachable
sitemorse.com/index/uk-local-government/2025-q3200Reachable
CT34failthe page's own words are thin: 3410 of its 3460 words are shared navigation and footer, so it reads as 99% identical to another page, which a machine can then take as a duplicate and pass over, missing the little content that is its own; the matching page is named in the view
What we check
Whether a page's own words are so few against a large shared navigation and footer that it reads as near-identical to other pages.
What good looks like
A page carries enough of its own words that a shared navigation and footer do not make it read as a copy of other pages.
Why it matters
When shared furniture is most of the text, distinct pages look like copies of each other and the little real content is easily passed over.
What we found on this page
the page's own words are thin: 3410 of its 3460 words are shared navigation and footer, so it reads as 99% identical to another page, which a machine can then take as a duplicate and pass over, missing the little content that is its own; the matching page is named in the view
The evidence, taken from the page as served
This page's own words, lost in shared navigation and footer
Page ยท opens in a new tabOwn wordsChromeReads as identical toShared
www.cityoflondon.gov.uk/services/getting-help-with-the-cost-of-living/help-with-health-and-wellbeing50 of 346099%www.cityoflondon.gov.uk/about-us/councillors-committees-meetings99%
PDF documents 5 documents

The first documents discovered on the estate, scored separately from pages.

https://www.cityoflondon.gov.uk/assets/about-us/voting-elections/Court-of-Aldermen-2025-Update-v13-AA-High-Res.pdf 27.3% Very likely 7 out of 28
Document information
TitleCourt of Aldermen 2025/26
AuthorCity of London
PDF version, pages, size1.7 ยท 50 pages ยท 39169 KB
Found onhttps://www.cityoflondon.gov.uk/about-us/councillors-committees-meetings
CheckResultEvidence
DS29fail11 of 15 AI crawlers asking for this document are refused by the security layer in front of the document host, while an ordinary browser is served, so the document is closed to nearly all AI systems and their answers about it are left to memory or guesswork.
What we check
The documents load for a browser but are refused when the request names itself as an AI service, tested on the host that actually serves them (often separate from the pages).
What good looks like
The document host returns the same response to a named AI service as to a browser, with no edge block.
Why it matters
The document is refused to AI crawlers at the edge, so its contents never reach the systems that answer about it, and what they state about it is left to guesswork.
What we found on this page
11 of 15 AI crawlers asking for this document are refused by the security layer in front of the document host, while an ordinary browser is served, so the document is closed to nearly all AI systems and their answers about it are left to memory or guesswork.
The evidence, taken from the page as served
Each crawler's own request to this document, and the status it received
CrawlerUser-agent string it sentStatusResult
Browseryour default visitorMozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36200Served · the control
GPTBotMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko); compatible; GPTBot/1.1; +https://openai.com/gptbot403Blocked
OAI-SearchBotMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko); compatible; OAI-SearchBot/1.0; +https://openai.com/searchbot403Blocked
ChatGPT-UserMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko); compatible; ChatGPT-User/1.0; +https://openai.com/bot403Blocked
ClaudeBotMozilla/5.0 (compatible; ClaudeBot/1.0; +claudebot@anthropic.com)403Blocked
Claude-UserMozilla/5.0 (compatible; Claude-User/1.0; +https://www.anthropic.com)403Blocked
Googlebot (Gemini)Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; Googlebot/2.1; +http://www.google.com/bot.html) Chrome/125.0.0.0 Safari/537.36200Served
GoogleOtherMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko); compatible; GoogleOther200Served
Bingbot (Copilot)Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; bingbot/2.0; +http://www.bing.com/bingbot.htm) Chrome/125.0.0.0 Safari/537.36200Served
PerplexityBotMozilla/5.0 (compatible; PerplexityBot/1.0; +https://www.perplexity.ai/perplexitybot)403Blocked
Perplexity-UserMozilla/5.0 (compatible; Perplexity-User/1.0; +https://www.perplexity.ai/perplexity-user)403Blocked
CCBotCCBot/2.0 (https://commoncrawl.org/faq/)403Blocked
BytespiderMozilla/5.0 (Linux; Android 5.0) AppleWebKit/537.36 (KHTML, like Gecko) Mobile Safari/537.36 (compatible; Bytespider; spider-feedback@bytedance.com)403Blocked
AmazonbotMozilla/5.0 (compatible; Amazonbot/0.1; +https://developer.amazon.com/support/amazonbot)403Blocked
GrokBotMozilla/5.0 (compatible; GrokBot/1.0; +https://x.ai)200Served
Meta-ExternalAgentmeta-externalagent/1.1 (+https://developers.facebook.com/docs/sharing/webmasters/crawler)403Blocked
PD19warningthe document is large (39169 KB); very large files risk being only partly read, so later sections may be missed
What we check
The size of the file, and whether it passes the point where large documents risk partial processing.
What good looks like
The file sits within the size where documents process in full.
Why it matters
A very large file is at risk of being handled only in part, leaving later material out of what comes back.
What we found on this page
the document is large (39169 KB); very large files risk being only partly read, so later sections may be missed
The evidence, taken from the page as served
How large this document is

Measured from the file as the site served it.

What was measuredAs measured on this page
The size of the file39169 KB
The point we measure against10240 KB
Pages in the document50
PD02warning1 of the first 8 of 50 pages are page images with little or no readable text behind them
What we check
Pages that are photographs or scans of a document rather than text held as characters.
What good looks like
The document is text held as characters, not a photograph or scan.
Why it matters
A scan holds its words as picture marks, so recovering them needs image to text conversion, which introduces errors.
What we found on this page
1 of the first 8 of 50 pages are page images with little or no readable text behind them
The evidence, taken from the page as served
This document's properties, as recorded in the file

The file's pages were read for text behind the page image.

What was measuredAs measured on this page
File nameCourt-of-Aldermen-2025-Update-v13-AA-High-Res.pdf
TitleCourt of Aldermen 2025/26
AuthorCity of London
Date created2025-11-25 09:34
Date last changed2026-03-04 20:44
Made withAdobe InDesign 21.0 (Macintosh)
Pages50
Size39169 KB
PD15warningthe image-only pages hold no text; their content would have to be read off the images first (a step known as OCR), and that step is not part of ordinary reading
What we check
Whether the words exist as characters, or only as marks in an image that must be converted first.
What good looks like
The words exist as characters, not only as marks in an image that must be converted first.
Why it matters
Content read back out of a picture arrives with conversion errors, so numbers and names come through altered.
What we found on this page
the image-only pages hold no text; their content would have to be read off the images first (a step known as OCR), and that step is not part of ordinary reading
The evidence, taken from the page as served
This document's properties, as recorded in the file

The file's pages were read for stored text.

What was measuredAs measured on this page
File nameCourt-of-Aldermen-2025-Update-v13-AA-High-Res.pdf
TitleCourt of Aldermen 2025/26
AuthorCity of London
Date created2025-11-25 09:34
Date last changed2026-03-04 20:44
Made withAdobe InDesign 21.0 (Macintosh)
Pages50
Size39169 KB
PD11failno headings come through in the first page's text, so it reads as one undivided block with nothing to mark where its sections begin
What we check
Whether headings on the document's first page are still recognisable once the text is pulled out.
What good looks like
Headings on the first page stay recognisable once the text is pulled out.
Why it matters
With no headings to divide it the document reads as one undivided block, so a passage loses the section it sat in.
What we found on this page
no headings come through in the first page's text, so it reads as one undivided block with nothing to mark where its sections begin
The evidence, taken from the page as served
The first page's text as it reads out, with no headings to be found
page 1, as it reads out
Court of 
Aldermen 
2025/26
PD28warning1 of 5 fonts in the document do not record which character each shape stands for, so some of the text may come out garbled
What we check
Fonts that carry no map turning their shapes back into actual letters, across the sampled pages.
What good looks like
The document's fonts carry the map turning their shapes back into letters.
Why it matters
Without that map the text comes out as the wrong characters, so words and figures are wrong rather than missing.
What we found on this page
1 of 5 fonts in the document do not record which character each shape stands for, so some of the text may come out garbled
The evidence, taken from the page as served
The fonts whose text has no character map, and where each is used

A font stores shapes. The map from those shapes back to real characters is what lets the words be read out of the file. Without it the shapes still print correctly on paper, so the document looks perfect, while the text taken from it comes out as the wrong characters. Carrying the font inside the document and recording that map are two separate things: a font can be carried in full and still record no map, and that is the more serious case, because nothing looks wrong at any point and the wrong characters appear only once the document is read by machine. Each font below states which of the two applies to it.

FontTypeCarried in the fileCharacter mapUsed on
CalibriTrueTypeYesMissingpage 3
PD29warningthe document contains open-action, so what is read out as text may not match what a person sees on the page
What we check
Scripts, automatic actions and switchable content layers held inside the document.
What good looks like
The document holds no scripts, automatic actions or switchable content layers.
Why it matters
When content sits on hidden or switchable layers, the text taken from the file differs from the page as it appears.
What we found on this page
the document contains open-action, so what is read out as text may not match what a person sees on the page
The evidence, taken from the page as served
This document's properties, as recorded in the file

The file was read for content that changes or is layered over the page.

What was measuredAs measured on this page
File nameCourt-of-Aldermen-2025-Update-v13-AA-High-Res.pdf
TitleCourt of Aldermen 2025/26
AuthorCity of London
Date created2025-11-25 09:34
Date last changed2026-03-04 20:44
Made withAdobe InDesign 21.0 (Macintosh)
Pages50
Size39169 KB
PD25alertthe same content is not published as an ordinary web page, only as this PDF, which is a harder format to read reliably. This is an alert, not a fault in the document.
What we check
Whether the same content is also published as an ordinary web page, not only as a download.
What good looks like
The same content is also published as an ordinary web page, not only as a download.
Why it matters
Without a page version the content exists only in document form, where its structure is far more fragile.
What we found on this page
the same content is not published as an ordinary web page, only as this PDF, which is a harder format to read reliably. This is an alert, not a fault in the document.
The evidence, taken from the page as served
Where an ordinary web page of this content was looked for

Each address below was asked for. A companion page is also matched by a title matching the document's own.

What was measuredAs measured on this page
The document's own addresshttps://www.cityoflondon.gov.uk/assets/about-us/voting-elections/Court-of-Aldermen-2025-Update-v13-AA-High-Res.pdf
Also asked forhttps://www.cityoflondon.gov.uk/assets/about-us/voting-elections/Court-of-Aldermen-2025-Update-v13-AA-High-Res.html
Also asked forhttps://www.cityoflondon.gov.uk/assets/about-us/voting-elections/Court-of-Aldermen-2025-Update-v13-AA-High-Res.htm
A page with a matching titlenot found
https://www.cityoflondon.gov.uk/assets/Services-DCCS/Modern-Slavery-Statement.pdf 31.8% Very likely 4 out of 29
Document information
TitleCity of London Corporation Modern Slavery Statement
AuthorSlatter, Emily
PDF version, pages, size1.6 ยท 18 pages ยท 286 KB
Found onhttps://www.cityoflondon.gov.uk/supporting-businesses/tenders-and-procurement/modern-slavery-statement
CheckResultEvidence
DS29fail11 of 15 AI crawlers asking for this document are refused by the security layer in front of the document host, while an ordinary browser is served, so the document is closed to nearly all AI systems and their answers about it are left to memory or guesswork.
What we check
The documents load for a browser but are refused when the request names itself as an AI service, tested on the host that actually serves them (often separate from the pages).
What good looks like
The document host returns the same response to a named AI service as to a browser, with no edge block.
Why it matters
The document is refused to AI crawlers at the edge, so its contents never reach the systems that answer about it, and what they state about it is left to guesswork.
What we found on this page
11 of 15 AI crawlers asking for this document are refused by the security layer in front of the document host, while an ordinary browser is served, so the document is closed to nearly all AI systems and their answers about it are left to memory or guesswork.
The evidence, taken from the page as served
Each crawler's own request to this document, and the status it received
CrawlerUser-agent string it sentStatusResult
Browseryour default visitorMozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36200Served · the control
GPTBotMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko); compatible; GPTBot/1.1; +https://openai.com/gptbot403Blocked
OAI-SearchBotMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko); compatible; OAI-SearchBot/1.0; +https://openai.com/searchbot403Blocked
ChatGPT-UserMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko); compatible; ChatGPT-User/1.0; +https://openai.com/bot403Blocked
ClaudeBotMozilla/5.0 (compatible; ClaudeBot/1.0; +claudebot@anthropic.com)403Blocked
Claude-UserMozilla/5.0 (compatible; Claude-User/1.0; +https://www.anthropic.com)403Blocked
Googlebot (Gemini)Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; Googlebot/2.1; +http://www.google.com/bot.html) Chrome/125.0.0.0 Safari/537.36200Served
GoogleOtherMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko); compatible; GoogleOther200Served
Bingbot (Copilot)Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; bingbot/2.0; +http://www.bing.com/bingbot.htm) Chrome/125.0.0.0 Safari/537.36200Served
PerplexityBotMozilla/5.0 (compatible; PerplexityBot/1.0; +https://www.perplexity.ai/perplexitybot)403Blocked
Perplexity-UserMozilla/5.0 (compatible; Perplexity-User/1.0; +https://www.perplexity.ai/perplexity-user)403Blocked
CCBotCCBot/2.0 (https://commoncrawl.org/faq/)403Blocked
BytespiderMozilla/5.0 (Linux; Android 5.0) AppleWebKit/537.36 (KHTML, like Gecko) Mobile Safari/537.36 (compatible; Bytespider; spider-feedback@bytedance.com)403Blocked
AmazonbotMozilla/5.0 (compatible; Amazonbot/0.1; +https://developer.amazon.com/support/amazonbot)403Blocked
GrokBotMozilla/5.0 (compatible; GrokBot/1.0; +https://x.ai)200Served
Meta-ExternalAgentmeta-externalagent/1.1 (+https://developers.facebook.com/docs/sharing/webmasters/crawler)403Blocked
PD11failno headings come through in the first page's text, so it reads as one undivided block with nothing to mark where its sections begin
What we check
Whether headings on the document's first page are still recognisable once the text is pulled out.
What good looks like
Headings on the first page stay recognisable once the text is pulled out.
Why it matters
With no headings to divide it the document reads as one undivided block, so a passage loses the section it sat in.
What we found on this page
no headings come through in the first page's text, so it reads as one undivided block with nothing to mark where its sections begin
The evidence, taken from the page as served
The first page's text as it reads out, with no headings to be found
page 1, as it reads out
1 
City of London Corporation Modern Slavery Statement 
1. At the City of London Corporation, we are committed to upholding the highest standards of 
ethical governance and transparency in our operations.  
2. This Modern Slavery Statement continues the work laid out in our 2018 and 2021 statements, 
outlining the steps that the City of London Corporation (โ€˜City Corporationโ€™) has taken and is 
continuing to take to ensure that modern slavery is not taking place within our organisation, 
within t
PD14warningthe document has images but none carry a text description of what they show, so any figures that live only inside a chart or diagram are absent from the text
What we check
Whether charts and images in the document carry a written description of what they show.
What good looks like
Charts and images in the document carry a written description of what they show.
Why it matters
Data living only inside a chart picture is absent from the document's text, so the figures behind it go unstated.
What we found on this page
the document has images but none carry a text description of what they show, so any figures that live only inside a chart or diagram are absent from the text
The evidence, taken from the page as served
Which pages carry images with no text description
1 page(s) with images
Images with no text description appear on page(s): 1
PD31warningthe document carries 1 embedded file attachment(s); the content inside an attachment is not part of the document's own text, so it is not read out with it
What we check
Other files attached inside the document, such as a spreadsheet carried within the PDF.
What good looks like
The document carries no other files attached inside it.
Why it matters
Anything held in an attachment is not part of the document's own text, so that content never travels with it.
What we found on this page
the document carries 1 embedded file attachment(s); the content inside an attachment is not part of the document's own text, so it is not read out with it
The evidence, taken from the page as served
This document's properties, as recorded in the file

The file was read for other files carried inside it.

What was measuredAs measured on this page
File nameModern-Slavery-Statement.pdf
TitleCity of London Corporation Modern Slavery Statement
AuthorSlatter, Emily
Date created2026-07-23 13:01
Date last changed2026-07-23 15:32
Made withAcrobat PDFMaker 26 for Word
Pages18
Size286 KB
https://www.cityoflondon.gov.uk/assets/About-the-website/CoL-FOI-Complaints-Procedure-2026.pdf 32.7% Very likely 2 out of 29
Document information
TitleCity of London Corporation Freedom of Information Act Complaints procedure
AuthorCity of London Corporation
PDF version, pages, size1.6 ยท 3 pages ยท 223 KB
Found onhttps://www.cityoflondon.gov.uk/footer/feedback
CheckResultEvidence
DS29fail11 of 15 AI crawlers asking for this document are refused by the security layer in front of the document host, while an ordinary browser is served, so the document is closed to nearly all AI systems and their answers about it are left to memory or guesswork.
What we check
The documents load for a browser but are refused when the request names itself as an AI service, tested on the host that actually serves them (often separate from the pages).
What good looks like
The document host returns the same response to a named AI service as to a browser, with no edge block.
Why it matters
The document is refused to AI crawlers at the edge, so its contents never reach the systems that answer about it, and what they state about it is left to guesswork.
What we found on this page
11 of 15 AI crawlers asking for this document are refused by the security layer in front of the document host, while an ordinary browser is served, so the document is closed to nearly all AI systems and their answers about it are left to memory or guesswork.
The evidence, taken from the page as served
Each crawler's own request to this document, and the status it received
CrawlerUser-agent string it sentStatusResult
Browseryour default visitorMozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36200Served · the control
GPTBotMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko); compatible; GPTBot/1.1; +https://openai.com/gptbot403Blocked
OAI-SearchBotMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko); compatible; OAI-SearchBot/1.0; +https://openai.com/searchbot403Blocked
ChatGPT-UserMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko); compatible; ChatGPT-User/1.0; +https://openai.com/bot403Blocked
ClaudeBotMozilla/5.0 (compatible; ClaudeBot/1.0; +claudebot@anthropic.com)403Blocked
Claude-UserMozilla/5.0 (compatible; Claude-User/1.0; +https://www.anthropic.com)403Blocked
Googlebot (Gemini)Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; Googlebot/2.1; +http://www.google.com/bot.html) Chrome/125.0.0.0 Safari/537.36200Served
GoogleOtherMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko); compatible; GoogleOther200Served
Bingbot (Copilot)Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; bingbot/2.0; +http://www.bing.com/bingbot.htm) Chrome/125.0.0.0 Safari/537.36200Served
PerplexityBotMozilla/5.0 (compatible; PerplexityBot/1.0; +https://www.perplexity.ai/perplexitybot)403Blocked
Perplexity-UserMozilla/5.0 (compatible; Perplexity-User/1.0; +https://www.perplexity.ai/perplexity-user)403Blocked
CCBotCCBot/2.0 (https://commoncrawl.org/faq/)403Blocked
BytespiderMozilla/5.0 (Linux; Android 5.0) AppleWebKit/537.36 (KHTML, like Gecko) Mobile Safari/537.36 (compatible; Bytespider; spider-feedback@bytedance.com)403Blocked
AmazonbotMozilla/5.0 (compatible; Amazonbot/0.1; +https://developer.amazon.com/support/amazonbot)403Blocked
GrokBotMozilla/5.0 (compatible; GrokBot/1.0; +https://x.ai)200Served
Meta-ExternalAgentmeta-externalagent/1.1 (+https://developers.facebook.com/docs/sharing/webmasters/crawler)403Blocked
PD11failno headings come through in the first page's text, so it reads as one undivided block with nothing to mark where its sections begin
What we check
Whether headings on the document's first page are still recognisable once the text is pulled out.
What good looks like
Headings on the first page stay recognisable once the text is pulled out.
Why it matters
With no headings to divide it the document reads as one undivided block, so a passage loses the section it sat in.
What we found on this page
no headings come through in the first page's text, so it reads as one undivided block with nothing to mark where its sections begin
The evidence, taken from the page as served
The first page's text as it reads out, with no headings to be found
page 1, as it reads out
1  
City of London Corporation  
Freedom of Information Act Complaints Procedure  
Contents 
1. Introduction ....................................................................................................2  
2. The City of London Corporation and the scope of the Freedom of Information 
Act ..................................................................................................................2  
3. How we comply with the Freedom of Information Act .................................
PD25alertthe same content is not published as an ordinary web page, only as this PDF, which is a harder format to read reliably. This is an alert, not a fault in the document.
What we check
Whether the same content is also published as an ordinary web page, not only as a download.
What good looks like
The same content is also published as an ordinary web page, not only as a download.
Why it matters
Without a page version the content exists only in document form, where its structure is far more fragile.
What we found on this page
the same content is not published as an ordinary web page, only as this PDF, which is a harder format to read reliably. This is an alert, not a fault in the document.
The evidence, taken from the page as served
Where an ordinary web page of this content was looked for

Each address below was asked for. A companion page is also matched by a title matching the document's own.

What was measuredAs measured on this page
The document's own addresshttps://www.cityoflondon.gov.uk/assets/About-the-website/CoL-FOI-Complaints-Procedure-2026.pdf
Also asked forhttps://www.cityoflondon.gov.uk/assets/About-the-website/CoL-FOI-Complaints-Procedure-2026.html
Also asked forhttps://www.cityoflondon.gov.uk/assets/About-the-website/CoL-FOI-Complaints-Procedure-2026.htm
A page with a matching titlenot found
https://www.cityoflondon.gov.uk/assets/About-the-website/CoL-Re-SPI-Complaints-Procedure-2026.pdf 32.7% Very likely 2 out of 29
Document information
TitleCity of London Corporation - Re Use of Public Sector information regulations complaints procedure
AuthorCity of London Corporation
PDF version, pages, size1.6 ยท 3 pages ยท 223 KB
Found onhttps://www.cityoflondon.gov.uk/footer/feedback
CheckResultEvidence
DS29fail11 of 15 AI crawlers asking for this document are refused by the security layer in front of the document host, while an ordinary browser is served, so the document is closed to nearly all AI systems and their answers about it are left to memory or guesswork.
What we check
The documents load for a browser but are refused when the request names itself as an AI service, tested on the host that actually serves them (often separate from the pages).
What good looks like
The document host returns the same response to a named AI service as to a browser, with no edge block.
Why it matters
The document is refused to AI crawlers at the edge, so its contents never reach the systems that answer about it, and what they state about it is left to guesswork.
What we found on this page
11 of 15 AI crawlers asking for this document are refused by the security layer in front of the document host, while an ordinary browser is served, so the document is closed to nearly all AI systems and their answers about it are left to memory or guesswork.
The evidence, taken from the page as served
Each crawler's own request to this document, and the status it received
CrawlerUser-agent string it sentStatusResult
Browseryour default visitorMozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36200Served · the control
GPTBotMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko); compatible; GPTBot/1.1; +https://openai.com/gptbot403Blocked
OAI-SearchBotMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko); compatible; OAI-SearchBot/1.0; +https://openai.com/searchbot403Blocked
ChatGPT-UserMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko); compatible; ChatGPT-User/1.0; +https://openai.com/bot403Blocked
ClaudeBotMozilla/5.0 (compatible; ClaudeBot/1.0; +claudebot@anthropic.com)403Blocked
Claude-UserMozilla/5.0 (compatible; Claude-User/1.0; +https://www.anthropic.com)403Blocked
Googlebot (Gemini)Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; Googlebot/2.1; +http://www.google.com/bot.html) Chrome/125.0.0.0 Safari/537.36200Served
GoogleOtherMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko); compatible; GoogleOther200Served
Bingbot (Copilot)Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; bingbot/2.0; +http://www.bing.com/bingbot.htm) Chrome/125.0.0.0 Safari/537.36200Served
PerplexityBotMozilla/5.0 (compatible; PerplexityBot/1.0; +https://www.perplexity.ai/perplexitybot)403Blocked
Perplexity-UserMozilla/5.0 (compatible; Perplexity-User/1.0; +https://www.perplexity.ai/perplexity-user)403Blocked
CCBotCCBot/2.0 (https://commoncrawl.org/faq/)403Blocked
BytespiderMozilla/5.0 (Linux; Android 5.0) AppleWebKit/537.36 (KHTML, like Gecko) Mobile Safari/537.36 (compatible; Bytespider; spider-feedback@bytedance.com)403Blocked
AmazonbotMozilla/5.0 (compatible; Amazonbot/0.1; +https://developer.amazon.com/support/amazonbot)403Blocked
GrokBotMozilla/5.0 (compatible; GrokBot/1.0; +https://x.ai)200Served
Meta-ExternalAgentmeta-externalagent/1.1 (+https://developers.facebook.com/docs/sharing/webmasters/crawler)403Blocked
PD11failno headings come through in the first page's text, so it reads as one undivided block with nothing to mark where its sections begin
What we check
Whether headings on the document's first page are still recognisable once the text is pulled out.
What good looks like
Headings on the first page stay recognisable once the text is pulled out.
Why it matters
With no headings to divide it the document reads as one undivided block, so a passage loses the section it sat in.
What we found on this page
no headings come through in the first page's text, so it reads as one undivided block with nothing to mark where its sections begin
The evidence, taken from the page as served
The first page's text as it reads out, with no headings to be found
page 1, as it reads out
1  
City of London Corporation  
Re-Use of Public Sector Information Regulations 
Complaints Procedure  
Contents 
1. Introduction ....................................................................................................2  
2. The City of London Corporation and the scope of the Re-use of Public Sector 
Information Regulations .................................................................................2  
3. How we comply with the Re-Use of Public Sector Information Regulations ..
PD25alertthe same content is not published as an ordinary web page, only as this PDF, which is a harder format to read reliably. This is an alert, not a fault in the document.
What we check
Whether the same content is also published as an ordinary web page, not only as a download.
What good looks like
The same content is also published as an ordinary web page, not only as a download.
Why it matters
Without a page version the content exists only in document form, where its structure is far more fragile.
What we found on this page
the same content is not published as an ordinary web page, only as this PDF, which is a harder format to read reliably. This is an alert, not a fault in the document.
The evidence, taken from the page as served
Where an ordinary web page of this content was looked for

Each address below was asked for. A companion page is also matched by a title matching the document's own.

What was measuredAs measured on this page
The document's own addresshttps://www.cityoflondon.gov.uk/assets/About-the-website/CoL-Re-SPI-Complaints-Procedure-2026.pdf
Also asked forhttps://www.cityoflondon.gov.uk/assets/About-the-website/CoL-Re-SPI-Complaints-Procedure-2026.html
Also asked forhttps://www.cityoflondon.gov.uk/assets/About-the-website/CoL-Re-SPI-Complaints-Procedure-2026.htm
A page with a matching titlenot found
https://www.cityoflondon.gov.uk/assets/About-the-website/CoL-DP-Complaints-Procedure-2026.pdf 32.7% Very likely 2 out of 29
Document information
TitleCity of London Corporation - Data Protection Act Complaints Procedure
AuthorCity of London Coporation
PDF version, pages, size1.6 ยท 4 pages ยท 230 KB
Found onhttps://www.cityoflondon.gov.uk/footer/feedback
CheckResultEvidence
DS29fail11 of 15 AI crawlers asking for this document are refused by the security layer in front of the document host, while an ordinary browser is served, so the document is closed to nearly all AI systems and their answers about it are left to memory or guesswork.
What we check
The documents load for a browser but are refused when the request names itself as an AI service, tested on the host that actually serves them (often separate from the pages).
What good looks like
The document host returns the same response to a named AI service as to a browser, with no edge block.
Why it matters
The document is refused to AI crawlers at the edge, so its contents never reach the systems that answer about it, and what they state about it is left to guesswork.
What we found on this page
11 of 15 AI crawlers asking for this document are refused by the security layer in front of the document host, while an ordinary browser is served, so the document is closed to nearly all AI systems and their answers about it are left to memory or guesswork.
The evidence, taken from the page as served
Each crawler's own request to this document, and the status it received
CrawlerUser-agent string it sentStatusResult
Browseryour default visitorMozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36200Served · the control
GPTBotMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko); compatible; GPTBot/1.1; +https://openai.com/gptbot403Blocked
OAI-SearchBotMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko); compatible; OAI-SearchBot/1.0; +https://openai.com/searchbot403Blocked
ChatGPT-UserMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko); compatible; ChatGPT-User/1.0; +https://openai.com/bot403Blocked
ClaudeBotMozilla/5.0 (compatible; ClaudeBot/1.0; +claudebot@anthropic.com)403Blocked
Claude-UserMozilla/5.0 (compatible; Claude-User/1.0; +https://www.anthropic.com)403Blocked
Googlebot (Gemini)Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; Googlebot/2.1; +http://www.google.com/bot.html) Chrome/125.0.0.0 Safari/537.36200Served
GoogleOtherMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko); compatible; GoogleOther200Served
Bingbot (Copilot)Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; bingbot/2.0; +http://www.bing.com/bingbot.htm) Chrome/125.0.0.0 Safari/537.36200Served
PerplexityBotMozilla/5.0 (compatible; PerplexityBot/1.0; +https://www.perplexity.ai/perplexitybot)403Blocked
Perplexity-UserMozilla/5.0 (compatible; Perplexity-User/1.0; +https://www.perplexity.ai/perplexity-user)403Blocked
CCBotCCBot/2.0 (https://commoncrawl.org/faq/)403Blocked
BytespiderMozilla/5.0 (Linux; Android 5.0) AppleWebKit/537.36 (KHTML, like Gecko) Mobile Safari/537.36 (compatible; Bytespider; spider-feedback@bytedance.com)403Blocked
AmazonbotMozilla/5.0 (compatible; Amazonbot/0.1; +https://developer.amazon.com/support/amazonbot)403Blocked
GrokBotMozilla/5.0 (compatible; GrokBot/1.0; +https://x.ai)200Served
Meta-ExternalAgentmeta-externalagent/1.1 (+https://developers.facebook.com/docs/sharing/webmasters/crawler)403Blocked
PD11failno headings come through in the first page's text, so it reads as one undivided block with nothing to mark where its sections begin
What we check
Whether headings on the document's first page are still recognisable once the text is pulled out.
What good looks like
Headings on the first page stay recognisable once the text is pulled out.
Why it matters
With no headings to divide it the document reads as one undivided block, so a passage loses the section it sat in.
What we found on this page
no headings come through in the first page's text, so it reads as one undivided block with nothing to mark where its sections begin
The evidence, taken from the page as served
The first page's text as it reads out, with no headings to be found
page 1, as it reads out
1  
City of London Corporation  
Data Protection Act Complaints Procedure  
Contents 
1. Introduction ....................................................................................................2  
2. Data Controller ...............................................................................................2  
3. Data Subject....................................................................................................2  
4. Right of Subject Access ..............................
PD25alertthe same content is not published as an ordinary web page, only as this PDF, which is a harder format to read reliably. This is an alert, not a fault in the document.
What we check
Whether the same content is also published as an ordinary web page, not only as a download.
What good looks like
The same content is also published as an ordinary web page, not only as a download.
Why it matters
Without a page version the content exists only in document form, where its structure is far more fragile.
What we found on this page
the same content is not published as an ordinary web page, only as this PDF, which is a harder format to read reliably. This is an alert, not a fault in the document.
The evidence, taken from the page as served
Where an ordinary web page of this content was looked for

Each address below was asked for. A companion page is also matched by a title matching the document's own.

What was measuredAs measured on this page
The document's own addresshttps://www.cityoflondon.gov.uk/assets/About-the-website/CoL-DP-Complaints-Procedure-2026.pdf
Also asked forhttps://www.cityoflondon.gov.uk/assets/About-the-website/CoL-DP-Complaints-Procedure-2026.html
Also asked forhttps://www.cityoflondon.gov.uk/assets/About-the-website/CoL-DP-Complaints-Procedure-2026.htm
A page with a matching titlenot found
How the scores work method & bands

This report is Stage 1, Foundations: each automated test the engine can run without human input, so there is a usable result at the first stage. Governance (owner-confirmed truth) and Visibility (how AI agents find the estate) are later stages and are shown greyed above.

What was assessed. 37 pages were assessed, selected from 120 reviewed using the site's own signals of importance (its navigation, homepage links, most-linked pages, sitemap, and any llms.txt file), and the first 5 PDF documents found were assessed separately. The industry in the header is classified from the site's own content. The traffic classification comes from a recognised top-sites list or a connected traffic provider; it reads NA when the domain is not connected to a traffic source.

Header identity signals. The regulated sector and listed company values are inferred from the same crawled content, and shown here so the header can stay to the answer alone. Regulated sector reads “None found”: no regulator statements, and the established sector carries no statutory regulator. Listed company reads “No (not a company with shares)”: no (not a company with shares).

AI readiness is the weighted share of checks that passed, reported separately for pages and for PDF documents because each is reached and corrected differently. Grade A checks decide whether content can be reached and read at all; grade B whether it is understood correctly; grade C support reliability. A measured score is scaled into a ceiling when an access gate binds it (for example the site blocking AI crawlers at its edge): content that cannot be reached is not partially ready. Scores never read exactly 25, 50, 75 or 100, because those are buckets, not measurements.

Likelihood of misinformation is a band, given as a worst case (the highest any single item or estate-wide finding reaches) and a typical position across the pages or documents. Only checks whose failure is a direct route to a wrong answer carry a band; the rest affect readiness only.

BandRangeMeaning
Likely zero0-5%No failing misinformation-bearing checks.
Very little6-25%Unlikely to cause wrong information.
Likely26-50%Could contribute to wrong information in some cases.
Very likely51-75%A real and common route to wrong information.
Extremely likely76-100%A frequent and direct cause of wrong information.

Of the register's 187 checks, 112 ran automatically in this Foundations stage. 64 are governance questions for the next stage. The remainder need organisation-supplied data or an external service; each check that did not run is listed in the exports.

About us

Built on evidence, not assumptions.

We have been doing this for 25 years. For the last two years, we have been training AI to understand and map AI Readiness (fundamentals, governance, visibility), against our unique dataset of more than 3.7 trillion data points.

3.7
Trillion
Data points, with each result kept since the beginning: probably the largest experience and compliance dataset of its kind. Our AI is trained on factual, controlled, real-world evidence.
$106
Billion
Estimated manual effort avoided through automation. An estimate, and a conservative one: since ARTY was introduced, we have removed 95% of costs and delivered efficiency gains beyond 70x.
119
Million
Websites analysed and mapped for content fundamentals, from the outside in. AI Readiness begins by removing the human issues that undermine Value and create unnecessary Risk.
25
Years
When we started, we were labelled 'the pioneers' of website automation and checking. In 2023, we launched our first AI analysis tools.

Who’s talking about us

CMSwire Inc. Magazine CIO Forbes The CFO TechRadar