AI Readiness Assessment

https://uk.virginmoney.com

Assessed2026-07-31
Reference0731/UKV/11
IndustryBanking and financial services
Scale187 / 1,893
TrafficNAAwaiting live domain connection, provided as part of service deployment.
Regulated sectorYesRegulator statements on the site: Financial Conduct Authority, Prudential Regulation Authority.
Listed companyNot established
Manual equivalent15 days · £9,180estimate only
Foundations assessed now ยท the automated tests
Your Digital Doorway
PeopleAI systems
AI readiness ยท Pages
34.3%
AI readiness ยท PDFs
38.8%
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.

AI readiness is low.the content can be reached, but the way the pages are built keeps much of it from being read cleanly.
What is holding it back
  • The wording no longer settles the target, so the wrong one gets followed at the point where the choice matters.37 pages
  • An undated page gives nothing to weigh its age against, so old and new material are treated alike.37 pages
  • A copyright year in the past reads as a page nobody has attended to, and it is the usual sign of a template copied from somewhere else. Either way an AI treats the content as stale and can present old material as current.37 pages
  • When a source is only typed out as text, there is no link behind it to follow, so the reference cannot be opened or checked.3 documents
  • When content sits on hidden or switchable layers, the text taken from the file differs from the page as it appears.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
  • Duplicates collapse to a single surviving version, and which one survives is not the publisher's choice.pages
  • 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.pages
  • When the main region is a small slice of the page, what is pulled out is mostly menus and boilerplate.pages
  • A figure that comes loose from its heading is read against the wrong row or the wrong column, so the number an AI system quotes is not the number the document gives.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
  • Alert to the word โ€œgamblingโ€ and possible misinterpretation due to the density of word use across pages; these will need careful consideration.19 instances
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 10.5% Extremely likely 6 out of 26
CheckResultEvidence
DS16fail2 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
2 URL group(s) are reachable under more than one form (case, trailing slash, or query variants)
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
uk.virginmoney.comuk.virginmoney.com/100%
CT34fail7 page(s) read as near-identical to other pages in the text a machine ingests (up to 91% shared), but the overlap is shared navigation and footer rather than content: the worst affected page has 11 words of its own out of 366. 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
7 page(s) read as near-identical to other pages in the text a machine ingests (up to 91% shared), but the overlap is shared navigation and footer rather than content: the worst affected page has 11 words of its own out of 366. Distinct pages can then be taken as duplicates and the real content passed over; the pages are listed in the view.
IN18fail14 legal or policy page(s) in the sitemap are linked from no crawled page; they are listed in the view
What we check
Whether policy pages such as privacy and terms are linked from anywhere, not just listed in the sitemap.
What good looks like
Policy pages such as privacy and terms are linked from crawled pages, not only listed in the sitemap.
Why it matters
A policy page nothing links to sits outside the site's own map, so questions about the terms are answered without it.
What we found on this page
14 legal or policy page(s) in the sitemap are linked from no crawled page; they are listed in the view
The evidence, taken from the page as served
Legal or policy pages in the sitemap that no crawled page links to

Each is listed in the XML sitemap but is not reached by a link from any crawled page.

Page ยท opens in a new tab
uk.virginmoney.com/cards/terms
uk.virginmoney.com/downloads/pdf/business/terms-and-conditions/bacstel-ip-bureau.pdf
uk.virginmoney.com/downloads/pdf/business/terms-and-conditions/bacstel-ip-services-direct-submitter.pdf
uk.virginmoney.com/downloads/pdf/business/terms-and-conditions/bacstel-ip-services-indirect-submitter.pdf
uk.virginmoney.com/downloads/pdf/business/terms-and-conditions/business-and-corporate-notice-account-tsandcs.pdf
uk.virginmoney.com/downloads/pdf/business/terms-and-conditions/business-authorised-user-terms.pdf
uk.virginmoney.com/downloads/pdf/business/terms-and-conditions/business-online-notice-account-terms.pdf
uk.virginmoney.com/downloads/pdf/business/terms-and-conditions/business-term-deposit-terms-and-conditions.pdf
uk.virginmoney.com/downloads/pdf/business/terms-and-conditions/business-terms-and-conditions.pdf
uk.virginmoney.com/downloads/pdf/business/terms-and-conditions/iden_trust_identify_certificate_policy_with_ip_icp.pdf
uk.virginmoney.com/downloads/pdf/business/terms-and-conditions/iden_trust_utility_certificate_policy_with_ip_ucp.pdf
uk.virginmoney.com/downloads/pdf/business/terms-and-conditions/public-key-infrastructure.pdf
uk.virginmoney.com/downloads/pdf/business/terms-and-conditions/virgin-money-business-charity-current-account-terms.pdf
uk.virginmoney.com/service/accessibility/hearing-or-speech/signvideo
DS08fail18% of the links to the site's own pages did not open when they were checked. 7 point at a page that no longer exists. That is 7 of the 40 checked, which stand for the 355 links to the site's own pages across the pages checked
What we check
The share of links to the site's own pages, from a sample, whose targets do not resolve.
What good looks like
The site's own links open, leading to live pages. Where one no longer does, the page either carries the point in its own words or stops presenting a route that does not open.
Why it matters
Routes into the site's own material dead-end, so content that exists is never reached from the pages pointing at it.
What we found on this page
18% of the links to the site's own pages did not open when they were checked. 7 point at a page that no longer exists. That is 7 of the 40 checked, which stand for the 355 links to the site's own pages across the pages checked
The evidence, taken from the page as served
The internal 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
uk.virginmoney.com/200Reachable
uk.virginmoney.com/business200Reachable
uk.virginmoney.com/brighter-money200Reachable
uk.virginmoney.com/service/support-hub200Reachable
uk.virginmoney.com/site-search200Reachable
uk.virginmoney.com/service/sign-in200Reachable
uk.virginmoney.com/current-accounts200Reachable
uk.virginmoney.com/current-accounts/your-application200Reachable
uk.virginmoney.com/current-accounts/pca/account-features/overdrafts200Reachable
uk.virginmoney.com/current-accounts/questions-and-answers200Reachable
uk.virginmoney.com/current-accounts/pca200Reachable
uk.virginmoney.com/current-accounts/club-m-account200Reachable
uk.virginmoney.com/current-accounts/m-account200Reachable
uk.virginmoney.com/current-accounts/joint-bank-account200Reachable
uk.virginmoney.com/current-accounts/existing-customers200Reachable
uk.virginmoney.com/service/rewards/virgin-money-cashback200Reachable
uk.virginmoney.com/service/rewards/youtility200Reachable
uk.virginmoney.com/service/digital-registration200Reachable
uk.virginmoney.com/service/financial-wellbeing200Reachable
uk.virginmoney.com/current-accounts/existing-customers/virgin-money-m-plus-account/set-up-your-m-plus-saver-account200Reachable
uk.virginmoney.com/current-accounts/your-application/upload-your-documents404Dead (404/410)
uk.virginmoney.com/savings200Reachable
uk.virginmoney.com/savings/find/results200Reachable
uk.virginmoney.com/savings/your-application200Reachable
uk.virginmoney.com/savings/upload-your-documents200Reachable
uk.virginmoney.com/savings/isa200Reachable
uk.virginmoney.com/savings/learn/access200Reachable
uk.virginmoney.com/savings/learn/fixed-term200Reachable
uk.virginmoney.com/savings/helpful-information200Reachable
uk.virginmoney.com/savings/learn/isas/transfer-your-isa200Reachable
uk.virginmoney.com/savings/questions-and-answers200Reachable
uk.virginmoney.com/savings/calculator404Dead (404/410)
uk.virginmoney.com/cards200Reachable
uk.virginmoney.com/cards/cardchecker/intro200Reachable
uk.virginmoney.com/cards/existing-customers200Reachable
uk.virginmoney.com/service/currency-converter404Dead (404/410)
uk.virginmoney.com/cards/products/vaa-cards404Dead (404/410)
uk.virginmoney.com/cards/products/balance-transfer-cards404Dead (404/410)
uk.virginmoney.com/cards/products/all-round-cards404Dead (404/410)
uk.virginmoney.com/cards/products/everyday-cashback-cards404Dead (404/410)
CT07warning1 page title(s) are used on more than one page: โ€œOnline Banking: Personal & Business | Virgin Money UKโ€; 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: โ€œOnline Banking: Personal & Business | Virgin Money UKโ€; 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
uk.virginmoney.com"Online Banking: Personal & Business | Vi"
uk.virginmoney.com/"Online Banking: Personal & Business | Vi"
CT30warningThe word โ€œgamblingโ€ appears on 7 pages (19 instances). Although these look like news articles, the density of use of the word โ€œgamblingโ€ could misinform and then be misrepresented by AI engines. A possible fix is to use the secure tag to restrict AiSC access to certain news articles where the risk of misclassification is high.
What we check
How often a charged or out-of-sector term recurs in the words a machine reads across the site.
What good looks like
Charged or out-of-sector terms appear only in proportion to the organisation's actual business, not densely across the estate.
Why it matters
A word that recurs across many pages can come to define the organisation by it, whatever the human context around each mention.
What we found on this page
The word โ€œgamblingโ€ appears on 7 pages (19 instances). Although these look like news articles, the density of use of the word โ€œgamblingโ€ could misinform and then be misrepresented by AI engines. A possible fix is to use the secure tag to restrict AiSC access to certain news articles where the risk of misclassification is high.
The evidence, taken from the page as served
Each page where โ€œgamblingโ€ appears, with the surrounding text
Page ยท opens in a new tabFoundThe text, as served, around the word
uk.virginmoney.com/service/support-hub…More support Financial abuse Gambling Need better access to…
uk.virginmoney.com/service/financial-wellbeing…help GamCare Support for gambling -related money worries MoneyHelper…
uk.virginmoney.com/cards/products/vaa-cards…withdrawals, buying currency or gambling. You can only…
uk.virginmoney.com/cards/products/everyday-cashback-cards…advances are ATM withdrawals, gambling, investments and buying…
uk.virginmoney.com/business/business-credit-card…deposits into bank accounts Gambling or purchasing of cryptocurrency…
uk.virginmoney.com/business/business-debit-cards…deposits into bank accounts Gambling & purchasing of Cryptocurrency…
uk.virginmoney.com/business/business-cashback…apply like transactions with gambling businesses, any tax related…

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://uk.virginmoney.com 57.4% Likely 7 out of 59
CheckResultEvidence
CT04warningthe page shows the year 2026 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 2026 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 http-equiv="X-UA-Compatible" content="IE=edge"/> <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1.0"/> <!--evidon omnitag--> <script type="text/javascript" src="/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-dtconfig="rid=RID_2418|rpid=-115436173|domain=virginmoney.com|reportUrl=/rb_bf64125xgr|uam=1|app=8e10568a9231138b|ssc=1|coo=1|owasp=1|featureHash=ICA15789NPRTUVXfghqrux|srsr=20000|xb=*.analytics.google.com*^p.*evidon.*^p.*google-analytic.*^p.*ybg.egain.*^p.*cludo.*^p.*pinterest.*^p.*visualwebsiteoptimize.*^p.*linkedin.*^p.*demdex.*|rdnt=1|uxrgce=1|cuc=4agxwo8z|mel=100000|expw=1|dpvc=1|md=mdcc1=bdocument.referrer,mdcc2=bnavigator.userAgent,mdcc3=dutm_source,mdcc4=dutm_medium,mdcc5=dutm_campaign,mdcc6=dutm_term,mdcc7=dutm_content,mdcc8=bwindow.location.href,mdcc9=dproduct,mdcc10=chdtCode1|lastModification=1785157117101|tp=500,50,0|srbbv=2|agentUri=/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-config="{&quot;revision&quot;:1785157117101,&quot;beaconUri&quot;:&quot;/rb_bf64125xgr&quot;,&quot;agentUri&quot;:&quot;/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js&quot;,&โ€ฆ
CT35warningthe page carries no copyright line in the content as served, so there is nothing on it to date it by, and an absent copyright line is one of the marks of a copied template
What we check
The copyright line at the foot of the page, and the year it states.
What good looks like
The copyright line states the current year.
Why it matters
A copyright year in the past reads as a page nobody has attended to, and it is the usual sign of a template copied from somewhere else. Either way an AI treats the content as stale and can present old material as current.
What we found on this page
the page carries no copyright line in the content as served, so there is nothing on it to date it by, and an absent copyright line is one of the marks of a copied template
The evidence, taken from the page as served
The foot of this page, as served

The foot of the page was read for a copyright line.

<footer class="container footer pattern pattern--bottom bg-dark-2 stroke-primary "> <div class="row"> <div class="col-sm-6 col-md-3"> <h2 class="h3">Get in touch</h2> <ul class="list-unstyled pb-0 "> <li class=""> <a class="btn btn-link " href="/contact/">Contact us</a> </li> <li class=""> <a class="btn btn-link " href="/service/support-hub/">Help and support</a> </li> <li class=""> <a class="btn btn-link " href="/service/financial-wellbeing/">Financial wellbeing hub</a> </li> <li class=""> <a class="btn btn-link " href="/service/ways-to-bank/">Ways to bank</a> </li> <li class=""> <a class="btn btn-link " href="/vmforms/feedback-form/">Feedback</a> </li> <li class=""> <a class="btn btn-link " href="/service/complaints/">Make a complaint</a> </li> </ul> <ul class="list-unstyled list-social"> <li> <a href="https://www.instagram.com/virginmoney/" title="Virgin Money Instagram" target="_blank" rel="noopener"> <svg viewbox="0 0 32 32"> <title>Virgin Money Instagram</title> <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="/assets/svg/social.svg?v1.0#social-instagram-bg" class="svg__bg"/> <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="/assets/svg/social.svg?v1.0#soโ€ฆ
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 http-equiv="X-UA-Compatible" content="IE=edge"/> <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1.0"/> <!--evidon omnitag--> <script type="text/javascript" src="/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-dtconfig="rid=RID_2418|rpid=-115436173|domain=virginmoney.com|reportUrl=/rb_bf64125xgr|uam=1|app=8e10568a9231138b|ssc=1|coo=1|owasp=1|featureHash=ICA15789NPRTUVXfghqrux|srsr=20000|xb=*.analytics.google.com*^p.*evidon.*^p.*google-analytic.*^p.*ybg.egain.*^p.*cludo.*^p.*pinterest.*^p.*visualwebsiteoptimize.*^p.*linkedin.*^p.*demdex.*|rdnt=1|uxrgce=1|cuc=4agxwo8z|mel=100000|expw=1|dpvc=1|md=mdcc1=bdocument.referrer,mdcc2=bnavigator.userAgent,mdcc3=dutm_source,mdcc4=dutm_medium,mdcc5=dutm_campaign,mdcc6=dutm_term,mdcc7=dutm_content,mdcc8=bwindow.location.href,mdcc9=dproduct,mdcc10=chdtCode1|lastModification=1785157117101|tp=500,50,0|srbbv=2|agentUri=/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-config="{&quot;revision&quot;:1785157117101,&quot;beaconUri&quot;:&quot;/rb_bf64125xgr&quot;,&quot;agentUri&quot;:&quot;/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js&quot;,&โ€ฆ
MS08fail1 link wording(s) are used for more than one destination, so the same words point at different pages: โ€œbusinessโ€; 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: โ€œbusinessโ€; 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
"Business"
<a class="" href="/business/">Business</a>
"Business"
<a href="/business/service/sign-in/" class="ctasecondarynav-link"> Business </a>
AR12warning53% of the page's text (4767 of 8907 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
53% of the page's text (4767 of 8907 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 click4767 characters
All the text on the finished page8907 characters
Hidden share53%
The point we measure against50%
MS04warningthe page's naming markup is faulty: 145 working control(s) sit inside a section the code marks as hidden, so they work on screen but are absent from what is read out
What we check
Accessibility markup faults: invented roles, labels pointing at nothing, live controls marked hidden.
What good looks like
The page's accessibility markup is sound, with valid roles and no labels pointing at nothing.
Why it matters
The page's own description of its controls is wrong, so what it offers and what it declares do not match.
What we found on this page
the page's naming markup is faulty: 145 working control(s) sit inside a section the code marks as hidden, so they work on screen but are absent from what is read out
The evidence, taken from the page as served
The faulty markup, as the page serves it once loaded
<a href="/" id="site-logo" class="brand" rel="home" title="Virgin Money homepage"> <svg viewbox="0 0 198 40"> <title>Virgin Money homepage</title> <circle xmlns="http://www.w3.org/2000/svg" class="cls-1" cx="69.9375" cy="20.375" r="19"/> <use xlink:href="/assets/svg/logo.svg#hero"/></svg> </a>
<button type="button" id="navbar-toggle-secondnav" class="navbar-toggler collapsed" aria-controls="ctasecondarynav" aria-expanded="false" aria-label="Open Sign in menu for online Services" data-toggle="collapse" data-parent="#nav" data-target="#ctasecondarynav"> <span class="navbar-toggler__label" style="animation-delaโ€ฆ
<button type="button" id="navbar-toggle-menu" class="navbar-toggler collapsed" aria-controls="menu-container" aria-expanded="false" aria-label="Toggle Menu navigation" data-toggle="collapse" data-parent="#nav" data-target="#menu-container"> <span class="navbar-toggler__label" style="animation-delay: 0.75s;">Menu</span>โ€ฆ
<a class="selected" href="/" aria-current="page">Personal</a>
<a class="" href="/business/">Business</a>
<a class="" href="/brighter-money/">Brighter Money</a>
<a href="/service/support-hub/" class="" data-icon="/assets/svg/rebrand-ui.svg#help" data-icon-left=""><span class="svg__wrapper svg__wrapper--fill"><svg class=""><use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="/assets/svg/rebrand-ui.svg#help"/></svg></span> Help </a>
<a href="/site-search/" class="" data-icon="/assets/svg/rebrand-ui.svg#search" data-icon-left=""><span class="svg__wrapper svg__wrapper--fill"><svg class=""><use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="/assets/svg/rebrand-ui.svg#search"/></svg></span> Search </a>
<button type="button" class="d-none d-md-inline-block btn btn-secondary btn-cta-pages collapsed" aria-controls="ctasecondarynav" aria-expanded="false" data-toggle="collapse" data-trigger="click" data-trigger-selector=".menu &gt; .list-nav &gt; li &gt; a[data-toggle]:not(.collapsed)" data-target="#ctasecondarynav"> <spaโ€ฆ
<a href="/service/sign-in/" class=" btn btn-secondary"> <span class="visually-hidden">Visit the </span>Sign in<span class="visually-hidden"> page for existing customers, where you can service any products you have with Virgin Money. </span> </a>

…and 135 more like it.

AJ08warningfocus order: 7 element(s) use a positive tabindex, overriding document 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: 7 element(s) use a positive tabindex, overriding document order; the first 12 Tab stops do not follow document order
The evidence, taken from the page as served
The elements with a positive tabindex, as served after rendering
tabindex=1
<div id="_evidon-banner" role="dialog" aria-modal="true" aria-labelledby="_evidon-banner-title" aria-describedby="_evidon-banner-message" class="evidon-barrier" tabindex="1" style="position: fixed; transform: translate(-50%, 0px); left: 50%; top: 6rem; max-height: calc(100% - 8rem); overflow: auto; display: block; backโ€ฆ
tabindex=2
<a tabindex="2" href="https://uk.virginmoney.com/security/?ban" target="_blank" rel="noopener">privacy notice</a>
tabindex=2
<a tabindex="2" href="https://uk.virginmoney.com/cookies/?ban" target="_blank" rel="noopener">cookies notice</a>
tabindex=4
<button id="_evidon-banner-cookiebutton" class="evidon-barrier-cookiebutton" tabindex="4" style="font-size: 17.6px; margin: 32px 24px; padding: 20px 32px; border: 1px solid rgb(225, 10, 10); display: inline-block; background: rgb(255, 255, 255); border-radius: 0px; color: rgb(225, 10, 10); cursor: pointer; font-family:โ€ฆ
tabindex=5
<button id="_evidon-barrier-declinebutton" tabindex="5" class="evidon-barrier-declinebutton" aria-label="Reject optional cookies" style="font-size: 17.6px; margin: 32px 24px; padding: 20px 32px; border: 1px solid rgb(225, 10, 10); display: inline-block; background: rgb(255, 255, 255); border-radius: 0px; color: rgb(225โ€ฆ
tabindex=3
<button id="_evidon-banner-acceptbutton" tabindex="3" class="evidon-barrier-acceptbutton" style="font-size: 17.6px; margin: 32px 24px; padding: 20px 32px; border: 1px solid rgb(225, 10, 10); display: inline-block; background: rgb(255, 255, 255); border-radius: 0px; color: rgb(225, 10, 10); cursor: pointer; font-family:โ€ฆ
tabindex=3
<button id="_ev_opt_out_close" tabindex="3" style="position: absolute; top: 0px; right: 2px; color: rgb(225, 10, 10); background: transparent; font-size: 12px; border: 0px; cursor: pointer;">Close โœ–</button>
https://uk.virginmoney.com/service/financial-wellbeing 57.3% Likely 7 out of 58
CheckResultEvidence
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 http-equiv="X-UA-Compatible" content="IE=edge"/> <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1.0"/> <!--evidon omnitag--> <script type="text/javascript" src="/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-dtconfig="rid=RID_942894013|rpid=20182239|domain=virginmoney.com|reportUrl=/rb_bf64125xgr|uam=1|app=8e10568a9231138b|ssc=1|coo=1|owasp=1|featureHash=ICA15789NPRTUVXfghqrux|srsr=20000|xb=*.analytics.google.com*^p.*evidon.*^p.*google-analytic.*^p.*ybg.egain.*^p.*cludo.*^p.*pinterest.*^p.*visualwebsiteoptimize.*^p.*linkedin.*^p.*demdex.*|rdnt=1|uxrgce=1|cuc=4agxwo8z|mel=100000|expw=1|dpvc=1|md=mdcc1=bdocument.referrer,mdcc2=bnavigator.userAgent,mdcc3=dutm_source,mdcc4=dutm_medium,mdcc5=dutm_campaign,mdcc6=dutm_term,mdcc7=dutm_content,mdcc8=bwindow.location.href,mdcc9=dproduct,mdcc10=chdtCode1|lastModification=1785157117101|tp=500,50,0|srbbv=2|agentUri=/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-config="{&quot;revision&quot;:1785157117101,&quot;beaconUri&quot;:&quot;/rb_bf64125xgr&quot;,&quot;agentUri&quot;:&quot;/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js&quotโ€ฆ
CT04warningthe page carries no date, so there is nothing on it saying how current its content is
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 carries no date, so there is nothing on it saying how current its content is
The evidence, taken from the page as served
The head of this page, as served

The head of the page and the page's own text were read for a date.

<head> <meta charset="utf-8"/> <meta http-equiv="X-UA-Compatible" content="IE=edge"/> <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1.0"/> <!--evidon omnitag--> <script type="text/javascript" src="/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-dtconfig="rid=RID_942894013|rpid=20182239|domain=virginmoney.com|reportUrl=/rb_bf64125xgr|uam=1|app=8e10568a9231138b|ssc=1|coo=1|owasp=1|featureHash=ICA15789NPRTUVXfghqrux|srsr=20000|xb=*.analytics.google.com*^p.*evidon.*^p.*google-analytic.*^p.*ybg.egain.*^p.*cludo.*^p.*pinterest.*^p.*visualwebsiteoptimize.*^p.*linkedin.*^p.*demdex.*|rdnt=1|uxrgce=1|cuc=4agxwo8z|mel=100000|expw=1|dpvc=1|md=mdcc1=bdocument.referrer,mdcc2=bnavigator.userAgent,mdcc3=dutm_source,mdcc4=dutm_medium,mdcc5=dutm_campaign,mdcc6=dutm_term,mdcc7=dutm_content,mdcc8=bwindow.location.href,mdcc9=dproduct,mdcc10=chdtCode1|lastModification=1785157117101|tp=500,50,0|srbbv=2|agentUri=/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-config="{&quot;revision&quot;:1785157117101,&quot;beaconUri&quot;:&quot;/rb_bf64125xgr&quot;,&quot;agentUri&quot;:&quot;/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js&quotโ€ฆ
CT35warningthe page carries no copyright line in the content as served, so there is nothing on it to date it by, and an absent copyright line is one of the marks of a copied template
What we check
The copyright line at the foot of the page, and the year it states.
What good looks like
The copyright line states the current year.
Why it matters
A copyright year in the past reads as a page nobody has attended to, and it is the usual sign of a template copied from somewhere else. Either way an AI treats the content as stale and can present old material as current.
What we found on this page
the page carries no copyright line in the content as served, so there is nothing on it to date it by, and an absent copyright line is one of the marks of a copied template
The evidence, taken from the page as served
The foot of this page, as served

The foot of the page was read for a copyright line.

<footer class="container footer pattern pattern--bottom bg-dark-2 stroke-primary "> <div class="row"> <div class="col-sm-6 col-md-3"> <h2 class="h3">Get in touch</h2> <ul class="list-unstyled pb-0 "> <li class=""> <a class="btn btn-link " href="/contact/">Contact us</a> </li> <li class=""> <a class="btn btn-link " href="/service/support-hub/">Help and support</a> </li> <li class=""> <a class="btn btn-link " href="/service/financial-wellbeing/">Financial wellbeing hub</a> </li> <li class=""> <a class="btn btn-link " href="/service/ways-to-bank/">Ways to bank</a> </li> <li class=""> <a class="btn btn-link " href="/vmforms/feedback-form/">Feedback</a> </li> <li class=""> <a class="btn btn-link " href="/service/complaints/">Make a complaint</a> </li> </ul> <ul class="list-unstyled list-social"> <li> <a href="https://www.instagram.com/virginmoney/" title="Virgin Money Instagram" target="_blank" rel="noopener"> <svg viewbox="0 0 32 32"> <title>Virgin Money Instagram</title> <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="/assets/svg/social.svg?v1.0#social-instagram-bg" class="svg__bg"/> <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="/assets/svg/social.svg?v1.0#soโ€ฆ
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 http-equiv="X-UA-Compatible" content="IE=edge"/> <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1.0"/> <!--evidon omnitag--> <script type="text/javascript" src="/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-dtconfig="rid=RID_942894013|rpid=20182239|domain=virginmoney.com|reportUrl=/rb_bf64125xgr|uam=1|app=8e10568a9231138b|ssc=1|coo=1|owasp=1|featureHash=ICA15789NPRTUVXfghqrux|srsr=20000|xb=*.analytics.google.com*^p.*evidon.*^p.*google-analytic.*^p.*ybg.egain.*^p.*cludo.*^p.*pinterest.*^p.*visualwebsiteoptimize.*^p.*linkedin.*^p.*demdex.*|rdnt=1|uxrgce=1|cuc=4agxwo8z|mel=100000|expw=1|dpvc=1|md=mdcc1=bdocument.referrer,mdcc2=bnavigator.userAgent,mdcc3=dutm_source,mdcc4=dutm_medium,mdcc5=dutm_campaign,mdcc6=dutm_term,mdcc7=dutm_content,mdcc8=bwindow.location.href,mdcc9=dproduct,mdcc10=chdtCode1|lastModification=1785157117101|tp=500,50,0|srbbv=2|agentUri=/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-config="{&quot;revision&quot;:1785157117101,&quot;beaconUri&quot;:&quot;/rb_bf64125xgr&quot;,&quot;agentUri&quot;:&quot;/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js&quotโ€ฆ
MS08fail1 link wording(s) are used for more than one destination, so the same words point at different pages: โ€œbusinessโ€; 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: โ€œbusinessโ€; 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
"Business"
<a class="" href="/business/">Business</a>
"Business"
<a href="/business/service/sign-in/" class="ctasecondarynav-link"> Business </a>
MS04warningthe page's naming markup is faulty: 137 working control(s) sit inside a section the code marks as hidden, so they work on screen but are absent from what is read out
What we check
Accessibility markup faults: invented roles, labels pointing at nothing, live controls marked hidden.
What good looks like
The page's accessibility markup is sound, with valid roles and no labels pointing at nothing.
Why it matters
The page's own description of its controls is wrong, so what it offers and what it declares do not match.
What we found on this page
the page's naming markup is faulty: 137 working control(s) sit inside a section the code marks as hidden, so they work on screen but are absent from what is read out
The evidence, taken from the page as served
The faulty markup, as the page serves it once loaded
<a href="/" id="site-logo" class="brand" rel="home" title="Virgin Money homepage"> <svg viewbox="0 0 198 40"> <title>Virgin Money homepage</title> <circle xmlns="http://www.w3.org/2000/svg" class="cls-1" cx="69.9375" cy="20.375" r="19"/> <use xlink:href="/assets/svg/logo.svg#hero"/></svg> </a>
<button type="button" id="navbar-toggle-secondnav" class="navbar-toggler collapsed" aria-controls="ctasecondarynav" aria-expanded="false" aria-label="Open Sign in menu for online Services" data-toggle="collapse" data-parent="#nav" data-target="#ctasecondarynav"> <span class="navbar-toggler__label" style="animation-delaโ€ฆ
<button type="button" id="navbar-toggle-menu" class="navbar-toggler collapsed" aria-controls="menu-container" aria-expanded="false" aria-label="Toggle Menu navigation" data-toggle="collapse" data-parent="#nav" data-target="#menu-container"> <span class="navbar-toggler__label" style="animation-delay: 0.75s;">Menu</span>โ€ฆ
<a class="selected" href="/" aria-current="page">Personal</a>
<a class="" href="/business/">Business</a>
<a class="" href="/brighter-money/">Brighter Money</a>
<a href="/service/support-hub/" class="" data-icon="/assets/svg/rebrand-ui.svg#help" data-icon-left=""><span class="svg__wrapper svg__wrapper--fill"><svg class=""><use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="/assets/svg/rebrand-ui.svg#help"/></svg></span> Help </a>
<a href="/site-search/" class="" data-icon="/assets/svg/rebrand-ui.svg#search" data-icon-left=""><span class="svg__wrapper svg__wrapper--fill"><svg class=""><use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="/assets/svg/rebrand-ui.svg#search"/></svg></span> Search </a>
<button type="button" class="d-none d-md-inline-block btn btn-secondary btn-cta-pages collapsed" aria-controls="ctasecondarynav" aria-expanded="false" data-toggle="collapse" data-trigger="click" data-trigger-selector=".menu &gt; .list-nav &gt; li &gt; a[data-toggle]:not(.collapsed)" data-target="#ctasecondarynav"> <spaโ€ฆ
<a href="/service/sign-in/" class=" btn btn-secondary"> <span class="visually-hidden">Visit the </span>Sign in<span class="visually-hidden"> page for existing customers, where you can service any products you have with Virgin Money. </span> </a>

…and 127 more like it.

AJ08warningfocus order: 7 element(s) use a positive tabindex, overriding document 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: 7 element(s) use a positive tabindex, overriding document order; the first 12 Tab stops do not follow document order
The evidence, taken from the page as served
The elements with a positive tabindex, as served after rendering
tabindex=1
<div id="_evidon-banner" role="dialog" aria-modal="true" aria-labelledby="_evidon-banner-title" aria-describedby="_evidon-banner-message" class="evidon-barrier" tabindex="1" style="position: fixed; transform: translate(-50%, 0px); left: 50%; top: 6rem; max-height: calc(100% - 8rem); overflow: auto; display: block; backโ€ฆ
tabindex=2
<a tabindex="2" href="https://uk.virginmoney.com/security/?ban" target="_blank" rel="noopener">privacy notice</a>
tabindex=2
<a tabindex="2" href="https://uk.virginmoney.com/cookies/?ban" target="_blank" rel="noopener">cookies notice</a>
tabindex=4
<button id="_evidon-banner-cookiebutton" class="evidon-barrier-cookiebutton" tabindex="4" style="font-size: 17.6px; margin: 32px 24px; padding: 20px 32px; border: 1px solid rgb(225, 10, 10); display: inline-block; background: rgb(255, 255, 255); border-radius: 0px; color: rgb(225, 10, 10); cursor: pointer; font-family:โ€ฆ
tabindex=5
<button id="_evidon-barrier-declinebutton" tabindex="5" class="evidon-barrier-declinebutton" aria-label="Reject optional cookies" style="font-size: 17.6px; margin: 32px 24px; padding: 20px 32px; border: 1px solid rgb(225, 10, 10); display: inline-block; background: rgb(255, 255, 255); border-radius: 0px; color: rgb(225โ€ฆ
tabindex=3
<button id="_evidon-banner-acceptbutton" tabindex="3" class="evidon-barrier-acceptbutton" style="font-size: 17.6px; margin: 32px 24px; padding: 20px 32px; border: 1px solid rgb(225, 10, 10); display: inline-block; background: rgb(255, 255, 255); border-radius: 0px; color: rgb(225, 10, 10); cursor: pointer; font-family:โ€ฆ
tabindex=3
<button id="_ev_opt_out_close" tabindex="3" style="position: absolute; top: 0px; right: 2px; color: rgb(225, 10, 10); background: transparent; font-size: 12px; border: 0px; cursor: pointer;">Close โœ–</button>
https://uk.virginmoney.com/ 57.4% Likely 7 out of 59
CheckResultEvidence
CT04warningthe page shows the year 2026 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 2026 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 http-equiv="X-UA-Compatible" content="IE=edge"/> <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1.0"/> <!--evidon omnitag--> <script type="text/javascript" src="/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-dtconfig="rid=RID_2418|rpid=-1764119201|domain=virginmoney.com|reportUrl=/rb_bf64125xgr|uam=1|app=8e10568a9231138b|ssc=1|coo=1|owasp=1|featureHash=ICA15789NPRTUVXfghqrux|srsr=20000|xb=*.analytics.google.com*^p.*evidon.*^p.*google-analytic.*^p.*ybg.egain.*^p.*cludo.*^p.*pinterest.*^p.*visualwebsiteoptimize.*^p.*linkedin.*^p.*demdex.*|rdnt=1|uxrgce=1|cuc=4agxwo8z|mel=100000|expw=1|dpvc=1|md=mdcc1=bdocument.referrer,mdcc2=bnavigator.userAgent,mdcc3=dutm_source,mdcc4=dutm_medium,mdcc5=dutm_campaign,mdcc6=dutm_term,mdcc7=dutm_content,mdcc8=bwindow.location.href,mdcc9=dproduct,mdcc10=chdtCode1|lastModification=1785157117101|tp=500,50,0|srbbv=2|agentUri=/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-config="{&quot;revision&quot;:1785157117101,&quot;beaconUri&quot;:&quot;/rb_bf64125xgr&quot;,&quot;agentUri&quot;:&quot;/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js&quot;,โ€ฆ
CT35warningthe page carries no copyright line in the content as served, so there is nothing on it to date it by, and an absent copyright line is one of the marks of a copied template
What we check
The copyright line at the foot of the page, and the year it states.
What good looks like
The copyright line states the current year.
Why it matters
A copyright year in the past reads as a page nobody has attended to, and it is the usual sign of a template copied from somewhere else. Either way an AI treats the content as stale and can present old material as current.
What we found on this page
the page carries no copyright line in the content as served, so there is nothing on it to date it by, and an absent copyright line is one of the marks of a copied template
The evidence, taken from the page as served
The foot of this page, as served

The foot of the page was read for a copyright line.

<footer class="container footer pattern pattern--bottom bg-dark-2 stroke-primary "> <div class="row"> <div class="col-sm-6 col-md-3"> <h2 class="h3">Get in touch</h2> <ul class="list-unstyled pb-0 "> <li class=""> <a class="btn btn-link " href="/contact/">Contact us</a> </li> <li class=""> <a class="btn btn-link " href="/service/support-hub/">Help and support</a> </li> <li class=""> <a class="btn btn-link " href="/service/financial-wellbeing/">Financial wellbeing hub</a> </li> <li class=""> <a class="btn btn-link " href="/service/ways-to-bank/">Ways to bank</a> </li> <li class=""> <a class="btn btn-link " href="/vmforms/feedback-form/">Feedback</a> </li> <li class=""> <a class="btn btn-link " href="/service/complaints/">Make a complaint</a> </li> </ul> <ul class="list-unstyled list-social"> <li> <a href="https://www.instagram.com/virginmoney/" title="Virgin Money Instagram" target="_blank" rel="noopener"> <svg viewbox="0 0 32 32"> <title>Virgin Money Instagram</title> <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="/assets/svg/social.svg?v1.0#social-instagram-bg" class="svg__bg"/> <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="/assets/svg/social.svg?v1.0#soโ€ฆ
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 http-equiv="X-UA-Compatible" content="IE=edge"/> <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1.0"/> <!--evidon omnitag--> <script type="text/javascript" src="/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-dtconfig="rid=RID_2418|rpid=-1764119201|domain=virginmoney.com|reportUrl=/rb_bf64125xgr|uam=1|app=8e10568a9231138b|ssc=1|coo=1|owasp=1|featureHash=ICA15789NPRTUVXfghqrux|srsr=20000|xb=*.analytics.google.com*^p.*evidon.*^p.*google-analytic.*^p.*ybg.egain.*^p.*cludo.*^p.*pinterest.*^p.*visualwebsiteoptimize.*^p.*linkedin.*^p.*demdex.*|rdnt=1|uxrgce=1|cuc=4agxwo8z|mel=100000|expw=1|dpvc=1|md=mdcc1=bdocument.referrer,mdcc2=bnavigator.userAgent,mdcc3=dutm_source,mdcc4=dutm_medium,mdcc5=dutm_campaign,mdcc6=dutm_term,mdcc7=dutm_content,mdcc8=bwindow.location.href,mdcc9=dproduct,mdcc10=chdtCode1|lastModification=1785157117101|tp=500,50,0|srbbv=2|agentUri=/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-config="{&quot;revision&quot;:1785157117101,&quot;beaconUri&quot;:&quot;/rb_bf64125xgr&quot;,&quot;agentUri&quot;:&quot;/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js&quot;,โ€ฆ
MS08fail1 link wording(s) are used for more than one destination, so the same words point at different pages: โ€œbusinessโ€; 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: โ€œbusinessโ€; 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
"Business"
<a class="" href="/business/">Business</a>
"Business"
<a href="/business/service/sign-in/" class="ctasecondarynav-link"> Business </a>
AR12warning53% of the page's text (4767 of 8907 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
53% of the page's text (4767 of 8907 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 click4767 characters
All the text on the finished page8907 characters
Hidden share53%
The point we measure against50%
MS04warningthe page's naming markup is faulty: 145 working control(s) sit inside a section the code marks as hidden, so they work on screen but are absent from what is read out
What we check
Accessibility markup faults: invented roles, labels pointing at nothing, live controls marked hidden.
What good looks like
The page's accessibility markup is sound, with valid roles and no labels pointing at nothing.
Why it matters
The page's own description of its controls is wrong, so what it offers and what it declares do not match.
What we found on this page
the page's naming markup is faulty: 145 working control(s) sit inside a section the code marks as hidden, so they work on screen but are absent from what is read out
The evidence, taken from the page as served
The faulty markup, as the page serves it once loaded
<a href="/" id="site-logo" class="brand" rel="home" title="Virgin Money homepage"> <svg viewbox="0 0 198 40"> <title>Virgin Money homepage</title> <circle xmlns="http://www.w3.org/2000/svg" class="cls-1" cx="69.9375" cy="20.375" r="19"/> <use xlink:href="/assets/svg/logo.svg#hero"/></svg> </a>
<button type="button" id="navbar-toggle-secondnav" class="navbar-toggler collapsed" aria-controls="ctasecondarynav" aria-expanded="false" aria-label="Open Sign in menu for online Services" data-toggle="collapse" data-parent="#nav" data-target="#ctasecondarynav"> <span class="navbar-toggler__label" style="animation-delaโ€ฆ
<button type="button" id="navbar-toggle-menu" class="navbar-toggler collapsed" aria-controls="menu-container" aria-expanded="false" aria-label="Toggle Menu navigation" data-toggle="collapse" data-parent="#nav" data-target="#menu-container"> <span class="navbar-toggler__label" style="animation-delay: 0.75s;">Menu</span>โ€ฆ
<a class="selected" href="/" aria-current="page">Personal</a>
<a class="" href="/business/">Business</a>
<a class="" href="/brighter-money/">Brighter Money</a>
<a href="/service/support-hub/" class="" data-icon="/assets/svg/rebrand-ui.svg#help" data-icon-left=""><span class="svg__wrapper svg__wrapper--fill"><svg class=""><use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="/assets/svg/rebrand-ui.svg#help"/></svg></span> Help </a>
<a href="/site-search/" class="" data-icon="/assets/svg/rebrand-ui.svg#search" data-icon-left=""><span class="svg__wrapper svg__wrapper--fill"><svg class=""><use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="/assets/svg/rebrand-ui.svg#search"/></svg></span> Search </a>
<button type="button" class="d-none d-md-inline-block btn btn-secondary btn-cta-pages collapsed" aria-controls="ctasecondarynav" aria-expanded="false" data-toggle="collapse" data-trigger="click" data-trigger-selector=".menu &gt; .list-nav &gt; li &gt; a[data-toggle]:not(.collapsed)" data-target="#ctasecondarynav"> <spaโ€ฆ
<a href="/service/sign-in/" class=" btn btn-secondary"> <span class="visually-hidden">Visit the </span>Sign in<span class="visually-hidden"> page for existing customers, where you can service any products you have with Virgin Money. </span> </a>

…and 135 more like it.

AJ08warningfocus order: 7 element(s) use a positive tabindex, overriding document 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: 7 element(s) use a positive tabindex, overriding document order; the first 12 Tab stops do not follow document order
The evidence, taken from the page as served
The elements with a positive tabindex, as served after rendering
tabindex=1
<div id="_evidon-banner" role="dialog" aria-modal="true" aria-labelledby="_evidon-banner-title" aria-describedby="_evidon-banner-message" class="evidon-barrier" tabindex="1" style="position: fixed; transform: translate(-50%, 0px); left: 50%; top: 6rem; max-height: calc(100% - 8rem); overflow: auto; display: block; backโ€ฆ
tabindex=2
<a tabindex="2" href="https://uk.virginmoney.com/security/?ban" target="_blank" rel="noopener">privacy notice</a>
tabindex=2
<a tabindex="2" href="https://uk.virginmoney.com/cookies/?ban" target="_blank" rel="noopener">cookies notice</a>
tabindex=4
<button id="_evidon-banner-cookiebutton" class="evidon-barrier-cookiebutton" tabindex="4" style="font-size: 17.6px; margin: 32px 24px; padding: 20px 32px; border: 1px solid rgb(225, 10, 10); display: inline-block; background: rgb(255, 255, 255); border-radius: 0px; color: rgb(225, 10, 10); cursor: pointer; font-family:โ€ฆ
tabindex=5
<button id="_evidon-barrier-declinebutton" tabindex="5" class="evidon-barrier-declinebutton" aria-label="Reject optional cookies" style="font-size: 17.6px; margin: 32px 24px; padding: 20px 32px; border: 1px solid rgb(225, 10, 10); display: inline-block; background: rgb(255, 255, 255); border-radius: 0px; color: rgb(225โ€ฆ
tabindex=3
<button id="_evidon-banner-acceptbutton" tabindex="3" class="evidon-barrier-acceptbutton" style="font-size: 17.6px; margin: 32px 24px; padding: 20px 32px; border: 1px solid rgb(225, 10, 10); display: inline-block; background: rgb(255, 255, 255); border-radius: 0px; color: rgb(225, 10, 10); cursor: pointer; font-family:โ€ฆ
tabindex=3
<button id="_ev_opt_out_close" tabindex="3" style="position: absolute; top: 0px; right: 2px; color: rgb(225, 10, 10); background: transparent; font-size: 12px; border: 0px; cursor: pointer;">Close โœ–</button>
https://uk.virginmoney.com/service/sign-in 10.6% Extremely likely 12 out of 59
CheckResultEvidence
CT32warninglength 173
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 173
The evidence, taken from the page as served
The page's description, as served
173 characters
<meta name="description" content="Service your Virgin Money products online - service your credit card, check your savings and investments and top up your prepaid card. Browse our latest deals and discounts."/>
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 http-equiv="X-UA-Compatible" content="IE=edge"/> <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1.0"/> <!--evidon omnitag--> <script type="text/javascript" src="/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-dtconfig="rid=RID_-2067472523|rpid=-358213138|domain=virginmoney.com|reportUrl=/rb_bf64125xgr|uam=1|app=8e10568a9231138b|ssc=1|coo=1|owasp=1|featureHash=ICA15789NPRTUVXfghqrux|srsr=20000|xb=*.analytics.google.com*^p.*evidon.*^p.*google-analytic.*^p.*ybg.egain.*^p.*cludo.*^p.*pinterest.*^p.*visualwebsiteoptimize.*^p.*linkedin.*^p.*demdex.*|rdnt=1|uxrgce=1|cuc=4agxwo8z|mel=100000|expw=1|dpvc=1|md=mdcc1=bdocument.referrer,mdcc2=bnavigator.userAgent,mdcc3=dutm_source,mdcc4=dutm_medium,mdcc5=dutm_campaign,mdcc6=dutm_term,mdcc7=dutm_content,mdcc8=bwindow.location.href,mdcc9=dproduct,mdcc10=chdtCode1|lastModification=1785157117101|tp=500,50,0|srbbv=2|agentUri=/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-config="{&quot;revision&quot;:1785157117101,&quot;beaconUri&quot;:&quot;/rb_bf64125xgr&quot;,&quot;agentUri&quot;:&quot;/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js&โ€ฆ
CT04warningthe page carries no date, so there is nothing on it saying how current its content is
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 carries no date, so there is nothing on it saying how current its content is
The evidence, taken from the page as served
The head of this page, as served

The head of the page and the page's own text were read for a date.

<head> <meta charset="utf-8"/> <meta http-equiv="X-UA-Compatible" content="IE=edge"/> <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1.0"/> <!--evidon omnitag--> <script type="text/javascript" src="/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-dtconfig="rid=RID_-2067472523|rpid=-358213138|domain=virginmoney.com|reportUrl=/rb_bf64125xgr|uam=1|app=8e10568a9231138b|ssc=1|coo=1|owasp=1|featureHash=ICA15789NPRTUVXfghqrux|srsr=20000|xb=*.analytics.google.com*^p.*evidon.*^p.*google-analytic.*^p.*ybg.egain.*^p.*cludo.*^p.*pinterest.*^p.*visualwebsiteoptimize.*^p.*linkedin.*^p.*demdex.*|rdnt=1|uxrgce=1|cuc=4agxwo8z|mel=100000|expw=1|dpvc=1|md=mdcc1=bdocument.referrer,mdcc2=bnavigator.userAgent,mdcc3=dutm_source,mdcc4=dutm_medium,mdcc5=dutm_campaign,mdcc6=dutm_term,mdcc7=dutm_content,mdcc8=bwindow.location.href,mdcc9=dproduct,mdcc10=chdtCode1|lastModification=1785157117101|tp=500,50,0|srbbv=2|agentUri=/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-config="{&quot;revision&quot;:1785157117101,&quot;beaconUri&quot;:&quot;/rb_bf64125xgr&quot;,&quot;agentUri&quot;:&quot;/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js&โ€ฆ
CT35warningthe page carries no copyright line in the content as served, so there is nothing on it to date it by, and an absent copyright line is one of the marks of a copied template
What we check
The copyright line at the foot of the page, and the year it states.
What good looks like
The copyright line states the current year.
Why it matters
A copyright year in the past reads as a page nobody has attended to, and it is the usual sign of a template copied from somewhere else. Either way an AI treats the content as stale and can present old material as current.
What we found on this page
the page carries no copyright line in the content as served, so there is nothing on it to date it by, and an absent copyright line is one of the marks of a copied template
The evidence, taken from the page as served
The foot of this page, as served

The foot of the page was read for a copyright line.

<footer class="container footer pattern pattern--bottom bg-dark-2 stroke-primary "> <div class="row"> <div class="col-sm-6 col-md-3"> <h2 class="h3">Get in touch</h2> <ul class="list-unstyled pb-0 "> <li class=""> <a class="btn btn-link " href="/contact/">Contact us</a> </li> <li class=""> <a class="btn btn-link " href="/service/support-hub/">Help and support</a> </li> <li class=""> <a class="btn btn-link " href="/service/financial-wellbeing/">Financial wellbeing hub</a> </li> <li class=""> <a class="btn btn-link " href="/service/ways-to-bank/">Ways to bank</a> </li> <li class=""> <a class="btn btn-link " href="/vmforms/feedback-form/">Feedback</a> </li> <li class=""> <a class="btn btn-link " href="/service/complaints/">Make a complaint</a> </li> </ul> <ul class="list-unstyled list-social"> <li> <a href="https://www.instagram.com/virginmoney/" title="Virgin Money Instagram" target="_blank" rel="noopener"> <svg viewbox="0 0 32 32"> <title>Virgin Money Instagram</title> <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="/assets/svg/social.svg?v1.0#social-instagram-bg" class="svg__bg"/> <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="/assets/svg/social.svg?v1.0#soโ€ฆ
CT24warningthe page's own content runs to 320 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 320 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 content320 characters
All the text on the page4307 characters
The point we measure against400 characters
CT13failmain content is 7% 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 7% 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 content320 characters
All the text on the page4307 characters
The page's own share of it7%
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 http-equiv="X-UA-Compatible" content="IE=edge"/> <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1.0"/> <!--evidon omnitag--> <script type="text/javascript" src="/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-dtconfig="rid=RID_-2067472523|rpid=-358213138|domain=virginmoney.com|reportUrl=/rb_bf64125xgr|uam=1|app=8e10568a9231138b|ssc=1|coo=1|owasp=1|featureHash=ICA15789NPRTUVXfghqrux|srsr=20000|xb=*.analytics.google.com*^p.*evidon.*^p.*google-analytic.*^p.*ybg.egain.*^p.*cludo.*^p.*pinterest.*^p.*visualwebsiteoptimize.*^p.*linkedin.*^p.*demdex.*|rdnt=1|uxrgce=1|cuc=4agxwo8z|mel=100000|expw=1|dpvc=1|md=mdcc1=bdocument.referrer,mdcc2=bnavigator.userAgent,mdcc3=dutm_source,mdcc4=dutm_medium,mdcc5=dutm_campaign,mdcc6=dutm_term,mdcc7=dutm_content,mdcc8=bwindow.location.href,mdcc9=dproduct,mdcc10=chdtCode1|lastModification=1785157117101|tp=500,50,0|srbbv=2|agentUri=/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-config="{&quot;revision&quot;:1785157117101,&quot;beaconUri&quot;:&quot;/rb_bf64125xgr&quot;,&quot;agentUri&quot;:&quot;/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js&โ€ฆ
MS08fail1 link wording(s) are used for more than one destination, so the same words point at different pages: โ€œbusinessโ€; 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: โ€œbusinessโ€; 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
"Business"
<a class="" href="/business/">Business</a>
"Business"
<a href="/business/service/sign-in/" class="ctasecondarynav-link"> Business </a>
AR12warning68% of the page's text (3289 of 4806 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
68% of the page's text (3289 of 4806 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 click3289 characters
All the text on the finished page4806 characters
Hidden share68%
The point we measure against50%
MS04warningthe page's naming markup is faulty: 113 working control(s) sit inside a section the code marks as hidden, so they work on screen but are absent from what is read out
What we check
Accessibility markup faults: invented roles, labels pointing at nothing, live controls marked hidden.
What good looks like
The page's accessibility markup is sound, with valid roles and no labels pointing at nothing.
Why it matters
The page's own description of its controls is wrong, so what it offers and what it declares do not match.
What we found on this page
the page's naming markup is faulty: 113 working control(s) sit inside a section the code marks as hidden, so they work on screen but are absent from what is read out
The evidence, taken from the page as served
The faulty markup, as the page serves it once loaded
<a href="/" id="site-logo" class="brand" rel="home" title="Virgin Money homepage"> <svg viewbox="0 0 198 40"> <title>Virgin Money homepage</title> <circle xmlns="http://www.w3.org/2000/svg" class="cls-1" cx="69.9375" cy="20.375" r="19"/> <use xlink:href="/assets/svg/logo.svg#hero"/></svg> </a>
<button type="button" id="navbar-toggle-secondnav" class="navbar-toggler collapsed" aria-controls="ctasecondarynav" aria-expanded="false" aria-label="Open Sign in menu for online Services" data-toggle="collapse" data-parent="#nav" data-target="#ctasecondarynav"> <span class="navbar-toggler__label" style="animation-delaโ€ฆ
<button type="button" id="navbar-toggle-menu" class="navbar-toggler collapsed" aria-controls="menu-container" aria-expanded="false" aria-label="Toggle Menu navigation" data-toggle="collapse" data-parent="#nav" data-target="#menu-container"> <span class="navbar-toggler__label" style="animation-delay: 0.75s;">Menu</span>โ€ฆ
<a class="selected" href="/" aria-current="page">Personal</a>
<a class="" href="/business/">Business</a>
<a class="" href="/brighter-money/">Brighter Money</a>
<a href="/service/support-hub/" class="" data-icon="/assets/svg/rebrand-ui.svg#help" data-icon-left=""><span class="svg__wrapper svg__wrapper--fill"><svg class=""><use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="/assets/svg/rebrand-ui.svg#help"/></svg></span> Help </a>
<a href="/site-search/" class="" data-icon="/assets/svg/rebrand-ui.svg#search" data-icon-left=""><span class="svg__wrapper svg__wrapper--fill"><svg class=""><use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="/assets/svg/rebrand-ui.svg#search"/></svg></span> Search </a>
<button type="button" class="d-none d-md-inline-block btn btn-secondary btn-cta-pages collapsed" aria-controls="ctasecondarynav" aria-expanded="false" data-toggle="collapse" data-trigger="click" data-trigger-selector=".menu &gt; .list-nav &gt; li &gt; a[data-toggle]:not(.collapsed)" data-target="#ctasecondarynav"> <spaโ€ฆ
<a href="/service/sign-in/" class=" btn btn-secondary"> <span class="visually-hidden">Visit the </span>Sign in<span class="visually-hidden"> page for existing customers, where you can service any products you have with Virgin Money. </span> </a>

…and 103 more like it.

AJ08warningfocus order: 7 element(s) use a positive tabindex, overriding document 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: 7 element(s) use a positive tabindex, overriding document order; the first 12 Tab stops do not follow document order
The evidence, taken from the page as served
The elements with a positive tabindex, as served after rendering
tabindex=1
<div id="_evidon-banner" role="dialog" aria-modal="true" aria-labelledby="_evidon-banner-title" aria-describedby="_evidon-banner-message" class="evidon-barrier" tabindex="1" style="position: fixed; transform: translate(-50%, 0px); left: 50%; top: 6rem; max-height: calc(100% - 8rem); overflow: auto; display: block; backโ€ฆ
tabindex=2
<a tabindex="2" href="https://uk.virginmoney.com/security/?ban" target="_blank" rel="noopener">privacy notice</a>
tabindex=2
<a tabindex="2" href="https://uk.virginmoney.com/cookies/?ban" target="_blank" rel="noopener">cookies notice</a>
tabindex=4
<button id="_evidon-banner-cookiebutton" class="evidon-barrier-cookiebutton" tabindex="4" style="font-size: 17.6px; margin: 32px 24px; padding: 20px 32px; border: 1px solid rgb(225, 10, 10); display: inline-block; background: rgb(255, 255, 255); border-radius: 0px; color: rgb(225, 10, 10); cursor: pointer; font-family:โ€ฆ
tabindex=5
<button id="_evidon-barrier-declinebutton" tabindex="5" class="evidon-barrier-declinebutton" aria-label="Reject optional cookies" style="font-size: 17.6px; margin: 32px 24px; padding: 20px 32px; border: 1px solid rgb(225, 10, 10); display: inline-block; background: rgb(255, 255, 255); border-radius: 0px; color: rgb(225โ€ฆ
tabindex=3
<button id="_evidon-banner-acceptbutton" tabindex="3" class="evidon-barrier-acceptbutton" style="font-size: 17.6px; margin: 32px 24px; padding: 20px 32px; border: 1px solid rgb(225, 10, 10); display: inline-block; background: rgb(255, 255, 255); border-radius: 0px; color: rgb(225, 10, 10); cursor: pointer; font-family:โ€ฆ
tabindex=3
<button id="_ev_opt_out_close" tabindex="3" style="position: absolute; top: 0px; right: 2px; color: rgb(225, 10, 10); background: transparent; font-size: 12px; border: 0px; cursor: pointer;">Close โœ–</button>
CT34failthe page's own words are thin: 355 of its 366 words are shared navigation and footer, so it reads as 91% 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: 355 of its 366 words are shared navigation and footer, so it reads as 91% 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
uk.virginmoney.com/service/sign-in11 of 36697%uk.virginmoney.com/site-search91%
https://uk.virginmoney.com/service/support-hub 33.6% Very likely 9 out of 59
CheckResultEvidence
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 http-equiv="X-UA-Compatible" content="IE=edge"/> <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1.0"/> <!--evidon omnitag--> <script type="text/javascript" src="/service/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-dtconfig="rid=RID_95159411|rpid=1235541498|domain=virginmoney.com|reportUrl=/service/rb_bf64125xgr|uam=1|app=8e10568a9231138b|ssc=1|coo=1|owasp=1|featureHash=ICA15789NPRTUVXfghqrux|srsr=20000|xb=*.analytics.google.com*^p.*evidon.*^p.*google-analytic.*^p.*ybg.egain.*^p.*cludo.*^p.*pinterest.*^p.*visualwebsiteoptimize.*^p.*linkedin.*^p.*demdex.*|rdnt=1|uxrgce=1|cuc=4agxwo8z|mel=100000|expw=1|dpvc=1|md=mdcc1=bdocument.referrer,mdcc2=bnavigator.userAgent,mdcc3=dutm_source,mdcc4=dutm_medium,mdcc5=dutm_campaign,mdcc6=dutm_term,mdcc7=dutm_content,mdcc8=bwindow.location.href,mdcc9=dproduct,mdcc10=chdtCode1|lastModification=1785157117101|tp=500,50,0|srbbv=2|agentUri=/service/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-config="{&quot;revision&quot;:1785157117101,&quot;beaconUri&quot;:&quot;/service/rb_bf64125xgr&quot;,&quot;agentUri&quot;:&quot;/service/ruxitagentjs_ICA1578โ€ฆ
CT04warningthe page shows the year 2026 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 2026 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 http-equiv="X-UA-Compatible" content="IE=edge"/> <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1.0"/> <!--evidon omnitag--> <script type="text/javascript" src="/service/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-dtconfig="rid=RID_95159411|rpid=1235541498|domain=virginmoney.com|reportUrl=/service/rb_bf64125xgr|uam=1|app=8e10568a9231138b|ssc=1|coo=1|owasp=1|featureHash=ICA15789NPRTUVXfghqrux|srsr=20000|xb=*.analytics.google.com*^p.*evidon.*^p.*google-analytic.*^p.*ybg.egain.*^p.*cludo.*^p.*pinterest.*^p.*visualwebsiteoptimize.*^p.*linkedin.*^p.*demdex.*|rdnt=1|uxrgce=1|cuc=4agxwo8z|mel=100000|expw=1|dpvc=1|md=mdcc1=bdocument.referrer,mdcc2=bnavigator.userAgent,mdcc3=dutm_source,mdcc4=dutm_medium,mdcc5=dutm_campaign,mdcc6=dutm_term,mdcc7=dutm_content,mdcc8=bwindow.location.href,mdcc9=dproduct,mdcc10=chdtCode1|lastModification=1785157117101|tp=500,50,0|srbbv=2|agentUri=/service/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-config="{&quot;revision&quot;:1785157117101,&quot;beaconUri&quot;:&quot;/service/rb_bf64125xgr&quot;,&quot;agentUri&quot;:&quot;/service/ruxitagentjs_ICA1578โ€ฆ
CT35warningthe page carries no copyright line in the content as served, so there is nothing on it to date it by, and an absent copyright line is one of the marks of a copied template
What we check
The copyright line at the foot of the page, and the year it states.
What good looks like
The copyright line states the current year.
Why it matters
A copyright year in the past reads as a page nobody has attended to, and it is the usual sign of a template copied from somewhere else. Either way an AI treats the content as stale and can present old material as current.
What we found on this page
the page carries no copyright line in the content as served, so there is nothing on it to date it by, and an absent copyright line is one of the marks of a copied template
The evidence, taken from the page as served
The foot of this page, as served

The foot of the page was read for a copyright line.

<footer class="container footer pattern pattern--bottom bg-dark-2 stroke-primary "> <div class="row"> <div class="col-sm-6 col-md-3"> <h2 class="h3">Get in touch</h2> <ul class="list-unstyled pb-0 "> <li class=""> <a class="btn btn-link " href="/contact/">Contact us</a> </li> <li class=""> <a class="btn btn-link " href="/service/support-hub/">Help and support</a> </li> <li class=""> <a class="btn btn-link " href="/service/financial-wellbeing/">Financial wellbeing hub</a> </li> <li class=""> <a class="btn btn-link " href="/service/ways-to-bank/">Ways to bank</a> </li> <li class=""> <a class="btn btn-link " href="/vmforms/feedback-form/">Feedback</a> </li> <li class=""> <a class="btn btn-link " href="/service/complaints/">Make a complaint</a> </li> </ul> <ul class="list-unstyled list-social"> <li> <a href="https://www.instagram.com/virginmoney/" title="Virgin Money Instagram" target="_blank" rel="noopener"> <svg viewbox="0 0 32 32"> <title>Virgin Money Instagram</title> <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="/assets/svg/social.svg?v1.0#social-instagram-bg" class="svg__bg"/> <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="/assets/svg/social.svg?v1.0#soโ€ฆ
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 http-equiv="X-UA-Compatible" content="IE=edge"/> <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1.0"/> <!--evidon omnitag--> <script type="text/javascript" src="/service/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-dtconfig="rid=RID_95159411|rpid=1235541498|domain=virginmoney.com|reportUrl=/service/rb_bf64125xgr|uam=1|app=8e10568a9231138b|ssc=1|coo=1|owasp=1|featureHash=ICA15789NPRTUVXfghqrux|srsr=20000|xb=*.analytics.google.com*^p.*evidon.*^p.*google-analytic.*^p.*ybg.egain.*^p.*cludo.*^p.*pinterest.*^p.*visualwebsiteoptimize.*^p.*linkedin.*^p.*demdex.*|rdnt=1|uxrgce=1|cuc=4agxwo8z|mel=100000|expw=1|dpvc=1|md=mdcc1=bdocument.referrer,mdcc2=bnavigator.userAgent,mdcc3=dutm_source,mdcc4=dutm_medium,mdcc5=dutm_campaign,mdcc6=dutm_term,mdcc7=dutm_content,mdcc8=bwindow.location.href,mdcc9=dproduct,mdcc10=chdtCode1|lastModification=1785157117101|tp=500,50,0|srbbv=2|agentUri=/service/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-config="{&quot;revision&quot;:1785157117101,&quot;beaconUri&quot;:&quot;/service/rb_bf64125xgr&quot;,&quot;agentUri&quot;:&quot;/service/ruxitagentjs_ICA1578โ€ฆ
MS08fail1 link wording(s) are used for more than one destination, so the same words point at different pages: โ€œbusinessโ€; 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: โ€œbusinessโ€; 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
"Business"
<a class="" href="/business/">Business</a>
"Business"
<a href="/business/service/sign-in/" class="ctasecondarynav-link"> Business </a>
AR12warning52% of the page's text (3266 of 6264 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
52% of the page's text (3266 of 6264 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 click3266 characters
All the text on the finished page6264 characters
Hidden share52%
The point we measure against50%
MS04warningthe page's naming markup is faulty: 140 working control(s) sit inside a section the code marks as hidden, so they work on screen but are absent from what is read out
What we check
Accessibility markup faults: invented roles, labels pointing at nothing, live controls marked hidden.
What good looks like
The page's accessibility markup is sound, with valid roles and no labels pointing at nothing.
Why it matters
The page's own description of its controls is wrong, so what it offers and what it declares do not match.
What we found on this page
the page's naming markup is faulty: 140 working control(s) sit inside a section the code marks as hidden, so they work on screen but are absent from what is read out
The evidence, taken from the page as served
The faulty markup, as the page serves it once loaded
<a href="/" id="site-logo" class="brand" rel="home" title="Virgin Money homepage"> <svg viewbox="0 0 198 40"> <title>Virgin Money homepage</title> <circle xmlns="http://www.w3.org/2000/svg" class="cls-1" cx="69.9375" cy="20.375" r="19"/> <use xlink:href="/assets/svg/logo.svg#hero"/></svg> </a>
<button type="button" id="navbar-toggle-secondnav" class="navbar-toggler collapsed" aria-controls="ctasecondarynav" aria-expanded="false" aria-label="Open Sign in menu for online Services" data-toggle="collapse" data-parent="#nav" data-target="#ctasecondarynav"> <span class="navbar-toggler__label" style="animation-delaโ€ฆ
<button type="button" id="navbar-toggle-menu" class="navbar-toggler collapsed" aria-controls="menu-container" aria-expanded="false" aria-label="Toggle Menu navigation" data-toggle="collapse" data-parent="#nav" data-target="#menu-container"> <span class="navbar-toggler__label" style="animation-delay: 0.75s;">Menu</span>โ€ฆ
<a class="selected" href="/" aria-current="page">Personal</a>
<a class="" href="/business/">Business</a>
<a class="" href="/brighter-money/">Brighter Money</a>
<a href="/service/support-hub/" class="" data-icon="/assets/svg/rebrand-ui.svg#help" data-icon-left=""><span class="svg__wrapper svg__wrapper--fill"><svg class=""><use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="/assets/svg/rebrand-ui.svg#help"/></svg></span> Help </a>
<a href="/site-search/" class="" data-icon="/assets/svg/rebrand-ui.svg#search" data-icon-left=""><span class="svg__wrapper svg__wrapper--fill"><svg class=""><use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="/assets/svg/rebrand-ui.svg#search"/></svg></span> Search </a>
<button type="button" class="d-none d-md-inline-block btn btn-secondary btn-cta-pages collapsed" aria-controls="ctasecondarynav" aria-expanded="false" data-toggle="collapse" data-trigger="click" data-trigger-selector=".menu &gt; .list-nav &gt; li &gt; a[data-toggle]:not(.collapsed)" data-target="#ctasecondarynav"> <spaโ€ฆ
<a href="/service/sign-in/" class=" btn btn-secondary"> <span class="visually-hidden">Visit the </span>Sign in<span class="visually-hidden"> page for existing customers, where you can service any products you have with Virgin Money. </span> </a>

…and 130 more like it.

AJ08warningfocus order: 7 element(s) use a positive tabindex, overriding document 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: 7 element(s) use a positive tabindex, overriding document order; the first 12 Tab stops do not follow document order
The evidence, taken from the page as served
The elements with a positive tabindex, as served after rendering
tabindex=1
<div id="_evidon-banner" role="dialog" aria-modal="true" aria-labelledby="_evidon-banner-title" aria-describedby="_evidon-banner-message" class="evidon-barrier" tabindex="1" style="position: fixed; transform: translate(-50%, 0px); left: 50%; top: 6rem; max-height: calc(100% - 8rem); overflow: auto; display: block; backโ€ฆ
tabindex=2
<a tabindex="2" href="https://uk.virginmoney.com/security/?ban" target="_blank" rel="noopener">privacy notice</a>
tabindex=2
<a tabindex="2" href="https://uk.virginmoney.com/cookies/?ban" target="_blank" rel="noopener">cookies notice</a>
tabindex=4
<button id="_evidon-banner-cookiebutton" class="evidon-barrier-cookiebutton" tabindex="4" style="font-size: 17.6px; margin: 32px 24px; padding: 20px 32px; border: 1px solid rgb(225, 10, 10); display: inline-block; background: rgb(255, 255, 255); border-radius: 0px; color: rgb(225, 10, 10); cursor: pointer; font-family:โ€ฆ
tabindex=5
<button id="_evidon-barrier-declinebutton" tabindex="5" class="evidon-barrier-declinebutton" aria-label="Reject optional cookies" style="font-size: 17.6px; margin: 32px 24px; padding: 20px 32px; border: 1px solid rgb(225, 10, 10); display: inline-block; background: rgb(255, 255, 255); border-radius: 0px; color: rgb(225โ€ฆ
tabindex=3
<button id="_evidon-banner-acceptbutton" tabindex="3" class="evidon-barrier-acceptbutton" style="font-size: 17.6px; margin: 32px 24px; padding: 20px 32px; border: 1px solid rgb(225, 10, 10); display: inline-block; background: rgb(255, 255, 255); border-radius: 0px; color: rgb(225, 10, 10); cursor: pointer; font-family:โ€ฆ
tabindex=3
<button id="_ev_opt_out_close" tabindex="3" style="position: absolute; top: 0px; right: 2px; color: rgb(225, 10, 10); background: transparent; font-size: 12px; border: 0px; cursor: pointer;">Close โœ–</button>
CT34failthe page's own words are thin: 356 of its 433 words are shared navigation and footer, so it reads as 80% 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: 356 of its 433 words are shared navigation and footer, so it reads as 80% 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
uk.virginmoney.com/service/support-hub77 of 43382%uk.virginmoney.com/service/sign-in80%
https://uk.virginmoney.com/savings 56.4% Likely 9 out of 58
CheckResultEvidence
CT32warninglength 219
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 219
The evidence, taken from the page as served
The page's description, as served
219 characters
<meta name="description" content="Simpler Savings. Getting the perfect account has never been easier. Whether you are saving for a rainy day or something more important, we have got it covered. ISAs, Bonds and much more. Open your savings account today!"/>
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 http-equiv="X-UA-Compatible" content="IE=edge"/> <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1.0"/> <!--evidon omnitag--> <script type="text/javascript" src="/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-dtconfig="rid=RID_-1119154345|rpid=1441484718|domain=virginmoney.com|reportUrl=/rb_bf64125xgr|uam=1|app=8e10568a9231138b|ssc=1|coo=1|owasp=1|featureHash=ICA15789NPRTUVXfghqrux|srsr=20000|xb=*.analytics.google.com*^p.*evidon.*^p.*google-analytic.*^p.*ybg.egain.*^p.*cludo.*^p.*pinterest.*^p.*visualwebsiteoptimize.*^p.*linkedin.*^p.*demdex.*|rdnt=1|uxrgce=1|cuc=4agxwo8z|mel=100000|expw=1|dpvc=1|md=mdcc1=bdocument.referrer,mdcc2=bnavigator.userAgent,mdcc3=dutm_source,mdcc4=dutm_medium,mdcc5=dutm_campaign,mdcc6=dutm_term,mdcc7=dutm_content,mdcc8=bwindow.location.href,mdcc9=dproduct,mdcc10=chdtCode1|lastModification=1785157117101|tp=500,50,0|srbbv=2|agentUri=/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-config="{&quot;revision&quot;:1785157117101,&quot;beaconUri&quot;:&quot;/rb_bf64125xgr&quot;,&quot;agentUri&quot;:&quot;/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js&โ€ฆ
CT04warningthe page shows the year 2026 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 2026 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 http-equiv="X-UA-Compatible" content="IE=edge"/> <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1.0"/> <!--evidon omnitag--> <script type="text/javascript" src="/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-dtconfig="rid=RID_-1119154345|rpid=1441484718|domain=virginmoney.com|reportUrl=/rb_bf64125xgr|uam=1|app=8e10568a9231138b|ssc=1|coo=1|owasp=1|featureHash=ICA15789NPRTUVXfghqrux|srsr=20000|xb=*.analytics.google.com*^p.*evidon.*^p.*google-analytic.*^p.*ybg.egain.*^p.*cludo.*^p.*pinterest.*^p.*visualwebsiteoptimize.*^p.*linkedin.*^p.*demdex.*|rdnt=1|uxrgce=1|cuc=4agxwo8z|mel=100000|expw=1|dpvc=1|md=mdcc1=bdocument.referrer,mdcc2=bnavigator.userAgent,mdcc3=dutm_source,mdcc4=dutm_medium,mdcc5=dutm_campaign,mdcc6=dutm_term,mdcc7=dutm_content,mdcc8=bwindow.location.href,mdcc9=dproduct,mdcc10=chdtCode1|lastModification=1785157117101|tp=500,50,0|srbbv=2|agentUri=/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-config="{&quot;revision&quot;:1785157117101,&quot;beaconUri&quot;:&quot;/rb_bf64125xgr&quot;,&quot;agentUri&quot;:&quot;/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js&โ€ฆ
CT35warningthe page carries no copyright line in the content as served, so there is nothing on it to date it by, and an absent copyright line is one of the marks of a copied template
What we check
The copyright line at the foot of the page, and the year it states.
What good looks like
The copyright line states the current year.
Why it matters
A copyright year in the past reads as a page nobody has attended to, and it is the usual sign of a template copied from somewhere else. Either way an AI treats the content as stale and can present old material as current.
What we found on this page
the page carries no copyright line in the content as served, so there is nothing on it to date it by, and an absent copyright line is one of the marks of a copied template
The evidence, taken from the page as served
The foot of this page, as served

The foot of the page was read for a copyright line.

<footer class="container footer pattern pattern--bottom bg-dark-2 stroke-primary "> <div class="row"> <div class="col-sm-6 col-md-3"> <h2 class="h3">Get in touch</h2> <ul class="list-unstyled pb-0 "> <li class=""> <a class="btn btn-link " href="/contact/">Contact us</a> </li> <li class=""> <a class="btn btn-link " href="/service/support-hub/">Help and support</a> </li> <li class=""> <a class="btn btn-link " href="/service/financial-wellbeing/">Financial wellbeing hub</a> </li> <li class=""> <a class="btn btn-link " href="/service/ways-to-bank/">Ways to bank</a> </li> <li class=""> <a class="btn btn-link " href="/vmforms/feedback-form/">Feedback</a> </li> <li class=""> <a class="btn btn-link " href="/service/complaints/">Make a complaint</a> </li> </ul> <ul class="list-unstyled list-social"> <li> <a href="https://www.instagram.com/virginmoney/" title="Virgin Money Instagram" target="_blank" rel="noopener"> <svg viewbox="0 0 32 32"> <title>Virgin Money Instagram</title> <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="/assets/svg/social.svg?v1.0#social-instagram-bg" class="svg__bg"/> <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="/assets/svg/social.svg?v1.0#soโ€ฆ
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 http-equiv="X-UA-Compatible" content="IE=edge"/> <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1.0"/> <!--evidon omnitag--> <script type="text/javascript" src="/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-dtconfig="rid=RID_-1119154345|rpid=1441484718|domain=virginmoney.com|reportUrl=/rb_bf64125xgr|uam=1|app=8e10568a9231138b|ssc=1|coo=1|owasp=1|featureHash=ICA15789NPRTUVXfghqrux|srsr=20000|xb=*.analytics.google.com*^p.*evidon.*^p.*google-analytic.*^p.*ybg.egain.*^p.*cludo.*^p.*pinterest.*^p.*visualwebsiteoptimize.*^p.*linkedin.*^p.*demdex.*|rdnt=1|uxrgce=1|cuc=4agxwo8z|mel=100000|expw=1|dpvc=1|md=mdcc1=bdocument.referrer,mdcc2=bnavigator.userAgent,mdcc3=dutm_source,mdcc4=dutm_medium,mdcc5=dutm_campaign,mdcc6=dutm_term,mdcc7=dutm_content,mdcc8=bwindow.location.href,mdcc9=dproduct,mdcc10=chdtCode1|lastModification=1785157117101|tp=500,50,0|srbbv=2|agentUri=/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-config="{&quot;revision&quot;:1785157117101,&quot;beaconUri&quot;:&quot;/rb_bf64125xgr&quot;,&quot;agentUri&quot;:&quot;/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js&โ€ฆ
MS08fail3 link wording(s) are used for more than one destination, so the same words point at different pages: โ€œbusinessโ€, โ€œexisting customersโ€, โ€œfind a savings accountโ€; 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
3 link wording(s) are used for more than one destination, so the same words point at different pages: โ€œbusinessโ€, โ€œexisting customersโ€, โ€œfind a savings accountโ€; 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
"Business"
<a class="" href="/business/">Business</a>
"Find a savings account"
<a href="/savings/find/results/">Find a savings account</a>
"Existing customers"
<a href="/private/existing-customers/">Existing customers </a>
"Business"
<a href="/business/service/sign-in/" class="ctasecondarynav-link"> Business </a>
"Find a savings account"
<a href="/savings/find/results/online" class="btn btn-primary">Find a savings account</a>
"Existing customers"
<a href="/savings/helpful-information/" class="btn btn-secondary">Existing customers</a>
AR12warning52% of the page's text (3683 of 6985 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
52% of the page's text (3683 of 6985 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 click3683 characters
All the text on the finished page6985 characters
Hidden share52%
The point we measure against50%
MS04warningthe page's naming markup is faulty: 135 working control(s) sit inside a section the code marks as hidden, so they work on screen but are absent from what is read out
What we check
Accessibility markup faults: invented roles, labels pointing at nothing, live controls marked hidden.
What good looks like
The page's accessibility markup is sound, with valid roles and no labels pointing at nothing.
Why it matters
The page's own description of its controls is wrong, so what it offers and what it declares do not match.
What we found on this page
the page's naming markup is faulty: 135 working control(s) sit inside a section the code marks as hidden, so they work on screen but are absent from what is read out
The evidence, taken from the page as served
The faulty markup, as the page serves it once loaded
<a href="/" id="site-logo" class="brand" rel="home" title="Virgin Money homepage"> <svg viewbox="0 0 198 40"> <title>Virgin Money homepage</title> <circle xmlns="http://www.w3.org/2000/svg" class="cls-1" cx="69.9375" cy="20.375" r="19"/> <use xlink:href="/assets/svg/logo.svg#hero"/></svg> </a>
<button type="button" id="navbar-toggle-secondnav" class="navbar-toggler collapsed" aria-controls="ctasecondarynav" aria-expanded="false" aria-label="Open Sign in menu for online Services" data-toggle="collapse" data-parent="#nav" data-target="#ctasecondarynav"> <span class="navbar-toggler__label" style="animation-delaโ€ฆ
<button type="button" id="navbar-toggle-menu" class="navbar-toggler collapsed" aria-controls="menu-container" aria-expanded="false" aria-label="Toggle Menu navigation" data-toggle="collapse" data-parent="#nav" data-target="#menu-container"> <span class="navbar-toggler__label" style="animation-delay: 0.75s;">Menu</span>โ€ฆ
<a class="selected" href="/" aria-current="page">Personal</a>
<a class="" href="/business/">Business</a>
<a class="" href="/brighter-money/">Brighter Money</a>
<a href="/service/support-hub/" class="" data-icon="/assets/svg/rebrand-ui.svg#help" data-icon-left=""><span class="svg__wrapper svg__wrapper--fill"><svg class=""><use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="/assets/svg/rebrand-ui.svg#help"/></svg></span> Help </a>
<a href="/site-search/" class="" data-icon="/assets/svg/rebrand-ui.svg#search" data-icon-left=""><span class="svg__wrapper svg__wrapper--fill"><svg class=""><use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="/assets/svg/rebrand-ui.svg#search"/></svg></span> Search </a>
<button type="button" class="d-none d-md-inline-block btn btn-secondary btn-cta-pages collapsed" aria-controls="ctasecondarynav" aria-expanded="false" data-toggle="collapse" data-trigger="click" data-trigger-selector=".menu &gt; .list-nav &gt; li &gt; a[data-toggle]:not(.collapsed)" data-target="#ctasecondarynav"> <spaโ€ฆ
<a href="/service/sign-in/" class=" btn btn-secondary"> <span class="visually-hidden">Visit the </span>Sign in<span class="visually-hidden"> page for existing customers, where you can service any products you have with Virgin Money. </span> </a>

…and 125 more like it.

AJ08warningfocus order: 7 element(s) use a positive tabindex, overriding document 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: 7 element(s) use a positive tabindex, overriding document order; the first 12 Tab stops do not follow document order
The evidence, taken from the page as served
The elements with a positive tabindex, as served after rendering
tabindex=1
<div id="_evidon-banner" role="dialog" aria-modal="true" aria-labelledby="_evidon-banner-title" aria-describedby="_evidon-banner-message" class="evidon-barrier" tabindex="1" style="position: fixed; transform: translate(-50%, 0px); left: 50%; top: 6rem; max-height: calc(100% - 8rem); overflow: auto; display: block; backโ€ฆ
tabindex=2
<a tabindex="2" href="https://uk.virginmoney.com/security/?ban" target="_blank" rel="noopener">privacy notice</a>
tabindex=2
<a tabindex="2" href="https://uk.virginmoney.com/cookies/?ban" target="_blank" rel="noopener">cookies notice</a>
tabindex=4
<button id="_evidon-banner-cookiebutton" class="evidon-barrier-cookiebutton" tabindex="4" style="font-size: 17.6px; margin: 32px 24px; padding: 20px 32px; border: 1px solid rgb(225, 10, 10); display: inline-block; background: rgb(255, 255, 255); border-radius: 0px; color: rgb(225, 10, 10); cursor: pointer; font-family:โ€ฆ
tabindex=5
<button id="_evidon-barrier-declinebutton" tabindex="5" class="evidon-barrier-declinebutton" aria-label="Reject optional cookies" style="font-size: 17.6px; margin: 32px 24px; padding: 20px 32px; border: 1px solid rgb(225, 10, 10); display: inline-block; background: rgb(255, 255, 255); border-radius: 0px; color: rgb(225โ€ฆ
tabindex=3
<button id="_evidon-banner-acceptbutton" tabindex="3" class="evidon-barrier-acceptbutton" style="font-size: 17.6px; margin: 32px 24px; padding: 20px 32px; border: 1px solid rgb(225, 10, 10); display: inline-block; background: rgb(255, 255, 255); border-radius: 0px; color: rgb(225, 10, 10); cursor: pointer; font-family:โ€ฆ
tabindex=3
<button id="_ev_opt_out_close" tabindex="3" style="position: absolute; top: 0px; right: 2px; color: rgb(225, 10, 10); background: transparent; font-size: 12px; border: 0px; cursor: pointer;">Close โœ–</button>
https://uk.virginmoney.com/service/rewards/virgin-money-cashback 56.6% Likely 8 out of 58
CheckResultEvidence
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 http-equiv="X-UA-Compatible" content="IE=edge"/> <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1.0"/> <!--evidon omnitag--> <script type="text/javascript" src="/service/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-dtconfig="rid=RID_-1657049106|rpid=160386533|domain=virginmoney.com|reportUrl=/service/rb_bf64125xgr|uam=1|app=8e10568a9231138b|ssc=1|coo=1|owasp=1|featureHash=ICA15789NPRTUVXfghqrux|srsr=20000|xb=*.analytics.google.com*^p.*evidon.*^p.*google-analytic.*^p.*ybg.egain.*^p.*cludo.*^p.*pinterest.*^p.*visualwebsiteoptimize.*^p.*linkedin.*^p.*demdex.*|rdnt=1|uxrgce=1|cuc=4agxwo8z|mel=100000|expw=1|dpvc=1|md=mdcc1=bdocument.referrer,mdcc2=bnavigator.userAgent,mdcc3=dutm_source,mdcc4=dutm_medium,mdcc5=dutm_campaign,mdcc6=dutm_term,mdcc7=dutm_content,mdcc8=bwindow.location.href,mdcc9=dproduct,mdcc10=chdtCode1|lastModification=1785157117101|tp=500,50,0|srbbv=2|agentUri=/service/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-config="{&quot;revision&quot;:1785157117101,&quot;beaconUri&quot;:&quot;/service/rb_bf64125xgr&quot;,&quot;agentUri&quot;:&quot;/service/ruxitagentjs_ICA15โ€ฆ
CT04warningthe page carries no date, so there is nothing on it saying how current its content is
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 carries no date, so there is nothing on it saying how current its content is
The evidence, taken from the page as served
The head of this page, as served

The head of the page and the page's own text were read for a date.

<head> <meta charset="utf-8"/> <meta http-equiv="X-UA-Compatible" content="IE=edge"/> <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1.0"/> <!--evidon omnitag--> <script type="text/javascript" src="/service/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-dtconfig="rid=RID_-1657049106|rpid=160386533|domain=virginmoney.com|reportUrl=/service/rb_bf64125xgr|uam=1|app=8e10568a9231138b|ssc=1|coo=1|owasp=1|featureHash=ICA15789NPRTUVXfghqrux|srsr=20000|xb=*.analytics.google.com*^p.*evidon.*^p.*google-analytic.*^p.*ybg.egain.*^p.*cludo.*^p.*pinterest.*^p.*visualwebsiteoptimize.*^p.*linkedin.*^p.*demdex.*|rdnt=1|uxrgce=1|cuc=4agxwo8z|mel=100000|expw=1|dpvc=1|md=mdcc1=bdocument.referrer,mdcc2=bnavigator.userAgent,mdcc3=dutm_source,mdcc4=dutm_medium,mdcc5=dutm_campaign,mdcc6=dutm_term,mdcc7=dutm_content,mdcc8=bwindow.location.href,mdcc9=dproduct,mdcc10=chdtCode1|lastModification=1785157117101|tp=500,50,0|srbbv=2|agentUri=/service/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-config="{&quot;revision&quot;:1785157117101,&quot;beaconUri&quot;:&quot;/service/rb_bf64125xgr&quot;,&quot;agentUri&quot;:&quot;/service/ruxitagentjs_ICA15โ€ฆ
CT35warningthe page carries no copyright line in the content as served, so there is nothing on it to date it by, and an absent copyright line is one of the marks of a copied template
What we check
The copyright line at the foot of the page, and the year it states.
What good looks like
The copyright line states the current year.
Why it matters
A copyright year in the past reads as a page nobody has attended to, and it is the usual sign of a template copied from somewhere else. Either way an AI treats the content as stale and can present old material as current.
What we found on this page
the page carries no copyright line in the content as served, so there is nothing on it to date it by, and an absent copyright line is one of the marks of a copied template
The evidence, taken from the page as served
The foot of this page, as served

The foot of the page was read for a copyright line.

<footer class="container footer pattern pattern--bottom bg-dark-2 stroke-primary "> <div class="row"> <div class="col-sm-6 col-md-3"> <h2 class="h3">Get in touch</h2> <ul class="list-unstyled pb-0 "> <li class=""> <a class="btn btn-link " href="/contact/">Contact us</a> </li> <li class=""> <a class="btn btn-link " href="/service/support-hub/">Help and support</a> </li> <li class=""> <a class="btn btn-link " href="/service/financial-wellbeing/">Financial wellbeing hub</a> </li> <li class=""> <a class="btn btn-link " href="/service/ways-to-bank/">Ways to bank</a> </li> <li class=""> <a class="btn btn-link " href="/vmforms/feedback-form/">Feedback</a> </li> <li class=""> <a class="btn btn-link " href="/service/complaints/">Make a complaint</a> </li> </ul> <ul class="list-unstyled list-social"> <li> <a href="https://www.instagram.com/virginmoney/" title="Virgin Money Instagram" target="_blank" rel="noopener"> <svg viewbox="0 0 32 32"> <title>Virgin Money Instagram</title> <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="/assets/svg/social.svg?v1.0#social-instagram-bg" class="svg__bg"/> <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="/assets/svg/social.svg?v1.0#soโ€ฆ
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 http-equiv="X-UA-Compatible" content="IE=edge"/> <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1.0"/> <!--evidon omnitag--> <script type="text/javascript" src="/service/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-dtconfig="rid=RID_-1657049106|rpid=160386533|domain=virginmoney.com|reportUrl=/service/rb_bf64125xgr|uam=1|app=8e10568a9231138b|ssc=1|coo=1|owasp=1|featureHash=ICA15789NPRTUVXfghqrux|srsr=20000|xb=*.analytics.google.com*^p.*evidon.*^p.*google-analytic.*^p.*ybg.egain.*^p.*cludo.*^p.*pinterest.*^p.*visualwebsiteoptimize.*^p.*linkedin.*^p.*demdex.*|rdnt=1|uxrgce=1|cuc=4agxwo8z|mel=100000|expw=1|dpvc=1|md=mdcc1=bdocument.referrer,mdcc2=bnavigator.userAgent,mdcc3=dutm_source,mdcc4=dutm_medium,mdcc5=dutm_campaign,mdcc6=dutm_term,mdcc7=dutm_content,mdcc8=bwindow.location.href,mdcc9=dproduct,mdcc10=chdtCode1|lastModification=1785157117101|tp=500,50,0|srbbv=2|agentUri=/service/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-config="{&quot;revision&quot;:1785157117101,&quot;beaconUri&quot;:&quot;/service/rb_bf64125xgr&quot;,&quot;agentUri&quot;:&quot;/service/ruxitagentjs_ICA15โ€ฆ
MS08fail1 link wording(s) are used for more than one destination, so the same words point at different pages: โ€œbusinessโ€; 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: โ€œbusinessโ€; 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
"Business"
<a class="" href="/business/">Business</a>
"Business"
<a href="/business/service/sign-in/" class="ctasecondarynav-link"> Business </a>
AR12warning62% of the page's text (6007 of 9672 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
62% of the page's text (6007 of 9672 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 click6007 characters
All the text on the finished page9672 characters
Hidden share62%
The point we measure against50%
MS04warningthe page's naming markup is faulty: 127 working control(s) sit inside a section the code marks as hidden, so they work on screen but are absent from what is read out
What we check
Accessibility markup faults: invented roles, labels pointing at nothing, live controls marked hidden.
What good looks like
The page's accessibility markup is sound, with valid roles and no labels pointing at nothing.
Why it matters
The page's own description of its controls is wrong, so what it offers and what it declares do not match.
What we found on this page
the page's naming markup is faulty: 127 working control(s) sit inside a section the code marks as hidden, so they work on screen but are absent from what is read out
The evidence, taken from the page as served
The faulty markup, as the page serves it once loaded
<a href="/" id="site-logo" class="brand" rel="home" title="Virgin Money homepage"> <svg viewbox="0 0 198 40"> <title>Virgin Money homepage</title> <circle xmlns="http://www.w3.org/2000/svg" class="cls-1" cx="69.9375" cy="20.375" r="19"/> <use xlink:href="/assets/svg/logo.svg#hero"/></svg> </a>
<button type="button" id="navbar-toggle-secondnav" class="navbar-toggler collapsed" aria-controls="ctasecondarynav" aria-expanded="false" aria-label="Open Sign in menu for online Services" data-toggle="collapse" data-parent="#nav" data-target="#ctasecondarynav"> <span class="navbar-toggler__label" style="animation-delaโ€ฆ
<button type="button" id="navbar-toggle-menu" class="navbar-toggler collapsed" aria-controls="menu-container" aria-expanded="false" aria-label="Toggle Menu navigation" data-toggle="collapse" data-parent="#nav" data-target="#menu-container"> <span class="navbar-toggler__label" style="animation-delay: 0.75s;">Menu</span>โ€ฆ
<a class="selected" href="/" aria-current="page">Personal</a>
<a class="" href="/business/">Business</a>
<a class="" href="/brighter-money/">Brighter Money</a>
<a href="/service/support-hub/" class="" data-icon="/assets/svg/rebrand-ui.svg#help" data-icon-left=""><span class="svg__wrapper svg__wrapper--fill"><svg class=""><use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="/assets/svg/rebrand-ui.svg#help"/></svg></span> Help </a>
<a href="/site-search/" class="" data-icon="/assets/svg/rebrand-ui.svg#search" data-icon-left=""><span class="svg__wrapper svg__wrapper--fill"><svg class=""><use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="/assets/svg/rebrand-ui.svg#search"/></svg></span> Search </a>
<button type="button" class="d-none d-md-inline-block btn btn-secondary btn-cta-pages collapsed" aria-controls="ctasecondarynav" aria-expanded="false" data-toggle="collapse" data-trigger="click" data-trigger-selector=".menu &gt; .list-nav &gt; li &gt; a[data-toggle]:not(.collapsed)" data-target="#ctasecondarynav"> <spaโ€ฆ
<a href="/service/sign-in/" class=" btn btn-secondary"> <span class="visually-hidden">Visit the </span>Sign in<span class="visually-hidden"> page for existing customers, where you can service any products you have with Virgin Money. </span> </a>

…and 117 more like it.

AJ08warningfocus order: 7 element(s) use a positive tabindex, overriding document 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: 7 element(s) use a positive tabindex, overriding document order; the first 12 Tab stops do not follow document order
The evidence, taken from the page as served
The elements with a positive tabindex, as served after rendering
tabindex=1
<div id="_evidon-banner" role="dialog" aria-modal="true" aria-labelledby="_evidon-banner-title" aria-describedby="_evidon-banner-message" class="evidon-barrier" tabindex="1" style="position: fixed; transform: translate(-50%, 0px); left: 50%; top: 6rem; max-height: calc(100% - 8rem); overflow: auto; display: block; backโ€ฆ
tabindex=2
<a tabindex="2" href="https://uk.virginmoney.com/security/?ban" target="_blank" rel="noopener">privacy notice</a>
tabindex=2
<a tabindex="2" href="https://uk.virginmoney.com/cookies/?ban" target="_blank" rel="noopener">cookies notice</a>
tabindex=4
<button id="_evidon-banner-cookiebutton" class="evidon-barrier-cookiebutton" tabindex="4" style="font-size: 17.6px; margin: 32px 24px; padding: 20px 32px; border: 1px solid rgb(225, 10, 10); display: inline-block; background: rgb(255, 255, 255); border-radius: 0px; color: rgb(225, 10, 10); cursor: pointer; font-family:โ€ฆ
tabindex=5
<button id="_evidon-barrier-declinebutton" tabindex="5" class="evidon-barrier-declinebutton" aria-label="Reject optional cookies" style="font-size: 17.6px; margin: 32px 24px; padding: 20px 32px; border: 1px solid rgb(225, 10, 10); display: inline-block; background: rgb(255, 255, 255); border-radius: 0px; color: rgb(225โ€ฆ
tabindex=3
<button id="_evidon-banner-acceptbutton" tabindex="3" class="evidon-barrier-acceptbutton" style="font-size: 17.6px; margin: 32px 24px; padding: 20px 32px; border: 1px solid rgb(225, 10, 10); display: inline-block; background: rgb(255, 255, 255); border-radius: 0px; color: rgb(225, 10, 10); cursor: pointer; font-family:โ€ฆ
tabindex=3
<button id="_ev_opt_out_close" tabindex="3" style="position: absolute; top: 0px; right: 2px; color: rgb(225, 10, 10); background: transparent; font-size: 12px; border: 0px; cursor: pointer;">Close โœ–</button>
https://uk.virginmoney.com/service/digital-registration 56.0% Likely 9 out of 58
CheckResultEvidence
CT06warningtitle length 74 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 74 chars
The evidence, taken from the page as served
The page title, as served
74 characters
<title>Digital registration for Mobile App and Internet Banking | Virgin Money UK</title>
21 characters
<title>Virgin Money homepage</title>
22 characters
<title>Virgin Money Instagram</title>
19 characters
<title>Virgin Money TikTok</title>
14 characters
<title>Virgin Money X</title>
21 characters
<title>Virgin Money Facebook</title>
20 characters
<title>Virgin Money YouTube</title>
21 characters
<title>Virgin Money LinkedIn</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 http-equiv="X-UA-Compatible" content="IE=edge"/> <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1.0"/> <!--evidon omnitag--> <script type="text/javascript" src="/service/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-dtconfig="rid=RID_-450531958|rpid=1122830135|domain=virginmoney.com|reportUrl=/service/rb_bf64125xgr|uam=1|app=8e10568a9231138b|ssc=1|coo=1|owasp=1|featureHash=ICA15789NPRTUVXfghqrux|srsr=20000|xb=*.analytics.google.com*^p.*evidon.*^p.*google-analytic.*^p.*ybg.egain.*^p.*cludo.*^p.*pinterest.*^p.*visualwebsiteoptimize.*^p.*linkedin.*^p.*demdex.*|rdnt=1|uxrgce=1|cuc=4agxwo8z|mel=100000|expw=1|dpvc=1|md=mdcc1=bdocument.referrer,mdcc2=bnavigator.userAgent,mdcc3=dutm_source,mdcc4=dutm_medium,mdcc5=dutm_campaign,mdcc6=dutm_term,mdcc7=dutm_content,mdcc8=bwindow.location.href,mdcc9=dproduct,mdcc10=chdtCode1|lastModification=1785157117101|tp=500,50,0|srbbv=2|agentUri=/service/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-config="{&quot;revision&quot;:1785157117101,&quot;beaconUri&quot;:&quot;/service/rb_bf64125xgr&quot;,&quot;agentUri&quot;:&quot;/service/ruxitagentjs_ICA15โ€ฆ
CT04warningthe page carries no date, so there is nothing on it saying how current its content is
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 carries no date, so there is nothing on it saying how current its content is
The evidence, taken from the page as served
The head of this page, as served

The head of the page and the page's own text were read for a date.

<head> <meta charset="utf-8"/> <meta http-equiv="X-UA-Compatible" content="IE=edge"/> <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1.0"/> <!--evidon omnitag--> <script type="text/javascript" src="/service/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-dtconfig="rid=RID_-450531958|rpid=1122830135|domain=virginmoney.com|reportUrl=/service/rb_bf64125xgr|uam=1|app=8e10568a9231138b|ssc=1|coo=1|owasp=1|featureHash=ICA15789NPRTUVXfghqrux|srsr=20000|xb=*.analytics.google.com*^p.*evidon.*^p.*google-analytic.*^p.*ybg.egain.*^p.*cludo.*^p.*pinterest.*^p.*visualwebsiteoptimize.*^p.*linkedin.*^p.*demdex.*|rdnt=1|uxrgce=1|cuc=4agxwo8z|mel=100000|expw=1|dpvc=1|md=mdcc1=bdocument.referrer,mdcc2=bnavigator.userAgent,mdcc3=dutm_source,mdcc4=dutm_medium,mdcc5=dutm_campaign,mdcc6=dutm_term,mdcc7=dutm_content,mdcc8=bwindow.location.href,mdcc9=dproduct,mdcc10=chdtCode1|lastModification=1785157117101|tp=500,50,0|srbbv=2|agentUri=/service/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-config="{&quot;revision&quot;:1785157117101,&quot;beaconUri&quot;:&quot;/service/rb_bf64125xgr&quot;,&quot;agentUri&quot;:&quot;/service/ruxitagentjs_ICA15โ€ฆ
CT35warningthe page carries no copyright line in the content as served, so there is nothing on it to date it by, and an absent copyright line is one of the marks of a copied template
What we check
The copyright line at the foot of the page, and the year it states.
What good looks like
The copyright line states the current year.
Why it matters
A copyright year in the past reads as a page nobody has attended to, and it is the usual sign of a template copied from somewhere else. Either way an AI treats the content as stale and can present old material as current.
What we found on this page
the page carries no copyright line in the content as served, so there is nothing on it to date it by, and an absent copyright line is one of the marks of a copied template
The evidence, taken from the page as served
The foot of this page, as served

The foot of the page was read for a copyright line.

<footer class="container footer pattern pattern--bottom bg-dark-2 stroke-primary "> <div class="row"> <div class="col-sm-6 col-md-3"> <h2 class="h3">Get in touch</h2> <ul class="list-unstyled pb-0 "> <li class=""> <a class="btn btn-link " href="/contact/">Contact us</a> </li> <li class=""> <a class="btn btn-link " href="/service/support-hub/">Help and support</a> </li> <li class=""> <a class="btn btn-link " href="/service/financial-wellbeing/">Financial wellbeing hub</a> </li> <li class=""> <a class="btn btn-link " href="/service/ways-to-bank/">Ways to bank</a> </li> <li class=""> <a class="btn btn-link " href="/vmforms/feedback-form/">Feedback</a> </li> <li class=""> <a class="btn btn-link " href="/service/complaints/">Make a complaint</a> </li> </ul> <ul class="list-unstyled list-social"> <li> <a href="https://www.instagram.com/virginmoney/" title="Virgin Money Instagram" target="_blank" rel="noopener"> <svg viewbox="0 0 32 32"> <title>Virgin Money Instagram</title> <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="/assets/svg/social.svg?v1.0#social-instagram-bg" class="svg__bg"/> <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="/assets/svg/social.svg?v1.0#soโ€ฆ
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 http-equiv="X-UA-Compatible" content="IE=edge"/> <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1.0"/> <!--evidon omnitag--> <script type="text/javascript" src="/service/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-dtconfig="rid=RID_-450531958|rpid=1122830135|domain=virginmoney.com|reportUrl=/service/rb_bf64125xgr|uam=1|app=8e10568a9231138b|ssc=1|coo=1|owasp=1|featureHash=ICA15789NPRTUVXfghqrux|srsr=20000|xb=*.analytics.google.com*^p.*evidon.*^p.*google-analytic.*^p.*ybg.egain.*^p.*cludo.*^p.*pinterest.*^p.*visualwebsiteoptimize.*^p.*linkedin.*^p.*demdex.*|rdnt=1|uxrgce=1|cuc=4agxwo8z|mel=100000|expw=1|dpvc=1|md=mdcc1=bdocument.referrer,mdcc2=bnavigator.userAgent,mdcc3=dutm_source,mdcc4=dutm_medium,mdcc5=dutm_campaign,mdcc6=dutm_term,mdcc7=dutm_content,mdcc8=bwindow.location.href,mdcc9=dproduct,mdcc10=chdtCode1|lastModification=1785157117101|tp=500,50,0|srbbv=2|agentUri=/service/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-config="{&quot;revision&quot;:1785157117101,&quot;beaconUri&quot;:&quot;/service/rb_bf64125xgr&quot;,&quot;agentUri&quot;:&quot;/service/ruxitagentjs_ICA15โ€ฆ
MS08fail1 link wording(s) are used for more than one destination, so the same words point at different pages: โ€œbusinessโ€; 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: โ€œbusinessโ€; 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
"Business"
<a class="" href="/business/">Business</a>
"Business"
<a href="/business/service/sign-in/" class="ctasecondarynav-link"> Business </a>
AR12warning66% of the page's text (7213 of 10917 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
66% of the page's text (7213 of 10917 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 click7213 characters
All the text on the finished page10917 characters
Hidden share66%
The point we measure against50%
MS04warningthe page's naming markup is faulty: 140 working control(s) sit inside a section the code marks as hidden, so they work on screen but are absent from what is read out
What we check
Accessibility markup faults: invented roles, labels pointing at nothing, live controls marked hidden.
What good looks like
The page's accessibility markup is sound, with valid roles and no labels pointing at nothing.
Why it matters
The page's own description of its controls is wrong, so what it offers and what it declares do not match.
What we found on this page
the page's naming markup is faulty: 140 working control(s) sit inside a section the code marks as hidden, so they work on screen but are absent from what is read out
The evidence, taken from the page as served
The faulty markup, as the page serves it once loaded
<a href="/" id="site-logo" class="brand" rel="home" title="Virgin Money homepage"> <svg viewbox="0 0 198 40"> <title>Virgin Money homepage</title> <circle xmlns="http://www.w3.org/2000/svg" class="cls-1" cx="69.9375" cy="20.375" r="19"/> <use xlink:href="/assets/svg/logo.svg#hero"/></svg> </a>
<button type="button" id="navbar-toggle-secondnav" class="navbar-toggler collapsed" aria-controls="ctasecondarynav" aria-expanded="false" aria-label="Open Sign in menu for online Services" data-toggle="collapse" data-parent="#nav" data-target="#ctasecondarynav"> <span class="navbar-toggler__label" style="animation-delaโ€ฆ
<button type="button" id="navbar-toggle-menu" class="navbar-toggler collapsed" aria-controls="menu-container" aria-expanded="false" aria-label="Toggle Menu navigation" data-toggle="collapse" data-parent="#nav" data-target="#menu-container"> <span class="navbar-toggler__label" style="animation-delay: 0.75s;">Menu</span>โ€ฆ
<a class="selected" href="/" aria-current="page">Personal</a>
<a class="" href="/business/">Business</a>
<a class="" href="/brighter-money/">Brighter Money</a>
<a href="/service/support-hub/" class="" data-icon="/assets/svg/rebrand-ui.svg#help" data-icon-left=""><span class="svg__wrapper svg__wrapper--fill"><svg class=""><use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="/assets/svg/rebrand-ui.svg#help"/></svg></span> Help </a>
<a href="/site-search/" class="" data-icon="/assets/svg/rebrand-ui.svg#search" data-icon-left=""><span class="svg__wrapper svg__wrapper--fill"><svg class=""><use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="/assets/svg/rebrand-ui.svg#search"/></svg></span> Search </a>
<button type="button" class="d-none d-md-inline-block btn btn-secondary btn-cta-pages collapsed" aria-controls="ctasecondarynav" aria-expanded="false" data-toggle="collapse" data-trigger="click" data-trigger-selector=".menu &gt; .list-nav &gt; li &gt; a[data-toggle]:not(.collapsed)" data-target="#ctasecondarynav"> <spaโ€ฆ
<a href="/service/sign-in/" class=" btn btn-secondary"> <span class="visually-hidden">Visit the </span>Sign in<span class="visually-hidden"> page for existing customers, where you can service any products you have with Virgin Money. </span> </a>

…and 130 more like it.

AJ08warningfocus order: 7 element(s) use a positive tabindex, overriding document 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: 7 element(s) use a positive tabindex, overriding document order; the first 12 Tab stops do not follow document order
The evidence, taken from the page as served
The elements with a positive tabindex, as served after rendering
tabindex=1
<div id="_evidon-banner" role="dialog" aria-modal="true" aria-labelledby="_evidon-banner-title" aria-describedby="_evidon-banner-message" class="evidon-barrier" tabindex="1" style="position: fixed; transform: translate(-50%, 0px); left: 50%; top: 6rem; max-height: calc(100% - 8rem); overflow: auto; display: block; backโ€ฆ
tabindex=2
<a tabindex="2" href="https://uk.virginmoney.com/security/?ban" target="_blank" rel="noopener">privacy notice</a>
tabindex=2
<a tabindex="2" href="https://uk.virginmoney.com/cookies/?ban" target="_blank" rel="noopener">cookies notice</a>
tabindex=4
<button id="_evidon-banner-cookiebutton" class="evidon-barrier-cookiebutton" tabindex="4" style="font-size: 17.6px; margin: 32px 24px; padding: 20px 32px; border: 1px solid rgb(225, 10, 10); display: inline-block; background: rgb(255, 255, 255); border-radius: 0px; color: rgb(225, 10, 10); cursor: pointer; font-family:โ€ฆ
tabindex=5
<button id="_evidon-barrier-declinebutton" tabindex="5" class="evidon-barrier-declinebutton" aria-label="Reject optional cookies" style="font-size: 17.6px; margin: 32px 24px; padding: 20px 32px; border: 1px solid rgb(225, 10, 10); display: inline-block; background: rgb(255, 255, 255); border-radius: 0px; color: rgb(225โ€ฆ
tabindex=3
<button id="_evidon-banner-acceptbutton" tabindex="3" class="evidon-barrier-acceptbutton" style="font-size: 17.6px; margin: 32px 24px; padding: 20px 32px; border: 1px solid rgb(225, 10, 10); display: inline-block; background: rgb(255, 255, 255); border-radius: 0px; color: rgb(225, 10, 10); cursor: pointer; font-family:โ€ฆ
tabindex=3
<button id="_ev_opt_out_close" tabindex="3" style="position: absolute; top: 0px; right: 2px; color: rgb(225, 10, 10); background: transparent; font-size: 12px; border: 0px; cursor: pointer;">Close โœ–</button>
https://uk.virginmoney.com/insurance/travel-insurance 55.5% Likely 10 out of 58
CheckResultEvidence
CT06warningtitle length 84 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 84 chars
The evidence, taken from the page as served
The page title, as served
84 characters
<title>Travel Insurance - Holiday Insurance with 24/7 Support | Insurance | Virgin Money UK</title>
21 characters
<title>Virgin Money homepage</title>
22 characters
<title>Virgin Money Instagram</title>
19 characters
<title>Virgin Money TikTok</title>
14 characters
<title>Virgin Money X</title>
21 characters
<title>Virgin Money Facebook</title>
20 characters
<title>Virgin Money YouTube</title>
21 characters
<title>Virgin Money LinkedIn</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 http-equiv="X-UA-Compatible" content="IE=edge"/> <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1.0"/> <!--evidon omnitag--> <script type="text/javascript" src="/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-dtconfig="rid=RID_-1314903907|rpid=1924460767|domain=virginmoney.com|reportUrl=/rb_bf64125xgr|uam=1|app=8e10568a9231138b|ssc=1|coo=1|owasp=1|featureHash=ICA15789NPRTUVXfghqrux|srsr=20000|xb=*.analytics.google.com*^p.*evidon.*^p.*google-analytic.*^p.*ybg.egain.*^p.*cludo.*^p.*pinterest.*^p.*visualwebsiteoptimize.*^p.*linkedin.*^p.*demdex.*|rdnt=1|uxrgce=1|cuc=4agxwo8z|mel=100000|expw=1|dpvc=1|md=mdcc1=bdocument.referrer,mdcc2=bnavigator.userAgent,mdcc3=dutm_source,mdcc4=dutm_medium,mdcc5=dutm_campaign,mdcc6=dutm_term,mdcc7=dutm_content,mdcc8=bwindow.location.href,mdcc9=dproduct,mdcc10=chdtCode1|lastModification=1785157117101|tp=500,50,0|srbbv=2|agentUri=/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-config="{&quot;revision&quot;:1785157117101,&quot;beaconUri&quot;:&quot;/rb_bf64125xgr&quot;,&quot;agentUri&quot;:&quot;/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js&โ€ฆ
CT04warningthe page shows the year 2026 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 2026 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 http-equiv="X-UA-Compatible" content="IE=edge"/> <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1.0"/> <!--evidon omnitag--> <script type="text/javascript" src="/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-dtconfig="rid=RID_-1314903907|rpid=1924460767|domain=virginmoney.com|reportUrl=/rb_bf64125xgr|uam=1|app=8e10568a9231138b|ssc=1|coo=1|owasp=1|featureHash=ICA15789NPRTUVXfghqrux|srsr=20000|xb=*.analytics.google.com*^p.*evidon.*^p.*google-analytic.*^p.*ybg.egain.*^p.*cludo.*^p.*pinterest.*^p.*visualwebsiteoptimize.*^p.*linkedin.*^p.*demdex.*|rdnt=1|uxrgce=1|cuc=4agxwo8z|mel=100000|expw=1|dpvc=1|md=mdcc1=bdocument.referrer,mdcc2=bnavigator.userAgent,mdcc3=dutm_source,mdcc4=dutm_medium,mdcc5=dutm_campaign,mdcc6=dutm_term,mdcc7=dutm_content,mdcc8=bwindow.location.href,mdcc9=dproduct,mdcc10=chdtCode1|lastModification=1785157117101|tp=500,50,0|srbbv=2|agentUri=/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-config="{&quot;revision&quot;:1785157117101,&quot;beaconUri&quot;:&quot;/rb_bf64125xgr&quot;,&quot;agentUri&quot;:&quot;/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js&โ€ฆ
CT35warningthe page carries no copyright line in the content as served, so there is nothing on it to date it by, and an absent copyright line is one of the marks of a copied template
What we check
The copyright line at the foot of the page, and the year it states.
What good looks like
The copyright line states the current year.
Why it matters
A copyright year in the past reads as a page nobody has attended to, and it is the usual sign of a template copied from somewhere else. Either way an AI treats the content as stale and can present old material as current.
What we found on this page
the page carries no copyright line in the content as served, so there is nothing on it to date it by, and an absent copyright line is one of the marks of a copied template
The evidence, taken from the page as served
The foot of this page, as served

The foot of the page was read for a copyright line.

<footer class="container footer pattern pattern--bottom bg-dark-2 stroke-primary "> <div class="row"> <div class="col-sm-6 col-md-3"> <h2 class="h3">Get in touch</h2> <ul class="list-unstyled pb-0 "> <li class=""> <a class="btn btn-link " href="/contact/">Contact us</a> </li> <li class=""> <a class="btn btn-link " href="/service/support-hub/">Help and support</a> </li> <li class=""> <a class="btn btn-link " href="/service/financial-wellbeing/">Financial wellbeing hub</a> </li> <li class=""> <a class="btn btn-link " href="/service/ways-to-bank/">Ways to bank</a> </li> <li class=""> <a class="btn btn-link " href="/vmforms/feedback-form/">Feedback</a> </li> <li class=""> <a class="btn btn-link " href="/service/complaints/">Make a complaint</a> </li> </ul> <ul class="list-unstyled list-social"> <li> <a href="https://www.instagram.com/virginmoney/" title="Virgin Money Instagram" target="_blank" rel="noopener"> <svg viewbox="0 0 32 32"> <title>Virgin Money Instagram</title> <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="/assets/svg/social.svg?v1.0#social-instagram-bg" class="svg__bg"/> <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="/assets/svg/social.svg?v1.0#soโ€ฆ
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 http-equiv="X-UA-Compatible" content="IE=edge"/> <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1.0"/> <!--evidon omnitag--> <script type="text/javascript" src="/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-dtconfig="rid=RID_-1314903907|rpid=1924460767|domain=virginmoney.com|reportUrl=/rb_bf64125xgr|uam=1|app=8e10568a9231138b|ssc=1|coo=1|owasp=1|featureHash=ICA15789NPRTUVXfghqrux|srsr=20000|xb=*.analytics.google.com*^p.*evidon.*^p.*google-analytic.*^p.*ybg.egain.*^p.*cludo.*^p.*pinterest.*^p.*visualwebsiteoptimize.*^p.*linkedin.*^p.*demdex.*|rdnt=1|uxrgce=1|cuc=4agxwo8z|mel=100000|expw=1|dpvc=1|md=mdcc1=bdocument.referrer,mdcc2=bnavigator.userAgent,mdcc3=dutm_source,mdcc4=dutm_medium,mdcc5=dutm_campaign,mdcc6=dutm_term,mdcc7=dutm_content,mdcc8=bwindow.location.href,mdcc9=dproduct,mdcc10=chdtCode1|lastModification=1785157117101|tp=500,50,0|srbbv=2|agentUri=/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-config="{&quot;revision&quot;:1785157117101,&quot;beaconUri&quot;:&quot;/rb_bf64125xgr&quot;,&quot;agentUri&quot;:&quot;/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js&โ€ฆ
MS08fail1 link wording(s) are used for more than one destination, so the same words point at different pages: โ€œbusinessโ€; 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: โ€œbusinessโ€; 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
"Business"
<a class="" href="/business/">Business</a>
"Business"
<a href="/business/service/sign-in/" class="ctasecondarynav-link"> Business </a>
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.moneyhelper.org.uk/en/everyday-money/insurance/travel-insurance-directory403Access-restricted
www.instagram.com/virginmoney200Reachable
www.tiktok.com/@virginmoneyuk?lang=en200Reachable
twitter.com/virginmoney200Reachable
www.facebook.com/VirginMoneyUK400Reachable
AR12warning62% of the page's text (9139 of 14654 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
62% of the page's text (9139 of 14654 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 click9139 characters
All the text on the finished page14654 characters
Hidden share62%
The point we measure against50%
MS04warningthe page's naming markup is faulty: 154 working control(s) sit inside a section the code marks as hidden, so they work on screen but are absent from what is read out
What we check
Accessibility markup faults: invented roles, labels pointing at nothing, live controls marked hidden.
What good looks like
The page's accessibility markup is sound, with valid roles and no labels pointing at nothing.
Why it matters
The page's own description of its controls is wrong, so what it offers and what it declares do not match.
What we found on this page
the page's naming markup is faulty: 154 working control(s) sit inside a section the code marks as hidden, so they work on screen but are absent from what is read out
The evidence, taken from the page as served
The faulty markup, as the page serves it once loaded
<a href="/" id="site-logo" class="brand" rel="home" title="Virgin Money homepage"> <svg viewbox="0 0 198 40"> <title>Virgin Money homepage</title> <circle xmlns="http://www.w3.org/2000/svg" class="cls-1" cx="69.9375" cy="20.375" r="19"/> <use xlink:href="/assets/svg/logo.svg#hero"/></svg> </a>
<button type="button" id="navbar-toggle-secondnav" class="navbar-toggler collapsed" aria-controls="ctasecondarynav" aria-expanded="false" aria-label="Open Sign in menu for online Services" data-toggle="collapse" data-parent="#nav" data-target="#ctasecondarynav"> <span class="navbar-toggler__label" style="animation-delaโ€ฆ
<button type="button" id="navbar-toggle-menu" class="navbar-toggler collapsed" aria-controls="menu-container" aria-expanded="false" aria-label="Toggle Menu navigation" data-toggle="collapse" data-parent="#nav" data-target="#menu-container"> <span class="navbar-toggler__label" style="animation-delay: 0.75s;">Menu</span>โ€ฆ
<a class="selected" href="/" aria-current="page">Personal</a>
<a class="" href="/business/">Business</a>
<a class="" href="/brighter-money/">Brighter Money</a>
<a href="/service/support-hub/" class="" data-icon="/assets/svg/rebrand-ui.svg#help" data-icon-left=""><span class="svg__wrapper svg__wrapper--fill"><svg class=""><use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="/assets/svg/rebrand-ui.svg#help"/></svg></span> Help </a>
<a href="/site-search/" class="" data-icon="/assets/svg/rebrand-ui.svg#search" data-icon-left=""><span class="svg__wrapper svg__wrapper--fill"><svg class=""><use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="/assets/svg/rebrand-ui.svg#search"/></svg></span> Search </a>
<button type="button" class="d-none d-md-inline-block btn btn-secondary btn-cta-pages collapsed" aria-controls="ctasecondarynav" aria-expanded="false" data-toggle="collapse" data-trigger="click" data-trigger-selector=".menu &gt; .list-nav &gt; li &gt; a[data-toggle]:not(.collapsed)" data-target="#ctasecondarynav"> <spaโ€ฆ
<a href="/service/sign-in/" class=" btn btn-secondary"> <span class="visually-hidden">Visit the </span>Sign in<span class="visually-hidden"> page for existing customers, where you can service any products you have with Virgin Money. </span> </a>

…and 144 more like it.

AJ08warningfocus order: 7 element(s) use a positive tabindex, overriding document 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: 7 element(s) use a positive tabindex, overriding document order; the first 12 Tab stops do not follow document order
The evidence, taken from the page as served
The elements with a positive tabindex, as served after rendering
tabindex=1
<div id="_evidon-banner" role="dialog" aria-modal="true" aria-labelledby="_evidon-banner-title" aria-describedby="_evidon-banner-message" class="evidon-barrier" tabindex="1" style="position: fixed; transform: translate(-50%, 0px); left: 50%; top: 6rem; max-height: calc(100% - 8rem); overflow: auto; display: block; backโ€ฆ
tabindex=2
<a tabindex="2" href="https://uk.virginmoney.com/security/?ban" target="_blank" rel="noopener">privacy notice</a>
tabindex=2
<a tabindex="2" href="https://uk.virginmoney.com/cookies/?ban" target="_blank" rel="noopener">cookies notice</a>
tabindex=4
<button id="_evidon-banner-cookiebutton" class="evidon-barrier-cookiebutton" tabindex="4" style="font-size: 17.6px; margin: 32px 24px; padding: 20px 32px; border: 1px solid rgb(225, 10, 10); display: inline-block; background: rgb(255, 255, 255); border-radius: 0px; color: rgb(225, 10, 10); cursor: pointer; font-family:โ€ฆ
tabindex=5
<button id="_evidon-barrier-declinebutton" tabindex="5" class="evidon-barrier-declinebutton" aria-label="Reject optional cookies" style="font-size: 17.6px; margin: 32px 24px; padding: 20px 32px; border: 1px solid rgb(225, 10, 10); display: inline-block; background: rgb(255, 255, 255); border-radius: 0px; color: rgb(225โ€ฆ
tabindex=3
<button id="_evidon-banner-acceptbutton" tabindex="3" class="evidon-barrier-acceptbutton" style="font-size: 17.6px; margin: 32px 24px; padding: 20px 32px; border: 1px solid rgb(225, 10, 10); display: inline-block; background: rgb(255, 255, 255); border-radius: 0px; color: rgb(225, 10, 10); cursor: pointer; font-family:โ€ฆ
tabindex=3
<button id="_ev_opt_out_close" tabindex="3" style="position: absolute; top: 0px; right: 2px; color: rgb(225, 10, 10); background: transparent; font-size: 12px; border: 0px; cursor: pointer;">Close โœ–</button>
https://uk.virginmoney.com/insurance/home-insurance 56.6% Likely 8 out of 58
CheckResultEvidence
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 http-equiv="X-UA-Compatible" content="IE=edge"/> <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1.0"/> <!--evidon omnitag--> <script type="text/javascript" src="/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-dtconfig="rid=RID_-572616734|rpid=659472828|domain=virginmoney.com|reportUrl=/rb_bf64125xgr|uam=1|app=8e10568a9231138b|ssc=1|coo=1|owasp=1|featureHash=ICA15789NPRTUVXfghqrux|srsr=20000|xb=*.analytics.google.com*^p.*evidon.*^p.*google-analytic.*^p.*ybg.egain.*^p.*cludo.*^p.*pinterest.*^p.*visualwebsiteoptimize.*^p.*linkedin.*^p.*demdex.*|rdnt=1|uxrgce=1|cuc=4agxwo8z|mel=100000|expw=1|dpvc=1|md=mdcc1=bdocument.referrer,mdcc2=bnavigator.userAgent,mdcc3=dutm_source,mdcc4=dutm_medium,mdcc5=dutm_campaign,mdcc6=dutm_term,mdcc7=dutm_content,mdcc8=bwindow.location.href,mdcc9=dproduct,mdcc10=chdtCode1|lastModification=1785157117101|tp=500,50,0|srbbv=2|agentUri=/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-config="{&quot;revision&quot;:1785157117101,&quot;beaconUri&quot;:&quot;/rb_bf64125xgr&quot;,&quot;agentUri&quot;:&quot;/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js&quโ€ฆ
CT04warningthe page shows the year 2026 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 2026 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 http-equiv="X-UA-Compatible" content="IE=edge"/> <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1.0"/> <!--evidon omnitag--> <script type="text/javascript" src="/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-dtconfig="rid=RID_-572616734|rpid=659472828|domain=virginmoney.com|reportUrl=/rb_bf64125xgr|uam=1|app=8e10568a9231138b|ssc=1|coo=1|owasp=1|featureHash=ICA15789NPRTUVXfghqrux|srsr=20000|xb=*.analytics.google.com*^p.*evidon.*^p.*google-analytic.*^p.*ybg.egain.*^p.*cludo.*^p.*pinterest.*^p.*visualwebsiteoptimize.*^p.*linkedin.*^p.*demdex.*|rdnt=1|uxrgce=1|cuc=4agxwo8z|mel=100000|expw=1|dpvc=1|md=mdcc1=bdocument.referrer,mdcc2=bnavigator.userAgent,mdcc3=dutm_source,mdcc4=dutm_medium,mdcc5=dutm_campaign,mdcc6=dutm_term,mdcc7=dutm_content,mdcc8=bwindow.location.href,mdcc9=dproduct,mdcc10=chdtCode1|lastModification=1785157117101|tp=500,50,0|srbbv=2|agentUri=/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-config="{&quot;revision&quot;:1785157117101,&quot;beaconUri&quot;:&quot;/rb_bf64125xgr&quot;,&quot;agentUri&quot;:&quot;/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js&quโ€ฆ
CT35warningthe page carries no copyright line in the content as served, so there is nothing on it to date it by, and an absent copyright line is one of the marks of a copied template
What we check
The copyright line at the foot of the page, and the year it states.
What good looks like
The copyright line states the current year.
Why it matters
A copyright year in the past reads as a page nobody has attended to, and it is the usual sign of a template copied from somewhere else. Either way an AI treats the content as stale and can present old material as current.
What we found on this page
the page carries no copyright line in the content as served, so there is nothing on it to date it by, and an absent copyright line is one of the marks of a copied template
The evidence, taken from the page as served
The foot of this page, as served

The foot of the page was read for a copyright line.

<footer class="container footer pattern pattern--bottom bg-dark-2 stroke-primary "> <div class="row"> <div class="col-sm-6 col-md-3"> <h2 class="h3">Get in touch</h2> <ul class="list-unstyled pb-0 "> <li class=""> <a class="btn btn-link " href="/contact/">Contact us</a> </li> <li class=""> <a class="btn btn-link " href="/service/support-hub/">Help and support</a> </li> <li class=""> <a class="btn btn-link " href="/service/financial-wellbeing/">Financial wellbeing hub</a> </li> <li class=""> <a class="btn btn-link " href="/service/ways-to-bank/">Ways to bank</a> </li> <li class=""> <a class="btn btn-link " href="/vmforms/feedback-form/">Feedback</a> </li> <li class=""> <a class="btn btn-link " href="/service/complaints/">Make a complaint</a> </li> </ul> <ul class="list-unstyled list-social"> <li> <a href="https://www.instagram.com/virginmoney/" title="Virgin Money Instagram" target="_blank" rel="noopener"> <svg viewbox="0 0 32 32"> <title>Virgin Money Instagram</title> <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="/assets/svg/social.svg?v1.0#social-instagram-bg" class="svg__bg"/> <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="/assets/svg/social.svg?v1.0#soโ€ฆ
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 http-equiv="X-UA-Compatible" content="IE=edge"/> <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1.0"/> <!--evidon omnitag--> <script type="text/javascript" src="/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-dtconfig="rid=RID_-572616734|rpid=659472828|domain=virginmoney.com|reportUrl=/rb_bf64125xgr|uam=1|app=8e10568a9231138b|ssc=1|coo=1|owasp=1|featureHash=ICA15789NPRTUVXfghqrux|srsr=20000|xb=*.analytics.google.com*^p.*evidon.*^p.*google-analytic.*^p.*ybg.egain.*^p.*cludo.*^p.*pinterest.*^p.*visualwebsiteoptimize.*^p.*linkedin.*^p.*demdex.*|rdnt=1|uxrgce=1|cuc=4agxwo8z|mel=100000|expw=1|dpvc=1|md=mdcc1=bdocument.referrer,mdcc2=bnavigator.userAgent,mdcc3=dutm_source,mdcc4=dutm_medium,mdcc5=dutm_campaign,mdcc6=dutm_term,mdcc7=dutm_content,mdcc8=bwindow.location.href,mdcc9=dproduct,mdcc10=chdtCode1|lastModification=1785157117101|tp=500,50,0|srbbv=2|agentUri=/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-config="{&quot;revision&quot;:1785157117101,&quot;beaconUri&quot;:&quot;/rb_bf64125xgr&quot;,&quot;agentUri&quot;:&quot;/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js&quโ€ฆ
MS08fail1 link wording(s) are used for more than one destination, so the same words point at different pages: โ€œbusinessโ€; 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: โ€œbusinessโ€; 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
"Business"
<a class="" href="/business/">Business</a>
"Business"
<a href="/business/service/sign-in/" class="ctasecondarynav-link"> Business </a>
AR12warning60% of the page's text (9280 of 15323 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
60% of the page's text (9280 of 15323 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 click9280 characters
All the text on the finished page15323 characters
Hidden share60%
The point we measure against50%
MS04warningthe page's naming markup is faulty: 153 working control(s) sit inside a section the code marks as hidden, so they work on screen but are absent from what is read out
What we check
Accessibility markup faults: invented roles, labels pointing at nothing, live controls marked hidden.
What good looks like
The page's accessibility markup is sound, with valid roles and no labels pointing at nothing.
Why it matters
The page's own description of its controls is wrong, so what it offers and what it declares do not match.
What we found on this page
the page's naming markup is faulty: 153 working control(s) sit inside a section the code marks as hidden, so they work on screen but are absent from what is read out
The evidence, taken from the page as served
The faulty markup, as the page serves it once loaded
<a href="/" id="site-logo" class="brand" rel="home" title="Virgin Money homepage"> <svg viewbox="0 0 198 40"> <title>Virgin Money homepage</title> <circle xmlns="http://www.w3.org/2000/svg" class="cls-1" cx="69.9375" cy="20.375" r="19"/> <use xlink:href="/assets/svg/logo.svg#hero"/></svg> </a>
<button type="button" id="navbar-toggle-secondnav" class="navbar-toggler collapsed" aria-controls="ctasecondarynav" aria-expanded="false" aria-label="Open Sign in menu for online Services" data-toggle="collapse" data-parent="#nav" data-target="#ctasecondarynav"> <span class="navbar-toggler__label" style="animation-delaโ€ฆ
<button type="button" id="navbar-toggle-menu" class="navbar-toggler collapsed" aria-controls="menu-container" aria-expanded="false" aria-label="Toggle Menu navigation" data-toggle="collapse" data-parent="#nav" data-target="#menu-container"> <span class="navbar-toggler__label" style="animation-delay: 0.75s;">Menu</span>โ€ฆ
<a class="selected" href="/" aria-current="page">Personal</a>
<a class="" href="/business/">Business</a>
<a class="" href="/brighter-money/">Brighter Money</a>
<a href="/service/support-hub/" class="" data-icon="/assets/svg/rebrand-ui.svg#help" data-icon-left=""><span class="svg__wrapper svg__wrapper--fill"><svg class=""><use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="/assets/svg/rebrand-ui.svg#help"/></svg></span> Help </a>
<a href="/site-search/" class="" data-icon="/assets/svg/rebrand-ui.svg#search" data-icon-left=""><span class="svg__wrapper svg__wrapper--fill"><svg class=""><use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="/assets/svg/rebrand-ui.svg#search"/></svg></span> Search </a>
<button type="button" class="d-none d-md-inline-block btn btn-secondary btn-cta-pages collapsed" aria-controls="ctasecondarynav" aria-expanded="false" data-toggle="collapse" data-trigger="click" data-trigger-selector=".menu &gt; .list-nav &gt; li &gt; a[data-toggle]:not(.collapsed)" data-target="#ctasecondarynav"> <spaโ€ฆ
<a href="/service/sign-in/" class=" btn btn-secondary"> <span class="visually-hidden">Visit the </span>Sign in<span class="visually-hidden"> page for existing customers, where you can service any products you have with Virgin Money. </span> </a>

…and 143 more like it.

AJ08warningfocus order: 7 element(s) use a positive tabindex, overriding document 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: 7 element(s) use a positive tabindex, overriding document order; the first 12 Tab stops do not follow document order
The evidence, taken from the page as served
The elements with a positive tabindex, as served after rendering
tabindex=1
<div id="_evidon-banner" role="dialog" aria-modal="true" aria-labelledby="_evidon-banner-title" aria-describedby="_evidon-banner-message" class="evidon-barrier" tabindex="1" style="position: fixed; transform: translate(-50%, 0px); left: 50%; top: 6rem; max-height: calc(100% - 8rem); overflow: auto; display: block; backโ€ฆ
tabindex=2
<a tabindex="2" href="https://uk.virginmoney.com/security/?ban" target="_blank" rel="noopener">privacy notice</a>
tabindex=2
<a tabindex="2" href="https://uk.virginmoney.com/cookies/?ban" target="_blank" rel="noopener">cookies notice</a>
tabindex=4
<button id="_evidon-banner-cookiebutton" class="evidon-barrier-cookiebutton" tabindex="4" style="font-size: 17.6px; margin: 32px 24px; padding: 20px 32px; border: 1px solid rgb(225, 10, 10); display: inline-block; background: rgb(255, 255, 255); border-radius: 0px; color: rgb(225, 10, 10); cursor: pointer; font-family:โ€ฆ
tabindex=5
<button id="_evidon-barrier-declinebutton" tabindex="5" class="evidon-barrier-declinebutton" aria-label="Reject optional cookies" style="font-size: 17.6px; margin: 32px 24px; padding: 20px 32px; border: 1px solid rgb(225, 10, 10); display: inline-block; background: rgb(255, 255, 255); border-radius: 0px; color: rgb(225โ€ฆ
tabindex=3
<button id="_evidon-banner-acceptbutton" tabindex="3" class="evidon-barrier-acceptbutton" style="font-size: 17.6px; margin: 32px 24px; padding: 20px 32px; border: 1px solid rgb(225, 10, 10); display: inline-block; background: rgb(255, 255, 255); border-radius: 0px; color: rgb(225, 10, 10); cursor: pointer; font-family:โ€ฆ
tabindex=3
<button id="_ev_opt_out_close" tabindex="3" style="position: absolute; top: 0px; right: 2px; color: rgb(225, 10, 10); background: transparent; font-size: 12px; border: 0px; cursor: pointer;">Close โœ–</button>
https://uk.virginmoney.com/insurance/life-insurance 56.8% Likely 5 out of 42
CheckResultEvidence
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 http-equiv="X-UA-Compatible" content="IE=edge"/> <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1.0"/> <!--evidon omnitag--> <script type="text/javascript" src="/insurance/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-dtconfig="rid=RID_468780671|rpid=-785325188|domain=virginmoney.com|reportUrl=/insurance/rb_bf64125xgr|uam=1|app=8e10568a9231138b|ssc=1|coo=1|owasp=1|featureHash=ICA15789NPRTUVXfghqrux|srsr=20000|xb=*.analytics.google.com*^p.*evidon.*^p.*google-analytic.*^p.*ybg.egain.*^p.*cludo.*^p.*pinterest.*^p.*visualwebsiteoptimize.*^p.*linkedin.*^p.*demdex.*|rdnt=1|uxrgce=1|cuc=4agxwo8z|mel=100000|expw=1|dpvc=1|md=mdcc1=bdocument.referrer,mdcc2=bnavigator.userAgent,mdcc3=dutm_source,mdcc4=dutm_medium,mdcc5=dutm_campaign,mdcc6=dutm_term,mdcc7=dutm_content,mdcc8=bwindow.location.href,mdcc9=dproduct,mdcc10=chdtCode1|lastModification=1785157117101|tp=500,50,0|srbbv=2|agentUri=/insurance/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-config="{&quot;revision&quot;:1785157117101,&quot;beaconUri&quot;:&quot;/insurance/rb_bf64125xgr&quot;,&quot;agentUri&quot;:&quot;/insurance/ruxitagenโ€ฆ
CT04warningthe page shows the year 2026 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 2026 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 http-equiv="X-UA-Compatible" content="IE=edge"/> <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1.0"/> <!--evidon omnitag--> <script type="text/javascript" src="/insurance/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-dtconfig="rid=RID_468780671|rpid=-785325188|domain=virginmoney.com|reportUrl=/insurance/rb_bf64125xgr|uam=1|app=8e10568a9231138b|ssc=1|coo=1|owasp=1|featureHash=ICA15789NPRTUVXfghqrux|srsr=20000|xb=*.analytics.google.com*^p.*evidon.*^p.*google-analytic.*^p.*ybg.egain.*^p.*cludo.*^p.*pinterest.*^p.*visualwebsiteoptimize.*^p.*linkedin.*^p.*demdex.*|rdnt=1|uxrgce=1|cuc=4agxwo8z|mel=100000|expw=1|dpvc=1|md=mdcc1=bdocument.referrer,mdcc2=bnavigator.userAgent,mdcc3=dutm_source,mdcc4=dutm_medium,mdcc5=dutm_campaign,mdcc6=dutm_term,mdcc7=dutm_content,mdcc8=bwindow.location.href,mdcc9=dproduct,mdcc10=chdtCode1|lastModification=1785157117101|tp=500,50,0|srbbv=2|agentUri=/insurance/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-config="{&quot;revision&quot;:1785157117101,&quot;beaconUri&quot;:&quot;/insurance/rb_bf64125xgr&quot;,&quot;agentUri&quot;:&quot;/insurance/ruxitagenโ€ฆ
CT35warningthe page carries no copyright line in the content as served, so there is nothing on it to date it by, and an absent copyright line is one of the marks of a copied template
What we check
The copyright line at the foot of the page, and the year it states.
What good looks like
The copyright line states the current year.
Why it matters
A copyright year in the past reads as a page nobody has attended to, and it is the usual sign of a template copied from somewhere else. Either way an AI treats the content as stale and can present old material as current.
What we found on this page
the page carries no copyright line in the content as served, so there is nothing on it to date it by, and an absent copyright line is one of the marks of a copied template
The evidence, taken from the page as served
The foot of this page, as served

The foot of the page was read for a copyright line.

<footer class="container footer pattern pattern--bottom bg-dark-2 stroke-primary "> <div class="row"> <div class="col-sm-6 col-md-3"> <h2 class="h3">Get in touch</h2> <ul class="list-unstyled pb-0 "> <li class=""> <a class="btn btn-link " href="/contact/">Contact us</a> </li> <li class=""> <a class="btn btn-link " href="/service/support-hub/">Help and support</a> </li> <li class=""> <a class="btn btn-link " href="/service/financial-wellbeing/">Financial wellbeing hub</a> </li> <li class=""> <a class="btn btn-link " href="/service/ways-to-bank/">Ways to bank</a> </li> <li class=""> <a class="btn btn-link " href="/vmforms/feedback-form/">Feedback</a> </li> <li class=""> <a class="btn btn-link " href="/service/complaints/">Make a complaint</a> </li> </ul> <ul class="list-unstyled list-social"> <li> <a href="https://www.instagram.com/virginmoney/" title="Virgin Money Instagram" target="_blank" rel="noopener"> <svg viewbox="0 0 32 32"> <title>Virgin Money Instagram</title> <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="/assets/svg/social.svg?v1.0#social-instagram-bg" class="svg__bg"/> <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="/assets/svg/social.svg?v1.0#soโ€ฆ
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 http-equiv="X-UA-Compatible" content="IE=edge"/> <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1.0"/> <!--evidon omnitag--> <script type="text/javascript" src="/insurance/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-dtconfig="rid=RID_468780671|rpid=-785325188|domain=virginmoney.com|reportUrl=/insurance/rb_bf64125xgr|uam=1|app=8e10568a9231138b|ssc=1|coo=1|owasp=1|featureHash=ICA15789NPRTUVXfghqrux|srsr=20000|xb=*.analytics.google.com*^p.*evidon.*^p.*google-analytic.*^p.*ybg.egain.*^p.*cludo.*^p.*pinterest.*^p.*visualwebsiteoptimize.*^p.*linkedin.*^p.*demdex.*|rdnt=1|uxrgce=1|cuc=4agxwo8z|mel=100000|expw=1|dpvc=1|md=mdcc1=bdocument.referrer,mdcc2=bnavigator.userAgent,mdcc3=dutm_source,mdcc4=dutm_medium,mdcc5=dutm_campaign,mdcc6=dutm_term,mdcc7=dutm_content,mdcc8=bwindow.location.href,mdcc9=dproduct,mdcc10=chdtCode1|lastModification=1785157117101|tp=500,50,0|srbbv=2|agentUri=/insurance/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-config="{&quot;revision&quot;:1785157117101,&quot;beaconUri&quot;:&quot;/insurance/rb_bf64125xgr&quot;,&quot;agentUri&quot;:&quot;/insurance/ruxitagenโ€ฆ
MS08fail1 link wording(s) are used for more than one destination, so the same words point at different pages: โ€œbusinessโ€; 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: โ€œbusinessโ€; 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
"Business"
<a class="" href="/business/">Business</a>
"Business"
<a href="/business/service/sign-in/" class="ctasecondarynav-link"> Business </a>
https://uk.virginmoney.com/business 55.7% Likely 6 out of 42
CheckResultEvidence
CT06warningtitle length 66 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 66 chars
The evidence, taken from the page as served
The page title, as served
66 characters
<title>Business Accounts - Current &amp; Savings | Business | Virgin Money UK</title>
21 characters
<title>Virgin Money homepage</title>
22 characters
<title>Virgin Money Instagram</title>
19 characters
<title>Virgin Money TikTok</title>
14 characters
<title>Virgin Money X</title>
21 characters
<title>Virgin Money Facebook</title>
20 characters
<title>Virgin Money YouTube</title>
21 characters
<title>Virgin Money LinkedIn</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 http-equiv="X-UA-Compatible" content="IE=edge"/> <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1.0"/> <!--evidon omnitag--> <script type="text/javascript" src="/business/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-dtconfig="rid=RID_-1838219086|rpid=1420086256|domain=virginmoney.com|reportUrl=/business/rb_bf64125xgr|uam=1|app=8e10568a9231138b|ssc=1|coo=1|owasp=1|featureHash=ICA15789NPRTUVXfghqrux|srsr=20000|xb=*.analytics.google.com*^p.*evidon.*^p.*google-analytic.*^p.*ybg.egain.*^p.*cludo.*^p.*pinterest.*^p.*visualwebsiteoptimize.*^p.*linkedin.*^p.*demdex.*|rdnt=1|uxrgce=1|cuc=4agxwo8z|mel=100000|expw=1|dpvc=1|md=mdcc1=bdocument.referrer,mdcc2=bnavigator.userAgent,mdcc3=dutm_source,mdcc4=dutm_medium,mdcc5=dutm_campaign,mdcc6=dutm_term,mdcc7=dutm_content,mdcc8=bwindow.location.href,mdcc9=dproduct,mdcc10=chdtCode1|lastModification=1785157117101|tp=500,50,0|srbbv=2|agentUri=/business/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-config="{&quot;revision&quot;:1785157117101,&quot;beaconUri&quot;:&quot;/business/rb_bf64125xgr&quot;,&quot;agentUri&quot;:&quot;/business/ruxitagentjsโ€ฆ
CT04warningthe page shows the year 2026 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 2026 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 http-equiv="X-UA-Compatible" content="IE=edge"/> <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1.0"/> <!--evidon omnitag--> <script type="text/javascript" src="/business/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-dtconfig="rid=RID_-1838219086|rpid=1420086256|domain=virginmoney.com|reportUrl=/business/rb_bf64125xgr|uam=1|app=8e10568a9231138b|ssc=1|coo=1|owasp=1|featureHash=ICA15789NPRTUVXfghqrux|srsr=20000|xb=*.analytics.google.com*^p.*evidon.*^p.*google-analytic.*^p.*ybg.egain.*^p.*cludo.*^p.*pinterest.*^p.*visualwebsiteoptimize.*^p.*linkedin.*^p.*demdex.*|rdnt=1|uxrgce=1|cuc=4agxwo8z|mel=100000|expw=1|dpvc=1|md=mdcc1=bdocument.referrer,mdcc2=bnavigator.userAgent,mdcc3=dutm_source,mdcc4=dutm_medium,mdcc5=dutm_campaign,mdcc6=dutm_term,mdcc7=dutm_content,mdcc8=bwindow.location.href,mdcc9=dproduct,mdcc10=chdtCode1|lastModification=1785157117101|tp=500,50,0|srbbv=2|agentUri=/business/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-config="{&quot;revision&quot;:1785157117101,&quot;beaconUri&quot;:&quot;/business/rb_bf64125xgr&quot;,&quot;agentUri&quot;:&quot;/business/ruxitagentjsโ€ฆ
CT35warningthe page carries no copyright line in the content as served, so there is nothing on it to date it by, and an absent copyright line is one of the marks of a copied template
What we check
The copyright line at the foot of the page, and the year it states.
What good looks like
The copyright line states the current year.
Why it matters
A copyright year in the past reads as a page nobody has attended to, and it is the usual sign of a template copied from somewhere else. Either way an AI treats the content as stale and can present old material as current.
What we found on this page
the page carries no copyright line in the content as served, so there is nothing on it to date it by, and an absent copyright line is one of the marks of a copied template
The evidence, taken from the page as served
The foot of this page, as served

The foot of the page was read for a copyright line.

<footer class="container footer pattern pattern--bottom bg-dark-2 stroke-primary "> <div class="row"> <div class="col-sm-6 col-md-3"> <h2 class="h3">Get in touch</h2> <ul class="list-unstyled pb-0 "> <li class=""> <a class="btn btn-link " href="/contact/">Contact us</a> </li> <li class=""> <a class="btn btn-link " href="/service/support-hub/">Help and support</a> </li> <li class=""> <a class="btn btn-link " href="/service/financial-wellbeing/">Financial wellbeing hub</a> </li> <li class=""> <a class="btn btn-link " href="/service/ways-to-bank/">Ways to bank</a> </li> <li class=""> <a class="btn btn-link " href="/vmforms/feedback-form/">Feedback</a> </li> <li class=""> <a class="btn btn-link " href="/service/complaints/">Make a complaint</a> </li> </ul> <ul class="list-unstyled list-social"> <li> <a href="https://www.instagram.com/virginmoney/" title="Virgin Money Instagram" target="_blank" rel="noopener"> <svg viewbox="0 0 32 32"> <title>Virgin Money Instagram</title> <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="/assets/svg/social.svg?v1.0#social-instagram-bg" class="svg__bg"/> <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="/assets/svg/social.svg?v1.0#soโ€ฆ
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 http-equiv="X-UA-Compatible" content="IE=edge"/> <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1.0"/> <!--evidon omnitag--> <script type="text/javascript" src="/business/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-dtconfig="rid=RID_-1838219086|rpid=1420086256|domain=virginmoney.com|reportUrl=/business/rb_bf64125xgr|uam=1|app=8e10568a9231138b|ssc=1|coo=1|owasp=1|featureHash=ICA15789NPRTUVXfghqrux|srsr=20000|xb=*.analytics.google.com*^p.*evidon.*^p.*google-analytic.*^p.*ybg.egain.*^p.*cludo.*^p.*pinterest.*^p.*visualwebsiteoptimize.*^p.*linkedin.*^p.*demdex.*|rdnt=1|uxrgce=1|cuc=4agxwo8z|mel=100000|expw=1|dpvc=1|md=mdcc1=bdocument.referrer,mdcc2=bnavigator.userAgent,mdcc3=dutm_source,mdcc4=dutm_medium,mdcc5=dutm_campaign,mdcc6=dutm_term,mdcc7=dutm_content,mdcc8=bwindow.location.href,mdcc9=dproduct,mdcc10=chdtCode1|lastModification=1785157117101|tp=500,50,0|srbbv=2|agentUri=/business/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-config="{&quot;revision&quot;:1785157117101,&quot;beaconUri&quot;:&quot;/business/rb_bf64125xgr&quot;,&quot;agentUri&quot;:&quot;/business/ruxitagentjsโ€ฆ
MS08fail1 link wording(s) are used for more than one destination, so the same words point at different pages: โ€œbusinessโ€; 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: โ€œbusinessโ€; 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
"Business"
<a class="selected" href="/business/" aria-current="page">Business</a>
"Business"
<a href="/business/service/sign-in/" class="ctasecondarynav-link"> Business </a>
https://uk.virginmoney.com/brighter-money 56.6% Likely 5 out of 42
CheckResultEvidence
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 http-equiv="X-UA-Compatible" content="IE=edge"/> <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1.0"/> <!--evidon omnitag--> <script type="text/javascript" src="/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-dtconfig="rid=RID_1291809368|rpid=346045219|domain=virginmoney.com|reportUrl=/rb_bf64125xgr|uam=1|app=8e10568a9231138b|ssc=1|coo=1|owasp=1|featureHash=ICA15789NPRTUVXfghqrux|srsr=20000|xb=*.analytics.google.com*^p.*evidon.*^p.*google-analytic.*^p.*ybg.egain.*^p.*cludo.*^p.*pinterest.*^p.*visualwebsiteoptimize.*^p.*linkedin.*^p.*demdex.*|rdnt=1|uxrgce=1|cuc=4agxwo8z|mel=100000|expw=1|dpvc=1|md=mdcc1=bdocument.referrer,mdcc2=bnavigator.userAgent,mdcc3=dutm_source,mdcc4=dutm_medium,mdcc5=dutm_campaign,mdcc6=dutm_term,mdcc7=dutm_content,mdcc8=bwindow.location.href,mdcc9=dproduct,mdcc10=chdtCode1|lastModification=1785157117101|tp=500,50,0|srbbv=2|agentUri=/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-config="{&quot;revision&quot;:1785157117101,&quot;beaconUri&quot;:&quot;/rb_bf64125xgr&quot;,&quot;agentUri&quot;:&quot;/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js&quโ€ฆ
CT04warningthe page carries no date, so there is nothing on it saying how current its content is
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 carries no date, so there is nothing on it saying how current its content is
The evidence, taken from the page as served
The head of this page, as served

The head of the page and the page's own text were read for a date.

<head> <meta charset="utf-8"/> <meta http-equiv="X-UA-Compatible" content="IE=edge"/> <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1.0"/> <!--evidon omnitag--> <script type="text/javascript" src="/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-dtconfig="rid=RID_1291809368|rpid=346045219|domain=virginmoney.com|reportUrl=/rb_bf64125xgr|uam=1|app=8e10568a9231138b|ssc=1|coo=1|owasp=1|featureHash=ICA15789NPRTUVXfghqrux|srsr=20000|xb=*.analytics.google.com*^p.*evidon.*^p.*google-analytic.*^p.*ybg.egain.*^p.*cludo.*^p.*pinterest.*^p.*visualwebsiteoptimize.*^p.*linkedin.*^p.*demdex.*|rdnt=1|uxrgce=1|cuc=4agxwo8z|mel=100000|expw=1|dpvc=1|md=mdcc1=bdocument.referrer,mdcc2=bnavigator.userAgent,mdcc3=dutm_source,mdcc4=dutm_medium,mdcc5=dutm_campaign,mdcc6=dutm_term,mdcc7=dutm_content,mdcc8=bwindow.location.href,mdcc9=dproduct,mdcc10=chdtCode1|lastModification=1785157117101|tp=500,50,0|srbbv=2|agentUri=/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-config="{&quot;revision&quot;:1785157117101,&quot;beaconUri&quot;:&quot;/rb_bf64125xgr&quot;,&quot;agentUri&quot;:&quot;/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js&quโ€ฆ
CT35warningthe page carries no copyright line in the content as served, so there is nothing on it to date it by, and an absent copyright line is one of the marks of a copied template
What we check
The copyright line at the foot of the page, and the year it states.
What good looks like
The copyright line states the current year.
Why it matters
A copyright year in the past reads as a page nobody has attended to, and it is the usual sign of a template copied from somewhere else. Either way an AI treats the content as stale and can present old material as current.
What we found on this page
the page carries no copyright line in the content as served, so there is nothing on it to date it by, and an absent copyright line is one of the marks of a copied template
The evidence, taken from the page as served
The foot of this page, as served

The foot of the page was read for a copyright line.

<footer class="container footer pattern pattern--bottom bg-dark-2 stroke-primary "> <div class="row"> <div class="col-sm-6 col-md-3"> <h2 class="h3">Get in touch</h2> <ul class="list-unstyled pb-0 "> <li class=""> <a class="btn btn-link " href="/contact/">Contact us</a> </li> <li class=""> <a class="btn btn-link " href="/service/support-hub/">Help and support</a> </li> <li class=""> <a class="btn btn-link " href="/service/financial-wellbeing/">Financial wellbeing hub</a> </li> <li class=""> <a class="btn btn-link " href="/service/ways-to-bank/">Ways to bank</a> </li> <li class=""> <a class="btn btn-link " href="/vmforms/feedback-form/">Feedback</a> </li> <li class=""> <a class="btn btn-link " href="/service/complaints/">Make a complaint</a> </li> </ul> <ul class="list-unstyled list-social"> <li> <a href="https://www.instagram.com/virginmoney/" title="Virgin Money Instagram" target="_blank" rel="noopener"> <svg viewbox="0 0 32 32"> <title>Virgin Money Instagram</title> <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="/assets/svg/social.svg?v1.0#social-instagram-bg" class="svg__bg"/> <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="/assets/svg/social.svg?v1.0#soโ€ฆ
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 http-equiv="X-UA-Compatible" content="IE=edge"/> <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1.0"/> <!--evidon omnitag--> <script type="text/javascript" src="/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-dtconfig="rid=RID_1291809368|rpid=346045219|domain=virginmoney.com|reportUrl=/rb_bf64125xgr|uam=1|app=8e10568a9231138b|ssc=1|coo=1|owasp=1|featureHash=ICA15789NPRTUVXfghqrux|srsr=20000|xb=*.analytics.google.com*^p.*evidon.*^p.*google-analytic.*^p.*ybg.egain.*^p.*cludo.*^p.*pinterest.*^p.*visualwebsiteoptimize.*^p.*linkedin.*^p.*demdex.*|rdnt=1|uxrgce=1|cuc=4agxwo8z|mel=100000|expw=1|dpvc=1|md=mdcc1=bdocument.referrer,mdcc2=bnavigator.userAgent,mdcc3=dutm_source,mdcc4=dutm_medium,mdcc5=dutm_campaign,mdcc6=dutm_term,mdcc7=dutm_content,mdcc8=bwindow.location.href,mdcc9=dproduct,mdcc10=chdtCode1|lastModification=1785157117101|tp=500,50,0|srbbv=2|agentUri=/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-config="{&quot;revision&quot;:1785157117101,&quot;beaconUri&quot;:&quot;/rb_bf64125xgr&quot;,&quot;agentUri&quot;:&quot;/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js&quโ€ฆ
MS08fail1 link wording(s) are used for more than one destination, so the same words point at different pages: โ€œbusinessโ€; 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: โ€œbusinessโ€; 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
"Business"
<a class="" href="/business/">Business</a>
"Business"
<a class="sub-menu--link" href="/brighter-money/category/business/">Business</a>
"Business"
<a href="/business/service/sign-in/" class="ctasecondarynav-link"> Business </a>
https://uk.virginmoney.com/site-search 10.5% Extremely likely 8 out of 43
CheckResultEvidence
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 http-equiv="X-UA-Compatible" content="IE=edge"/> <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1.0"/> <!--evidon omnitag--> <script type="text/javascript" src="/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-dtconfig="rid=RID_953618498|rpid=1699980491|domain=virginmoney.com|reportUrl=/rb_bf64125xgr|uam=1|app=8e10568a9231138b|ssc=1|coo=1|owasp=1|featureHash=ICA15789NPRTUVXfghqrux|srsr=20000|xb=*.analytics.google.com*^p.*evidon.*^p.*google-analytic.*^p.*ybg.egain.*^p.*cludo.*^p.*pinterest.*^p.*visualwebsiteoptimize.*^p.*linkedin.*^p.*demdex.*|rdnt=1|uxrgce=1|cuc=4agxwo8z|mel=100000|expw=1|dpvc=1|md=mdcc1=bdocument.referrer,mdcc2=bnavigator.userAgent,mdcc3=dutm_source,mdcc4=dutm_medium,mdcc5=dutm_campaign,mdcc6=dutm_term,mdcc7=dutm_content,mdcc8=bwindow.location.href,mdcc9=dproduct,mdcc10=chdtCode1|lastModification=1785157117101|tp=500,50,0|srbbv=2|agentUri=/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-config="{&quot;revision&quot;:1785157117101,&quot;beaconUri&quot;:&quot;/rb_bf64125xgr&quot;,&quot;agentUri&quot;:&quot;/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js&quโ€ฆ
CT04warningthe page carries no date, so there is nothing on it saying how current its content is
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 carries no date, so there is nothing on it saying how current its content is
The evidence, taken from the page as served
The head of this page, as served

The head of the page and the page's own text were read for a date.

<head> <meta charset="utf-8"/> <meta http-equiv="X-UA-Compatible" content="IE=edge"/> <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1.0"/> <!--evidon omnitag--> <script type="text/javascript" src="/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-dtconfig="rid=RID_953618498|rpid=1699980491|domain=virginmoney.com|reportUrl=/rb_bf64125xgr|uam=1|app=8e10568a9231138b|ssc=1|coo=1|owasp=1|featureHash=ICA15789NPRTUVXfghqrux|srsr=20000|xb=*.analytics.google.com*^p.*evidon.*^p.*google-analytic.*^p.*ybg.egain.*^p.*cludo.*^p.*pinterest.*^p.*visualwebsiteoptimize.*^p.*linkedin.*^p.*demdex.*|rdnt=1|uxrgce=1|cuc=4agxwo8z|mel=100000|expw=1|dpvc=1|md=mdcc1=bdocument.referrer,mdcc2=bnavigator.userAgent,mdcc3=dutm_source,mdcc4=dutm_medium,mdcc5=dutm_campaign,mdcc6=dutm_term,mdcc7=dutm_content,mdcc8=bwindow.location.href,mdcc9=dproduct,mdcc10=chdtCode1|lastModification=1785157117101|tp=500,50,0|srbbv=2|agentUri=/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-config="{&quot;revision&quot;:1785157117101,&quot;beaconUri&quot;:&quot;/rb_bf64125xgr&quot;,&quot;agentUri&quot;:&quot;/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js&quโ€ฆ
AR13warningonly 242 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 242 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
242 characters
Start your search Search Example: 'How to register for online banking' Search Filter Select the area you are interested in Personal banking Business banking Private banking Top queriesDaily limits for making paymentsBranch finderISA transfers
CT35warningthe page carries no copyright line in the content as served, so there is nothing on it to date it by, and an absent copyright line is one of the marks of a copied template
What we check
The copyright line at the foot of the page, and the year it states.
What good looks like
The copyright line states the current year.
Why it matters
A copyright year in the past reads as a page nobody has attended to, and it is the usual sign of a template copied from somewhere else. Either way an AI treats the content as stale and can present old material as current.
What we found on this page
the page carries no copyright line in the content as served, so there is nothing on it to date it by, and an absent copyright line is one of the marks of a copied template
The evidence, taken from the page as served
The foot of this page, as served

The foot of the page was read for a copyright line.

<footer class="container footer pattern pattern--bottom bg-dark-2 stroke-primary "> <div class="row"> <div class="col-sm-6 col-md-3"> <h2 class="h3">Get in touch</h2> <ul class="list-unstyled pb-0 "> <li class=""> <a class="btn btn-link " href="/contact/">Contact us</a> </li> <li class=""> <a class="btn btn-link " href="/service/support-hub/">Help and support</a> </li> <li class=""> <a class="btn btn-link " href="/service/financial-wellbeing/">Financial wellbeing hub</a> </li> <li class=""> <a class="btn btn-link " href="/service/ways-to-bank/">Ways to bank</a> </li> <li class=""> <a class="btn btn-link " href="/vmforms/feedback-form/">Feedback</a> </li> <li class=""> <a class="btn btn-link " href="/service/complaints/">Make a complaint</a> </li> </ul> <ul class="list-unstyled list-social"> <li> <a href="https://www.instagram.com/virginmoney/" title="Virgin Money Instagram" target="_blank" rel="noopener"> <svg viewbox="0 0 32 32"> <title>Virgin Money Instagram</title> <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="/assets/svg/social.svg?v1.0#social-instagram-bg" class="svg__bg"/> <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="/assets/svg/social.svg?v1.0#soโ€ฆ
CT24warningthe page's own content runs to 242 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 242 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 content242 characters
All the text on the page4193 characters
The point we measure against400 characters
CT13failmain content is 5% 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 5% 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 content242 characters
All the text on the page4193 characters
The page's own share of it5%
The point we measure against25%
MS08fail1 link wording(s) are used for more than one destination, so the same words point at different pages: โ€œbusinessโ€; 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: โ€œbusinessโ€; 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
"Business"
<a class="" href="/business/">Business</a>
"Business"
<a href="/business/service/sign-in/" class="ctasecondarynav-link"> Business </a>
CT34failthe page's own words are thin: 355 of its 380 words are shared navigation and footer, so it reads as 91% 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: 355 of its 380 words are shared navigation and footer, so it reads as 91% 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
uk.virginmoney.com/site-search25 of 38093%uk.virginmoney.com/service/sign-in91%
https://uk.virginmoney.com/mortgages/existing-customers/switch-your-deal 55.9% Likely 6 out of 42
CheckResultEvidence
CT06warningtitle length 68 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 68 chars
The evidence, taken from the page as served
The page title, as served
68 characters
<title>Switch your Virgin Money mortgage deal | Mortgages | Virgin Money UK</title>
21 characters
<title>Virgin Money homepage</title>
22 characters
<title>Virgin Money Instagram</title>
19 characters
<title>Virgin Money TikTok</title>
14 characters
<title>Virgin Money X</title>
21 characters
<title>Virgin Money Facebook</title>
20 characters
<title>Virgin Money YouTube</title>
21 characters
<title>Virgin Money LinkedIn</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 http-equiv="X-UA-Compatible" content="IE=edge"/> <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1.0"/> <!--evidon omnitag--> <script type="text/javascript" src="/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-dtconfig="rid=RID_-137056225|rpid=1839349904|domain=virginmoney.com|reportUrl=/rb_bf64125xgr|uam=1|app=8e10568a9231138b|ssc=1|coo=1|owasp=1|featureHash=ICA15789NPRTUVXfghqrux|srsr=20000|xb=*.analytics.google.com*^p.*evidon.*^p.*google-analytic.*^p.*ybg.egain.*^p.*cludo.*^p.*pinterest.*^p.*visualwebsiteoptimize.*^p.*linkedin.*^p.*demdex.*|rdnt=1|uxrgce=1|cuc=4agxwo8z|mel=100000|expw=1|dpvc=1|md=mdcc1=bdocument.referrer,mdcc2=bnavigator.userAgent,mdcc3=dutm_source,mdcc4=dutm_medium,mdcc5=dutm_campaign,mdcc6=dutm_term,mdcc7=dutm_content,mdcc8=bwindow.location.href,mdcc9=dproduct,mdcc10=chdtCode1|lastModification=1785157117101|tp=500,50,0|srbbv=2|agentUri=/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-config="{&quot;revision&quot;:1785157117101,&quot;beaconUri&quot;:&quot;/rb_bf64125xgr&quot;,&quot;agentUri&quot;:&quot;/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js&qโ€ฆ
CT04warningthe page carries no date, so there is nothing on it saying how current its content is
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 carries no date, so there is nothing on it saying how current its content is
The evidence, taken from the page as served
The head of this page, as served

The head of the page and the page's own text were read for a date.

<head> <meta charset="utf-8"/> <meta http-equiv="X-UA-Compatible" content="IE=edge"/> <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1.0"/> <!--evidon omnitag--> <script type="text/javascript" src="/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-dtconfig="rid=RID_-137056225|rpid=1839349904|domain=virginmoney.com|reportUrl=/rb_bf64125xgr|uam=1|app=8e10568a9231138b|ssc=1|coo=1|owasp=1|featureHash=ICA15789NPRTUVXfghqrux|srsr=20000|xb=*.analytics.google.com*^p.*evidon.*^p.*google-analytic.*^p.*ybg.egain.*^p.*cludo.*^p.*pinterest.*^p.*visualwebsiteoptimize.*^p.*linkedin.*^p.*demdex.*|rdnt=1|uxrgce=1|cuc=4agxwo8z|mel=100000|expw=1|dpvc=1|md=mdcc1=bdocument.referrer,mdcc2=bnavigator.userAgent,mdcc3=dutm_source,mdcc4=dutm_medium,mdcc5=dutm_campaign,mdcc6=dutm_term,mdcc7=dutm_content,mdcc8=bwindow.location.href,mdcc9=dproduct,mdcc10=chdtCode1|lastModification=1785157117101|tp=500,50,0|srbbv=2|agentUri=/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-config="{&quot;revision&quot;:1785157117101,&quot;beaconUri&quot;:&quot;/rb_bf64125xgr&quot;,&quot;agentUri&quot;:&quot;/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js&qโ€ฆ
CT35warningthe page carries no copyright line in the content as served, so there is nothing on it to date it by, and an absent copyright line is one of the marks of a copied template
What we check
The copyright line at the foot of the page, and the year it states.
What good looks like
The copyright line states the current year.
Why it matters
A copyright year in the past reads as a page nobody has attended to, and it is the usual sign of a template copied from somewhere else. Either way an AI treats the content as stale and can present old material as current.
What we found on this page
the page carries no copyright line in the content as served, so there is nothing on it to date it by, and an absent copyright line is one of the marks of a copied template
The evidence, taken from the page as served
The foot of this page, as served

The foot of the page was read for a copyright line.

<footer class="container footer pattern pattern--bottom bg-dark-2 stroke-primary "> <div class="row"> <div class="col-sm-6 col-md-3"> <h2 class="h3">Get in touch</h2> <ul class="list-unstyled pb-0 "> <li class=""> <a class="btn btn-link " href="/contact/">Contact us</a> </li> <li class=""> <a class="btn btn-link " href="/service/support-hub/">Help and support</a> </li> <li class=""> <a class="btn btn-link " href="/service/financial-wellbeing/">Financial wellbeing hub</a> </li> <li class=""> <a class="btn btn-link " href="/service/ways-to-bank/">Ways to bank</a> </li> <li class=""> <a class="btn btn-link " href="/vmforms/feedback-form/">Feedback</a> </li> <li class=""> <a class="btn btn-link " href="/service/complaints/">Make a complaint</a> </li> </ul> <ul class="list-unstyled list-social"> <li> <a href="https://www.instagram.com/virginmoney/" title="Virgin Money Instagram" target="_blank" rel="noopener"> <svg viewbox="0 0 32 32"> <title>Virgin Money Instagram</title> <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="/assets/svg/social.svg?v1.0#social-instagram-bg" class="svg__bg"/> <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="/assets/svg/social.svg?v1.0#soโ€ฆ
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 http-equiv="X-UA-Compatible" content="IE=edge"/> <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1.0"/> <!--evidon omnitag--> <script type="text/javascript" src="/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-dtconfig="rid=RID_-137056225|rpid=1839349904|domain=virginmoney.com|reportUrl=/rb_bf64125xgr|uam=1|app=8e10568a9231138b|ssc=1|coo=1|owasp=1|featureHash=ICA15789NPRTUVXfghqrux|srsr=20000|xb=*.analytics.google.com*^p.*evidon.*^p.*google-analytic.*^p.*ybg.egain.*^p.*cludo.*^p.*pinterest.*^p.*visualwebsiteoptimize.*^p.*linkedin.*^p.*demdex.*|rdnt=1|uxrgce=1|cuc=4agxwo8z|mel=100000|expw=1|dpvc=1|md=mdcc1=bdocument.referrer,mdcc2=bnavigator.userAgent,mdcc3=dutm_source,mdcc4=dutm_medium,mdcc5=dutm_campaign,mdcc6=dutm_term,mdcc7=dutm_content,mdcc8=bwindow.location.href,mdcc9=dproduct,mdcc10=chdtCode1|lastModification=1785157117101|tp=500,50,0|srbbv=2|agentUri=/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-config="{&quot;revision&quot;:1785157117101,&quot;beaconUri&quot;:&quot;/rb_bf64125xgr&quot;,&quot;agentUri&quot;:&quot;/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js&qโ€ฆ
MS08fail1 link wording(s) are used for more than one destination, so the same words point at different pages: โ€œbusinessโ€; 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: โ€œbusinessโ€; 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
"Business"
<a class="" href="/business/">Business</a>
"Business"
<a href="/business/service/sign-in/" class="ctasecondarynav-link"> Business </a>
https://uk.virginmoney.com/current-accounts/pca/app-features 56.6% Likely 5 out of 42
CheckResultEvidence
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 http-equiv="X-UA-Compatible" content="IE=edge"/> <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1.0"/> <!--evidon omnitag--> <script type="text/javascript" src="/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-dtconfig="rid=RID_-111016734|rpid=-1080217568|domain=virginmoney.com|reportUrl=/rb_bf64125xgr|uam=1|app=8e10568a9231138b|ssc=1|coo=1|owasp=1|featureHash=ICA15789NPRTUVXfghqrux|srsr=20000|xb=*.analytics.google.com*^p.*evidon.*^p.*google-analytic.*^p.*ybg.egain.*^p.*cludo.*^p.*pinterest.*^p.*visualwebsiteoptimize.*^p.*linkedin.*^p.*demdex.*|rdnt=1|uxrgce=1|cuc=4agxwo8z|mel=100000|expw=1|dpvc=1|md=mdcc1=bdocument.referrer,mdcc2=bnavigator.userAgent,mdcc3=dutm_source,mdcc4=dutm_medium,mdcc5=dutm_campaign,mdcc6=dutm_term,mdcc7=dutm_content,mdcc8=bwindow.location.href,mdcc9=dproduct,mdcc10=chdtCode1|lastModification=1785157117101|tp=500,50,0|srbbv=2|agentUri=/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-config="{&quot;revision&quot;:1785157117101,&quot;beaconUri&quot;:&quot;/rb_bf64125xgr&quot;,&quot;agentUri&quot;:&quot;/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js&โ€ฆ
CT04warningthe page carries no date, so there is nothing on it saying how current its content is
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 carries no date, so there is nothing on it saying how current its content is
The evidence, taken from the page as served
The head of this page, as served

The head of the page and the page's own text were read for a date.

<head> <meta charset="utf-8"/> <meta http-equiv="X-UA-Compatible" content="IE=edge"/> <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1.0"/> <!--evidon omnitag--> <script type="text/javascript" src="/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-dtconfig="rid=RID_-111016734|rpid=-1080217568|domain=virginmoney.com|reportUrl=/rb_bf64125xgr|uam=1|app=8e10568a9231138b|ssc=1|coo=1|owasp=1|featureHash=ICA15789NPRTUVXfghqrux|srsr=20000|xb=*.analytics.google.com*^p.*evidon.*^p.*google-analytic.*^p.*ybg.egain.*^p.*cludo.*^p.*pinterest.*^p.*visualwebsiteoptimize.*^p.*linkedin.*^p.*demdex.*|rdnt=1|uxrgce=1|cuc=4agxwo8z|mel=100000|expw=1|dpvc=1|md=mdcc1=bdocument.referrer,mdcc2=bnavigator.userAgent,mdcc3=dutm_source,mdcc4=dutm_medium,mdcc5=dutm_campaign,mdcc6=dutm_term,mdcc7=dutm_content,mdcc8=bwindow.location.href,mdcc9=dproduct,mdcc10=chdtCode1|lastModification=1785157117101|tp=500,50,0|srbbv=2|agentUri=/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-config="{&quot;revision&quot;:1785157117101,&quot;beaconUri&quot;:&quot;/rb_bf64125xgr&quot;,&quot;agentUri&quot;:&quot;/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js&โ€ฆ
CT35warningthe page carries no copyright line in the content as served, so there is nothing on it to date it by, and an absent copyright line is one of the marks of a copied template
What we check
The copyright line at the foot of the page, and the year it states.
What good looks like
The copyright line states the current year.
Why it matters
A copyright year in the past reads as a page nobody has attended to, and it is the usual sign of a template copied from somewhere else. Either way an AI treats the content as stale and can present old material as current.
What we found on this page
the page carries no copyright line in the content as served, so there is nothing on it to date it by, and an absent copyright line is one of the marks of a copied template
The evidence, taken from the page as served
The foot of this page, as served

The foot of the page was read for a copyright line.

<footer class="container footer pattern pattern--bottom bg-dark-2 stroke-primary "> <div class="row"> <div class="col-sm-6 col-md-3"> <h2 class="h3">Get in touch</h2> <ul class="list-unstyled pb-0 "> <li class=""> <a class="btn btn-link " href="/contact/">Contact us</a> </li> <li class=""> <a class="btn btn-link " href="/service/support-hub/">Help and support</a> </li> <li class=""> <a class="btn btn-link " href="/service/financial-wellbeing/">Financial wellbeing hub</a> </li> <li class=""> <a class="btn btn-link " href="/service/ways-to-bank/">Ways to bank</a> </li> <li class=""> <a class="btn btn-link " href="/vmforms/feedback-form/">Feedback</a> </li> <li class=""> <a class="btn btn-link " href="/service/complaints/">Make a complaint</a> </li> </ul> <ul class="list-unstyled list-social"> <li> <a href="https://www.instagram.com/virginmoney/" title="Virgin Money Instagram" target="_blank" rel="noopener"> <svg viewbox="0 0 32 32"> <title>Virgin Money Instagram</title> <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="/assets/svg/social.svg?v1.0#social-instagram-bg" class="svg__bg"/> <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="/assets/svg/social.svg?v1.0#soโ€ฆ
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 http-equiv="X-UA-Compatible" content="IE=edge"/> <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1.0"/> <!--evidon omnitag--> <script type="text/javascript" src="/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-dtconfig="rid=RID_-111016734|rpid=-1080217568|domain=virginmoney.com|reportUrl=/rb_bf64125xgr|uam=1|app=8e10568a9231138b|ssc=1|coo=1|owasp=1|featureHash=ICA15789NPRTUVXfghqrux|srsr=20000|xb=*.analytics.google.com*^p.*evidon.*^p.*google-analytic.*^p.*ybg.egain.*^p.*cludo.*^p.*pinterest.*^p.*visualwebsiteoptimize.*^p.*linkedin.*^p.*demdex.*|rdnt=1|uxrgce=1|cuc=4agxwo8z|mel=100000|expw=1|dpvc=1|md=mdcc1=bdocument.referrer,mdcc2=bnavigator.userAgent,mdcc3=dutm_source,mdcc4=dutm_medium,mdcc5=dutm_campaign,mdcc6=dutm_term,mdcc7=dutm_content,mdcc8=bwindow.location.href,mdcc9=dproduct,mdcc10=chdtCode1|lastModification=1785157117101|tp=500,50,0|srbbv=2|agentUri=/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-config="{&quot;revision&quot;:1785157117101,&quot;beaconUri&quot;:&quot;/rb_bf64125xgr&quot;,&quot;agentUri&quot;:&quot;/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js&โ€ฆ
MS08fail2 link wording(s) are used for more than one destination, so the same words point at different pages: โ€œbusinessโ€, โ€œlink opens in a new windowโ€; 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
2 link wording(s) are used for more than one destination, so the same words point at different pages: โ€œbusinessโ€, โ€œlink opens in a new windowโ€; 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
"Business"
<a class="" href="/business/">Business</a>
"Business"
<a href="/business/service/sign-in/" class="ctasecondarynav-link"> Business </a>
"Link opens in a new window"
<a href="https://apps.apple.com/gb/app/virgin-money-mobile-banking/id1482269155?ls=1" target="_blank" data-icon="" rel="noopener"><img src="/img/img_appstore.png" alt="apple app store button" class="mb-3"/> <span class="visually-hidden">Link opens in a new window</span></a>
"Link opens in a new window"
<a href="https://play.google.com/store/apps/details?id=com.virginmoney.uk.mobile.android" target="_blank" data-icon="" rel="noopener"><img src="/img/img_googleplay.png" alt="Download Virgin Money banking app on Google Play" class="mb-3"/> <span class="visually-hidden">Link opens in a new window</span></a>
https://uk.virginmoney.com/current-accounts/pca 57.8% Likely 4 out of 43
CheckResultEvidence
CT04warningthe page shows the year 2024 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 2024 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 http-equiv="X-UA-Compatible" content="IE=edge"/> <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1.0"/> <!--evidon omnitag--> <script type="text/javascript" src="/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-dtconfig="rid=RID_1013746970|rpid=2141788427|domain=virginmoney.com|reportUrl=/rb_bf64125xgr|uam=1|app=8e10568a9231138b|ssc=1|coo=1|owasp=1|featureHash=ICA15789NPRTUVXfghqrux|srsr=20000|xb=*.analytics.google.com*^p.*evidon.*^p.*google-analytic.*^p.*ybg.egain.*^p.*cludo.*^p.*pinterest.*^p.*visualwebsiteoptimize.*^p.*linkedin.*^p.*demdex.*|rdnt=1|uxrgce=1|cuc=4agxwo8z|mel=100000|expw=1|dpvc=1|md=mdcc1=bdocument.referrer,mdcc2=bnavigator.userAgent,mdcc3=dutm_source,mdcc4=dutm_medium,mdcc5=dutm_campaign,mdcc6=dutm_term,mdcc7=dutm_content,mdcc8=bwindow.location.href,mdcc9=dproduct,mdcc10=chdtCode1|lastModification=1785157117101|tp=500,50,0|srbbv=2|agentUri=/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-config="{&quot;revision&quot;:1785157117101,&quot;beaconUri&quot;:&quot;/rb_bf64125xgr&quot;,&quot;agentUri&quot;:&quot;/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js&qโ€ฆ
CT35warningthe page carries no copyright line in the content as served, so there is nothing on it to date it by, and an absent copyright line is one of the marks of a copied template
What we check
The copyright line at the foot of the page, and the year it states.
What good looks like
The copyright line states the current year.
Why it matters
A copyright year in the past reads as a page nobody has attended to, and it is the usual sign of a template copied from somewhere else. Either way an AI treats the content as stale and can present old material as current.
What we found on this page
the page carries no copyright line in the content as served, so there is nothing on it to date it by, and an absent copyright line is one of the marks of a copied template
The evidence, taken from the page as served
The foot of this page, as served

The foot of the page was read for a copyright line.

<footer class="container footer pattern pattern--bottom bg-dark-2 stroke-primary "> <div class="row"> <div class="col-sm-6 col-md-3"> <h2 class="h3">Get in touch</h2> <ul class="list-unstyled pb-0 "> <li class=""> <a class="btn btn-link " href="/contact/">Contact us</a> </li> <li class=""> <a class="btn btn-link " href="/service/support-hub/">Help and support</a> </li> <li class=""> <a class="btn btn-link " href="/service/financial-wellbeing/">Financial wellbeing hub</a> </li> <li class=""> <a class="btn btn-link " href="/service/ways-to-bank/">Ways to bank</a> </li> <li class=""> <a class="btn btn-link " href="/vmforms/feedback-form/">Feedback</a> </li> <li class=""> <a class="btn btn-link " href="/service/complaints/">Make a complaint</a> </li> </ul> <ul class="list-unstyled list-social"> <li> <a href="https://www.instagram.com/virginmoney/" title="Virgin Money Instagram" target="_blank" rel="noopener"> <svg viewbox="0 0 32 32"> <title>Virgin Money Instagram</title> <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="/assets/svg/social.svg?v1.0#social-instagram-bg" class="svg__bg"/> <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="/assets/svg/social.svg?v1.0#soโ€ฆ
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 http-equiv="X-UA-Compatible" content="IE=edge"/> <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1.0"/> <!--evidon omnitag--> <script type="text/javascript" src="/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-dtconfig="rid=RID_1013746970|rpid=2141788427|domain=virginmoney.com|reportUrl=/rb_bf64125xgr|uam=1|app=8e10568a9231138b|ssc=1|coo=1|owasp=1|featureHash=ICA15789NPRTUVXfghqrux|srsr=20000|xb=*.analytics.google.com*^p.*evidon.*^p.*google-analytic.*^p.*ybg.egain.*^p.*cludo.*^p.*pinterest.*^p.*visualwebsiteoptimize.*^p.*linkedin.*^p.*demdex.*|rdnt=1|uxrgce=1|cuc=4agxwo8z|mel=100000|expw=1|dpvc=1|md=mdcc1=bdocument.referrer,mdcc2=bnavigator.userAgent,mdcc3=dutm_source,mdcc4=dutm_medium,mdcc5=dutm_campaign,mdcc6=dutm_term,mdcc7=dutm_content,mdcc8=bwindow.location.href,mdcc9=dproduct,mdcc10=chdtCode1|lastModification=1785157117101|tp=500,50,0|srbbv=2|agentUri=/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-config="{&quot;revision&quot;:1785157117101,&quot;beaconUri&quot;:&quot;/rb_bf64125xgr&quot;,&quot;agentUri&quot;:&quot;/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js&qโ€ฆ
MS08fail1 link wording(s) are used for more than one destination, so the same words point at different pages: โ€œbusinessโ€; 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: โ€œbusinessโ€; 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
"Business"
<a class="" href="/business/">Business</a>
"Business"
<a href="/business/service/sign-in/" class="ctasecondarynav-link"> Business </a>
https://uk.virginmoney.com/current-accounts/club-m-account 56.1% Likely 6 out of 42
CheckResultEvidence
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 http-equiv="X-UA-Compatible" content="IE=edge"/> <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1.0"/> <!--evidon omnitag--> <script type="text/javascript" src="/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-dtconfig="rid=RID_-407919154|rpid=-1224462136|domain=virginmoney.com|reportUrl=/rb_bf64125xgr|uam=1|app=8e10568a9231138b|ssc=1|coo=1|owasp=1|featureHash=ICA15789NPRTUVXfghqrux|srsr=20000|xb=*.analytics.google.com*^p.*evidon.*^p.*google-analytic.*^p.*ybg.egain.*^p.*cludo.*^p.*pinterest.*^p.*visualwebsiteoptimize.*^p.*linkedin.*^p.*demdex.*|rdnt=1|uxrgce=1|cuc=4agxwo8z|mel=100000|expw=1|dpvc=1|md=mdcc1=bdocument.referrer,mdcc2=bnavigator.userAgent,mdcc3=dutm_source,mdcc4=dutm_medium,mdcc5=dutm_campaign,mdcc6=dutm_term,mdcc7=dutm_content,mdcc8=bwindow.location.href,mdcc9=dproduct,mdcc10=chdtCode1|lastModification=1785157117101|tp=500,50,0|srbbv=2|agentUri=/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-config="{&quot;revision&quot;:1785157117101,&quot;beaconUri&quot;:&quot;/rb_bf64125xgr&quot;,&quot;agentUri&quot;:&quot;/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js&โ€ฆ
CT04warningthe page carries no date, so there is nothing on it saying how current its content is
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 carries no date, so there is nothing on it saying how current its content is
The evidence, taken from the page as served
The head of this page, as served

The head of the page and the page's own text were read for a date.

<head> <meta charset="utf-8"/> <meta http-equiv="X-UA-Compatible" content="IE=edge"/> <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1.0"/> <!--evidon omnitag--> <script type="text/javascript" src="/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-dtconfig="rid=RID_-407919154|rpid=-1224462136|domain=virginmoney.com|reportUrl=/rb_bf64125xgr|uam=1|app=8e10568a9231138b|ssc=1|coo=1|owasp=1|featureHash=ICA15789NPRTUVXfghqrux|srsr=20000|xb=*.analytics.google.com*^p.*evidon.*^p.*google-analytic.*^p.*ybg.egain.*^p.*cludo.*^p.*pinterest.*^p.*visualwebsiteoptimize.*^p.*linkedin.*^p.*demdex.*|rdnt=1|uxrgce=1|cuc=4agxwo8z|mel=100000|expw=1|dpvc=1|md=mdcc1=bdocument.referrer,mdcc2=bnavigator.userAgent,mdcc3=dutm_source,mdcc4=dutm_medium,mdcc5=dutm_campaign,mdcc6=dutm_term,mdcc7=dutm_content,mdcc8=bwindow.location.href,mdcc9=dproduct,mdcc10=chdtCode1|lastModification=1785157117101|tp=500,50,0|srbbv=2|agentUri=/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-config="{&quot;revision&quot;:1785157117101,&quot;beaconUri&quot;:&quot;/rb_bf64125xgr&quot;,&quot;agentUri&quot;:&quot;/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js&โ€ฆ
CT35warningthe page carries no copyright line in the content as served, so there is nothing on it to date it by, and an absent copyright line is one of the marks of a copied template
What we check
The copyright line at the foot of the page, and the year it states.
What good looks like
The copyright line states the current year.
Why it matters
A copyright year in the past reads as a page nobody has attended to, and it is the usual sign of a template copied from somewhere else. Either way an AI treats the content as stale and can present old material as current.
What we found on this page
the page carries no copyright line in the content as served, so there is nothing on it to date it by, and an absent copyright line is one of the marks of a copied template
The evidence, taken from the page as served
The foot of this page, as served

The foot of the page was read for a copyright line.

<footer class="container footer pattern pattern--bottom bg-dark-2 stroke-primary "> <div class="row"> <div class="col-sm-6 col-md-3"> <h2 class="h3">Get in touch</h2> <ul class="list-unstyled pb-0 "> <li class=""> <a class="btn btn-link " href="/contact/">Contact us</a> </li> <li class=""> <a class="btn btn-link " href="/service/support-hub/">Help and support</a> </li> <li class=""> <a class="btn btn-link " href="/service/financial-wellbeing/">Financial wellbeing hub</a> </li> <li class=""> <a class="btn btn-link " href="/service/ways-to-bank/">Ways to bank</a> </li> <li class=""> <a class="btn btn-link " href="/vmforms/feedback-form/">Feedback</a> </li> <li class=""> <a class="btn btn-link " href="/service/complaints/">Make a complaint</a> </li> </ul> <ul class="list-unstyled list-social"> <li> <a href="https://www.instagram.com/virginmoney/" title="Virgin Money Instagram" target="_blank" rel="noopener"> <svg viewbox="0 0 32 32"> <title>Virgin Money Instagram</title> <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="/assets/svg/social.svg?v1.0#social-instagram-bg" class="svg__bg"/> <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="/assets/svg/social.svg?v1.0#soโ€ฆ
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 http-equiv="X-UA-Compatible" content="IE=edge"/> <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1.0"/> <!--evidon omnitag--> <script type="text/javascript" src="/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-dtconfig="rid=RID_-407919154|rpid=-1224462136|domain=virginmoney.com|reportUrl=/rb_bf64125xgr|uam=1|app=8e10568a9231138b|ssc=1|coo=1|owasp=1|featureHash=ICA15789NPRTUVXfghqrux|srsr=20000|xb=*.analytics.google.com*^p.*evidon.*^p.*google-analytic.*^p.*ybg.egain.*^p.*cludo.*^p.*pinterest.*^p.*visualwebsiteoptimize.*^p.*linkedin.*^p.*demdex.*|rdnt=1|uxrgce=1|cuc=4agxwo8z|mel=100000|expw=1|dpvc=1|md=mdcc1=bdocument.referrer,mdcc2=bnavigator.userAgent,mdcc3=dutm_source,mdcc4=dutm_medium,mdcc5=dutm_campaign,mdcc6=dutm_term,mdcc7=dutm_content,mdcc8=bwindow.location.href,mdcc9=dproduct,mdcc10=chdtCode1|lastModification=1785157117101|tp=500,50,0|srbbv=2|agentUri=/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-config="{&quot;revision&quot;:1785157117101,&quot;beaconUri&quot;:&quot;/rb_bf64125xgr&quot;,&quot;agentUri&quot;:&quot;/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js&โ€ฆ
MS08fail3 link wording(s) are used for more than one destination, so the same words point at different pages: โ€œapply for a joint accountโ€, โ€œapply for a personal accountโ€, โ€œbusinessโ€; 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
3 link wording(s) are used for more than one destination, so the same words point at different pages: โ€œapply for a joint accountโ€, โ€œapply for a personal accountโ€, โ€œbusinessโ€; 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
"Business"
<a class="" href="/business/">Business</a>
"Business"
<a href="/business/service/sign-in/" class="ctasecondarynav-link"> Business </a>
"Apply for a personal account"
<a href="https://clubm-account-opening.ib.apps.virginmoney.com/authentication?applyFor=IM755&amp;sourceId=VMCA1&amp;promocode=EXTnull" class="btn btn-primary mt-2">Apply for a personal account</a>
"Apply for a personal account"
<a href="https://clubm-account-opening.ib.apps.virginmoney.com/authentication?applyFor=IM755&amp;sourceId=VMCA1&amp;promocode=VCAnull" class="btn btn-primary mt-2">Apply for a personal account</a>
"Apply for a personal account"
<a href="https://clubm-account-opening.ib.apps.virginmoney.com/?applyFor=IM755&amp;brandId=VM&amp;sourceId=VMCA1&amp;promocode=VCAnull" class="btn btn-primary mt-2">Apply for a personal account</a>
"Apply for a personal account"
<a href="https://clubm-account-opening.ib.apps.virginmoney.com/?applyFor=IM755&amp;brandId=VM&amp;sourceId=VMCA1&amp;promocode=VCAnull" class="btn btn-primary mt-2">Apply for a personal account</a>
"Apply for a joint account"
<a href="https://clubm-account-opening.ib.apps.virginmoney.com/joint/authentication?applyFor=IM755&amp;sourceId=VMCA1&amp;promocode=EXTnull" class="btn btn-primary mt-2">Apply for a joint account</a>
"Apply for a joint account"
<a href="https://clubm-account-opening.ib.apps.virginmoney.com/joint/authentication?applyFor=IM755&amp;sourceId=VMCA1&amp;promocode=VCAnull" class="btn btn-primary mt-2">Apply for a joint account</a>
"Apply for a joint account"
<a href="https://clubm-account-opening.ib.apps.virginmoney.com/joint/?applyFor=IM755&amp;brandId=VM&amp;sourceId=VMCA1&amp;promocode=VCAnull" class="btn btn-primary mt-2">Apply for a joint account</a>
"Apply for a joint account"
<a href="https://clubm-account-opening.ib.apps.virginmoney.com/joint/?applyFor=IM755&amp;brandId=VM&amp;sourceId=VMCA1&amp;promocode=VCAnull" class="btn btn-primary mt-2">Apply for a joint account</a>
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.aviva.co.uk/dlg-partvii200Reachable
www.moneyhelper.org.uk/en/everyday-money/insurance/travel-insurance-directory403Access-restricted
www.instagram.com/virginmoney200Reachable
www.tiktok.com/@virginmoneyuk?lang=en200Reachable
twitter.com/virginmoney200Reachable
https://uk.virginmoney.com/cards/app/features 56.6% Likely 5 out of 42
CheckResultEvidence
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 http-equiv="X-UA-Compatible" content="IE=edge"/> <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1.0"/> <!--evidon omnitag--> <script type="text/javascript" src="/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-dtconfig="rid=RID_1232131576|rpid=217798743|domain=virginmoney.com|reportUrl=/rb_bf64125xgr|uam=1|app=8e10568a9231138b|ssc=1|coo=1|owasp=1|featureHash=ICA15789NPRTUVXfghqrux|srsr=20000|xb=*.analytics.google.com*^p.*evidon.*^p.*google-analytic.*^p.*ybg.egain.*^p.*cludo.*^p.*pinterest.*^p.*visualwebsiteoptimize.*^p.*linkedin.*^p.*demdex.*|rdnt=1|uxrgce=1|cuc=4agxwo8z|mel=100000|expw=1|dpvc=1|md=mdcc1=bdocument.referrer,mdcc2=bnavigator.userAgent,mdcc3=dutm_source,mdcc4=dutm_medium,mdcc5=dutm_campaign,mdcc6=dutm_term,mdcc7=dutm_content,mdcc8=bwindow.location.href,mdcc9=dproduct,mdcc10=chdtCode1|lastModification=1785157117101|tp=500,50,0|srbbv=2|agentUri=/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-config="{&quot;revision&quot;:1785157117101,&quot;beaconUri&quot;:&quot;/rb_bf64125xgr&quot;,&quot;agentUri&quot;:&quot;/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js&quโ€ฆ
CT04warningthe page carries no date, so there is nothing on it saying how current its content is
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 carries no date, so there is nothing on it saying how current its content is
The evidence, taken from the page as served
The head of this page, as served

The head of the page and the page's own text were read for a date.

<head> <meta charset="utf-8"/> <meta http-equiv="X-UA-Compatible" content="IE=edge"/> <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1.0"/> <!--evidon omnitag--> <script type="text/javascript" src="/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-dtconfig="rid=RID_1232131576|rpid=217798743|domain=virginmoney.com|reportUrl=/rb_bf64125xgr|uam=1|app=8e10568a9231138b|ssc=1|coo=1|owasp=1|featureHash=ICA15789NPRTUVXfghqrux|srsr=20000|xb=*.analytics.google.com*^p.*evidon.*^p.*google-analytic.*^p.*ybg.egain.*^p.*cludo.*^p.*pinterest.*^p.*visualwebsiteoptimize.*^p.*linkedin.*^p.*demdex.*|rdnt=1|uxrgce=1|cuc=4agxwo8z|mel=100000|expw=1|dpvc=1|md=mdcc1=bdocument.referrer,mdcc2=bnavigator.userAgent,mdcc3=dutm_source,mdcc4=dutm_medium,mdcc5=dutm_campaign,mdcc6=dutm_term,mdcc7=dutm_content,mdcc8=bwindow.location.href,mdcc9=dproduct,mdcc10=chdtCode1|lastModification=1785157117101|tp=500,50,0|srbbv=2|agentUri=/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-config="{&quot;revision&quot;:1785157117101,&quot;beaconUri&quot;:&quot;/rb_bf64125xgr&quot;,&quot;agentUri&quot;:&quot;/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js&quโ€ฆ
CT35warningthe page carries no copyright line in the content as served, so there is nothing on it to date it by, and an absent copyright line is one of the marks of a copied template
What we check
The copyright line at the foot of the page, and the year it states.
What good looks like
The copyright line states the current year.
Why it matters
A copyright year in the past reads as a page nobody has attended to, and it is the usual sign of a template copied from somewhere else. Either way an AI treats the content as stale and can present old material as current.
What we found on this page
the page carries no copyright line in the content as served, so there is nothing on it to date it by, and an absent copyright line is one of the marks of a copied template
The evidence, taken from the page as served
The foot of this page, as served

The foot of the page was read for a copyright line.

<footer class="container footer pattern pattern--bottom bg-dark-2 stroke-primary "> <div class="row"> <div class="col-sm-6 col-md-3"> <h2 class="h3">Get in touch</h2> <ul class="list-unstyled pb-0 "> <li class=""> <a class="btn btn-link " href="/contact/">Contact us</a> </li> <li class=""> <a class="btn btn-link " href="/service/support-hub/">Help and support</a> </li> <li class=""> <a class="btn btn-link " href="/service/financial-wellbeing/">Financial wellbeing hub</a> </li> <li class=""> <a class="btn btn-link " href="/service/ways-to-bank/">Ways to bank</a> </li> <li class=""> <a class="btn btn-link " href="/vmforms/feedback-form/">Feedback</a> </li> <li class=""> <a class="btn btn-link " href="/service/complaints/">Make a complaint</a> </li> </ul> <ul class="list-unstyled list-social"> <li> <a href="https://www.instagram.com/virginmoney/" title="Virgin Money Instagram" target="_blank" rel="noopener"> <svg viewbox="0 0 32 32"> <title>Virgin Money Instagram</title> <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="/assets/svg/social.svg?v1.0#social-instagram-bg" class="svg__bg"/> <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="/assets/svg/social.svg?v1.0#soโ€ฆ
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 http-equiv="X-UA-Compatible" content="IE=edge"/> <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1.0"/> <!--evidon omnitag--> <script type="text/javascript" src="/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-dtconfig="rid=RID_1232131576|rpid=217798743|domain=virginmoney.com|reportUrl=/rb_bf64125xgr|uam=1|app=8e10568a9231138b|ssc=1|coo=1|owasp=1|featureHash=ICA15789NPRTUVXfghqrux|srsr=20000|xb=*.analytics.google.com*^p.*evidon.*^p.*google-analytic.*^p.*ybg.egain.*^p.*cludo.*^p.*pinterest.*^p.*visualwebsiteoptimize.*^p.*linkedin.*^p.*demdex.*|rdnt=1|uxrgce=1|cuc=4agxwo8z|mel=100000|expw=1|dpvc=1|md=mdcc1=bdocument.referrer,mdcc2=bnavigator.userAgent,mdcc3=dutm_source,mdcc4=dutm_medium,mdcc5=dutm_campaign,mdcc6=dutm_term,mdcc7=dutm_content,mdcc8=bwindow.location.href,mdcc9=dproduct,mdcc10=chdtCode1|lastModification=1785157117101|tp=500,50,0|srbbv=2|agentUri=/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-config="{&quot;revision&quot;:1785157117101,&quot;beaconUri&quot;:&quot;/rb_bf64125xgr&quot;,&quot;agentUri&quot;:&quot;/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js&quโ€ฆ
MS08fail1 link wording(s) are used for more than one destination, so the same words point at different pages: โ€œbusinessโ€; 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: โ€œbusinessโ€; 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
"Business"
<a class="" href="/business/">Business</a>
"Business"
<a href="/business/service/sign-in/" class="ctasecondarynav-link"> Business </a>
https://uk.virginmoney.com/mortgages/questions-and-answers 32.9% Very likely 6 out of 42
CheckResultEvidence
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 http-equiv="X-UA-Compatible" content="IE=edge"/> <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1.0"/> <!--evidon omnitag--> <script type="text/javascript" src="/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-dtconfig="rid=RID_-1524915319|rpid=233732214|domain=virginmoney.com|reportUrl=/rb_bf64125xgr|uam=1|app=8e10568a9231138b|ssc=1|coo=1|owasp=1|featureHash=ICA15789NPRTUVXfghqrux|srsr=20000|xb=*.analytics.google.com*^p.*evidon.*^p.*google-analytic.*^p.*ybg.egain.*^p.*cludo.*^p.*pinterest.*^p.*visualwebsiteoptimize.*^p.*linkedin.*^p.*demdex.*|rdnt=1|uxrgce=1|cuc=4agxwo8z|mel=100000|expw=1|dpvc=1|md=mdcc1=bdocument.referrer,mdcc2=bnavigator.userAgent,mdcc3=dutm_source,mdcc4=dutm_medium,mdcc5=dutm_campaign,mdcc6=dutm_term,mdcc7=dutm_content,mdcc8=bwindow.location.href,mdcc9=dproduct,mdcc10=chdtCode1|lastModification=1785157117101|tp=500,50,0|srbbv=2|agentUri=/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-config="{&quot;revision&quot;:1785157117101,&quot;beaconUri&quot;:&quot;/rb_bf64125xgr&quot;,&quot;agentUri&quot;:&quot;/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js&qโ€ฆ
CT04warningthe page shows the year 2026 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 2026 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 http-equiv="X-UA-Compatible" content="IE=edge"/> <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1.0"/> <!--evidon omnitag--> <script type="text/javascript" src="/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-dtconfig="rid=RID_-1524915319|rpid=233732214|domain=virginmoney.com|reportUrl=/rb_bf64125xgr|uam=1|app=8e10568a9231138b|ssc=1|coo=1|owasp=1|featureHash=ICA15789NPRTUVXfghqrux|srsr=20000|xb=*.analytics.google.com*^p.*evidon.*^p.*google-analytic.*^p.*ybg.egain.*^p.*cludo.*^p.*pinterest.*^p.*visualwebsiteoptimize.*^p.*linkedin.*^p.*demdex.*|rdnt=1|uxrgce=1|cuc=4agxwo8z|mel=100000|expw=1|dpvc=1|md=mdcc1=bdocument.referrer,mdcc2=bnavigator.userAgent,mdcc3=dutm_source,mdcc4=dutm_medium,mdcc5=dutm_campaign,mdcc6=dutm_term,mdcc7=dutm_content,mdcc8=bwindow.location.href,mdcc9=dproduct,mdcc10=chdtCode1|lastModification=1785157117101|tp=500,50,0|srbbv=2|agentUri=/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-config="{&quot;revision&quot;:1785157117101,&quot;beaconUri&quot;:&quot;/rb_bf64125xgr&quot;,&quot;agentUri&quot;:&quot;/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js&qโ€ฆ
CT35warningthe page carries no copyright line in the content as served, so there is nothing on it to date it by, and an absent copyright line is one of the marks of a copied template
What we check
The copyright line at the foot of the page, and the year it states.
What good looks like
The copyright line states the current year.
Why it matters
A copyright year in the past reads as a page nobody has attended to, and it is the usual sign of a template copied from somewhere else. Either way an AI treats the content as stale and can present old material as current.
What we found on this page
the page carries no copyright line in the content as served, so there is nothing on it to date it by, and an absent copyright line is one of the marks of a copied template
The evidence, taken from the page as served
The foot of this page, as served

The foot of the page was read for a copyright line.

<footer class="container footer pattern pattern--bottom bg-dark-2 stroke-primary "> <div class="row"> <div class="col-sm-6 col-md-3"> <h2 class="h3">Get in touch</h2> <ul class="list-unstyled pb-0 "> <li class=""> <a class="btn btn-link " href="/contact/">Contact us</a> </li> <li class=""> <a class="btn btn-link " href="/service/support-hub/">Help and support</a> </li> <li class=""> <a class="btn btn-link " href="/service/financial-wellbeing/">Financial wellbeing hub</a> </li> <li class=""> <a class="btn btn-link " href="/service/ways-to-bank/">Ways to bank</a> </li> <li class=""> <a class="btn btn-link " href="/vmforms/feedback-form/">Feedback</a> </li> <li class=""> <a class="btn btn-link " href="/service/complaints/">Make a complaint</a> </li> </ul> <ul class="list-unstyled list-social"> <li> <a href="https://www.instagram.com/virginmoney/" title="Virgin Money Instagram" target="_blank" rel="noopener"> <svg viewbox="0 0 32 32"> <title>Virgin Money Instagram</title> <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="/assets/svg/social.svg?v1.0#social-instagram-bg" class="svg__bg"/> <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="/assets/svg/social.svg?v1.0#soโ€ฆ
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 http-equiv="X-UA-Compatible" content="IE=edge"/> <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1.0"/> <!--evidon omnitag--> <script type="text/javascript" src="/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-dtconfig="rid=RID_-1524915319|rpid=233732214|domain=virginmoney.com|reportUrl=/rb_bf64125xgr|uam=1|app=8e10568a9231138b|ssc=1|coo=1|owasp=1|featureHash=ICA15789NPRTUVXfghqrux|srsr=20000|xb=*.analytics.google.com*^p.*evidon.*^p.*google-analytic.*^p.*ybg.egain.*^p.*cludo.*^p.*pinterest.*^p.*visualwebsiteoptimize.*^p.*linkedin.*^p.*demdex.*|rdnt=1|uxrgce=1|cuc=4agxwo8z|mel=100000|expw=1|dpvc=1|md=mdcc1=bdocument.referrer,mdcc2=bnavigator.userAgent,mdcc3=dutm_source,mdcc4=dutm_medium,mdcc5=dutm_campaign,mdcc6=dutm_term,mdcc7=dutm_content,mdcc8=bwindow.location.href,mdcc9=dproduct,mdcc10=chdtCode1|lastModification=1785157117101|tp=500,50,0|srbbv=2|agentUri=/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-config="{&quot;revision&quot;:1785157117101,&quot;beaconUri&quot;:&quot;/rb_bf64125xgr&quot;,&quot;agentUri&quot;:&quot;/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js&qโ€ฆ
MS08fail2 link wording(s) are used for more than one destination, so the same words point at different pages: โ€œbusinessโ€, โ€œcontact usโ€; 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
2 link wording(s) are used for more than one destination, so the same words point at different pages: โ€œbusinessโ€, โ€œcontact usโ€; 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
"Business"
<a class="" href="/business/">Business</a>
"Business"
<a href="/business/service/sign-in/" class="ctasecondarynav-link"> Business </a>
"contact us"
<a href="/contact/mortgages/#additional-borrowing">contact us</a>
"contact us"
<a href="/contact/">contact us</a>
"Contact us"
<a class="btn btn-link " href="/contact/">Contact us</a>
MS12fail1 of 1 data tables lack header cells: values are extracted without column meaning
What we check
Data tables mark their header cells, so each number stays tied to its column.
What good looks like
Data tables mark their header cells, so each value stays tied to its column.
Why it matters
Without headers a figure is extracted as a bare number, so it gets quoted against the wrong heading.
What we found on this page
1 of 1 data tables lack header cells: values are extracted without column meaning
The evidence, taken from the page as served
The data tables with no header cells, as served
<table class="table table-stacked"><tbody><tr><td>Company Name:</td><td>Virgin Money</td></tr><tr><td>Sort code:</td><td>40-63-99</td></tr><tr><td>Account No:</td><td>81333402</td></tr><tr><td>Reference:</td><td>Your Account Number</td></tr></tbody></table>
https://uk.virginmoney.com/mortgages/existing-customers/move-mortgage 52.5% Likely 8 out of 42
CheckResultEvidence
CT06warningtitle length 72 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 72 chars
The evidence, taken from the page as served
The page title, as served
72 characters
<title>Moving House | Existing Mortgage Customers | Mortgages | Virgin Money UK</title>
21 characters
<title>Virgin Money homepage</title>
22 characters
<title>Virgin Money Instagram</title>
19 characters
<title>Virgin Money TikTok</title>
14 characters
<title>Virgin Money X</title>
21 characters
<title>Virgin Money Facebook</title>
20 characters
<title>Virgin Money YouTube</title>
21 characters
<title>Virgin Money LinkedIn</title>
CT09fail1 skipped heading level(s) in document order
What we check
Heading levels step down one at a time, rather than jumping from an H2 straight to an H5.
What good looks like
Heading levels step down one at a time, without jumping a level.
Why it matters
A skipped level breaks the trail that says which section a passage belongs to, so it is filed under the wrong one.
What we found on this page
1 skipped heading level(s) in document order
The evidence, taken from the page as served
The page's heading outline, in document order (a jump in level is marked)
H1 Move your mortgage when you move home
H3 How it works level jumped
H3 Who can port their mortgage?
H3 Want a different deal?
H3 If your sale and purchase don't happen on the same day
H4 How your mortgage is shared
H4 If someone doesn't want to move their share
H2 Fancy a chat?
H3 Got a quick question?
H3 Start your residential application
H3 0345 600 6622
H2 Related content
H2 Get in touch
H2 About us
H2 Information
H2 More from Nationwide
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 http-equiv="X-UA-Compatible" content="IE=edge"/> <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1.0"/> <!--evidon omnitag--> <script type="text/javascript" src="/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-dtconfig="rid=RID_1117461086|rpid=-1129378498|domain=virginmoney.com|reportUrl=/rb_bf64125xgr|uam=1|app=8e10568a9231138b|ssc=1|coo=1|owasp=1|featureHash=ICA15789NPRTUVXfghqrux|srsr=20000|xb=*.analytics.google.com*^p.*evidon.*^p.*google-analytic.*^p.*ybg.egain.*^p.*cludo.*^p.*pinterest.*^p.*visualwebsiteoptimize.*^p.*linkedin.*^p.*demdex.*|rdnt=1|uxrgce=1|cuc=4agxwo8z|mel=100000|expw=1|dpvc=1|md=mdcc1=bdocument.referrer,mdcc2=bnavigator.userAgent,mdcc3=dutm_source,mdcc4=dutm_medium,mdcc5=dutm_campaign,mdcc6=dutm_term,mdcc7=dutm_content,mdcc8=bwindow.location.href,mdcc9=dproduct,mdcc10=chdtCode1|lastModification=1785157117101|tp=500,50,0|srbbv=2|agentUri=/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-config="{&quot;revision&quot;:1785157117101,&quot;beaconUri&quot;:&quot;/rb_bf64125xgr&quot;,&quot;agentUri&quot;:&quot;/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js&โ€ฆ
CT04warningthe page carries no date, so there is nothing on it saying how current its content is
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 carries no date, so there is nothing on it saying how current its content is
The evidence, taken from the page as served
The head of this page, as served

The head of the page and the page's own text were read for a date.

<head> <meta charset="utf-8"/> <meta http-equiv="X-UA-Compatible" content="IE=edge"/> <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1.0"/> <!--evidon omnitag--> <script type="text/javascript" src="/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-dtconfig="rid=RID_1117461086|rpid=-1129378498|domain=virginmoney.com|reportUrl=/rb_bf64125xgr|uam=1|app=8e10568a9231138b|ssc=1|coo=1|owasp=1|featureHash=ICA15789NPRTUVXfghqrux|srsr=20000|xb=*.analytics.google.com*^p.*evidon.*^p.*google-analytic.*^p.*ybg.egain.*^p.*cludo.*^p.*pinterest.*^p.*visualwebsiteoptimize.*^p.*linkedin.*^p.*demdex.*|rdnt=1|uxrgce=1|cuc=4agxwo8z|mel=100000|expw=1|dpvc=1|md=mdcc1=bdocument.referrer,mdcc2=bnavigator.userAgent,mdcc3=dutm_source,mdcc4=dutm_medium,mdcc5=dutm_campaign,mdcc6=dutm_term,mdcc7=dutm_content,mdcc8=bwindow.location.href,mdcc9=dproduct,mdcc10=chdtCode1|lastModification=1785157117101|tp=500,50,0|srbbv=2|agentUri=/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-config="{&quot;revision&quot;:1785157117101,&quot;beaconUri&quot;:&quot;/rb_bf64125xgr&quot;,&quot;agentUri&quot;:&quot;/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js&โ€ฆ
CT35warningthe page carries no copyright line in the content as served, so there is nothing on it to date it by, and an absent copyright line is one of the marks of a copied template
What we check
The copyright line at the foot of the page, and the year it states.
What good looks like
The copyright line states the current year.
Why it matters
A copyright year in the past reads as a page nobody has attended to, and it is the usual sign of a template copied from somewhere else. Either way an AI treats the content as stale and can present old material as current.
What we found on this page
the page carries no copyright line in the content as served, so there is nothing on it to date it by, and an absent copyright line is one of the marks of a copied template
The evidence, taken from the page as served
The foot of this page, as served

The foot of the page was read for a copyright line.

<footer class="container footer pattern pattern--bottom bg-dark-2 stroke-primary "> <div class="row"> <div class="col-sm-6 col-md-3"> <h2 class="h3">Get in touch</h2> <ul class="list-unstyled pb-0 "> <li class=""> <a class="btn btn-link " href="/contact/">Contact us</a> </li> <li class=""> <a class="btn btn-link " href="/service/support-hub/">Help and support</a> </li> <li class=""> <a class="btn btn-link " href="/service/financial-wellbeing/">Financial wellbeing hub</a> </li> <li class=""> <a class="btn btn-link " href="/service/ways-to-bank/">Ways to bank</a> </li> <li class=""> <a class="btn btn-link " href="/vmforms/feedback-form/">Feedback</a> </li> <li class=""> <a class="btn btn-link " href="/service/complaints/">Make a complaint</a> </li> </ul> <ul class="list-unstyled list-social"> <li> <a href="https://www.instagram.com/virginmoney/" title="Virgin Money Instagram" target="_blank" rel="noopener"> <svg viewbox="0 0 32 32"> <title>Virgin Money Instagram</title> <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="/assets/svg/social.svg?v1.0#social-instagram-bg" class="svg__bg"/> <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="/assets/svg/social.svg?v1.0#soโ€ฆ
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 http-equiv="X-UA-Compatible" content="IE=edge"/> <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1.0"/> <!--evidon omnitag--> <script type="text/javascript" src="/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-dtconfig="rid=RID_1117461086|rpid=-1129378498|domain=virginmoney.com|reportUrl=/rb_bf64125xgr|uam=1|app=8e10568a9231138b|ssc=1|coo=1|owasp=1|featureHash=ICA15789NPRTUVXfghqrux|srsr=20000|xb=*.analytics.google.com*^p.*evidon.*^p.*google-analytic.*^p.*ybg.egain.*^p.*cludo.*^p.*pinterest.*^p.*visualwebsiteoptimize.*^p.*linkedin.*^p.*demdex.*|rdnt=1|uxrgce=1|cuc=4agxwo8z|mel=100000|expw=1|dpvc=1|md=mdcc1=bdocument.referrer,mdcc2=bnavigator.userAgent,mdcc3=dutm_source,mdcc4=dutm_medium,mdcc5=dutm_campaign,mdcc6=dutm_term,mdcc7=dutm_content,mdcc8=bwindow.location.href,mdcc9=dproduct,mdcc10=chdtCode1|lastModification=1785157117101|tp=500,50,0|srbbv=2|agentUri=/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-config="{&quot;revision&quot;:1785157117101,&quot;beaconUri&quot;:&quot;/rb_bf64125xgr&quot;,&quot;agentUri&quot;:&quot;/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js&โ€ฆ
MS08fail1 link wording(s) are used for more than one destination, so the same words point at different pages: โ€œbusinessโ€; 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: โ€œbusinessโ€; 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
"Business"
<a class="" href="/business/">Business</a>
"Business"
<a href="/business/service/sign-in/" class="ctasecondarynav-link"> Business </a>
MS10failthe heading structure skips a level in 1 place(s), so the order does not follow
What we check
A page's headings start at the top level and step down without skipping a level.
What good looks like
The page's headings start at the top level and step down without skipping a level.
Why it matters
Content under a skipped level has no clear parent section, so structure taken from the page misplaces its text.
What we found on this page
the heading structure skips a level in 1 place(s), so the order does not follow
The evidence, taken from the page as served
The page's heading outline, in document order (a jump in level is marked)
H1 Move your mortgage when you move home
H3 How it works level jumped
H3 Who can port their mortgage?
H3 Want a different deal?
H3 If your sale and purchase don't happen on the same day
H4 How your mortgage is shared
H4 If someone doesn't want to move their share
H2 Fancy a chat?
H3 Got a quick question?
H3 Start your residential application
H3 0345 600 6622
H2 Related content
H2 Get in touch
H2 About us
H2 Information
H2 More from Nationwide
https://uk.virginmoney.com/mortgages/existing-customers 56.6% Likely 5 out of 42
CheckResultEvidence
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 http-equiv="X-UA-Compatible" content="IE=edge"/> <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1.0"/> <!--evidon omnitag--> <script type="text/javascript" src="/mortgages/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-dtconfig="rid=RID_-1224532217|rpid=-744059993|domain=virginmoney.com|reportUrl=/mortgages/rb_bf64125xgr|uam=1|app=8e10568a9231138b|ssc=1|coo=1|owasp=1|featureHash=ICA15789NPRTUVXfghqrux|srsr=20000|xb=*.analytics.google.com*^p.*evidon.*^p.*google-analytic.*^p.*ybg.egain.*^p.*cludo.*^p.*pinterest.*^p.*visualwebsiteoptimize.*^p.*linkedin.*^p.*demdex.*|rdnt=1|uxrgce=1|cuc=4agxwo8z|mel=100000|expw=1|dpvc=1|md=mdcc1=bdocument.referrer,mdcc2=bnavigator.userAgent,mdcc3=dutm_source,mdcc4=dutm_medium,mdcc5=dutm_campaign,mdcc6=dutm_term,mdcc7=dutm_content,mdcc8=bwindow.location.href,mdcc9=dproduct,mdcc10=chdtCode1|lastModification=1785157117101|tp=500,50,0|srbbv=2|agentUri=/mortgages/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-config="{&quot;revision&quot;:1785157117101,&quot;beaconUri&quot;:&quot;/mortgages/rb_bf64125xgr&quot;,&quot;agentUri&quot;:&quot;/mortgages/ruxitagโ€ฆ
CT04warningthe page carries no date, so there is nothing on it saying how current its content is
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 carries no date, so there is nothing on it saying how current its content is
The evidence, taken from the page as served
The head of this page, as served

The head of the page and the page's own text were read for a date.

<head> <meta charset="utf-8"/> <meta http-equiv="X-UA-Compatible" content="IE=edge"/> <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1.0"/> <!--evidon omnitag--> <script type="text/javascript" src="/mortgages/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-dtconfig="rid=RID_-1224532217|rpid=-744059993|domain=virginmoney.com|reportUrl=/mortgages/rb_bf64125xgr|uam=1|app=8e10568a9231138b|ssc=1|coo=1|owasp=1|featureHash=ICA15789NPRTUVXfghqrux|srsr=20000|xb=*.analytics.google.com*^p.*evidon.*^p.*google-analytic.*^p.*ybg.egain.*^p.*cludo.*^p.*pinterest.*^p.*visualwebsiteoptimize.*^p.*linkedin.*^p.*demdex.*|rdnt=1|uxrgce=1|cuc=4agxwo8z|mel=100000|expw=1|dpvc=1|md=mdcc1=bdocument.referrer,mdcc2=bnavigator.userAgent,mdcc3=dutm_source,mdcc4=dutm_medium,mdcc5=dutm_campaign,mdcc6=dutm_term,mdcc7=dutm_content,mdcc8=bwindow.location.href,mdcc9=dproduct,mdcc10=chdtCode1|lastModification=1785157117101|tp=500,50,0|srbbv=2|agentUri=/mortgages/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-config="{&quot;revision&quot;:1785157117101,&quot;beaconUri&quot;:&quot;/mortgages/rb_bf64125xgr&quot;,&quot;agentUri&quot;:&quot;/mortgages/ruxitagโ€ฆ
CT35warningthe page carries no copyright line in the content as served, so there is nothing on it to date it by, and an absent copyright line is one of the marks of a copied template
What we check
The copyright line at the foot of the page, and the year it states.
What good looks like
The copyright line states the current year.
Why it matters
A copyright year in the past reads as a page nobody has attended to, and it is the usual sign of a template copied from somewhere else. Either way an AI treats the content as stale and can present old material as current.
What we found on this page
the page carries no copyright line in the content as served, so there is nothing on it to date it by, and an absent copyright line is one of the marks of a copied template
The evidence, taken from the page as served
The foot of this page, as served

The foot of the page was read for a copyright line.

<footer class="container footer pattern pattern--bottom bg-dark-2 stroke-primary "> <div class="row"> <div class="col-sm-6 col-md-3"> <h2 class="h3">Get in touch</h2> <ul class="list-unstyled pb-0 "> <li class=""> <a class="btn btn-link " href="/contact/">Contact us</a> </li> <li class=""> <a class="btn btn-link " href="/service/support-hub/">Help and support</a> </li> <li class=""> <a class="btn btn-link " href="/service/financial-wellbeing/">Financial wellbeing hub</a> </li> <li class=""> <a class="btn btn-link " href="/service/ways-to-bank/">Ways to bank</a> </li> <li class=""> <a class="btn btn-link " href="/vmforms/feedback-form/">Feedback</a> </li> <li class=""> <a class="btn btn-link " href="/service/complaints/">Make a complaint</a> </li> </ul> <ul class="list-unstyled list-social"> <li> <a href="https://www.instagram.com/virginmoney/" title="Virgin Money Instagram" target="_blank" rel="noopener"> <svg viewbox="0 0 32 32"> <title>Virgin Money Instagram</title> <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="/assets/svg/social.svg?v1.0#social-instagram-bg" class="svg__bg"/> <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="/assets/svg/social.svg?v1.0#soโ€ฆ
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 http-equiv="X-UA-Compatible" content="IE=edge"/> <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1.0"/> <!--evidon omnitag--> <script type="text/javascript" src="/mortgages/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-dtconfig="rid=RID_-1224532217|rpid=-744059993|domain=virginmoney.com|reportUrl=/mortgages/rb_bf64125xgr|uam=1|app=8e10568a9231138b|ssc=1|coo=1|owasp=1|featureHash=ICA15789NPRTUVXfghqrux|srsr=20000|xb=*.analytics.google.com*^p.*evidon.*^p.*google-analytic.*^p.*ybg.egain.*^p.*cludo.*^p.*pinterest.*^p.*visualwebsiteoptimize.*^p.*linkedin.*^p.*demdex.*|rdnt=1|uxrgce=1|cuc=4agxwo8z|mel=100000|expw=1|dpvc=1|md=mdcc1=bdocument.referrer,mdcc2=bnavigator.userAgent,mdcc3=dutm_source,mdcc4=dutm_medium,mdcc5=dutm_campaign,mdcc6=dutm_term,mdcc7=dutm_content,mdcc8=bwindow.location.href,mdcc9=dproduct,mdcc10=chdtCode1|lastModification=1785157117101|tp=500,50,0|srbbv=2|agentUri=/mortgages/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-config="{&quot;revision&quot;:1785157117101,&quot;beaconUri&quot;:&quot;/mortgages/rb_bf64125xgr&quot;,&quot;agentUri&quot;:&quot;/mortgages/ruxitagโ€ฆ
MS08fail2 link wording(s) are used for more than one destination, so the same words point at different pages: โ€œbusinessโ€, โ€œfind out moreโ€; 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
2 link wording(s) are used for more than one destination, so the same words point at different pages: โ€œbusinessโ€, โ€œfind out moreโ€; 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
"Business"
<a class="" href="/business/">Business</a>
"Business"
<a href="/business/service/sign-in/" class="ctasecondarynav-link"> Business </a>
"Find out more"
<a href="/service/support-hub/cost-of-living/tips-to-manage-your-money/" class="btn btn-link btn--icon-right" data-icon-right="">Find out more<div class="svg__wrapper"><svg><use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="/assets/svg/rebrand-ui.svg#chevron-right"/></svg></div></a>
"Find out more"
<a href="/mortgages/existing-customers/switch-your-deal/" class="btn btn-secondary">Find out more</a>
"Find out more"
<a href="/mortgages/tools/overpayment-calculator/" class="btn btn-secondary">Find out more</a>
"Find out more"
<a href="/mortgages/existing-customers/repaying-your-interest-only-mortgage" class="btn btn-link">Find out more</a>
"Find out more"
<a href="/mortgages/existing-customers/managing-your-money/" class="btn btn-link">Find out more</a>
https://uk.virginmoney.com/mortgages/existing-customers/additional-borrowing 56.6% Likely 5 out of 42
CheckResultEvidence
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 http-equiv="X-UA-Compatible" content="IE=edge"/> <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1.0"/> <!--evidon omnitag--> <script type="text/javascript" src="/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-dtconfig="rid=RID_-385891163|rpid=1709923860|domain=virginmoney.com|reportUrl=/rb_bf64125xgr|uam=1|app=8e10568a9231138b|ssc=1|coo=1|owasp=1|featureHash=ICA15789NPRTUVXfghqrux|srsr=20000|xb=*.analytics.google.com*^p.*evidon.*^p.*google-analytic.*^p.*ybg.egain.*^p.*cludo.*^p.*pinterest.*^p.*visualwebsiteoptimize.*^p.*linkedin.*^p.*demdex.*|rdnt=1|uxrgce=1|cuc=4agxwo8z|mel=100000|expw=1|dpvc=1|md=mdcc1=bdocument.referrer,mdcc2=bnavigator.userAgent,mdcc3=dutm_source,mdcc4=dutm_medium,mdcc5=dutm_campaign,mdcc6=dutm_term,mdcc7=dutm_content,mdcc8=bwindow.location.href,mdcc9=dproduct,mdcc10=chdtCode1|lastModification=1785157117101|tp=500,50,0|srbbv=2|agentUri=/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-config="{&quot;revision&quot;:1785157117101,&quot;beaconUri&quot;:&quot;/rb_bf64125xgr&quot;,&quot;agentUri&quot;:&quot;/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js&qโ€ฆ
CT04warningthe page carries no date, so there is nothing on it saying how current its content is
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 carries no date, so there is nothing on it saying how current its content is
The evidence, taken from the page as served
The head of this page, as served

The head of the page and the page's own text were read for a date.

<head> <meta charset="utf-8"/> <meta http-equiv="X-UA-Compatible" content="IE=edge"/> <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1.0"/> <!--evidon omnitag--> <script type="text/javascript" src="/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-dtconfig="rid=RID_-385891163|rpid=1709923860|domain=virginmoney.com|reportUrl=/rb_bf64125xgr|uam=1|app=8e10568a9231138b|ssc=1|coo=1|owasp=1|featureHash=ICA15789NPRTUVXfghqrux|srsr=20000|xb=*.analytics.google.com*^p.*evidon.*^p.*google-analytic.*^p.*ybg.egain.*^p.*cludo.*^p.*pinterest.*^p.*visualwebsiteoptimize.*^p.*linkedin.*^p.*demdex.*|rdnt=1|uxrgce=1|cuc=4agxwo8z|mel=100000|expw=1|dpvc=1|md=mdcc1=bdocument.referrer,mdcc2=bnavigator.userAgent,mdcc3=dutm_source,mdcc4=dutm_medium,mdcc5=dutm_campaign,mdcc6=dutm_term,mdcc7=dutm_content,mdcc8=bwindow.location.href,mdcc9=dproduct,mdcc10=chdtCode1|lastModification=1785157117101|tp=500,50,0|srbbv=2|agentUri=/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-config="{&quot;revision&quot;:1785157117101,&quot;beaconUri&quot;:&quot;/rb_bf64125xgr&quot;,&quot;agentUri&quot;:&quot;/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js&qโ€ฆ
CT35warningthe page carries no copyright line in the content as served, so there is nothing on it to date it by, and an absent copyright line is one of the marks of a copied template
What we check
The copyright line at the foot of the page, and the year it states.
What good looks like
The copyright line states the current year.
Why it matters
A copyright year in the past reads as a page nobody has attended to, and it is the usual sign of a template copied from somewhere else. Either way an AI treats the content as stale and can present old material as current.
What we found on this page
the page carries no copyright line in the content as served, so there is nothing on it to date it by, and an absent copyright line is one of the marks of a copied template
The evidence, taken from the page as served
The foot of this page, as served

The foot of the page was read for a copyright line.

<footer class="container footer pattern pattern--bottom bg-dark-2 stroke-primary "> <div class="row"> <div class="col-sm-6 col-md-3"> <h2 class="h3">Get in touch</h2> <ul class="list-unstyled pb-0 "> <li class=""> <a class="btn btn-link " href="/contact/">Contact us</a> </li> <li class=""> <a class="btn btn-link " href="/service/support-hub/">Help and support</a> </li> <li class=""> <a class="btn btn-link " href="/service/financial-wellbeing/">Financial wellbeing hub</a> </li> <li class=""> <a class="btn btn-link " href="/service/ways-to-bank/">Ways to bank</a> </li> <li class=""> <a class="btn btn-link " href="/vmforms/feedback-form/">Feedback</a> </li> <li class=""> <a class="btn btn-link " href="/service/complaints/">Make a complaint</a> </li> </ul> <ul class="list-unstyled list-social"> <li> <a href="https://www.instagram.com/virginmoney/" title="Virgin Money Instagram" target="_blank" rel="noopener"> <svg viewbox="0 0 32 32"> <title>Virgin Money Instagram</title> <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="/assets/svg/social.svg?v1.0#social-instagram-bg" class="svg__bg"/> <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="/assets/svg/social.svg?v1.0#soโ€ฆ
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 http-equiv="X-UA-Compatible" content="IE=edge"/> <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1.0"/> <!--evidon omnitag--> <script type="text/javascript" src="/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-dtconfig="rid=RID_-385891163|rpid=1709923860|domain=virginmoney.com|reportUrl=/rb_bf64125xgr|uam=1|app=8e10568a9231138b|ssc=1|coo=1|owasp=1|featureHash=ICA15789NPRTUVXfghqrux|srsr=20000|xb=*.analytics.google.com*^p.*evidon.*^p.*google-analytic.*^p.*ybg.egain.*^p.*cludo.*^p.*pinterest.*^p.*visualwebsiteoptimize.*^p.*linkedin.*^p.*demdex.*|rdnt=1|uxrgce=1|cuc=4agxwo8z|mel=100000|expw=1|dpvc=1|md=mdcc1=bdocument.referrer,mdcc2=bnavigator.userAgent,mdcc3=dutm_source,mdcc4=dutm_medium,mdcc5=dutm_campaign,mdcc6=dutm_term,mdcc7=dutm_content,mdcc8=bwindow.location.href,mdcc9=dproduct,mdcc10=chdtCode1|lastModification=1785157117101|tp=500,50,0|srbbv=2|agentUri=/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-config="{&quot;revision&quot;:1785157117101,&quot;beaconUri&quot;:&quot;/rb_bf64125xgr&quot;,&quot;agentUri&quot;:&quot;/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js&qโ€ฆ
MS08fail1 link wording(s) are used for more than one destination, so the same words point at different pages: โ€œbusinessโ€; 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: โ€œbusinessโ€; 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
"Business"
<a class="" href="/business/">Business</a>
"Business"
<a href="/business/service/sign-in/" class="ctasecondarynav-link"> Business </a>
https://uk.virginmoney.com/current-accounts/pca/account-features/overdrafts 56.6% Likely 5 out of 42
CheckResultEvidence
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 http-equiv="X-UA-Compatible" content="IE=edge"/> <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1.0"/> <!--evidon omnitag--> <script type="text/javascript" src="/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-dtconfig="rid=RID_267129731|rpid=-1314821292|domain=virginmoney.com|reportUrl=/rb_bf64125xgr|uam=1|app=8e10568a9231138b|ssc=1|coo=1|owasp=1|featureHash=ICA15789NPRTUVXfghqrux|srsr=20000|xb=*.analytics.google.com*^p.*evidon.*^p.*google-analytic.*^p.*ybg.egain.*^p.*cludo.*^p.*pinterest.*^p.*visualwebsiteoptimize.*^p.*linkedin.*^p.*demdex.*|rdnt=1|uxrgce=1|cuc=4agxwo8z|mel=100000|expw=1|dpvc=1|md=mdcc1=bdocument.referrer,mdcc2=bnavigator.userAgent,mdcc3=dutm_source,mdcc4=dutm_medium,mdcc5=dutm_campaign,mdcc6=dutm_term,mdcc7=dutm_content,mdcc8=bwindow.location.href,mdcc9=dproduct,mdcc10=chdtCode1|lastModification=1785157117101|tp=500,50,0|srbbv=2|agentUri=/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-config="{&quot;revision&quot;:1785157117101,&quot;beaconUri&quot;:&quot;/rb_bf64125xgr&quot;,&quot;agentUri&quot;:&quot;/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js&qโ€ฆ
CT04warningthe page carries no date, so there is nothing on it saying how current its content is
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 carries no date, so there is nothing on it saying how current its content is
The evidence, taken from the page as served
The head of this page, as served

The head of the page and the page's own text were read for a date.

<head> <meta charset="utf-8"/> <meta http-equiv="X-UA-Compatible" content="IE=edge"/> <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1.0"/> <!--evidon omnitag--> <script type="text/javascript" src="/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-dtconfig="rid=RID_267129731|rpid=-1314821292|domain=virginmoney.com|reportUrl=/rb_bf64125xgr|uam=1|app=8e10568a9231138b|ssc=1|coo=1|owasp=1|featureHash=ICA15789NPRTUVXfghqrux|srsr=20000|xb=*.analytics.google.com*^p.*evidon.*^p.*google-analytic.*^p.*ybg.egain.*^p.*cludo.*^p.*pinterest.*^p.*visualwebsiteoptimize.*^p.*linkedin.*^p.*demdex.*|rdnt=1|uxrgce=1|cuc=4agxwo8z|mel=100000|expw=1|dpvc=1|md=mdcc1=bdocument.referrer,mdcc2=bnavigator.userAgent,mdcc3=dutm_source,mdcc4=dutm_medium,mdcc5=dutm_campaign,mdcc6=dutm_term,mdcc7=dutm_content,mdcc8=bwindow.location.href,mdcc9=dproduct,mdcc10=chdtCode1|lastModification=1785157117101|tp=500,50,0|srbbv=2|agentUri=/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-config="{&quot;revision&quot;:1785157117101,&quot;beaconUri&quot;:&quot;/rb_bf64125xgr&quot;,&quot;agentUri&quot;:&quot;/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js&qโ€ฆ
CT35warningthe page carries no copyright line in the content as served, so there is nothing on it to date it by, and an absent copyright line is one of the marks of a copied template
What we check
The copyright line at the foot of the page, and the year it states.
What good looks like
The copyright line states the current year.
Why it matters
A copyright year in the past reads as a page nobody has attended to, and it is the usual sign of a template copied from somewhere else. Either way an AI treats the content as stale and can present old material as current.
What we found on this page
the page carries no copyright line in the content as served, so there is nothing on it to date it by, and an absent copyright line is one of the marks of a copied template
The evidence, taken from the page as served
The foot of this page, as served

The foot of the page was read for a copyright line.

<footer class="container footer pattern pattern--bottom bg-dark-2 stroke-primary "> <div class="row"> <div class="col-sm-6 col-md-3"> <h2 class="h3">Get in touch</h2> <ul class="list-unstyled pb-0 "> <li class=""> <a class="btn btn-link " href="/contact/">Contact us</a> </li> <li class=""> <a class="btn btn-link " href="/service/support-hub/">Help and support</a> </li> <li class=""> <a class="btn btn-link " href="/service/financial-wellbeing/">Financial wellbeing hub</a> </li> <li class=""> <a class="btn btn-link " href="/service/ways-to-bank/">Ways to bank</a> </li> <li class=""> <a class="btn btn-link " href="/vmforms/feedback-form/">Feedback</a> </li> <li class=""> <a class="btn btn-link " href="/service/complaints/">Make a complaint</a> </li> </ul> <ul class="list-unstyled list-social"> <li> <a href="https://www.instagram.com/virginmoney/" title="Virgin Money Instagram" target="_blank" rel="noopener"> <svg viewbox="0 0 32 32"> <title>Virgin Money Instagram</title> <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="/assets/svg/social.svg?v1.0#social-instagram-bg" class="svg__bg"/> <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="/assets/svg/social.svg?v1.0#soโ€ฆ
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 http-equiv="X-UA-Compatible" content="IE=edge"/> <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1.0"/> <!--evidon omnitag--> <script type="text/javascript" src="/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-dtconfig="rid=RID_267129731|rpid=-1314821292|domain=virginmoney.com|reportUrl=/rb_bf64125xgr|uam=1|app=8e10568a9231138b|ssc=1|coo=1|owasp=1|featureHash=ICA15789NPRTUVXfghqrux|srsr=20000|xb=*.analytics.google.com*^p.*evidon.*^p.*google-analytic.*^p.*ybg.egain.*^p.*cludo.*^p.*pinterest.*^p.*visualwebsiteoptimize.*^p.*linkedin.*^p.*demdex.*|rdnt=1|uxrgce=1|cuc=4agxwo8z|mel=100000|expw=1|dpvc=1|md=mdcc1=bdocument.referrer,mdcc2=bnavigator.userAgent,mdcc3=dutm_source,mdcc4=dutm_medium,mdcc5=dutm_campaign,mdcc6=dutm_term,mdcc7=dutm_content,mdcc8=bwindow.location.href,mdcc9=dproduct,mdcc10=chdtCode1|lastModification=1785157117101|tp=500,50,0|srbbv=2|agentUri=/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-config="{&quot;revision&quot;:1785157117101,&quot;beaconUri&quot;:&quot;/rb_bf64125xgr&quot;,&quot;agentUri&quot;:&quot;/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js&qโ€ฆ
MS08fail1 link wording(s) are used for more than one destination, so the same words point at different pages: โ€œbusinessโ€; 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: โ€œbusinessโ€; 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
"Business"
<a class="" href="/business/">Business</a>
"Business"
<a href="/business/service/sign-in/" class="ctasecondarynav-link"> Business </a>
https://uk.virginmoney.com/current-accounts/m-account 56.1% Likely 6 out of 43
CheckResultEvidence
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 http-equiv="X-UA-Compatible" content="IE=edge"/> <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1.0"/> <!--evidon omnitag--> <script type="text/javascript" src="/current-accounts/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-dtconfig="rid=RID_-506143271|rpid=-2028639616|domain=virginmoney.com|reportUrl=/current-accounts/rb_bf64125xgr|uam=1|app=8e10568a9231138b|ssc=1|coo=1|owasp=1|featureHash=ICA15789NPRTUVXfghqrux|srsr=20000|xb=*.analytics.google.com*^p.*evidon.*^p.*google-analytic.*^p.*ybg.egain.*^p.*cludo.*^p.*pinterest.*^p.*visualwebsiteoptimize.*^p.*linkedin.*^p.*demdex.*|rdnt=1|uxrgce=1|cuc=4agxwo8z|mel=100000|expw=1|dpvc=1|md=mdcc1=bdocument.referrer,mdcc2=bnavigator.userAgent,mdcc3=dutm_source,mdcc4=dutm_medium,mdcc5=dutm_campaign,mdcc6=dutm_term,mdcc7=dutm_content,mdcc8=bwindow.location.href,mdcc9=dproduct,mdcc10=chdtCode1|lastModification=1785157117101|tp=500,50,0|srbbv=2|agentUri=/current-accounts/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-config="{&quot;revision&quot;:1785157117101,&quot;beaconUri&quot;:&quot;/current-accounts/rb_bf64125xgr&quot;,&quot;agentUri&quโ€ฆ
CT04warningthe page carries no date, so there is nothing on it saying how current its content is
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 carries no date, so there is nothing on it saying how current its content is
The evidence, taken from the page as served
The head of this page, as served

The head of the page and the page's own text were read for a date.

<head> <meta charset="utf-8"/> <meta http-equiv="X-UA-Compatible" content="IE=edge"/> <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1.0"/> <!--evidon omnitag--> <script type="text/javascript" src="/current-accounts/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-dtconfig="rid=RID_-506143271|rpid=-2028639616|domain=virginmoney.com|reportUrl=/current-accounts/rb_bf64125xgr|uam=1|app=8e10568a9231138b|ssc=1|coo=1|owasp=1|featureHash=ICA15789NPRTUVXfghqrux|srsr=20000|xb=*.analytics.google.com*^p.*evidon.*^p.*google-analytic.*^p.*ybg.egain.*^p.*cludo.*^p.*pinterest.*^p.*visualwebsiteoptimize.*^p.*linkedin.*^p.*demdex.*|rdnt=1|uxrgce=1|cuc=4agxwo8z|mel=100000|expw=1|dpvc=1|md=mdcc1=bdocument.referrer,mdcc2=bnavigator.userAgent,mdcc3=dutm_source,mdcc4=dutm_medium,mdcc5=dutm_campaign,mdcc6=dutm_term,mdcc7=dutm_content,mdcc8=bwindow.location.href,mdcc9=dproduct,mdcc10=chdtCode1|lastModification=1785157117101|tp=500,50,0|srbbv=2|agentUri=/current-accounts/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-config="{&quot;revision&quot;:1785157117101,&quot;beaconUri&quot;:&quot;/current-accounts/rb_bf64125xgr&quot;,&quot;agentUri&quโ€ฆ
CT35warningthe page carries no copyright line in the content as served, so there is nothing on it to date it by, and an absent copyright line is one of the marks of a copied template
What we check
The copyright line at the foot of the page, and the year it states.
What good looks like
The copyright line states the current year.
Why it matters
A copyright year in the past reads as a page nobody has attended to, and it is the usual sign of a template copied from somewhere else. Either way an AI treats the content as stale and can present old material as current.
What we found on this page
the page carries no copyright line in the content as served, so there is nothing on it to date it by, and an absent copyright line is one of the marks of a copied template
The evidence, taken from the page as served
The foot of this page, as served

The foot of the page was read for a copyright line.

<footer class="container footer pattern pattern--bottom bg-dark-2 stroke-primary "> <div class="row"> <div class="col-sm-6 col-md-3"> <h2 class="h3">Get in touch</h2> <ul class="list-unstyled pb-0 "> <li class=""> <a class="btn btn-link " href="/contact/">Contact us</a> </li> <li class=""> <a class="btn btn-link " href="/service/support-hub/">Help and support</a> </li> <li class=""> <a class="btn btn-link " href="/service/financial-wellbeing/">Financial wellbeing hub</a> </li> <li class=""> <a class="btn btn-link " href="/service/ways-to-bank/">Ways to bank</a> </li> <li class=""> <a class="btn btn-link " href="/vmforms/feedback-form/">Feedback</a> </li> <li class=""> <a class="btn btn-link " href="/service/complaints/">Make a complaint</a> </li> </ul> <ul class="list-unstyled list-social"> <li> <a href="https://www.instagram.com/virginmoney/" title="Virgin Money Instagram" target="_blank" rel="noopener"> <svg viewbox="0 0 32 32"> <title>Virgin Money Instagram</title> <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="/assets/svg/social.svg?v1.0#social-instagram-bg" class="svg__bg"/> <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="/assets/svg/social.svg?v1.0#soโ€ฆ
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 http-equiv="X-UA-Compatible" content="IE=edge"/> <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1.0"/> <!--evidon omnitag--> <script type="text/javascript" src="/current-accounts/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-dtconfig="rid=RID_-506143271|rpid=-2028639616|domain=virginmoney.com|reportUrl=/current-accounts/rb_bf64125xgr|uam=1|app=8e10568a9231138b|ssc=1|coo=1|owasp=1|featureHash=ICA15789NPRTUVXfghqrux|srsr=20000|xb=*.analytics.google.com*^p.*evidon.*^p.*google-analytic.*^p.*ybg.egain.*^p.*cludo.*^p.*pinterest.*^p.*visualwebsiteoptimize.*^p.*linkedin.*^p.*demdex.*|rdnt=1|uxrgce=1|cuc=4agxwo8z|mel=100000|expw=1|dpvc=1|md=mdcc1=bdocument.referrer,mdcc2=bnavigator.userAgent,mdcc3=dutm_source,mdcc4=dutm_medium,mdcc5=dutm_campaign,mdcc6=dutm_term,mdcc7=dutm_content,mdcc8=bwindow.location.href,mdcc9=dproduct,mdcc10=chdtCode1|lastModification=1785157117101|tp=500,50,0|srbbv=2|agentUri=/current-accounts/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-config="{&quot;revision&quot;:1785157117101,&quot;beaconUri&quot;:&quot;/current-accounts/rb_bf64125xgr&quot;,&quot;agentUri&quโ€ฆ
MS08fail2 link wording(s) are used for more than one destination, so the same words point at different pages: โ€œbusinessโ€, โ€œhereโ€; 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
2 link wording(s) are used for more than one destination, so the same words point at different pages: โ€œbusinessโ€, โ€œhereโ€; 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
"Business"
<a class="" href="/business/">Business</a>
"Business"
<a href="/business/service/sign-in/" class="ctasecondarynav-link"> Business </a>
"here"
<a href="/current-accounts/fees-and-charges/">here</a>
"here"
<a href="/virgin/assets/pdf/required-personal-identification.pdf">here</a>
MS09warninglink wording that does not say where it leads: โ€œhereโ€
What we check
Link wording that names no destination, phrases such as click here, read more and details.
What good looks like
Link wording names its destination, rather than saying click here or read more.
Why it matters
The destination is stated nowhere on the link itself, so the choice rests entirely on the text around it.
What we found on this page
link wording that does not say where it leads: โ€œhereโ€
The evidence, taken from the page as served
The links whose text names no destination, as served
"here"
<a href="/current-accounts/fees-and-charges/">here</a>
"here"
<a href="/virgin/assets/pdf/required-personal-identification.pdf">here</a>
https://uk.virginmoney.com/current-accounts/existing-customers 56.6% Likely 5 out of 42
CheckResultEvidence
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 http-equiv="X-UA-Compatible" content="IE=edge"/> <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1.0"/> <!--evidon omnitag--> <script type="text/javascript" src="/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-dtconfig="rid=RID_-604994133|rpid=1789936307|domain=virginmoney.com|reportUrl=/rb_bf64125xgr|uam=1|app=8e10568a9231138b|ssc=1|coo=1|owasp=1|featureHash=ICA15789NPRTUVXfghqrux|srsr=20000|xb=*.analytics.google.com*^p.*evidon.*^p.*google-analytic.*^p.*ybg.egain.*^p.*cludo.*^p.*pinterest.*^p.*visualwebsiteoptimize.*^p.*linkedin.*^p.*demdex.*|rdnt=1|uxrgce=1|cuc=4agxwo8z|mel=100000|expw=1|dpvc=1|md=mdcc1=bdocument.referrer,mdcc2=bnavigator.userAgent,mdcc3=dutm_source,mdcc4=dutm_medium,mdcc5=dutm_campaign,mdcc6=dutm_term,mdcc7=dutm_content,mdcc8=bwindow.location.href,mdcc9=dproduct,mdcc10=chdtCode1|lastModification=1785157117101|tp=500,50,0|srbbv=2|agentUri=/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-config="{&quot;revision&quot;:1785157117101,&quot;beaconUri&quot;:&quot;/rb_bf64125xgr&quot;,&quot;agentUri&quot;:&quot;/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js&qโ€ฆ
CT04warningthe page carries no date, so there is nothing on it saying how current its content is
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 carries no date, so there is nothing on it saying how current its content is
The evidence, taken from the page as served
The head of this page, as served

The head of the page and the page's own text were read for a date.

<head> <meta charset="utf-8"/> <meta http-equiv="X-UA-Compatible" content="IE=edge"/> <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1.0"/> <!--evidon omnitag--> <script type="text/javascript" src="/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-dtconfig="rid=RID_-604994133|rpid=1789936307|domain=virginmoney.com|reportUrl=/rb_bf64125xgr|uam=1|app=8e10568a9231138b|ssc=1|coo=1|owasp=1|featureHash=ICA15789NPRTUVXfghqrux|srsr=20000|xb=*.analytics.google.com*^p.*evidon.*^p.*google-analytic.*^p.*ybg.egain.*^p.*cludo.*^p.*pinterest.*^p.*visualwebsiteoptimize.*^p.*linkedin.*^p.*demdex.*|rdnt=1|uxrgce=1|cuc=4agxwo8z|mel=100000|expw=1|dpvc=1|md=mdcc1=bdocument.referrer,mdcc2=bnavigator.userAgent,mdcc3=dutm_source,mdcc4=dutm_medium,mdcc5=dutm_campaign,mdcc6=dutm_term,mdcc7=dutm_content,mdcc8=bwindow.location.href,mdcc9=dproduct,mdcc10=chdtCode1|lastModification=1785157117101|tp=500,50,0|srbbv=2|agentUri=/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-config="{&quot;revision&quot;:1785157117101,&quot;beaconUri&quot;:&quot;/rb_bf64125xgr&quot;,&quot;agentUri&quot;:&quot;/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js&qโ€ฆ
CT35warningthe page carries no copyright line in the content as served, so there is nothing on it to date it by, and an absent copyright line is one of the marks of a copied template
What we check
The copyright line at the foot of the page, and the year it states.
What good looks like
The copyright line states the current year.
Why it matters
A copyright year in the past reads as a page nobody has attended to, and it is the usual sign of a template copied from somewhere else. Either way an AI treats the content as stale and can present old material as current.
What we found on this page
the page carries no copyright line in the content as served, so there is nothing on it to date it by, and an absent copyright line is one of the marks of a copied template
The evidence, taken from the page as served
The foot of this page, as served

The foot of the page was read for a copyright line.

<footer class="container footer pattern pattern--bottom bg-dark-2 stroke-primary "> <div class="row"> <div class="col-sm-6 col-md-3"> <h2 class="h3">Get in touch</h2> <ul class="list-unstyled pb-0 "> <li class=""> <a class="btn btn-link " href="/contact/">Contact us</a> </li> <li class=""> <a class="btn btn-link " href="/service/support-hub/">Help and support</a> </li> <li class=""> <a class="btn btn-link " href="/service/financial-wellbeing/">Financial wellbeing hub</a> </li> <li class=""> <a class="btn btn-link " href="/service/ways-to-bank/">Ways to bank</a> </li> <li class=""> <a class="btn btn-link " href="/vmforms/feedback-form/">Feedback</a> </li> <li class=""> <a class="btn btn-link " href="/service/complaints/">Make a complaint</a> </li> </ul> <ul class="list-unstyled list-social"> <li> <a href="https://www.instagram.com/virginmoney/" title="Virgin Money Instagram" target="_blank" rel="noopener"> <svg viewbox="0 0 32 32"> <title>Virgin Money Instagram</title> <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="/assets/svg/social.svg?v1.0#social-instagram-bg" class="svg__bg"/> <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="/assets/svg/social.svg?v1.0#soโ€ฆ
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 http-equiv="X-UA-Compatible" content="IE=edge"/> <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1.0"/> <!--evidon omnitag--> <script type="text/javascript" src="/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-dtconfig="rid=RID_-604994133|rpid=1789936307|domain=virginmoney.com|reportUrl=/rb_bf64125xgr|uam=1|app=8e10568a9231138b|ssc=1|coo=1|owasp=1|featureHash=ICA15789NPRTUVXfghqrux|srsr=20000|xb=*.analytics.google.com*^p.*evidon.*^p.*google-analytic.*^p.*ybg.egain.*^p.*cludo.*^p.*pinterest.*^p.*visualwebsiteoptimize.*^p.*linkedin.*^p.*demdex.*|rdnt=1|uxrgce=1|cuc=4agxwo8z|mel=100000|expw=1|dpvc=1|md=mdcc1=bdocument.referrer,mdcc2=bnavigator.userAgent,mdcc3=dutm_source,mdcc4=dutm_medium,mdcc5=dutm_campaign,mdcc6=dutm_term,mdcc7=dutm_content,mdcc8=bwindow.location.href,mdcc9=dproduct,mdcc10=chdtCode1|lastModification=1785157117101|tp=500,50,0|srbbv=2|agentUri=/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-config="{&quot;revision&quot;:1785157117101,&quot;beaconUri&quot;:&quot;/rb_bf64125xgr&quot;,&quot;agentUri&quot;:&quot;/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js&qโ€ฆ
MS08fail2 link wording(s) are used for more than one destination, so the same words point at different pages: โ€œbusinessโ€, โ€œlink opens in a new windowโ€; 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
2 link wording(s) are used for more than one destination, so the same words point at different pages: โ€œbusinessโ€, โ€œlink opens in a new windowโ€; 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
"Business"
<a class="" href="/business/">Business</a>
"Business"
<a href="/business/service/sign-in/" class="ctasecondarynav-link"> Business </a>
"Link opens in a new window"
<a href="https://apps.apple.com/gb/app/virgin-money-mobile-banking/id1482269155?ls=1" target="_blank" data-icon="" rel="noopener"><img src="/img/img_appstore.png" alt="apple app store button" class="mb-3"/> <span class="visually-hidden">Link opens in a new window</span></a>
"Link opens in a new window"
<a href="https://play.google.com/store/apps/details?id=com.virginmoney.uk.mobile.android" target="_blank" data-icon="" rel="noopener"><img src="/img/img_googleplay.png" alt="Download Virgin Money banking app on Google Play" class="mb-3"/> <span class="visually-hidden">Link opens in a new window</span></a>
https://uk.virginmoney.com/savings/helpful-information 32.9% Very likely 7 out of 43
CheckResultEvidence
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 http-equiv="X-UA-Compatible" content="IE=edge"/> <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1.0"/> <!--evidon omnitag--> <script type="text/javascript" src="/savings/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-dtconfig="rid=RID_1096286955|rpid=1454290762|domain=virginmoney.com|reportUrl=/savings/rb_bf64125xgr|uam=1|app=8e10568a9231138b|ssc=1|coo=1|owasp=1|featureHash=ICA15789NPRTUVXfghqrux|srsr=20000|xb=*.analytics.google.com*^p.*evidon.*^p.*google-analytic.*^p.*ybg.egain.*^p.*cludo.*^p.*pinterest.*^p.*visualwebsiteoptimize.*^p.*linkedin.*^p.*demdex.*|rdnt=1|uxrgce=1|cuc=4agxwo8z|mel=100000|expw=1|dpvc=1|md=mdcc1=bdocument.referrer,mdcc2=bnavigator.userAgent,mdcc3=dutm_source,mdcc4=dutm_medium,mdcc5=dutm_campaign,mdcc6=dutm_term,mdcc7=dutm_content,mdcc8=bwindow.location.href,mdcc9=dproduct,mdcc10=chdtCode1|lastModification=1785157117101|tp=500,50,0|srbbv=2|agentUri=/savings/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-config="{&quot;revision&quot;:1785157117101,&quot;beaconUri&quot;:&quot;/savings/rb_bf64125xgr&quot;,&quot;agentUri&quot;:&quot;/savings/ruxitagentjs_ICA15โ€ฆ
CT04warningthe page carries no date, so there is nothing on it saying how current its content is
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 carries no date, so there is nothing on it saying how current its content is
The evidence, taken from the page as served
The head of this page, as served

The head of the page and the page's own text were read for a date.

<head> <meta charset="utf-8"/> <meta http-equiv="X-UA-Compatible" content="IE=edge"/> <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1.0"/> <!--evidon omnitag--> <script type="text/javascript" src="/savings/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-dtconfig="rid=RID_1096286955|rpid=1454290762|domain=virginmoney.com|reportUrl=/savings/rb_bf64125xgr|uam=1|app=8e10568a9231138b|ssc=1|coo=1|owasp=1|featureHash=ICA15789NPRTUVXfghqrux|srsr=20000|xb=*.analytics.google.com*^p.*evidon.*^p.*google-analytic.*^p.*ybg.egain.*^p.*cludo.*^p.*pinterest.*^p.*visualwebsiteoptimize.*^p.*linkedin.*^p.*demdex.*|rdnt=1|uxrgce=1|cuc=4agxwo8z|mel=100000|expw=1|dpvc=1|md=mdcc1=bdocument.referrer,mdcc2=bnavigator.userAgent,mdcc3=dutm_source,mdcc4=dutm_medium,mdcc5=dutm_campaign,mdcc6=dutm_term,mdcc7=dutm_content,mdcc8=bwindow.location.href,mdcc9=dproduct,mdcc10=chdtCode1|lastModification=1785157117101|tp=500,50,0|srbbv=2|agentUri=/savings/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-config="{&quot;revision&quot;:1785157117101,&quot;beaconUri&quot;:&quot;/savings/rb_bf64125xgr&quot;,&quot;agentUri&quot;:&quot;/savings/ruxitagentjs_ICA15โ€ฆ
CT35warningthe page carries no copyright line in the content as served, so there is nothing on it to date it by, and an absent copyright line is one of the marks of a copied template
What we check
The copyright line at the foot of the page, and the year it states.
What good looks like
The copyright line states the current year.
Why it matters
A copyright year in the past reads as a page nobody has attended to, and it is the usual sign of a template copied from somewhere else. Either way an AI treats the content as stale and can present old material as current.
What we found on this page
the page carries no copyright line in the content as served, so there is nothing on it to date it by, and an absent copyright line is one of the marks of a copied template
The evidence, taken from the page as served
The foot of this page, as served

The foot of the page was read for a copyright line.

<footer class="container footer pattern pattern--bottom bg-dark-2 stroke-primary "> <div class="row"> <div class="col-sm-6 col-md-3"> <h2 class="h3">Get in touch</h2> <ul class="list-unstyled pb-0 "> <li class=""> <a class="btn btn-link " href="/contact/">Contact us</a> </li> <li class=""> <a class="btn btn-link " href="/service/support-hub/">Help and support</a> </li> <li class=""> <a class="btn btn-link " href="/service/financial-wellbeing/">Financial wellbeing hub</a> </li> <li class=""> <a class="btn btn-link " href="/service/ways-to-bank/">Ways to bank</a> </li> <li class=""> <a class="btn btn-link " href="/vmforms/feedback-form/">Feedback</a> </li> <li class=""> <a class="btn btn-link " href="/service/complaints/">Make a complaint</a> </li> </ul> <ul class="list-unstyled list-social"> <li> <a href="https://www.instagram.com/virginmoney/" title="Virgin Money Instagram" target="_blank" rel="noopener"> <svg viewbox="0 0 32 32"> <title>Virgin Money Instagram</title> <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="/assets/svg/social.svg?v1.0#social-instagram-bg" class="svg__bg"/> <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="/assets/svg/social.svg?v1.0#soโ€ฆ
CT13warningmain content is 24% 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 24% 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 content1277 characters
All the text on the page5255 characters
The page's own share of it24%
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 http-equiv="X-UA-Compatible" content="IE=edge"/> <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1.0"/> <!--evidon omnitag--> <script type="text/javascript" src="/savings/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-dtconfig="rid=RID_1096286955|rpid=1454290762|domain=virginmoney.com|reportUrl=/savings/rb_bf64125xgr|uam=1|app=8e10568a9231138b|ssc=1|coo=1|owasp=1|featureHash=ICA15789NPRTUVXfghqrux|srsr=20000|xb=*.analytics.google.com*^p.*evidon.*^p.*google-analytic.*^p.*ybg.egain.*^p.*cludo.*^p.*pinterest.*^p.*visualwebsiteoptimize.*^p.*linkedin.*^p.*demdex.*|rdnt=1|uxrgce=1|cuc=4agxwo8z|mel=100000|expw=1|dpvc=1|md=mdcc1=bdocument.referrer,mdcc2=bnavigator.userAgent,mdcc3=dutm_source,mdcc4=dutm_medium,mdcc5=dutm_campaign,mdcc6=dutm_term,mdcc7=dutm_content,mdcc8=bwindow.location.href,mdcc9=dproduct,mdcc10=chdtCode1|lastModification=1785157117101|tp=500,50,0|srbbv=2|agentUri=/savings/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-config="{&quot;revision&quot;:1785157117101,&quot;beaconUri&quot;:&quot;/savings/rb_bf64125xgr&quot;,&quot;agentUri&quot;:&quot;/savings/ruxitagentjs_ICA15โ€ฆ
MS08fail1 link wording(s) are used for more than one destination, so the same words point at different pages: โ€œbusinessโ€; 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: โ€œbusinessโ€; 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
"Business"
<a class="" href="/business/">Business</a>
"Business"
<a href="/business/service/sign-in/" class="ctasecondarynav-link"> Business </a>
CT34failthe page's own words are thin: 355 of its 400 words are shared navigation and footer, so it reads as 86% 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: 355 of its 400 words are shared navigation and footer, so it reads as 86% 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
uk.virginmoney.com/savings/helpful-information45 of 40089%uk.virginmoney.com/service/sign-in86%
https://uk.virginmoney.com/cards/existing-customers 56.6% Likely 5 out of 42
CheckResultEvidence
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 http-equiv="X-UA-Compatible" content="IE=edge"/> <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1.0"/> <!--evidon omnitag--> <script type="text/javascript" src="/cards/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-dtconfig="rid=RID_-234496544|rpid=-208642764|domain=virginmoney.com|reportUrl=/cards/rb_bf64125xgr|uam=1|app=8e10568a9231138b|ssc=1|coo=1|owasp=1|featureHash=ICA15789NPRTUVXfghqrux|srsr=20000|xb=*.analytics.google.com*^p.*evidon.*^p.*google-analytic.*^p.*ybg.egain.*^p.*cludo.*^p.*pinterest.*^p.*visualwebsiteoptimize.*^p.*linkedin.*^p.*demdex.*|rdnt=1|uxrgce=1|cuc=4agxwo8z|mel=100000|expw=1|dpvc=1|md=mdcc1=bdocument.referrer,mdcc2=bnavigator.userAgent,mdcc3=dutm_source,mdcc4=dutm_medium,mdcc5=dutm_campaign,mdcc6=dutm_term,mdcc7=dutm_content,mdcc8=bwindow.location.href,mdcc9=dproduct,mdcc10=chdtCode1|lastModification=1785157117101|tp=500,50,0|srbbv=2|agentUri=/cards/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-config="{&quot;revision&quot;:1785157117101,&quot;beaconUri&quot;:&quot;/cards/rb_bf64125xgr&quot;,&quot;agentUri&quot;:&quot;/cards/ruxitagentjs_ICA15789NPRTUVXโ€ฆ
CT04warningthe page carries no date, so there is nothing on it saying how current its content is
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 carries no date, so there is nothing on it saying how current its content is
The evidence, taken from the page as served
The head of this page, as served

The head of the page and the page's own text were read for a date.

<head> <meta charset="utf-8"/> <meta http-equiv="X-UA-Compatible" content="IE=edge"/> <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1.0"/> <!--evidon omnitag--> <script type="text/javascript" src="/cards/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-dtconfig="rid=RID_-234496544|rpid=-208642764|domain=virginmoney.com|reportUrl=/cards/rb_bf64125xgr|uam=1|app=8e10568a9231138b|ssc=1|coo=1|owasp=1|featureHash=ICA15789NPRTUVXfghqrux|srsr=20000|xb=*.analytics.google.com*^p.*evidon.*^p.*google-analytic.*^p.*ybg.egain.*^p.*cludo.*^p.*pinterest.*^p.*visualwebsiteoptimize.*^p.*linkedin.*^p.*demdex.*|rdnt=1|uxrgce=1|cuc=4agxwo8z|mel=100000|expw=1|dpvc=1|md=mdcc1=bdocument.referrer,mdcc2=bnavigator.userAgent,mdcc3=dutm_source,mdcc4=dutm_medium,mdcc5=dutm_campaign,mdcc6=dutm_term,mdcc7=dutm_content,mdcc8=bwindow.location.href,mdcc9=dproduct,mdcc10=chdtCode1|lastModification=1785157117101|tp=500,50,0|srbbv=2|agentUri=/cards/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-config="{&quot;revision&quot;:1785157117101,&quot;beaconUri&quot;:&quot;/cards/rb_bf64125xgr&quot;,&quot;agentUri&quot;:&quot;/cards/ruxitagentjs_ICA15789NPRTUVXโ€ฆ
CT35warningthe page carries no copyright line in the content as served, so there is nothing on it to date it by, and an absent copyright line is one of the marks of a copied template
What we check
The copyright line at the foot of the page, and the year it states.
What good looks like
The copyright line states the current year.
Why it matters
A copyright year in the past reads as a page nobody has attended to, and it is the usual sign of a template copied from somewhere else. Either way an AI treats the content as stale and can present old material as current.
What we found on this page
the page carries no copyright line in the content as served, so there is nothing on it to date it by, and an absent copyright line is one of the marks of a copied template
The evidence, taken from the page as served
The foot of this page, as served

The foot of the page was read for a copyright line.

<footer class="container footer pattern pattern--bottom bg-dark-2 stroke-primary "> <div class="row"> <div class="col-sm-6 col-md-3"> <h2 class="h3">Get in touch</h2> <ul class="list-unstyled pb-0 "> <li class=""> <a class="btn btn-link " href="/contact/">Contact us</a> </li> <li class=""> <a class="btn btn-link " href="/service/support-hub/">Help and support</a> </li> <li class=""> <a class="btn btn-link " href="/service/financial-wellbeing/">Financial wellbeing hub</a> </li> <li class=""> <a class="btn btn-link " href="/service/ways-to-bank/">Ways to bank</a> </li> <li class=""> <a class="btn btn-link " href="/vmforms/feedback-form/">Feedback</a> </li> <li class=""> <a class="btn btn-link " href="/service/complaints/">Make a complaint</a> </li> </ul> <ul class="list-unstyled list-social"> <li> <a href="https://www.instagram.com/virginmoney/" title="Virgin Money Instagram" target="_blank" rel="noopener"> <svg viewbox="0 0 32 32"> <title>Virgin Money Instagram</title> <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="/assets/svg/social.svg?v1.0#social-instagram-bg" class="svg__bg"/> <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="/assets/svg/social.svg?v1.0#soโ€ฆ
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 http-equiv="X-UA-Compatible" content="IE=edge"/> <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1.0"/> <!--evidon omnitag--> <script type="text/javascript" src="/cards/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-dtconfig="rid=RID_-234496544|rpid=-208642764|domain=virginmoney.com|reportUrl=/cards/rb_bf64125xgr|uam=1|app=8e10568a9231138b|ssc=1|coo=1|owasp=1|featureHash=ICA15789NPRTUVXfghqrux|srsr=20000|xb=*.analytics.google.com*^p.*evidon.*^p.*google-analytic.*^p.*ybg.egain.*^p.*cludo.*^p.*pinterest.*^p.*visualwebsiteoptimize.*^p.*linkedin.*^p.*demdex.*|rdnt=1|uxrgce=1|cuc=4agxwo8z|mel=100000|expw=1|dpvc=1|md=mdcc1=bdocument.referrer,mdcc2=bnavigator.userAgent,mdcc3=dutm_source,mdcc4=dutm_medium,mdcc5=dutm_campaign,mdcc6=dutm_term,mdcc7=dutm_content,mdcc8=bwindow.location.href,mdcc9=dproduct,mdcc10=chdtCode1|lastModification=1785157117101|tp=500,50,0|srbbv=2|agentUri=/cards/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-config="{&quot;revision&quot;:1785157117101,&quot;beaconUri&quot;:&quot;/cards/rb_bf64125xgr&quot;,&quot;agentUri&quot;:&quot;/cards/ruxitagentjs_ICA15789NPRTUVXโ€ฆ
MS08fail1 link wording(s) are used for more than one destination, so the same words point at different pages: โ€œbusinessโ€; 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: โ€œbusinessโ€; 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
"Business"
<a class="" href="/business/">Business</a>
"Business"
<a href="/business/service/sign-in/" class="ctasecondarynav-link"> Business </a>
https://uk.virginmoney.com/service/currency-converter 32.9% Very likely 8 out of 43
CheckResultEvidence
CT32warninglength 32
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 32
The evidence, taken from the page as served
The page's description, as served
32 characters
<meta name="description" content="Want to check the exchange rate?"/>
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 http-equiv="X-UA-Compatible" content="IE=edge"/> <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1.0"/> <!--evidon omnitag--> <script type="text/javascript" src="/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-dtconfig="rid=RID_1854420340|rpid=1573140680|domain=virginmoney.com|reportUrl=/rb_bf64125xgr|uam=1|app=8e10568a9231138b|ssc=1|coo=1|owasp=1|featureHash=ICA15789NPRTUVXfghqrux|srsr=20000|xb=*.analytics.google.com*^p.*evidon.*^p.*google-analytic.*^p.*ybg.egain.*^p.*cludo.*^p.*pinterest.*^p.*visualwebsiteoptimize.*^p.*linkedin.*^p.*demdex.*|rdnt=1|uxrgce=1|cuc=4agxwo8z|mel=100000|expw=1|dpvc=1|md=mdcc1=bdocument.referrer,mdcc2=bnavigator.userAgent,mdcc3=dutm_source,mdcc4=dutm_medium,mdcc5=dutm_campaign,mdcc6=dutm_term,mdcc7=dutm_content,mdcc8=bwindow.location.href,mdcc9=dproduct,mdcc10=chdtCode1|lastModification=1785157117101|tp=500,50,0|srbbv=2|agentUri=/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-config="{&quot;revision&quot;:1785157117101,&quot;beaconUri&quot;:&quot;/rb_bf64125xgr&quot;,&quot;agentUri&quot;:&quot;/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js&qโ€ฆ
CT04warningthe page shows the year 2026 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 2026 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 http-equiv="X-UA-Compatible" content="IE=edge"/> <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1.0"/> <!--evidon omnitag--> <script type="text/javascript" src="/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-dtconfig="rid=RID_1854420340|rpid=1573140680|domain=virginmoney.com|reportUrl=/rb_bf64125xgr|uam=1|app=8e10568a9231138b|ssc=1|coo=1|owasp=1|featureHash=ICA15789NPRTUVXfghqrux|srsr=20000|xb=*.analytics.google.com*^p.*evidon.*^p.*google-analytic.*^p.*ybg.egain.*^p.*cludo.*^p.*pinterest.*^p.*visualwebsiteoptimize.*^p.*linkedin.*^p.*demdex.*|rdnt=1|uxrgce=1|cuc=4agxwo8z|mel=100000|expw=1|dpvc=1|md=mdcc1=bdocument.referrer,mdcc2=bnavigator.userAgent,mdcc3=dutm_source,mdcc4=dutm_medium,mdcc5=dutm_campaign,mdcc6=dutm_term,mdcc7=dutm_content,mdcc8=bwindow.location.href,mdcc9=dproduct,mdcc10=chdtCode1|lastModification=1785157117101|tp=500,50,0|srbbv=2|agentUri=/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-config="{&quot;revision&quot;:1785157117101,&quot;beaconUri&quot;:&quot;/rb_bf64125xgr&quot;,&quot;agentUri&quot;:&quot;/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js&qโ€ฆ
CT35warningthe page carries no copyright line in the content as served, so there is nothing on it to date it by, and an absent copyright line is one of the marks of a copied template
What we check
The copyright line at the foot of the page, and the year it states.
What good looks like
The copyright line states the current year.
Why it matters
A copyright year in the past reads as a page nobody has attended to, and it is the usual sign of a template copied from somewhere else. Either way an AI treats the content as stale and can present old material as current.
What we found on this page
the page carries no copyright line in the content as served, so there is nothing on it to date it by, and an absent copyright line is one of the marks of a copied template
The evidence, taken from the page as served
The foot of this page, as served

The foot of the page was read for a copyright line.

<footer class="container footer pattern pattern--bottom bg-dark-2 stroke-primary "> <div class="row"> <div class="col-sm-6 col-md-3"> <h2 class="h3">Get in touch</h2> <ul class="list-unstyled pb-0 "> <li class=""> <a class="btn btn-link " href="/contact/">Contact us</a> </li> <li class=""> <a class="btn btn-link " href="/service/support-hub/">Help and support</a> </li> <li class=""> <a class="btn btn-link " href="/service/financial-wellbeing/">Financial wellbeing hub</a> </li> <li class=""> <a class="btn btn-link " href="/service/ways-to-bank/">Ways to bank</a> </li> <li class=""> <a class="btn btn-link " href="/vmforms/feedback-form/">Feedback</a> </li> <li class=""> <a class="btn btn-link " href="/service/complaints/">Make a complaint</a> </li> </ul> <ul class="list-unstyled list-social"> <li> <a href="https://www.instagram.com/virginmoney/" title="Virgin Money Instagram" target="_blank" rel="noopener"> <svg viewbox="0 0 32 32"> <title>Virgin Money Instagram</title> <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="/assets/svg/social.svg?v1.0#social-instagram-bg" class="svg__bg"/> <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="/assets/svg/social.svg?v1.0#soโ€ฆ
CT13warningmain content is 16% 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 16% 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 content813 characters
All the text on the page4793 characters
The page's own share of it16%
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 http-equiv="X-UA-Compatible" content="IE=edge"/> <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1.0"/> <!--evidon omnitag--> <script type="text/javascript" src="/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-dtconfig="rid=RID_1854420340|rpid=1573140680|domain=virginmoney.com|reportUrl=/rb_bf64125xgr|uam=1|app=8e10568a9231138b|ssc=1|coo=1|owasp=1|featureHash=ICA15789NPRTUVXfghqrux|srsr=20000|xb=*.analytics.google.com*^p.*evidon.*^p.*google-analytic.*^p.*ybg.egain.*^p.*cludo.*^p.*pinterest.*^p.*visualwebsiteoptimize.*^p.*linkedin.*^p.*demdex.*|rdnt=1|uxrgce=1|cuc=4agxwo8z|mel=100000|expw=1|dpvc=1|md=mdcc1=bdocument.referrer,mdcc2=bnavigator.userAgent,mdcc3=dutm_source,mdcc4=dutm_medium,mdcc5=dutm_campaign,mdcc6=dutm_term,mdcc7=dutm_content,mdcc8=bwindow.location.href,mdcc9=dproduct,mdcc10=chdtCode1|lastModification=1785157117101|tp=500,50,0|srbbv=2|agentUri=/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-config="{&quot;revision&quot;:1785157117101,&quot;beaconUri&quot;:&quot;/rb_bf64125xgr&quot;,&quot;agentUri&quot;:&quot;/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js&qโ€ฆ
MS08fail1 link wording(s) are used for more than one destination, so the same words point at different pages: โ€œbusinessโ€; 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: โ€œbusinessโ€; 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
"Business"
<a class="" href="/business/">Business</a>
"Business"
<a href="/business/service/sign-in/" class="ctasecondarynav-link"> Business </a>
CT34failthe page's own words are thin: 355 of its 402 words are shared navigation and footer, so it reads as 86% 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: 355 of its 402 words are shared navigation and footer, so it reads as 86% 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
uk.virginmoney.com/service/currency-converter47 of 40288%uk.virginmoney.com/service/sign-in86%
https://uk.virginmoney.com/cards/products/vaa-cards 56.5% Likely 6 out of 42
CheckResultEvidence
CT32warninglength 184
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 184
The evidence, taken from the page as served
The page's description, as served
184 characters
<meta name="description" content="Earn thousands of welcome bonus points when you take out a Virgin Atlantic Credit Card. The airline credit card with travel rewards. Swap points for flights, upgrades and so much more."/>
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 http-equiv="X-UA-Compatible" content="IE=edge"/> <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1.0"/> <!--evidon omnitag--> <script type="text/javascript" src="/cards/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-dtconfig="rid=RID_1895815886|rpid=199892921|domain=virginmoney.com|reportUrl=/cards/rb_bf64125xgr|uam=1|app=8e10568a9231138b|ssc=1|coo=1|owasp=1|featureHash=ICA15789NPRTUVXfghqrux|srsr=20000|xb=*.analytics.google.com*^p.*evidon.*^p.*google-analytic.*^p.*ybg.egain.*^p.*cludo.*^p.*pinterest.*^p.*visualwebsiteoptimize.*^p.*linkedin.*^p.*demdex.*|rdnt=1|uxrgce=1|cuc=4agxwo8z|mel=100000|expw=1|dpvc=1|md=mdcc1=bdocument.referrer,mdcc2=bnavigator.userAgent,mdcc3=dutm_source,mdcc4=dutm_medium,mdcc5=dutm_campaign,mdcc6=dutm_term,mdcc7=dutm_content,mdcc8=bwindow.location.href,mdcc9=dproduct,mdcc10=chdtCode1|lastModification=1785157117101|tp=500,50,0|srbbv=2|agentUri=/cards/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-config="{&quot;revision&quot;:1785157117101,&quot;beaconUri&quot;:&quot;/cards/rb_bf64125xgr&quot;,&quot;agentUri&quot;:&quot;/cards/ruxitagentjs_ICA15789NPRTUVXfโ€ฆ
CT04warningthe page carries no date, so there is nothing on it saying how current its content is
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 carries no date, so there is nothing on it saying how current its content is
The evidence, taken from the page as served
The head of this page, as served

The head of the page and the page's own text were read for a date.

<head> <meta charset="utf-8"/> <meta http-equiv="X-UA-Compatible" content="IE=edge"/> <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1.0"/> <!--evidon omnitag--> <script type="text/javascript" src="/cards/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-dtconfig="rid=RID_1895815886|rpid=199892921|domain=virginmoney.com|reportUrl=/cards/rb_bf64125xgr|uam=1|app=8e10568a9231138b|ssc=1|coo=1|owasp=1|featureHash=ICA15789NPRTUVXfghqrux|srsr=20000|xb=*.analytics.google.com*^p.*evidon.*^p.*google-analytic.*^p.*ybg.egain.*^p.*cludo.*^p.*pinterest.*^p.*visualwebsiteoptimize.*^p.*linkedin.*^p.*demdex.*|rdnt=1|uxrgce=1|cuc=4agxwo8z|mel=100000|expw=1|dpvc=1|md=mdcc1=bdocument.referrer,mdcc2=bnavigator.userAgent,mdcc3=dutm_source,mdcc4=dutm_medium,mdcc5=dutm_campaign,mdcc6=dutm_term,mdcc7=dutm_content,mdcc8=bwindow.location.href,mdcc9=dproduct,mdcc10=chdtCode1|lastModification=1785157117101|tp=500,50,0|srbbv=2|agentUri=/cards/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-config="{&quot;revision&quot;:1785157117101,&quot;beaconUri&quot;:&quot;/cards/rb_bf64125xgr&quot;,&quot;agentUri&quot;:&quot;/cards/ruxitagentjs_ICA15789NPRTUVXfโ€ฆ
CT35warningthe page carries no copyright line in the content as served, so there is nothing on it to date it by, and an absent copyright line is one of the marks of a copied template
What we check
The copyright line at the foot of the page, and the year it states.
What good looks like
The copyright line states the current year.
Why it matters
A copyright year in the past reads as a page nobody has attended to, and it is the usual sign of a template copied from somewhere else. Either way an AI treats the content as stale and can present old material as current.
What we found on this page
the page carries no copyright line in the content as served, so there is nothing on it to date it by, and an absent copyright line is one of the marks of a copied template
The evidence, taken from the page as served
The foot of this page, as served

The foot of the page was read for a copyright line.

<footer class="container footer pattern pattern--bottom bg-dark-2 stroke-primary "> <div class="row"> <div class="col-sm-6 col-md-3"> <h2 class="h3">Get in touch</h2> <ul class="list-unstyled pb-0 "> <li class=""> <a class="btn btn-link " href="/contact/">Contact us</a> </li> <li class=""> <a class="btn btn-link " href="/service/support-hub/">Help and support</a> </li> <li class=""> <a class="btn btn-link " href="/service/financial-wellbeing/">Financial wellbeing hub</a> </li> <li class=""> <a class="btn btn-link " href="/service/ways-to-bank/">Ways to bank</a> </li> <li class=""> <a class="btn btn-link " href="/vmforms/feedback-form/">Feedback</a> </li> <li class=""> <a class="btn btn-link " href="/service/complaints/">Make a complaint</a> </li> </ul> <ul class="list-unstyled list-social"> <li> <a href="https://www.instagram.com/virginmoney/" title="Virgin Money Instagram" target="_blank" rel="noopener"> <svg viewbox="0 0 32 32"> <title>Virgin Money Instagram</title> <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="/assets/svg/social.svg?v1.0#social-instagram-bg" class="svg__bg"/> <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="/assets/svg/social.svg?v1.0#soโ€ฆ
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 http-equiv="X-UA-Compatible" content="IE=edge"/> <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1.0"/> <!--evidon omnitag--> <script type="text/javascript" src="/cards/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-dtconfig="rid=RID_1895815886|rpid=199892921|domain=virginmoney.com|reportUrl=/cards/rb_bf64125xgr|uam=1|app=8e10568a9231138b|ssc=1|coo=1|owasp=1|featureHash=ICA15789NPRTUVXfghqrux|srsr=20000|xb=*.analytics.google.com*^p.*evidon.*^p.*google-analytic.*^p.*ybg.egain.*^p.*cludo.*^p.*pinterest.*^p.*visualwebsiteoptimize.*^p.*linkedin.*^p.*demdex.*|rdnt=1|uxrgce=1|cuc=4agxwo8z|mel=100000|expw=1|dpvc=1|md=mdcc1=bdocument.referrer,mdcc2=bnavigator.userAgent,mdcc3=dutm_source,mdcc4=dutm_medium,mdcc5=dutm_campaign,mdcc6=dutm_term,mdcc7=dutm_content,mdcc8=bwindow.location.href,mdcc9=dproduct,mdcc10=chdtCode1|lastModification=1785157117101|tp=500,50,0|srbbv=2|agentUri=/cards/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-config="{&quot;revision&quot;:1785157117101,&quot;beaconUri&quot;:&quot;/cards/rb_bf64125xgr&quot;,&quot;agentUri&quot;:&quot;/cards/ruxitagentjs_ICA15789NPRTUVXfโ€ฆ
MS08fail4 link wording(s) are used for more than one destination, so the same words point at different pages: โ€œbusinessโ€, โ€œcheck your eligibilityโ€, โ€œterms applyโ€ and 1 more; 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
4 link wording(s) are used for more than one destination, so the same words point at different pages: โ€œbusinessโ€, โ€œcheck your eligibilityโ€, โ€œterms applyโ€ and 1 more; 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
"Business"
<a class="" href="/business/">Business</a>
"Business"
<a href="/business/service/sign-in/" class="ctasecondarynav-link"> Business </a>
"Check your eligibility"
<a href="/cards/cardchecker/intro-vaa/" class="btn btn-primary text-center d-block">Check your eligibility</a>
"Check your eligibility"
<a href="/cards/cardchecker/intro-vaa/" class="btn btn-primary" data-icon-right=""> Check your eligibility </a>
"Terms apply"
<a href="/cards/vaa-cards/reward-plus-terms/" target="_blank" xmlns="http://www.w3.org/1999/xhtml">Terms apply</a>
"View all rates and fees in the summary b"
<a href="/virgin/assets/pdf/VM48924.pdf" class="pt-0 border-0 pb-0" target="_blank" data-icon="/assets/svg/rebrand-ui.svg#pdf" data-icon-left="">View all rates and fees in the summary box (PDF, 35Kb)<span class="visually-hidden"> Link opens in a new window</span></a>
"Check your eligibility"
<a href="/cards/cardchecker/intro-vaa?product=reward-plus-card&amp;productTier=28" class="btn btn-primary">Check your eligibility</a>
"Terms apply"
<a href="/cards/vaa-cards/reward-terms/" target="_blank" xmlns="http://www.w3.org/1999/xhtml">Terms apply</a>
"View all rates and fees in the summary b"
<a href="/virgin/assets/pdf/VM48925.pdf" class="pt-0 border-0 pb-0" target="_blank" data-icon="/assets/svg/rebrand-ui.svg#pdf" data-icon-left="">View all rates and fees in the summary box (PDF, 35Kb)<span class="visually-hidden"> Link opens in a new window</span></a>
"Check your eligibility"
<a href="/cards/cardchecker/intro-vaa?product=reward-card&amp;productTier=28" class="btn btn-primary">Check your eligibility</a>
https://uk.virginmoney.com/cards/products/everyday-cashback-cards 56.6% Likely 5 out of 42
CheckResultEvidence
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 http-equiv="X-UA-Compatible" content="IE=edge"/> <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1.0"/> <!--evidon omnitag--> <script type="text/javascript" src="/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-dtconfig="rid=RID_218136574|rpid=1199444780|domain=virginmoney.com|reportUrl=/rb_bf64125xgr|uam=1|app=8e10568a9231138b|ssc=1|coo=1|owasp=1|featureHash=ICA15789NPRTUVXfghqrux|srsr=20000|xb=*.analytics.google.com*^p.*evidon.*^p.*google-analytic.*^p.*ybg.egain.*^p.*cludo.*^p.*pinterest.*^p.*visualwebsiteoptimize.*^p.*linkedin.*^p.*demdex.*|rdnt=1|uxrgce=1|cuc=4agxwo8z|mel=100000|expw=1|dpvc=1|md=mdcc1=bdocument.referrer,mdcc2=bnavigator.userAgent,mdcc3=dutm_source,mdcc4=dutm_medium,mdcc5=dutm_campaign,mdcc6=dutm_term,mdcc7=dutm_content,mdcc8=bwindow.location.href,mdcc9=dproduct,mdcc10=chdtCode1|lastModification=1785157117101|tp=500,50,0|srbbv=2|agentUri=/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-config="{&quot;revision&quot;:1785157117101,&quot;beaconUri&quot;:&quot;/rb_bf64125xgr&quot;,&quot;agentUri&quot;:&quot;/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js&quโ€ฆ
CT04warningthe page carries no date, so there is nothing on it saying how current its content is
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 carries no date, so there is nothing on it saying how current its content is
The evidence, taken from the page as served
The head of this page, as served

The head of the page and the page's own text were read for a date.

<head> <meta charset="utf-8"/> <meta http-equiv="X-UA-Compatible" content="IE=edge"/> <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1.0"/> <!--evidon omnitag--> <script type="text/javascript" src="/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-dtconfig="rid=RID_218136574|rpid=1199444780|domain=virginmoney.com|reportUrl=/rb_bf64125xgr|uam=1|app=8e10568a9231138b|ssc=1|coo=1|owasp=1|featureHash=ICA15789NPRTUVXfghqrux|srsr=20000|xb=*.analytics.google.com*^p.*evidon.*^p.*google-analytic.*^p.*ybg.egain.*^p.*cludo.*^p.*pinterest.*^p.*visualwebsiteoptimize.*^p.*linkedin.*^p.*demdex.*|rdnt=1|uxrgce=1|cuc=4agxwo8z|mel=100000|expw=1|dpvc=1|md=mdcc1=bdocument.referrer,mdcc2=bnavigator.userAgent,mdcc3=dutm_source,mdcc4=dutm_medium,mdcc5=dutm_campaign,mdcc6=dutm_term,mdcc7=dutm_content,mdcc8=bwindow.location.href,mdcc9=dproduct,mdcc10=chdtCode1|lastModification=1785157117101|tp=500,50,0|srbbv=2|agentUri=/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-config="{&quot;revision&quot;:1785157117101,&quot;beaconUri&quot;:&quot;/rb_bf64125xgr&quot;,&quot;agentUri&quot;:&quot;/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js&quโ€ฆ
CT35warningthe page carries no copyright line in the content as served, so there is nothing on it to date it by, and an absent copyright line is one of the marks of a copied template
What we check
The copyright line at the foot of the page, and the year it states.
What good looks like
The copyright line states the current year.
Why it matters
A copyright year in the past reads as a page nobody has attended to, and it is the usual sign of a template copied from somewhere else. Either way an AI treats the content as stale and can present old material as current.
What we found on this page
the page carries no copyright line in the content as served, so there is nothing on it to date it by, and an absent copyright line is one of the marks of a copied template
The evidence, taken from the page as served
The foot of this page, as served

The foot of the page was read for a copyright line.

<footer class="container footer pattern pattern--bottom bg-dark-2 stroke-primary "> <div class="row"> <div class="col-sm-6 col-md-3"> <h2 class="h3">Get in touch</h2> <ul class="list-unstyled pb-0 "> <li class=""> <a class="btn btn-link " href="/contact/">Contact us</a> </li> <li class=""> <a class="btn btn-link " href="/service/support-hub/">Help and support</a> </li> <li class=""> <a class="btn btn-link " href="/service/financial-wellbeing/">Financial wellbeing hub</a> </li> <li class=""> <a class="btn btn-link " href="/service/ways-to-bank/">Ways to bank</a> </li> <li class=""> <a class="btn btn-link " href="/vmforms/feedback-form/">Feedback</a> </li> <li class=""> <a class="btn btn-link " href="/service/complaints/">Make a complaint</a> </li> </ul> <ul class="list-unstyled list-social"> <li> <a href="https://www.instagram.com/virginmoney/" title="Virgin Money Instagram" target="_blank" rel="noopener"> <svg viewbox="0 0 32 32"> <title>Virgin Money Instagram</title> <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="/assets/svg/social.svg?v1.0#social-instagram-bg" class="svg__bg"/> <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="/assets/svg/social.svg?v1.0#soโ€ฆ
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 http-equiv="X-UA-Compatible" content="IE=edge"/> <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1.0"/> <!--evidon omnitag--> <script type="text/javascript" src="/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-dtconfig="rid=RID_218136574|rpid=1199444780|domain=virginmoney.com|reportUrl=/rb_bf64125xgr|uam=1|app=8e10568a9231138b|ssc=1|coo=1|owasp=1|featureHash=ICA15789NPRTUVXfghqrux|srsr=20000|xb=*.analytics.google.com*^p.*evidon.*^p.*google-analytic.*^p.*ybg.egain.*^p.*cludo.*^p.*pinterest.*^p.*visualwebsiteoptimize.*^p.*linkedin.*^p.*demdex.*|rdnt=1|uxrgce=1|cuc=4agxwo8z|mel=100000|expw=1|dpvc=1|md=mdcc1=bdocument.referrer,mdcc2=bnavigator.userAgent,mdcc3=dutm_source,mdcc4=dutm_medium,mdcc5=dutm_campaign,mdcc6=dutm_term,mdcc7=dutm_content,mdcc8=bwindow.location.href,mdcc9=dproduct,mdcc10=chdtCode1|lastModification=1785157117101|tp=500,50,0|srbbv=2|agentUri=/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-config="{&quot;revision&quot;:1785157117101,&quot;beaconUri&quot;:&quot;/rb_bf64125xgr&quot;,&quot;agentUri&quot;:&quot;/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js&quโ€ฆ
MS08fail1 link wording(s) are used for more than one destination, so the same words point at different pages: โ€œbusinessโ€; 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: โ€œbusinessโ€; 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
"Business"
<a class="" href="/business/">Business</a>
"Business"
<a href="/business/service/sign-in/" class="ctasecondarynav-link"> Business </a>
https://uk.virginmoney.com/vmforms/loans/direct-debit-request 33.2% Very likely 7 out of 44
CheckResultEvidence
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 http-equiv="X-UA-Compatible" content="IE=edge"/> <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1.0"/> <!--evidon omnitag--> <script type="text/javascript" src="/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-dtconfig="rid=RID_-58483355|rpid=1718948406|domain=virginmoney.com|reportUrl=/rb_bf64125xgr|uam=1|app=8e10568a9231138b|ssc=1|coo=1|owasp=1|featureHash=ICA15789NPRTUVXfghqrux|srsr=20000|xb=*.analytics.google.com*^p.*evidon.*^p.*google-analytic.*^p.*ybg.egain.*^p.*cludo.*^p.*pinterest.*^p.*visualwebsiteoptimize.*^p.*linkedin.*^p.*demdex.*|rdnt=1|uxrgce=1|cuc=4agxwo8z|mel=100000|expw=1|dpvc=1|md=mdcc1=bdocument.referrer,mdcc2=bnavigator.userAgent,mdcc3=dutm_source,mdcc4=dutm_medium,mdcc5=dutm_campaign,mdcc6=dutm_term,mdcc7=dutm_content,mdcc8=bwindow.location.href,mdcc9=dproduct,mdcc10=chdtCode1|lastModification=1785157117101|tp=500,50,0|srbbv=2|agentUri=/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-config="{&quot;revision&quot;:1785157117101,&quot;beaconUri&quot;:&quot;/rb_bf64125xgr&quot;,&quot;agentUri&quot;:&quot;/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js&quโ€ฆ
CT04warningthe page carries no date, so there is nothing on it saying how current its content is
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 carries no date, so there is nothing on it saying how current its content is
The evidence, taken from the page as served
The head of this page, as served

The head of the page and the page's own text were read for a date.

<head> <meta charset="utf-8"/> <meta http-equiv="X-UA-Compatible" content="IE=edge"/> <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1.0"/> <!--evidon omnitag--> <script type="text/javascript" src="/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-dtconfig="rid=RID_-58483355|rpid=1718948406|domain=virginmoney.com|reportUrl=/rb_bf64125xgr|uam=1|app=8e10568a9231138b|ssc=1|coo=1|owasp=1|featureHash=ICA15789NPRTUVXfghqrux|srsr=20000|xb=*.analytics.google.com*^p.*evidon.*^p.*google-analytic.*^p.*ybg.egain.*^p.*cludo.*^p.*pinterest.*^p.*visualwebsiteoptimize.*^p.*linkedin.*^p.*demdex.*|rdnt=1|uxrgce=1|cuc=4agxwo8z|mel=100000|expw=1|dpvc=1|md=mdcc1=bdocument.referrer,mdcc2=bnavigator.userAgent,mdcc3=dutm_source,mdcc4=dutm_medium,mdcc5=dutm_campaign,mdcc6=dutm_term,mdcc7=dutm_content,mdcc8=bwindow.location.href,mdcc9=dproduct,mdcc10=chdtCode1|lastModification=1785157117101|tp=500,50,0|srbbv=2|agentUri=/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-config="{&quot;revision&quot;:1785157117101,&quot;beaconUri&quot;:&quot;/rb_bf64125xgr&quot;,&quot;agentUri&quot;:&quot;/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js&quโ€ฆ
CT35warningthe page carries no copyright line in the content as served, so there is nothing on it to date it by, and an absent copyright line is one of the marks of a copied template
What we check
The copyright line at the foot of the page, and the year it states.
What good looks like
The copyright line states the current year.
Why it matters
A copyright year in the past reads as a page nobody has attended to, and it is the usual sign of a template copied from somewhere else. Either way an AI treats the content as stale and can present old material as current.
What we found on this page
the page carries no copyright line in the content as served, so there is nothing on it to date it by, and an absent copyright line is one of the marks of a copied template
The evidence, taken from the page as served
The foot of this page, as served

The foot of the page was read for a copyright line.

<footer class="container footer pattern pattern--bottom bg-dark-2 stroke-primary "> <div class="row"> <div class="col-sm-6 col-md-3"> <h2 class="h3">Get in touch</h2> <ul class="list-unstyled pb-0 "> <li class=""> <a class="btn btn-link " href="/contact/">Contact us</a> </li> <li class=""> <a class="btn btn-link " href="/service/support-hub/">Help and support</a> </li> <li class=""> <a class="btn btn-link " href="/service/financial-wellbeing/">Financial wellbeing hub</a> </li> <li class=""> <a class="btn btn-link " href="/service/ways-to-bank/">Ways to bank</a> </li> <li class=""> <a class="btn btn-link " href="/vmforms/feedback-form/">Feedback</a> </li> <li class=""> <a class="btn btn-link " href="/service/complaints/">Make a complaint</a> </li> </ul> <ul class="list-unstyled list-social"> <li> <a href="https://www.instagram.com/virginmoney/" title="Virgin Money Instagram" target="_blank" rel="noopener"> <svg viewbox="0 0 32 32"> <title>Virgin Money Instagram</title> <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="/assets/svg/social.svg?v1.0#social-instagram-bg" class="svg__bg"/> <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="/assets/svg/social.svg?v1.0#soโ€ฆ
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 http-equiv="X-UA-Compatible" content="IE=edge"/> <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1.0"/> <!--evidon omnitag--> <script type="text/javascript" src="/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-dtconfig="rid=RID_-58483355|rpid=1718948406|domain=virginmoney.com|reportUrl=/rb_bf64125xgr|uam=1|app=8e10568a9231138b|ssc=1|coo=1|owasp=1|featureHash=ICA15789NPRTUVXfghqrux|srsr=20000|xb=*.analytics.google.com*^p.*evidon.*^p.*google-analytic.*^p.*ybg.egain.*^p.*cludo.*^p.*pinterest.*^p.*visualwebsiteoptimize.*^p.*linkedin.*^p.*demdex.*|rdnt=1|uxrgce=1|cuc=4agxwo8z|mel=100000|expw=1|dpvc=1|md=mdcc1=bdocument.referrer,mdcc2=bnavigator.userAgent,mdcc3=dutm_source,mdcc4=dutm_medium,mdcc5=dutm_campaign,mdcc6=dutm_term,mdcc7=dutm_content,mdcc8=bwindow.location.href,mdcc9=dproduct,mdcc10=chdtCode1|lastModification=1785157117101|tp=500,50,0|srbbv=2|agentUri=/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-config="{&quot;revision&quot;:1785157117101,&quot;beaconUri&quot;:&quot;/rb_bf64125xgr&quot;,&quot;agentUri&quot;:&quot;/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js&quโ€ฆ
MS08fail1 link wording(s) are used for more than one destination, so the same words point at different pages: โ€œbusinessโ€; 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: โ€œbusinessโ€; 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
"Business"
<a class="" href="/business/">Business</a>
"Business"
<a href="/business/service/sign-in/" class="ctasecondarynav-link"> Business </a>
MS09warninglink wording that does not say where it leads: โ€œclick hereโ€
What we check
Link wording that names no destination, phrases such as click here, read more and details.
What good looks like
Link wording names its destination, rather than saying click here or read more.
Why it matters
The destination is stated nowhere on the link itself, so the choice rests entirely on the text around it.
What we found on this page
link wording that does not say where it leads: โ€œclick hereโ€
The evidence, taken from the page as served
The links whose text names no destination, as served
"click here"
<a href="/business/finance/">click here</a>
CT34failthe page's own words are thin: 317 of its 383 words are shared navigation and footer, so it reads as 73% 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: 317 of its 383 words are shared navigation and footer, so it reads as 73% 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
uk.virginmoney.com/vmforms/loans/direct-debit-request66 of 38383%uk.virginmoney.com/service/sign-in73%
https://uk.virginmoney.com/mortgages 56.6% Likely 5 out of 42
CheckResultEvidence
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 http-equiv="X-UA-Compatible" content="IE=edge"/> <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1.0"/> <!--evidon omnitag--> <script type="text/javascript" src="/mortgages/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-dtconfig="rid=RID_-1831771975|rpid=-1702342509|domain=virginmoney.com|reportUrl=/mortgages/rb_bf64125xgr|uam=1|app=8e10568a9231138b|ssc=1|coo=1|owasp=1|featureHash=ICA15789NPRTUVXfghqrux|srsr=20000|xb=*.analytics.google.com*^p.*evidon.*^p.*google-analytic.*^p.*ybg.egain.*^p.*cludo.*^p.*pinterest.*^p.*visualwebsiteoptimize.*^p.*linkedin.*^p.*demdex.*|rdnt=1|uxrgce=1|cuc=4agxwo8z|mel=100000|expw=1|dpvc=1|md=mdcc1=bdocument.referrer,mdcc2=bnavigator.userAgent,mdcc3=dutm_source,mdcc4=dutm_medium,mdcc5=dutm_campaign,mdcc6=dutm_term,mdcc7=dutm_content,mdcc8=bwindow.location.href,mdcc9=dproduct,mdcc10=chdtCode1|lastModification=1785157117101|tp=500,50,0|srbbv=2|agentUri=/mortgages/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-config="{&quot;revision&quot;:1785157117101,&quot;beaconUri&quot;:&quot;/mortgages/rb_bf64125xgr&quot;,&quot;agentUri&quot;:&quot;/mortgages/ruxitaโ€ฆ
CT04warningthe page shows the year 2023 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 2023 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 http-equiv="X-UA-Compatible" content="IE=edge"/> <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1.0"/> <!--evidon omnitag--> <script type="text/javascript" src="/mortgages/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-dtconfig="rid=RID_-1831771975|rpid=-1702342509|domain=virginmoney.com|reportUrl=/mortgages/rb_bf64125xgr|uam=1|app=8e10568a9231138b|ssc=1|coo=1|owasp=1|featureHash=ICA15789NPRTUVXfghqrux|srsr=20000|xb=*.analytics.google.com*^p.*evidon.*^p.*google-analytic.*^p.*ybg.egain.*^p.*cludo.*^p.*pinterest.*^p.*visualwebsiteoptimize.*^p.*linkedin.*^p.*demdex.*|rdnt=1|uxrgce=1|cuc=4agxwo8z|mel=100000|expw=1|dpvc=1|md=mdcc1=bdocument.referrer,mdcc2=bnavigator.userAgent,mdcc3=dutm_source,mdcc4=dutm_medium,mdcc5=dutm_campaign,mdcc6=dutm_term,mdcc7=dutm_content,mdcc8=bwindow.location.href,mdcc9=dproduct,mdcc10=chdtCode1|lastModification=1785157117101|tp=500,50,0|srbbv=2|agentUri=/mortgages/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-config="{&quot;revision&quot;:1785157117101,&quot;beaconUri&quot;:&quot;/mortgages/rb_bf64125xgr&quot;,&quot;agentUri&quot;:&quot;/mortgages/ruxitaโ€ฆ
CT35warningthe page carries no copyright line in the content as served, so there is nothing on it to date it by, and an absent copyright line is one of the marks of a copied template
What we check
The copyright line at the foot of the page, and the year it states.
What good looks like
The copyright line states the current year.
Why it matters
A copyright year in the past reads as a page nobody has attended to, and it is the usual sign of a template copied from somewhere else. Either way an AI treats the content as stale and can present old material as current.
What we found on this page
the page carries no copyright line in the content as served, so there is nothing on it to date it by, and an absent copyright line is one of the marks of a copied template
The evidence, taken from the page as served
The foot of this page, as served

The foot of the page was read for a copyright line.

<footer class="container footer pattern pattern--bottom bg-dark-2 stroke-primary "> <div class="row"> <div class="col-sm-6 col-md-3"> <h2 class="h3">Get in touch</h2> <ul class="list-unstyled pb-0 "> <li class=""> <a class="btn btn-link " href="/contact/">Contact us</a> </li> <li class=""> <a class="btn btn-link " href="/service/support-hub/">Help and support</a> </li> <li class=""> <a class="btn btn-link " href="/service/financial-wellbeing/">Financial wellbeing hub</a> </li> <li class=""> <a class="btn btn-link " href="/service/ways-to-bank/">Ways to bank</a> </li> <li class=""> <a class="btn btn-link " href="/vmforms/feedback-form/">Feedback</a> </li> <li class=""> <a class="btn btn-link " href="/service/complaints/">Make a complaint</a> </li> </ul> <ul class="list-unstyled list-social"> <li> <a href="https://www.instagram.com/virginmoney/" title="Virgin Money Instagram" target="_blank" rel="noopener"> <svg viewbox="0 0 32 32"> <title>Virgin Money Instagram</title> <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="/assets/svg/social.svg?v1.0#social-instagram-bg" class="svg__bg"/> <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="/assets/svg/social.svg?v1.0#soโ€ฆ
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 http-equiv="X-UA-Compatible" content="IE=edge"/> <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1.0"/> <!--evidon omnitag--> <script type="text/javascript" src="/mortgages/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-dtconfig="rid=RID_-1831771975|rpid=-1702342509|domain=virginmoney.com|reportUrl=/mortgages/rb_bf64125xgr|uam=1|app=8e10568a9231138b|ssc=1|coo=1|owasp=1|featureHash=ICA15789NPRTUVXfghqrux|srsr=20000|xb=*.analytics.google.com*^p.*evidon.*^p.*google-analytic.*^p.*ybg.egain.*^p.*cludo.*^p.*pinterest.*^p.*visualwebsiteoptimize.*^p.*linkedin.*^p.*demdex.*|rdnt=1|uxrgce=1|cuc=4agxwo8z|mel=100000|expw=1|dpvc=1|md=mdcc1=bdocument.referrer,mdcc2=bnavigator.userAgent,mdcc3=dutm_source,mdcc4=dutm_medium,mdcc5=dutm_campaign,mdcc6=dutm_term,mdcc7=dutm_content,mdcc8=bwindow.location.href,mdcc9=dproduct,mdcc10=chdtCode1|lastModification=1785157117101|tp=500,50,0|srbbv=2|agentUri=/mortgages/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-config="{&quot;revision&quot;:1785157117101,&quot;beaconUri&quot;:&quot;/mortgages/rb_bf64125xgr&quot;,&quot;agentUri&quot;:&quot;/mortgages/ruxitaโ€ฆ
MS08fail1 link wording(s) are used for more than one destination, so the same words point at different pages: โ€œbusinessโ€; 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: โ€œbusinessโ€; 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
"Business"
<a class="" href="/business/">Business</a>
"Business"
<a href="/business/service/sign-in/" class="ctasecondarynav-link"> Business </a>
https://uk.virginmoney.com/mortgages/find-a-mortgage 33.6% Very likely 6 out of 43
CheckResultEvidence
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 http-equiv="X-UA-Compatible" content="IE=edge"/> <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1.0"/> <!--evidon omnitag--> <script type="text/javascript" src="/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-dtconfig="rid=RID_-2987700|rpid=-1507862250|domain=virginmoney.com|reportUrl=/rb_bf64125xgr|uam=1|app=8e10568a9231138b|ssc=1|coo=1|owasp=1|featureHash=ICA15789NPRTUVXfghqrux|srsr=20000|xb=*.analytics.google.com*^p.*evidon.*^p.*google-analytic.*^p.*ybg.egain.*^p.*cludo.*^p.*pinterest.*^p.*visualwebsiteoptimize.*^p.*linkedin.*^p.*demdex.*|rdnt=1|uxrgce=1|cuc=4agxwo8z|mel=100000|expw=1|dpvc=1|md=mdcc1=bdocument.referrer,mdcc2=bnavigator.userAgent,mdcc3=dutm_source,mdcc4=dutm_medium,mdcc5=dutm_campaign,mdcc6=dutm_term,mdcc7=dutm_content,mdcc8=bwindow.location.href,mdcc9=dproduct,mdcc10=chdtCode1|lastModification=1785157117101|tp=500,50,0|srbbv=2|agentUri=/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-config="{&quot;revision&quot;:1785157117101,&quot;beaconUri&quot;:&quot;/rb_bf64125xgr&quot;,&quot;agentUri&quot;:&quot;/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js&quโ€ฆ
CT04warningthe page carries no date, so there is nothing on it saying how current its content is
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 carries no date, so there is nothing on it saying how current its content is
The evidence, taken from the page as served
The head of this page, as served

The head of the page and the page's own text were read for a date.

<head> <meta charset="utf-8"/> <meta http-equiv="X-UA-Compatible" content="IE=edge"/> <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1.0"/> <!--evidon omnitag--> <script type="text/javascript" src="/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-dtconfig="rid=RID_-2987700|rpid=-1507862250|domain=virginmoney.com|reportUrl=/rb_bf64125xgr|uam=1|app=8e10568a9231138b|ssc=1|coo=1|owasp=1|featureHash=ICA15789NPRTUVXfghqrux|srsr=20000|xb=*.analytics.google.com*^p.*evidon.*^p.*google-analytic.*^p.*ybg.egain.*^p.*cludo.*^p.*pinterest.*^p.*visualwebsiteoptimize.*^p.*linkedin.*^p.*demdex.*|rdnt=1|uxrgce=1|cuc=4agxwo8z|mel=100000|expw=1|dpvc=1|md=mdcc1=bdocument.referrer,mdcc2=bnavigator.userAgent,mdcc3=dutm_source,mdcc4=dutm_medium,mdcc5=dutm_campaign,mdcc6=dutm_term,mdcc7=dutm_content,mdcc8=bwindow.location.href,mdcc9=dproduct,mdcc10=chdtCode1|lastModification=1785157117101|tp=500,50,0|srbbv=2|agentUri=/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-config="{&quot;revision&quot;:1785157117101,&quot;beaconUri&quot;:&quot;/rb_bf64125xgr&quot;,&quot;agentUri&quot;:&quot;/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js&quโ€ฆ
CT35warningthe page carries no copyright line in the content as served, so there is nothing on it to date it by, and an absent copyright line is one of the marks of a copied template
What we check
The copyright line at the foot of the page, and the year it states.
What good looks like
The copyright line states the current year.
Why it matters
A copyright year in the past reads as a page nobody has attended to, and it is the usual sign of a template copied from somewhere else. Either way an AI treats the content as stale and can present old material as current.
What we found on this page
the page carries no copyright line in the content as served, so there is nothing on it to date it by, and an absent copyright line is one of the marks of a copied template
The evidence, taken from the page as served
The foot of this page, as served

The foot of the page was read for a copyright line.

<footer class="container footer pattern pattern--bottom bg-dark-2 stroke-primary "> <div class="row"> <div class="col-sm-6 col-md-3"> <h2 class="h3">Get in touch</h2> <ul class="list-unstyled pb-0 "> <li class=""> <a class="btn btn-link " href="/contact/">Contact us</a> </li> <li class=""> <a class="btn btn-link " href="/service/support-hub/">Help and support</a> </li> <li class=""> <a class="btn btn-link " href="/service/financial-wellbeing/">Financial wellbeing hub</a> </li> <li class=""> <a class="btn btn-link " href="/service/ways-to-bank/">Ways to bank</a> </li> <li class=""> <a class="btn btn-link " href="/vmforms/feedback-form/">Feedback</a> </li> <li class=""> <a class="btn btn-link " href="/service/complaints/">Make a complaint</a> </li> </ul> <ul class="list-unstyled list-social"> <li> <a href="https://www.instagram.com/virginmoney/" title="Virgin Money Instagram" target="_blank" rel="noopener"> <svg viewbox="0 0 32 32"> <title>Virgin Money Instagram</title> <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="/assets/svg/social.svg?v1.0#social-instagram-bg" class="svg__bg"/> <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="/assets/svg/social.svg?v1.0#soโ€ฆ
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 http-equiv="X-UA-Compatible" content="IE=edge"/> <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1.0"/> <!--evidon omnitag--> <script type="text/javascript" src="/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-dtconfig="rid=RID_-2987700|rpid=-1507862250|domain=virginmoney.com|reportUrl=/rb_bf64125xgr|uam=1|app=8e10568a9231138b|ssc=1|coo=1|owasp=1|featureHash=ICA15789NPRTUVXfghqrux|srsr=20000|xb=*.analytics.google.com*^p.*evidon.*^p.*google-analytic.*^p.*ybg.egain.*^p.*cludo.*^p.*pinterest.*^p.*visualwebsiteoptimize.*^p.*linkedin.*^p.*demdex.*|rdnt=1|uxrgce=1|cuc=4agxwo8z|mel=100000|expw=1|dpvc=1|md=mdcc1=bdocument.referrer,mdcc2=bnavigator.userAgent,mdcc3=dutm_source,mdcc4=dutm_medium,mdcc5=dutm_campaign,mdcc6=dutm_term,mdcc7=dutm_content,mdcc8=bwindow.location.href,mdcc9=dproduct,mdcc10=chdtCode1|lastModification=1785157117101|tp=500,50,0|srbbv=2|agentUri=/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-config="{&quot;revision&quot;:1785157117101,&quot;beaconUri&quot;:&quot;/rb_bf64125xgr&quot;,&quot;agentUri&quot;:&quot;/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js&quโ€ฆ
MS08fail1 link wording(s) are used for more than one destination, so the same words point at different pages: โ€œbusinessโ€; 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: โ€œbusinessโ€; 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
"Business"
<a class="" href="/business/">Business</a>
"Business"
<a href="/business/service/sign-in/" class="ctasecondarynav-link"> Business </a>
CT34failthe page's own words are thin: 356 of its 409 words are shared navigation and footer, so it reads as 85% 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: 356 of its 409 words are shared navigation and footer, so it reads as 85% 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
uk.virginmoney.com/mortgages/find-a-mortgage53 of 40987%uk.virginmoney.com/service/sign-in85%
https://uk.virginmoney.com/business/insurance 56.6% Likely 5 out of 42
CheckResultEvidence
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 http-equiv="X-UA-Compatible" content="IE=edge"/> <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1.0"/> <!--evidon omnitag--> <script type="text/javascript" src="/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-dtconfig="rid=RID_465694892|rpid=659086797|domain=virginmoney.com|reportUrl=/rb_bf64125xgr|uam=1|app=8e10568a9231138b|ssc=1|coo=1|owasp=1|featureHash=ICA15789NPRTUVXfghqrux|srsr=20000|xb=*.analytics.google.com*^p.*evidon.*^p.*google-analytic.*^p.*ybg.egain.*^p.*cludo.*^p.*pinterest.*^p.*visualwebsiteoptimize.*^p.*linkedin.*^p.*demdex.*|rdnt=1|uxrgce=1|cuc=4agxwo8z|mel=100000|expw=1|dpvc=1|md=mdcc1=bdocument.referrer,mdcc2=bnavigator.userAgent,mdcc3=dutm_source,mdcc4=dutm_medium,mdcc5=dutm_campaign,mdcc6=dutm_term,mdcc7=dutm_content,mdcc8=bwindow.location.href,mdcc9=dproduct,mdcc10=chdtCode1|lastModification=1785157117101|tp=500,50,0|srbbv=2|agentUri=/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-config="{&quot;revision&quot;:1785157117101,&quot;beaconUri&quot;:&quot;/rb_bf64125xgr&quot;,&quot;agentUri&quot;:&quot;/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js&quoโ€ฆ
CT04warningthe page carries no date, so there is nothing on it saying how current its content is
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 carries no date, so there is nothing on it saying how current its content is
The evidence, taken from the page as served
The head of this page, as served

The head of the page and the page's own text were read for a date.

<head> <meta charset="utf-8"/> <meta http-equiv="X-UA-Compatible" content="IE=edge"/> <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1.0"/> <!--evidon omnitag--> <script type="text/javascript" src="/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-dtconfig="rid=RID_465694892|rpid=659086797|domain=virginmoney.com|reportUrl=/rb_bf64125xgr|uam=1|app=8e10568a9231138b|ssc=1|coo=1|owasp=1|featureHash=ICA15789NPRTUVXfghqrux|srsr=20000|xb=*.analytics.google.com*^p.*evidon.*^p.*google-analytic.*^p.*ybg.egain.*^p.*cludo.*^p.*pinterest.*^p.*visualwebsiteoptimize.*^p.*linkedin.*^p.*demdex.*|rdnt=1|uxrgce=1|cuc=4agxwo8z|mel=100000|expw=1|dpvc=1|md=mdcc1=bdocument.referrer,mdcc2=bnavigator.userAgent,mdcc3=dutm_source,mdcc4=dutm_medium,mdcc5=dutm_campaign,mdcc6=dutm_term,mdcc7=dutm_content,mdcc8=bwindow.location.href,mdcc9=dproduct,mdcc10=chdtCode1|lastModification=1785157117101|tp=500,50,0|srbbv=2|agentUri=/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-config="{&quot;revision&quot;:1785157117101,&quot;beaconUri&quot;:&quot;/rb_bf64125xgr&quot;,&quot;agentUri&quot;:&quot;/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js&quoโ€ฆ
CT35warningthe page carries no copyright line in the content as served, so there is nothing on it to date it by, and an absent copyright line is one of the marks of a copied template
What we check
The copyright line at the foot of the page, and the year it states.
What good looks like
The copyright line states the current year.
Why it matters
A copyright year in the past reads as a page nobody has attended to, and it is the usual sign of a template copied from somewhere else. Either way an AI treats the content as stale and can present old material as current.
What we found on this page
the page carries no copyright line in the content as served, so there is nothing on it to date it by, and an absent copyright line is one of the marks of a copied template
The evidence, taken from the page as served
The foot of this page, as served

The foot of the page was read for a copyright line.

<footer class="container footer pattern pattern--bottom bg-dark-2 stroke-primary "> <div class="row"> <div class="col-sm-6 col-md-3"> <h2 class="h3">Get in touch</h2> <ul class="list-unstyled pb-0 "> <li class=""> <a class="btn btn-link " href="/contact/">Contact us</a> </li> <li class=""> <a class="btn btn-link " href="/service/support-hub/">Help and support</a> </li> <li class=""> <a class="btn btn-link " href="/service/financial-wellbeing/">Financial wellbeing hub</a> </li> <li class=""> <a class="btn btn-link " href="/service/ways-to-bank/">Ways to bank</a> </li> <li class=""> <a class="btn btn-link " href="/vmforms/feedback-form/">Feedback</a> </li> <li class=""> <a class="btn btn-link " href="/service/complaints/">Make a complaint</a> </li> </ul> <ul class="list-unstyled list-social"> <li> <a href="https://www.instagram.com/virginmoney/" title="Virgin Money Instagram" target="_blank" rel="noopener"> <svg viewbox="0 0 32 32"> <title>Virgin Money Instagram</title> <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="/assets/svg/social.svg?v1.0#social-instagram-bg" class="svg__bg"/> <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="/assets/svg/social.svg?v1.0#soโ€ฆ
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 http-equiv="X-UA-Compatible" content="IE=edge"/> <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1.0"/> <!--evidon omnitag--> <script type="text/javascript" src="/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-dtconfig="rid=RID_465694892|rpid=659086797|domain=virginmoney.com|reportUrl=/rb_bf64125xgr|uam=1|app=8e10568a9231138b|ssc=1|coo=1|owasp=1|featureHash=ICA15789NPRTUVXfghqrux|srsr=20000|xb=*.analytics.google.com*^p.*evidon.*^p.*google-analytic.*^p.*ybg.egain.*^p.*cludo.*^p.*pinterest.*^p.*visualwebsiteoptimize.*^p.*linkedin.*^p.*demdex.*|rdnt=1|uxrgce=1|cuc=4agxwo8z|mel=100000|expw=1|dpvc=1|md=mdcc1=bdocument.referrer,mdcc2=bnavigator.userAgent,mdcc3=dutm_source,mdcc4=dutm_medium,mdcc5=dutm_campaign,mdcc6=dutm_term,mdcc7=dutm_content,mdcc8=bwindow.location.href,mdcc9=dproduct,mdcc10=chdtCode1|lastModification=1785157117101|tp=500,50,0|srbbv=2|agentUri=/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-config="{&quot;revision&quot;:1785157117101,&quot;beaconUri&quot;:&quot;/rb_bf64125xgr&quot;,&quot;agentUri&quot;:&quot;/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js&quoโ€ฆ
MS08fail1 link wording(s) are used for more than one destination, so the same words point at different pages: โ€œbusinessโ€; 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: โ€œbusinessโ€; 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
"Business"
<a class="selected" href="/business/" aria-current="page">Business</a>
"Business"
<a href="/business/service/sign-in/" class="ctasecondarynav-link"> Business </a>
https://uk.virginmoney.com/insurance/home-insurance/landlord-insurance 56.6% Likely 5 out of 42
CheckResultEvidence
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 http-equiv="X-UA-Compatible" content="IE=edge"/> <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1.0"/> <!--evidon omnitag--> <script type="text/javascript" src="/insurance/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-dtconfig="rid=RID_2004837662|rpid=-1396355641|domain=virginmoney.com|reportUrl=/insurance/rb_bf64125xgr|uam=1|app=8e10568a9231138b|ssc=1|coo=1|owasp=1|featureHash=ICA15789NPRTUVXfghqrux|srsr=20000|xb=*.analytics.google.com*^p.*evidon.*^p.*google-analytic.*^p.*ybg.egain.*^p.*cludo.*^p.*pinterest.*^p.*visualwebsiteoptimize.*^p.*linkedin.*^p.*demdex.*|rdnt=1|uxrgce=1|cuc=4agxwo8z|mel=100000|expw=1|dpvc=1|md=mdcc1=bdocument.referrer,mdcc2=bnavigator.userAgent,mdcc3=dutm_source,mdcc4=dutm_medium,mdcc5=dutm_campaign,mdcc6=dutm_term,mdcc7=dutm_content,mdcc8=bwindow.location.href,mdcc9=dproduct,mdcc10=chdtCode1|lastModification=1785157117101|tp=500,50,0|srbbv=2|agentUri=/insurance/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-config="{&quot;revision&quot;:1785157117101,&quot;beaconUri&quot;:&quot;/insurance/rb_bf64125xgr&quot;,&quot;agentUri&quot;:&quot;/insurance/ruxitagโ€ฆ
CT04warningthe page shows the year 2026 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 2026 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 http-equiv="X-UA-Compatible" content="IE=edge"/> <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1.0"/> <!--evidon omnitag--> <script type="text/javascript" src="/insurance/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-dtconfig="rid=RID_2004837662|rpid=-1396355641|domain=virginmoney.com|reportUrl=/insurance/rb_bf64125xgr|uam=1|app=8e10568a9231138b|ssc=1|coo=1|owasp=1|featureHash=ICA15789NPRTUVXfghqrux|srsr=20000|xb=*.analytics.google.com*^p.*evidon.*^p.*google-analytic.*^p.*ybg.egain.*^p.*cludo.*^p.*pinterest.*^p.*visualwebsiteoptimize.*^p.*linkedin.*^p.*demdex.*|rdnt=1|uxrgce=1|cuc=4agxwo8z|mel=100000|expw=1|dpvc=1|md=mdcc1=bdocument.referrer,mdcc2=bnavigator.userAgent,mdcc3=dutm_source,mdcc4=dutm_medium,mdcc5=dutm_campaign,mdcc6=dutm_term,mdcc7=dutm_content,mdcc8=bwindow.location.href,mdcc9=dproduct,mdcc10=chdtCode1|lastModification=1785157117101|tp=500,50,0|srbbv=2|agentUri=/insurance/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-config="{&quot;revision&quot;:1785157117101,&quot;beaconUri&quot;:&quot;/insurance/rb_bf64125xgr&quot;,&quot;agentUri&quot;:&quot;/insurance/ruxitagโ€ฆ
CT35warningthe page carries no copyright line in the content as served, so there is nothing on it to date it by, and an absent copyright line is one of the marks of a copied template
What we check
The copyright line at the foot of the page, and the year it states.
What good looks like
The copyright line states the current year.
Why it matters
A copyright year in the past reads as a page nobody has attended to, and it is the usual sign of a template copied from somewhere else. Either way an AI treats the content as stale and can present old material as current.
What we found on this page
the page carries no copyright line in the content as served, so there is nothing on it to date it by, and an absent copyright line is one of the marks of a copied template
The evidence, taken from the page as served
The foot of this page, as served

The foot of the page was read for a copyright line.

<footer class="container footer pattern pattern--bottom bg-dark-2 stroke-primary "> <div class="row"> <div class="col-sm-6 col-md-3"> <h2 class="h3">Get in touch</h2> <ul class="list-unstyled pb-0 "> <li class=""> <a class="btn btn-link " href="/contact/">Contact us</a> </li> <li class=""> <a class="btn btn-link " href="/service/support-hub/">Help and support</a> </li> <li class=""> <a class="btn btn-link " href="/service/financial-wellbeing/">Financial wellbeing hub</a> </li> <li class=""> <a class="btn btn-link " href="/service/ways-to-bank/">Ways to bank</a> </li> <li class=""> <a class="btn btn-link " href="/vmforms/feedback-form/">Feedback</a> </li> <li class=""> <a class="btn btn-link " href="/service/complaints/">Make a complaint</a> </li> </ul> <ul class="list-unstyled list-social"> <li> <a href="https://www.instagram.com/virginmoney/" title="Virgin Money Instagram" target="_blank" rel="noopener"> <svg viewbox="0 0 32 32"> <title>Virgin Money Instagram</title> <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="/assets/svg/social.svg?v1.0#social-instagram-bg" class="svg__bg"/> <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="/assets/svg/social.svg?v1.0#soโ€ฆ
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 http-equiv="X-UA-Compatible" content="IE=edge"/> <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1.0"/> <!--evidon omnitag--> <script type="text/javascript" src="/insurance/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-dtconfig="rid=RID_2004837662|rpid=-1396355641|domain=virginmoney.com|reportUrl=/insurance/rb_bf64125xgr|uam=1|app=8e10568a9231138b|ssc=1|coo=1|owasp=1|featureHash=ICA15789NPRTUVXfghqrux|srsr=20000|xb=*.analytics.google.com*^p.*evidon.*^p.*google-analytic.*^p.*ybg.egain.*^p.*cludo.*^p.*pinterest.*^p.*visualwebsiteoptimize.*^p.*linkedin.*^p.*demdex.*|rdnt=1|uxrgce=1|cuc=4agxwo8z|mel=100000|expw=1|dpvc=1|md=mdcc1=bdocument.referrer,mdcc2=bnavigator.userAgent,mdcc3=dutm_source,mdcc4=dutm_medium,mdcc5=dutm_campaign,mdcc6=dutm_term,mdcc7=dutm_content,mdcc8=bwindow.location.href,mdcc9=dproduct,mdcc10=chdtCode1|lastModification=1785157117101|tp=500,50,0|srbbv=2|agentUri=/insurance/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-config="{&quot;revision&quot;:1785157117101,&quot;beaconUri&quot;:&quot;/insurance/rb_bf64125xgr&quot;,&quot;agentUri&quot;:&quot;/insurance/ruxitagโ€ฆ
MS08fail2 link wording(s) are used for more than one destination, so the same words point at different pages: โ€œbusinessโ€, โ€œget a quoteโ€; 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
2 link wording(s) are used for more than one destination, so the same words point at different pages: โ€œbusinessโ€, โ€œget a quoteโ€; 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
"Business"
<a class="" href="/business/">Business</a>
"Business"
<a href="/business/service/sign-in/" class="ctasecondarynav-link"> Business </a>
"Get a quote"
<a href="https://homeinsurance.virginmoney.com/btl-landlords/?utm_source=virgin_money&amp;utm_medium=website_cta" class="btn btn-primary">Get a quote</a>
"Get a quote"
<a href="https://homeinsurance.virginmoney.com/direct/" class="btn btn-primary" data-icon-right=""> Get a quote </a>
https://uk.virginmoney.com/private/benefits-and-services 56.6% Likely 5 out of 42
CheckResultEvidence
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 http-equiv="X-UA-Compatible" content="IE=edge"/> <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1.0"/> <!--evidon omnitag--> <script type="text/javascript" src="/private/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-dtconfig="rid=RID_-1132777316|rpid=-1448622074|domain=virginmoney.com|reportUrl=/private/rb_bf64125xgr|uam=1|app=8e10568a9231138b|ssc=1|coo=1|owasp=1|featureHash=ICA15789NPRTUVXfghqrux|srsr=20000|xb=*.analytics.google.com*^p.*evidon.*^p.*google-analytic.*^p.*ybg.egain.*^p.*cludo.*^p.*pinterest.*^p.*visualwebsiteoptimize.*^p.*linkedin.*^p.*demdex.*|rdnt=1|uxrgce=1|cuc=4agxwo8z|mel=100000|expw=1|dpvc=1|md=mdcc1=bdocument.referrer,mdcc2=bnavigator.userAgent,mdcc3=dutm_source,mdcc4=dutm_medium,mdcc5=dutm_campaign,mdcc6=dutm_term,mdcc7=dutm_content,mdcc8=bwindow.location.href,mdcc9=dproduct,mdcc10=chdtCode1|lastModification=1785157117101|tp=500,50,0|srbbv=2|agentUri=/private/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-config="{&quot;revision&quot;:1785157117101,&quot;beaconUri&quot;:&quot;/private/rb_bf64125xgr&quot;,&quot;agentUri&quot;:&quot;/private/ruxitagentjs_ICAโ€ฆ
CT04warningthe page carries no date, so there is nothing on it saying how current its content is
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 carries no date, so there is nothing on it saying how current its content is
The evidence, taken from the page as served
The head of this page, as served

The head of the page and the page's own text were read for a date.

<head> <meta charset="utf-8"/> <meta http-equiv="X-UA-Compatible" content="IE=edge"/> <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1.0"/> <!--evidon omnitag--> <script type="text/javascript" src="/private/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-dtconfig="rid=RID_-1132777316|rpid=-1448622074|domain=virginmoney.com|reportUrl=/private/rb_bf64125xgr|uam=1|app=8e10568a9231138b|ssc=1|coo=1|owasp=1|featureHash=ICA15789NPRTUVXfghqrux|srsr=20000|xb=*.analytics.google.com*^p.*evidon.*^p.*google-analytic.*^p.*ybg.egain.*^p.*cludo.*^p.*pinterest.*^p.*visualwebsiteoptimize.*^p.*linkedin.*^p.*demdex.*|rdnt=1|uxrgce=1|cuc=4agxwo8z|mel=100000|expw=1|dpvc=1|md=mdcc1=bdocument.referrer,mdcc2=bnavigator.userAgent,mdcc3=dutm_source,mdcc4=dutm_medium,mdcc5=dutm_campaign,mdcc6=dutm_term,mdcc7=dutm_content,mdcc8=bwindow.location.href,mdcc9=dproduct,mdcc10=chdtCode1|lastModification=1785157117101|tp=500,50,0|srbbv=2|agentUri=/private/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-config="{&quot;revision&quot;:1785157117101,&quot;beaconUri&quot;:&quot;/private/rb_bf64125xgr&quot;,&quot;agentUri&quot;:&quot;/private/ruxitagentjs_ICAโ€ฆ
CT35warningthe page carries no copyright line in the content as served, so there is nothing on it to date it by, and an absent copyright line is one of the marks of a copied template
What we check
The copyright line at the foot of the page, and the year it states.
What good looks like
The copyright line states the current year.
Why it matters
A copyright year in the past reads as a page nobody has attended to, and it is the usual sign of a template copied from somewhere else. Either way an AI treats the content as stale and can present old material as current.
What we found on this page
the page carries no copyright line in the content as served, so there is nothing on it to date it by, and an absent copyright line is one of the marks of a copied template
The evidence, taken from the page as served
The foot of this page, as served

The foot of the page was read for a copyright line.

<footer class="container footer pattern pattern--bottom bg-dark-2 stroke-primary "> <div class="row"> <div class="col-sm-6 col-md-3"> <h2 class="h3">Get in touch</h2> <ul class="list-unstyled pb-0 "> <li class=""> <a class="btn btn-link " href="/contact/">Contact us</a> </li> <li class=""> <a class="btn btn-link " href="/service/support-hub/">Help and support</a> </li> <li class=""> <a class="btn btn-link " href="/service/financial-wellbeing/">Financial wellbeing hub</a> </li> <li class=""> <a class="btn btn-link " href="/service/ways-to-bank/">Ways to bank</a> </li> <li class=""> <a class="btn btn-link " href="/vmforms/feedback-form/">Feedback</a> </li> <li class=""> <a class="btn btn-link " href="/service/complaints/">Make a complaint</a> </li> </ul> <ul class="list-unstyled list-social"> <li> <a href="https://www.instagram.com/virginmoney/" title="Virgin Money Instagram" target="_blank" rel="noopener"> <svg viewbox="0 0 32 32"> <title>Virgin Money Instagram</title> <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="/assets/svg/social.svg?v1.0#social-instagram-bg" class="svg__bg"/> <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="/assets/svg/social.svg?v1.0#soโ€ฆ
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 http-equiv="X-UA-Compatible" content="IE=edge"/> <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1.0"/> <!--evidon omnitag--> <script type="text/javascript" src="/private/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-dtconfig="rid=RID_-1132777316|rpid=-1448622074|domain=virginmoney.com|reportUrl=/private/rb_bf64125xgr|uam=1|app=8e10568a9231138b|ssc=1|coo=1|owasp=1|featureHash=ICA15789NPRTUVXfghqrux|srsr=20000|xb=*.analytics.google.com*^p.*evidon.*^p.*google-analytic.*^p.*ybg.egain.*^p.*cludo.*^p.*pinterest.*^p.*visualwebsiteoptimize.*^p.*linkedin.*^p.*demdex.*|rdnt=1|uxrgce=1|cuc=4agxwo8z|mel=100000|expw=1|dpvc=1|md=mdcc1=bdocument.referrer,mdcc2=bnavigator.userAgent,mdcc3=dutm_source,mdcc4=dutm_medium,mdcc5=dutm_campaign,mdcc6=dutm_term,mdcc7=dutm_content,mdcc8=bwindow.location.href,mdcc9=dproduct,mdcc10=chdtCode1|lastModification=1785157117101|tp=500,50,0|srbbv=2|agentUri=/private/ruxitagentjs_ICA15789NPRTUVXfghqrux_10341260622154106.js" data-config="{&quot;revision&quot;:1785157117101,&quot;beaconUri&quot;:&quot;/private/rb_bf64125xgr&quot;,&quot;agentUri&quot;:&quot;/private/ruxitagentjs_ICAโ€ฆ
MS08fail1 link wording(s) are used for more than one destination, so the same words point at different pages: โ€œbusinessโ€; 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: โ€œbusinessโ€; 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
"Business"
<a class="" href="/business/">Business</a>
"Business"
<a href="/business/service/sign-in/" class="ctasecondarynav-link"> Business </a>
PDF documents 5 documents

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

https://www.psr.org.uk/media/b50p3mlm/psr-2024-app-scam-performance-data-february-2026.pdf 57.8% Likely 2 out of 29
Document information
Title2024 APP scam performance data โ€“ before the reimbursement requirement was implemented
AuthorPayment Systems Regulator
PDF version, pages, size1.7 ยท 22 pages ยท 1192 KB
Found onhttps://uk.virginmoney.com/current-accounts
CheckResultEvidence
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
2024 APP scam performance data โ€“ 
before the reimbursement requirement 
was implemented
February 2026
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 namepsr-2024-app-scam-performance-data-february-2026.pdf
Title2024 APP scam performance data โ€“ before the reimbursement requirement was implemented
AuthorPayment Systems Regulator
Date created2026-02-19 20:35
Date last changed2026-02-19 21:48
Made withAdobe InDesign 21.2 (Macintosh)
Pages22
Size1192 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.psr.org.uk/media/b50p3mlm/psr-2024-app-scam-performance-data-february-2026.pdf
Also asked forhttps://www.psr.org.uk/media/b50p3mlm/psr-2024-app-scam-performance-data-february-2026.html
Also asked forhttps://www.psr.org.uk/media/b50p3mlm/psr-2024-app-scam-performance-data-february-2026.htm
A page with a matching titlenot found
https://uk.virginmoney.com/virgin/assets/pdf/Virgin-Money-Current-Account-Terms.pdf 57.9% Likely 2 out of 28
Document information
TitleYour M Plus Account and M Plus Saver Terms
AuthorVirgin Money
PDF version, pages, size1.7 ยท 36 pages ยท 453 KB
Found onhttps://uk.virginmoney.com/current-accounts/pca
CheckResultEvidence
PD28warning2 of 8 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
2 of 8 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
ProximaNova-ExtrabldType1YesMissingpage 1
ProximaNova-SemiboldType1YesMissingpage 1
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 nameVirgin-Money-Current-Account-Terms.pdf
TitleYour M Plus Account and M Plus Saver Terms
AuthorVirgin Money
Date created2025-11-05 11:02
Date last changed2025-11-05 11:03
Made withAdobe InDesign 20.5 (Macintosh)
Pages36
Size453 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://uk.virginmoney.com/virgin/assets/pdf/Virgin-Money-Current-Account-Terms.pdf
Also asked forhttps://uk.virginmoney.com/virgin/assets/pdf/Virgin-Money-Current-Account-Terms.html
Also asked forhttps://uk.virginmoney.com/virgin/assets/pdf/Virgin-Money-Current-Account-Terms.htm
A page with a matching titlenot found
https://uk.virginmoney.com/virgin/assets/pdf/Virgin-Money-Current-Account-Tariff.pdf 57.7% Likely 2 out of 28
Document information
TitleTariff for your M Plus Account and M Plus Saver
AuthorVirgin Money
PDF version, pages, size1.7 ยท 4 pages ยท 272 KB
Found onhttps://uk.virginmoney.com/current-accounts/pca
CheckResultEvidence
PD16failthe document writes out 4 web addresses as plain text but saves none of them as real, clickable links, so the addresses sit in the text with no link behind them to follow to the source
What we check
Whether the document's links are recorded as real links, or just web addresses typed as plain text.
What good looks like
The document's links are recorded as real links, not web addresses typed as plain text.
Why it matters
When a source is only typed out as text, there is no link behind it to follow, so the reference cannot be opened or checked.
What we found on this page
the document writes out 4 web addresses as plain text but saves none of them as real, clickable links, so the addresses sit in the text with no link behind them to follow to the source
The evidence, taken from the page as served
The web addresses written out in the text, with no link behind them
Page ยท opens in a new tabDetail
www.FSCS.org.ukpage 4
www.gov.ukpage 4
www.virginmoney.compage 4
www.virginmoney.com/privacypage 4
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 nameVirgin-Money-Current-Account-Tariff.pdf
TitleTariff for your M Plus Account and M Plus Saver
AuthorVirgin Money
Date created2026-04-29 11:38
Date last changed2026-04-29 11:38
Made withAdobe InDesign 21.3 (Macintosh)
Pages4
Size272 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://uk.virginmoney.com/virgin/assets/pdf/Virgin-Money-Current-Account-Tariff.pdf
Also asked forhttps://uk.virginmoney.com/virgin/assets/pdf/Virgin-Money-Current-Account-Tariff.html
Also asked forhttps://uk.virginmoney.com/virgin/assets/pdf/Virgin-Money-Current-Account-Tariff.htm
A page with a matching titlenot found
https://uk.virginmoney.com/downloads/pdf/savings/m-plus-saver-summary-box.pdf 10.1% Extremely likely 4 out of 28
Document information
TitleM Plus Saver Summary Box
AuthorVirgin Money
PDF version, pages, size1.7 ยท 2 pages ยท 238 KB
Found onhttps://uk.virginmoney.com/current-accounts/pca
CheckResultEvidence
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
M Plus Saver  
Summary Box
Summary Box
Account Name M Plus Saver
What is the interest rate? Balance Gross Rate* (%) AER# (%)
up to and including ยฃ25,000 1.74 1.75
over ยฃ25,000 1.24 1.25
Interest is calculated on a daily basis and paid on the last working day of each calendar quarter .
Can Virgin Money change 
the interest rate?
Y es, if we decrease your rate weโ€™ll provide at least two monthsโ€™ notice as described in your 
T erms. We may increase your rate without giving you notice.
What would the
PD12fail2-column the document has a table, but its header cells are not identified as headers (0 marked as header, 32 as data): which column and row each number belongs to is not recorded, only where it happens to sit on the page
What we check
Whether numbers in tables stay attached to their row and column once the text is pulled out.
What good looks like
Numbers in tables stay attached to their row and column once the text is pulled out.
Why it matters
A figure that comes loose from its heading is read against the wrong row or the wrong column, so the number an AI system quotes is not the number the document gives.
What we found on this page
2-column the document has a table, but its header cells are not identified as headers (0 marked as header, 32 as data): which column and row each number belongs to is not recorded, only where it happens to sit on the page
The evidence, taken from the page as served
The table's text as it reads out
the text, first 500 characters
M Plus Saver  
Summary Box
Summary Box
Account Name M Plus Saver
What is the interest rate? Balance Gross Rate* (%) AER# (%)
up to and including ยฃ25,000 1.74 1.75
over ยฃ25,000 1.24 1.25
Interest is calculated on a daily basis and paid on the last working day of each calendar quarter .
Can Virgin Money change 
the interest rate?
Y es, if we decrease your rate weโ€™ll provide at least two monthsโ€™ notice as described in your 
T erms. We may increase your rate without giving you notice.
What would the
PD16failthe document writes out 1 web address as plain text but saves none of them as real, clickable links, so the address sits in the text with no link behind it to follow to the source
What we check
Whether the document's links are recorded as real links, or just web addresses typed as plain text.
What good looks like
The document's links are recorded as real links, not web addresses typed as plain text.
Why it matters
When a source is only typed out as text, there is no link behind it to follow, so the reference cannot be opened or checked.
What we found on this page
the document writes out 1 web address as plain text but saves none of them as real, clickable links, so the address sits in the text with no link behind it to follow to the source
The evidence, taken from the page as served
The web addresses written out in the text, with no link behind them
Page ยท opens in a new tabDetail
www.FSCS.org.ukpage 2
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 namem-plus-saver-summary-box.pdf
TitleM Plus Saver Summary Box
AuthorVirgin Money
Date created2026-05-07 11:36
Date last changed2026-05-07 11:37
Made withAdobe InDesign 21.3 (Macintosh)
Pages2
Size238 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://uk.virginmoney.com/downloads/pdf/savings/m-plus-saver-summary-box.pdf
Also asked forhttps://uk.virginmoney.com/downloads/pdf/savings/m-plus-saver-summary-box.html
Also asked forhttps://uk.virginmoney.com/downloads/pdf/savings/m-plus-saver-summary-box.htm
A page with a matching titlenot found
https://uk.virginmoney.com/virgin/assets/pdf/Digital-Banking-Service-Terms.pdf 10.6% Extremely likely 3 out of 28
Document information
TitleDigital terms Brochure
AuthorVirgin Money
PDF version, pages, size1.7 ยท 8 pages ยท 179 KB
Found onhttps://uk.virginmoney.com/current-accounts/pca
CheckResultEvidence
PD12fail3-column the document has a table, but its header cells are not identified as headers (0 marked as header, 9 as data): which column and row each number belongs to is not recorded, only where it happens to sit on the page
What we check
Whether numbers in tables stay attached to their row and column once the text is pulled out.
What good looks like
Numbers in tables stay attached to their row and column once the text is pulled out.
Why it matters
A figure that comes loose from its heading is read against the wrong row or the wrong column, so the number an AI system quotes is not the number the document gives.
What we found on this page
3-column the document has a table, but its header cells are not identified as headers (0 marked as header, 9 as data): which column and row each number belongs to is not recorded, only where it happens to sit on the page
The evidence, taken from the page as served
The table's text as it reads out
the text, first 500 characters
DIVE INTO 
THE DET AIL
Y our Digital Banking T erms

Whatโ€™s inside
1. Getting started
2. How can digital banking help?
3. Keeping your account safe
4. How to pull the plug
5. Making sure everythingโ€™s just right
6. If youโ€™re not happy, weโ€™re not happy
7. Making changes
8. Keeping in touch
9. Some other things you need to know
There are a few ways to keep on top 
of your Virgin Money account:
โ€ข Via the Virgin Money Mobile Banking app
โ€ข Online
โ€ข On the phone
These T erms cover all these services.
1
PD16failthe document writes out 1 web address as plain text but saves none of them as real, clickable links, so the address sits in the text with no link behind it to follow to the source
What we check
Whether the document's links are recorded as real links, or just web addresses typed as plain text.
What good looks like
The document's links are recorded as real links, not web addresses typed as plain text.
Why it matters
When a source is only typed out as text, there is no link behind it to follow, so the reference cannot be opened or checked.
What we found on this page
the document writes out 1 web address as plain text but saves none of them as real, clickable links, so the address sits in the text with no link behind it to follow to the source
The evidence, taken from the page as served
The web addresses written out in the text, with no link behind them
Page ยท opens in a new tabDetail
www.financial-ombudsman.org.ukpage 5
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 nameDigital-Banking-Service-Terms.pdf
TitleDigital terms Brochure
AuthorVirgin Money
Date created2025-11-06 13:05
Date last changed2025-11-06 13:06
Made withAdobe InDesign 20.5 (Macintosh)
Pages8
Size179 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://uk.virginmoney.com/virgin/assets/pdf/Digital-Banking-Service-Terms.pdf
Also asked forhttps://uk.virginmoney.com/virgin/assets/pdf/Digital-Banking-Service-Terms.html
Also asked forhttps://uk.virginmoney.com/virgin/assets/pdf/Digital-Banking-Service-Terms.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 “Yes”: regulator statements on the site: financial conduct authority, prudential regulation authority. Listed company reads “Not established”: no clear public-listing indicators in the sampled pages.

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, 114 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