scanned 2026-08-21 18:32 UTC · cached · refresh in 0h · rubric 2026.11.0
○Unverified public scan
Needs work
AgentSpeed tests how easily automated agents can discover, understand, and act on standardbank.co.za. 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+5 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 standardbank.co.za’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://standardbank.co.za/sitemap.xml
This scan graded one page. Your site is more than one page.
Weakest on this scan: discoverability, 56/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 74/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.
Right now, only you know this score. Your buyers ask AI before they buy, and certification is how you show them, and anyone comparing you to a competitor, that assistants can actually read, quote, and use your site.
A public verification URL you can drop into a sales deck, a procurement questionnaire, or a partner review. Anyone can check it, dated and signed.
An embeddable badge for your site, the visible version of a property competitors can’t claim without earning the score.
Weekly re-checks for a full year. A deploy that breaks agent access gets caught before it costs you recommendations, and before the certificate would lapse.
Sites under 70 can’t buy this at any price. That’s what makes displaying it mean something.
Personal Business Corporate and Institutions Wealth News and Media About us Locate Us Contact us South Africa Choose your country or region Africa Angola Botswana Côte-d'Ivoire DRC Egypt Eswatini Ghana Kenya Lesotho Malawi Mauritius Mozambique Namibia Nigeria South Africa Tanzania Uganda Zambia Zimbabwe Europe Isle of Man Jersey United Kingdom Asia Middle East China United Arab Emirates Americas United States of America Products and Services Bank with us Borrow for your needs Grow your money Insure what matters Customer Solutions Ways to bank Security Centre Bank accounts See all accounts Compare accounts Credit cards See all cards Credit limit increase Compare cards Managing your card Savings and investment See all accounts Compare accounts Savings and Investment product filter Digital wallets Shyft global wallet SnapScan wallet Foreign exchange Shyft global wallet Foreign notes MoneyGram International Payments Foreign Nationals Temporary resident banking Non-resident banking International students International solutions Sharíah banking Personal loans See all loans Compare personal loans Loan calculator Overdraft Loan Consolidation Credit cards See all cards Compare cards Credit limit increase Managing your card Vehicle Financing Buy a car Manage my car Vehicle finance calculators Vehicle auctions New home loan Bond calculators Buying a home Building a home Property Guide Pension‐Backed Lending Existing Home Loan Home loan extension AccessBond Managing your bond Additional Home Services Home Efficiency by LookSee Student loans See all student loans Student loans calculator Savings and investment See all accounts Compare accounts Shari'ah investment accounts Savings and Investment product filter Financial planning See all solutions Life events Goals-based financial planning View and manage your wealth Retirement solutions See all solutions Retirement Planning Investment solutions See all solutions Investment Planning Tax-Free Investments Unit trusts Share trading See all solutions Local share trading Offshore share trading Bespoke solutions See all solutions Global Discretionary South African Local Discretionary Your car Insurance brokers Car and home Warranties Dent and scratch Tyre and rim Service plan Your home Home contents Building insurance Your future Wills Trusts Estates Beneficiary care Shari'ah fiduciary services Yourself Flexible Funeral Plan Flexible Life Plan Personal accident Travel insurance Legal assist GapAssist Your debt Credit card Loans Car finance shortfall Car finance protection Home loan protection Standard Bank Insurance App Debt Management solutions See all solutions Debt Care Centre Debt Review process Arrears and Collections Debt Care Centre Application for debt relief solutions Deceased Estates EasySell EasySell home loans EasySell vehicles Self service banking Online banking Banking app Cellphone WhatsApp ATM Telephone Get your Smart ID Service updates Value-added services Innovative payment solutions SnapScan at the till or online Tap your phone with Samsung Pay Shop online with Masterpass Tap your card to pay at the tills Send Instant Money Pay with MyBills Virtual Card Apple Pay PayShap Help centre Security Centre Bank Safely Online At the ATM On your cellphone MyUpdates DigiMe Protect yourself Scams Guard your PIN Online Shopping Personal information Debit orders Account Verification Services UCount Rewards Rewards Retailers UCount Rewards Standard Bank Connect Learn Sign in Personal Internet Banking Insurance Online International Banking International Investment Platform Online Share Trading Standard Bank Connect Stanlib Online StockBroking WebTrader Business Internet Banking Online Banking for Business New Business Online API Marketplace New Foreign Exchange Rates Market Data Merchant Online TradeOnline TradeSuite Fleet360 New South Africa Sign in Personal Internet Banking Insurance Online International Banking International Investment Platform Online Share Trading Standard Bank Connect Stanlib Online StockBroking WebTrader Business Internet Banking Online Banking for Business New Business Online API Marketplace New Foreign Exchange Rates Market Data Merchant Online TradeOnline TradeSuite Fleet360 New Personal Overview Products and Services Products and Services Bank with us Bank accounts Credit cards Savings and investment Digital wallets Foreign exchange Foreign Nationals International solutions Sharíah banking Borrow for your needs Personal loans Credit cards Vehicle Financing New home loan Existing Home Loan Student loans Grow your money Savings and investment Financial planning Retirement solutions Investment solutions Share trading Bespoke solutions Insure what matters Your car Your home Your future Yourself Your debt Standard Bank Insurance App Customer Solutions Debt Management solutions Debt Care Centre Deceased Estates EasySell Ways to bank Self service banking Innovative payment solutions Help centre Security Centre Security Centre Protect yourself UCount Rewards UCount Rewards Rewards Retailers UCount Rewards Standard Bank Connect Learn Business Overview Products and Services Products and Services Bank with us Business Bank accounts Trust accounts Business and corporate credit cards Switch your bank account Foreign exchange Shari’ah banking International Payment Solutions Borrow for your needs Business Loans Vehicle and asset finance Commercial property financing Specialised financing Loan calculator Grow your money Business saving and investment accounts Insure what matters Your agri business Your vehicles Your business Loans Corporate risk Commercial property Engineering risk New contracts Cargo Energy business insurance Cash Mining Business Insurance Events Directors and Officers Healthcare Sector Insurance Your people Commercial Cyber Insurance Business solutions Merchant solutions Specialised Fleet management Industry Trade Suite Workplace solutions Ways to bank Self service banking Digital Banking Innovative Payment Solution MyUpdates UCount Rewards Security centre Fraud prevention BizConnect BizConnect Trade Suite Merchant Solutions Corporate and Institutions Wealth Insurance Insurance Fiduciary Fiduciary Investments Wealth Management News and Media About us Locate Us Contact us Win* 4 VIP tickets to MTN8 Final Buy MTN airtime or data worth R100 or more from our digital channels and stand to win*. Buy Now Flexible cover for life's turns Get life cover of up to R1 million. No medical questions for cover up to R300 000. Apply for the Flexible Life Plan today. Get quote A better way to play Lotto New games and more ways to win, exclusively on your Banking App. Not for persons under 18 and winners know when to stop. Tell me more Meet SB SafeGuard Your trusted guide to money safety, here to help you spot scams and protect your information. Tell me more Introducing the new Galaxy S26 Experience intuitive AI, a professional-grade camera, and built-in privacy display from R799 pm x36. Shop now Sheba Banyana Watch them Grow WAFCON – 25 Jul to 16 Aug Learn more What would you like to do today? Need help? Contact us Call me back Error message We found an error in your form. Please try again Customer care line South Africa 0860 123 000 International +27 10 824 1515 Fraud line - Report a NEW fraud incident South Africa 0800 222 050 International +27 10 824 2090 Lost or stolen cards South Africa 0800 020 600 International +27 10 824 1514 See all contact details Submit your details and we'll get in touch with you to answer your questions First Name Surname Phone Number ID Number Passport I agree that Standard Bank will process the personal information that I have provided to call me back in relation to the product/services that I have expressed interest in. Standard Bank keeps all information shared with it confidential in line with its Privacy Policy. Your information will be managed securely Call me back Thank You We will call you back. Stop fraud before it starts Easily nominate a Trusted Person on your
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 standardbank.co.za’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 standardbank.co.za. AI traffic analytics says whether one actually came, and which pages turned it away.
Full breakdown
15 pass3 warn7 fail12 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 H1 header and 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.standardbank.co.za/southafrica/personal.
100/100
skip
MCP server cardemerging
Agent-protocol discovery was not probed for this scan.
—
skip
OAuth authorization metadataemerging
Agent-protocol discovery was not probed for this scan.
—
skip
OAuth resource metadataemerging
Agent-protocol discovery was not probed for this scan.
—
skip
API catalog / OpenAPIemerging
Agent-protocol discovery was not probed for this scan.
—
skip
Web Bot Authemerging
Agent-protocol discovery was not probed for this scan.
—
Readability
skip
Markdown negotiationemerging
Agent-protocol discovery was not probed for this scan.
—
fail
Text-to-markup ratio
Visible text is 1.8% of HTML weight (12813/707001 bytes). 3% of the document is inline script, 95% is markup.
14/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.)
90/100
warn
Heading hierarchy
Heading issues: no <h1>.
75/100
warn
Cookie wall blocks content
Consent modal detected (cookielaw.org); content still visible. Verify the modal does not block first-paint for screenshot agents.
70/100
warn
Declared language
The lang attribute on <html> is not a well-formed BCP 47 tag. The usual culprits: an underscore instead of a hyphen (en_US), or a spelled-out language name (english). Use language[-Script][-REGION]: en, de-DE, zh-Hans-CN.
40/100
pass
Page title
A concise <title> is present (44 chars).
100/100
pass
Meta description
A well-sized meta description is present (113 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
pass
Schema type coverage
Page intent unclear; no specific schema.org type expected.
100/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.)
—
fail
JSON-LD name appears on the pageemerging
JSON-LD names "Standard Bank South Africa" appear nowhere in the page title or visible text. Stale structured data after a rename, or machine-only content: either way an agent identifies an entity your visitors never see.
0/100
skip
Declared language matches the contentemerging
Declared lang is malformed; markup.language already reports that.
—
Actionability
pass
Paywall / login wall
No paywall or login-wall detected on the landing URL.
100/100
skip
Agent Skills manifestemerging
Agent-protocol discovery was not probed for this scan.
—
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
skip
Commerce protocol manifestemerging
Agent-protocol discovery was not probed for this scan.
—
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
3 clickable element(s) carry an action an agent can take: <a> announcing "buy now", <a> announcing "shop now", <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 2264ms. 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 690 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://standardbank.co.za/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.
Visible text is 1.8% of HTML weight (12813/707001 bytes). 3% of the document is inline script, 95% is markup.
Show me exactly what to do
What this means
Of everything your server sends for this page, very little is actual readable text. The rest is code, styling, and markup wrapper. Agents fetched a lot of bytes and found few words.
Why it matters
Agents work with retrieval budgets. A page that is 2% text either gets skimmed (and mis-summarised) or skipped. More signal per byte means more of your actual message survives into the agent’s summary.
Do this
Confirm your real copy is server-rendered. See the JavaScript check; these two usually fail together.
Cut boilerplate wrappers: deeply nested divs, inline SVG logos repeated per section, base64 images inlined into HTML.
Move large inline styles and scripts into external files.
Check how much of the document is inline script: your report now says. If most of it is, that is your framework serializing state for hydration, often a second copy of text already in the HTML. Send only the props a component cannot recompute, and render statically where a page does not need to hydrate.
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: "Text-to-markup ratio" improves, and "Page weight" often improves alongside.
What to avoid
Don’t pad the page with keyword text to inflate the ratio. The ratio is a proxy for substance, and stuffing is the opposite of substance.
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.
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.
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.