scanned 2026-08-28 04:35 UTC · cached · refresh in 0h · rubric 2026.11.0
○Unverified public scan
At risk
AgentSpeed tests how easily automated agents can discover, understand, and act on natwest.com. The score weights five categories of machine-readability; the ticks on the arc are the 37 individual checks behind it.
Send this to whoever edits the site. The link shows the score and grade as a preview card, and it stays current: it re-reads the latest scan rather than freezing today’s number.
Top fixes
failSitemap present+3 ptsDiscoverability
No reachable sitemap.xml. Publish one and reference it in robots.txt.
Show me exactly what to do
What this means
A sitemap is a machine-readable list (sitemap.xml) of every page on your site. It is how crawlers find pages that aren’t linked from your homepage.
Why it matters
Agents discovering your site crawl outward from the pages they know. Without a sitemap, anything not linked from a top-level page (docs, older articles, product variants) may simply never be read, so it can’t be quoted or recommended.
Do this
Most platforms generate one automatically: Next.js (app/sitemap.ts), WordPress (Yoast/Rank Math), Shopify and Wix (built in). Turn it on rather than hand-writing.
Add a "Sitemap: https://yoursite.com/sitemap.xml" line to robots.txt so crawlers find it.
Submit it once in Google Search Console and Bing Webmaster Tools for the search side.
Don’t lose this report
Get it in your inbox now, plus a heads-up whenever natwest.com’s agent-readiness score changes. Free, unsubscribe anytime.
Prefer we just watch it for you? Monitor rescans weekly and emails what changed, $29/mo. Start monitoring →
Fix it
Generated, ready-to-ship files for the gaps above. Copy them, or download and drop them into your repo.
Reference a sitemap
Publish /sitemap.xml and add this line to robots.txt.
Sitemap: https://natwest.com/sitemap.xml
This scan graded one page. Your site is more than one page.
Weakest on this scan: discoverability, 42/100 — the signals agents use to find and navigate this site are thin or missing.
This graded your homepage. Your pricing, docs, and checkout live on other pages: the ones assistants actually quote when they recommend you. A 69/100 here means agents are already missing things on the page you polish most. The $29 Deep Scan grades your homepage plus up to 10 more pages we discover, against all 37 checks, then emails a PDF with every failing check and its exact fix, ranked by what costs you the most visibility. One-time, delivered in minutes, no subscription.
Skip to main content Personal Premier Business Corporates & Institutions NatWest Group Log in Log in Menu Close Close Personal Premier Business Corporates & Institutions NatWest Group Personal Premier Business Corporates & Institutions NatWest Group Products Products Bank accounts Bank accounts See all our bank accounts Everyday bank account Reward bank account Student bank account Child & teen bank accounts Joint bank account Premier bank accounts Already have an account with us? Manage your bank account MyRewards Apply for an overdraft Manage your overdraft Mobile Banking Log into Natwest Membership Services Overdraft cost calculator Help with bank accounts Switch your account to us Compare bank accounts What do I need to open a bank account? Bank account guides Overdraft guide Rates and charges Mortgages Mortgages See our mortgage options First time buyer mortgage Moving home Remortgage to NatWest Buy to let mortgage Mortgage calculators Get an Agreement in Principle Continue your Agreement in Principle How to apply Already have a mortgage with us? Manage your mortgage Switch to a new deal Change your term Moving with your existing mortgage Borrowing more Base rate updates Mortgage support Rate change calculator Help with mortgages Mortgage rates How much could I borrow? Mortgage guides Overpayment calculator Equity calculator Track your mortgage application online Tariff of mortgage charges (PDF 877KB) Mortgage offer extension Savings Savings View all our savings accounts Digital Regular Saver Flexible Saver Fixed Term Savings View our Cash ISAs Instant access Cash ISA Fixed Rate ISA Defined Access Saver Children's savings Joint savings account Already have savings with us? Manage your savings Round Ups Help with savings ISA guide Savings guides Savings Goal Tool Budget Calculator How to start saving money Bank account vs Savings account Loans Loans See our loans Car loans Debt consolidation loans Home improvement loans Wedding loans Holiday loans Joint loans Already have a loan with us? Manage your loan Top up your loan Help with loans Loan calculator Quick Quote How to apply for a loan Loan guides Check your Credit Score Compare options to borrow money Child and teen Child and teen See all our child and teen banking options Pocket money app and card Child and teen account Teen bank account (age 16-17) NatWest Junior ISA First Saver Compare our kids debit card options Already bank with us? Manage my Adapt Manage my Junior ISA Manage my Savings Manage my Rooster Child Trust Fund Financial wellbeing and confidence Children's guides NatWest Thrive Tips for teens Investments Invest with us View all our Invest accounts Stocks and Shares ISA General Investment Account Pensions Junior ISA Ready-made funds Fund performance Investment support Investing for beginners Experienced investors Future planning Market updates Online Investment Advice Investment fee calculator Already investing with us Log in to NatWest Invest About your investments Key customer documents Credit cards Credit cards See all our credit cards Purchase & Balance Transfer card Balance Transfer credit card Longer Balance Transfer card Travel Reward credit card The NatWest Credit Card Reward credit card Reward Black credit card NatWest Credit Builder Card Already have a credit card with us? Manage your credit card Fees & charges Instalment Plans Help with credit cards How to apply for a credit card Credit card guides Credit card repayment calculator Check your Credit Score Compare options to borrow money Insurance Home Insurance See our home insurance Building & Contents Insurance Buildings Insurance Contents Insurance Renters Insurance Manage my existing home insurance Insurance Tracker Life Insurance See our life insurance Manage my existing life insurance I’m interested in: Travel insurance with NatWest bank accounts Reward accounts and cards Reward accounts and cards Reward account Reward Silver account Reward Platinum account Premier Reward account Premier Reward Black account Reward credit card Reward Black credit card Travel Reward credit card Make the most of MyRewards MyRewards How to earn rewards How to exchange rewards MyRewards Terms and Exclusions Access MyRewards Access MyRewards through the NatWest app Access MyRewards through Online Banking Overdrafts Overdrafts Apply or manage your overdraft Student overdraft Graduate overdraft Help with overdrafts Overdrafts guide Overdraft eligibility calculator Overdraft cost calculator Travel Travel products Travelling with NatWest Travel account Travel Reward Credit Card The NatWest Credit Card Reward Black Credit Card Travel insurance Travel money Holiday loans Send money abroad Help with our travel products Using your debit card abroad Using a travel credit card Help and support Help and support Support Centre Support Centre Explore our Support centre Accessibility and disability Help with money worries Dealing with difficult life events Bereavement support Card payment support Service status Contact us Contact us Ask Cora Complaints Find your nearest branch Support with your product Support with your product Access MyRewards Manage your current account Manage your mortgage Manage your loan Manage your credit card Manage your savings account Manage your investments Manage your home insurance Manage your car insurance Help with everyday banking Help with everyday banking Help with registering on the app How to use the app Help with registering for online banking How to use online banking Ways to pay by card Banking My Way You and your money You and your money Money Blog Latest posts 5 simple New Year climate resolutions Autumn Budget: what it means for you Good vs bad debt: what's the difference? Energy Saving tips Can a low carbon lifestyle save me money? How can I make my home more energy efficient? Buying an energy efficient home Saving and budgeting How much emergency savings should I have? Top money saving challenges How to save on your vehicle insurance Managing your money Money management guides Tips on managing your money Reducing your household bills Teaching kids about money What is my take home pay? Tools to help manage your money Financial Health Check Round Ups Savings Goal Tool Spending and Budget Tracker Check your Credit Score Overdraft calculator Banking My Way Compare options to borrow money Family Finances Life Moments Supporting you through life events Buying your first home Buying a car Going to university Help planning for later life Bereavement Planning for later life Retirement and pensions Will writing and Executor service Your home Making a move Buying your first home Buying a new home How much could I borrow? Renting guide Making a change Remortgage guide Home improvement guide Buying a second home Buy to let guide Reducing your household bills Travel Help when travelling abroad Travel guide Spending abroad How to travel more sustainably Banking with us Banking with us Banking from home Banking from home Download the NatWest app What is the NatWest app? Register for Online Banking Learn about Online Banking Existing customer support How to use the NatWest app How to use Online Banking Over the phone or video Over the phone or video Our Video Banking service Call us for telephone banking Banking near me All the ways you can bank with us Access to cash Send money abroad Security and fraud Security and fraud Security and fraud Protecting your money Protect yourself from fraud and scams My Security Profile Learn about face and voice approvals How we protect you Taking action Report a fraud or scam Raise a dispute Card payment support Climate Climate Save energy at home Save energy at home Home Energy Hub Home Energy Plan Save money on your energy bills EPC certificate guide Insulation guide Solar panels guide Heat pump guide Smart meter guide What is a home retrofit? Sustainable living Sustainable living Ideas to reduce, reuse and recycle Reduce waste at home Sustainable travel ideas Electric vehicle guide
Show your score
Embed this badge on your site. It links back to this live scan and updates on every rescan.
Get this report by email, then a heads-up when natwest.com’s agent-readiness actually changes: a check regressing, or the composite dropping.
Two things never trigger an email: a score change caused by us publishing a new rubric, because that is a different instrument rather than a change to your site, and movement explained only by timing-derived checks, which shift run to run on a site nobody touched.
Want it on your own schedule, with Slack or a webhook instead of email? Score-drift monitoring is on every paid plan.
This score says whether an AI agent could read natwest.com. AI traffic analytics says whether one actually came, and which pages turned it away.
Full breakdown
17 pass2 warn12 fail6 skip
Discoverability
pass
robots.txt present
A robots.txt is reachable at the site root.
100/100
pass
robots.txt allows AI agents
All 9 answer-time access agents allowed.
100/100
fail
Content-Signal directivesemerging
No Content-Signal directives. Add e.g. `Content-Signal: ai-train=no, ai-summarize=yes` to declare granular AI usage policy beyond binary allow/disallow.
0/100
pass
llms.txt present
Found /llms.txt but missing markdown links. Not scored.
100/100
fail
Sitemap present
No reachable sitemap.xml. Publish one and reference it in robots.txt.
0/100
fail
Link response headers
No HTTP Link: response headers. Emit canonical/alternate/describedby relations so HEAD-only or stream-rendering agents get them without parsing HTML.
0/100
pass
Canonical URL
Canonical points to self: https://www.natwest.com/.
100/100
skip
MCP server cardemerging
Not measured: the origin answered HTTP 403 for this resource, which says we were refused or could not be served, not that the resource is missing.
—
fail
OAuth authorization metadataemerging
No RFC 8414 metadata at /.well-known/oauth-authorization-server. Agents that act on behalf of users need this to discover your authorization endpoints.
0/100
fail
OAuth resource metadataemerging
No RFC 9728 metadata at /.well-known/oauth-protected-resource. Publish it so agents can discover required scopes without hand-coded credentials.
0/100
fail
API catalog / OpenAPIemerging
No /.well-known/api-catalog (RFC 9727) and no /openapi.json|yaml. Publish one so agents that integrate with APIs can discover your endpoints.
0/100
skip
Web Bot Authemerging
Not measured: the origin answered HTTP 403 for this resource, which says we were refused or could not be served, not that the resource is missing.
—
Readability
fail
Markdown negotiationemerging
Accept: text/markdown returns HTML, not markdown. Serve a markdown variant of primary content when requested; agents summarize and cite it more reliably.
0/100
warn
Text-to-markup ratio
Visible text is 9.1% of HTML weight (13544/148864 bytes). 3% of the document is inline script, 88% is markup.
63/100
pass
Content without JavaScript
Primary content is present in the initial HTML — agents without JS can read it. (Measured statically; a rendered comparison was not run because the static reading sufficed.)
Consent modal detected (cookielaw.org); content still visible. Verify the modal does not block first-paint for screenshot agents.
70/100
pass
Declared language
Declared lang="en-GB".
100/100
pass
Page title
A concise <title> is present (60 chars).
100/100
pass
Meta description
A well-sized meta description is present (164 chars).
100/100
Structured data
pass
JSON-LD present
Found 1 JSON-LD block.
100/100
pass
Structured data validates
1/1 checkable block(s) validated cleanly against schema.org.
100/100
fail
Schema type coverage
Page looks like Product; missing JSON-LD type(s): Product.
0/100
Coherence: do your channels agree?
skip
JSON-LD price matches the visible priceemerging
No price declared in JSON-LD, so there is nothing to cross-check. (Whether a price SHOULD be declared is the structured-data checks’ question.)
—
pass
JSON-LD name appears on the pageemerging
Declared entity name "NatWest" appears on the visible page.
100/100
pass
Declared language matches the contentemerging
Declared lang="en-GB" matches the detected content language (en).
100/100
Actionability
pass
Paywall / login wall
No paywall or login-wall detected on the landing URL.
100/100
skip
Agent Skills manifestemerging
Not measured: the origin answered HTTP 403 for this resource, which says we were refused or could not be served, not that the resource is missing.
—
fail
WebMCP actionsemerging
No WebMCP detected. On pages with first-class actions (cart, support, account), embed a WebMCP server so on-page agents invoke tools directly.
0/100
fail
Commerce protocol manifestemerging
No agentic-commerce discovery manifest (x402 at /.well-known/x402.json, UCP at /.well-known/ucp, or ACP at /.well-known/acp.json). Agents that buy pre-flight these before attempting a transaction; publishing the one for your commerce protocol is how they learn you accept agent-initiated purchases.
0/100
pass
Primary action reachable
A primary offering and a price or call to action were both identifiable from the served HTML, so an agent can tell what this page sells and what it costs without running scripts.
100/100
pass
Reachability
HTTP 200 after 1 redirect.
100/100
pass
Primary action is clickableemerging
2 clickable element(s) carry an action an agent can take: <a> announcing "download", <a> announcing "download". An agent driving the page has something real to click.
100/100
skip
Filters reachable by URLemerging
This page does not offer to filter or sort a list, so there is nothing to address by URL. Pages without facets are not penalised here.
—
Performance
fail
Time to first byte
TTFB 6005ms. Slow. Agents time out aggressively.
20/100
skip
Full render time
Full-render time unavailable (browser pass skipped or failed).
—
pass
Page weight
Initial document is a lean 145 KB.
100/100
Beyond the scan
Running AI agents of your own? AgentSpeed also monitors them in production: every run, its latency, cost, and failures, with alerts when something breaks. Free for 10,000 events a month, no credit card.
Run reports like this for every client: white-label PDFs and weekly monitoring for up to 15 domains, $149/mo. AgentSpeed for Agencies →
Methodology & limitations
This score is a measurement of machine-readability for automated agents under the published rubric 2026.11.0. AgentSpeed does not assess security, legitimacy, privacy, or financial trust.
→ https://natwest.com/sitemap.xml
Paste into Claude Code, Cursor, or any assistant with your repository open. It carries this finding, the steps, and the shortcuts to avoid.
Or copy it written for your tool:
What to check
Open yoursite.com/sitemap.xml. It should list real page URLs, not error.
Re-scan: "Sitemap present" flips to PASS.
What to avoid
Don’t list URLs that redirect or 404. A sitemap full of dead links teaches crawlers to distrust it.
Don’t include private or staging URLs; a sitemap is a public document.
No HTTP Link: response headers. Emit canonical/alternate/describedby relations so HEAD-only or stream-rendering agents get them without parsing HTML.
Show me exactly what to do
What this means
HTTP responses can carry a Link header: the same canonical and alternate-language information your HTML declares, but delivered in the response envelope itself. Agents that only send a HEAD request, or that decide what to do while the page is still streaming, read the header without parsing any HTML. Yours is missing (or carries none of the relations agents use: canonical, alternate, describedby).
Why it matters
An agent triaging fifty URLs doesn’t want to download and parse fifty pages to learn which are duplicates of which. The Link header answers at the cheapest possible layer. Sites that provide it get correctly de-duplicated and correctly language-routed even by the most minimal fetchers.
Do this
Emit a Link header alongside each page, mirroring what your HTML head already declares. Example: Link: <https://yoursite.com/page>; rel="canonical".
Most stacks set this in one place: Next.js headers() config, an nginx add_header line, or a CDN response-header rule.
If you serve translations, add rel="alternate" entries with hreflang, matching your HTML.
Paste into Claude Code, Cursor, or any assistant with your repository open. It carries this finding, the steps, and the shortcuts to avoid.
Or copy it written for your tool:
What to check
Run: curl -sI https://yoursite.com | grep -i "^link:" and confirm the relations appear.
Hit Re-scan above: "Link response headers" flips to PASS.
What to avoid
The header must AGREE with the HTML. A Link header pointing one place while the in-page canonical points another gives machines two contradictory answers, which is worse than one missing answer.
Don’t inject the same site-wide canonical on every page via a blanket CDN rule; each page names its own clean URL, exactly as in the HTML tag.
Headings (H1, H2, H3…) are the page’s outline. Yours skip levels, repeat H1s, or use styled text instead of real heading tags, so the outline machines extract is scrambled.
Why it matters
Agents use the heading tree to navigate long pages and to decide which section answers a question. A broken tree means quotes get attributed to the wrong section, or sections are missed entirely.
Do this
Exactly one H1 per page: the page’s actual title.
Nest without skipping: H2 for sections, H3 for subsections. Never jump H1 to H4 for visual size.
If a heading looks right but is a styled <div>, make it a real <h2> and adjust CSS. Machines only see tags.
Paste into Claude Code, Cursor, or any assistant with your repository open. It carries this finding, the steps, and the shortcuts to avoid.
Or copy it written for your tool:
What to check
Re-scan: "Heading hierarchy" flips to PASS.
What to avoid
Don’t pick heading levels for their font size; style with CSS and keep levels semantic.
Consent modal detected (cookielaw.org); content still visible. Verify the modal does not block first-paint for screenshot agents.
Show me exactly what to do
What this means
We found a cookie-consent banner in your page’s HTML. On a fail, there is so little page text alongside it that the banner is likely most of what an agent receives; on a warn, your content is present but the banner may still block the first paint for agents that render.
Why it matters
Agents can’t click Accept. When the banner is all the page serves, summaries come out as "this site asks for cookie consent" while your actual pitch sits behind a click that never happens.
Do this
Render the page content first; show the banner alongside or over a corner of it, not as a wall that gates the HTML.
Check your consent vendor’s settings. Most have a non-blocking layout option.
Crawlers aren’t legal consent subjects, and many consent platforms have a "don’t gate known bots" setting you can enable.
Paste into Claude Code, Cursor, or any assistant with your repository open. It carries this finding, the steps, and the shortcuts to avoid.
Or copy it written for your tool:
What to check
Re-scan: "Cookie wall blocks content" flips, and the "What the agent receives" section shows your real content instead of the banner.
What to avoid
Don’t drop legally required consent to pass a scan. The fix is layout (banner beside content), not removing compliance.
Don’t serve a bannerless page only to bots while humans get the wall; make the CONTENT reachable in both cases.
Page looks like Product; missing JSON-LD type(s): Product.
Show me exactly what to do
What this means
Your structured data exists but only covers the basics (say, Organization) while the page is really a product page, an article, or an FAQ. The machine-readable caption is missing the part that describes what this page actually is.
Why it matters
An agent looking for "running shoes under $100" matches against Product markup with offers. A product page carrying only Organization markup is invisible to that query shape: the agent knows who you are but not what this page sells.
Do this
Identify the page’s real type: Product (with offers), Article, FAQPage, HowTo, LocalBusiness, Event.
Add that type’s JSON-LD alongside the Organization block, filled from the page’s actual content.
For Product: include name, price, priceCurrency, and availability. Those are the fields agents actually query.
Paste into Claude Code, Cursor, or any assistant with your repository open. It carries this finding, the steps, and the shortcuts to avoid.
Or copy it written for your tool:
What to check
Re-scan: "Schema type coverage" improves. Keep "Structured data validates" green while you add.
The coherence checks below compare your declared price and name to the visible page; they should stay (or flip to) PASS.
What to avoid
Only declare types the page genuinely is. A blog post marked up as a Product to appear in shopping queries is the exact incoherence assistants are getting better at detecting.
Keep declared values synced with the page. If a sale changes the visible price, the JSON-LD price must change in the same deploy.
Time to first byte is how long your server thinks before it starts answering: the gap between an agent asking for the page and the first byte of HTML arriving. Yours crossed our threshold (under 200ms scores full marks, over 2 seconds fails).
Why it matters
Agents fetch with tight timeouts and many pages in parallel. A server that takes seconds to start answering gets cut off mid-queue, and a page that times out is a page that was never read. Speed here is not polish; it decides whether the content gets fetched at all.
Do this
Cache the HTML itself. Marketing and docs pages rarely change per visitor; serve them from a CDN or static cache so no application code runs per request.
If you are on serverless hosting, cold starts are a common cause: keep the function warm or pre-render the page.
Move slow work (database queries, third-party API calls) out of the first response; render the shell fast and fill personalised details after.
Paste into Claude Code, Cursor, or any assistant with your repository open. It carries this finding, the steps, and the shortcuts to avoid.
Or copy it written for your tool:
What to check
Run: curl -o /dev/null -s -w "%{time_starttransfer}\n" https://yoursite.com and watch the number drop.
Hit Re-scan above: "Time to first byte" improves a bucket at a time (under 500ms passes).
What to avoid
Don’t answer fast with an empty shell that loads content by JavaScript. That trades this warning for the much worse "content requires JavaScript" failure, since most agents never run your scripts.
Don’t special-case known crawler user agents onto a faster path. Serving different performance to different audiences is the pattern crawlers penalise when they detect it.