AI Readiness Assessment

https://www.eclecticiq.com

Assessed2026-07-31
Reference0731/ECL/02
IndustryTechnology and software
Scale187 / 1,742
TrafficNAAwaiting live domain connection, provided as part of service deployment.
Regulated sectorNone found
Listed companyNot established
Manual equivalent13 days · £7,956estimate only
Foundations assessed now ยท the automated tests
Your Digital Doorway
PeopleAI systems
AI readiness ยท Pages
32.3%
AI readiness ยท PDFs
0.0%
Misinformation ยท Pages
Extremely likely
Misinformation ยท PDFs
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
  • Content under a skipped level has no clear parent section, so structure taken from the page misplaces its text.37 pages
  • The wording no longer settles the target, so the wrong one gets followed at the point where the choice matters.36 pages
  • A skipped level breaks the trail that says which section a passage belongs to, so it is filed under the wrong one.20 pages
  • A linked document that cannot be fetched is detail out of reach: whatever it held cannot be read or checked by anyone, so answers that lean on it are built without it, and the broken link itself reads as a site not being kept.1 document
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 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 linked document that cannot be fetched is detail out of reach: whatever it held cannot be read or checked by anyone, so answers that lean on it are built without it, and the broken link itself reads as a site not being kept.documents
Overall findings what makes up the figures · click to view
Digital doorway measured at the front door · click to view
Site infrastructure 1 area

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

The site as a whole 10.6% Extremely likely 5 out of 24
CheckResultEvidence
DS03warning1 of the 15 AI crawlers asking for the site is refused by the security layer in front of it; the other 14 are served. The refusal falls on that service alone.
What we check
The same page loads for a browser but is refused when the request names itself as an AI service.
What good looks like
The page returns the same response to a named AI service as to a browser, with no edge block.
Why it matters
The block sits in front of the site and leaves no trace in its own logs, so the estate is closed off unnoticed.
What we found on this page
1 of the 15 AI crawlers asking for the site is refused by the security layer in front of it; the other 14 are served. The refusal falls on that service alone.
The evidence, taken from the page as served
Each crawler's own request to the entry page, and the status it received
Hostwww.eclecticiq.com · resolves to 199.60.103.31, 199.60.103.225 · Cloudflare Address trailwww.eclecticiq.com 2831317.group17.sites.hubspot.net group17.sites.hscoscdn10.net Checked2026-07-31 16:40 UTC · request sent from 10.100.100.212 (our checker)
CrawlerHTTPAnswered inSentReceivedOutcome
Browserthe control · a normal visitor20083 ms234 B126.1 KBServed
GPTBotMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko);...20091 ms219 B126.1 KBServed
OAI-SearchBotMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko);...20084 ms229 B126.1 KBServed
ChatGPT-UserMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko);...20083 ms222 B126.1 KBServed
ClaudeBotMozilla/5.0 (compatible; ClaudeBot/1.0; +claudebot@anthropic.com)20085 ms182 B126.1 KBServed
Claude-UserMozilla/5.0 (compatible; Claude-User/1.0; +https://www.anthropic.com)20085 ms186 B126.0 KBServed
Googlebot (Gemini)Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko;...20086 ms258 B126.1 KBServed
GoogleOtherMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko);...200102 ms192 B126.1 KBServed
Bingbot (Copilot)Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko;...20093 ms257 B126.0 KBServed
PerplexityBotMozilla/5.0 (compatible; PerplexityBot/1.0;...20095 ms202 B126.1 KBServed
Perplexity-UserMozilla/5.0 (compatible; Perplexity-User/1.0;...20094 ms206 B126.1 KBServed
CCBotCCBot/2.0 (https://commoncrawl.org/faq/)20086 ms157 B126.1 KBServed
BytespiderMozilla/5.0 (Linux; Android 5.0) AppleWebKit/537.36 (KHTML,...40366 ms265 B3.9 KBRefused
AmazonbotMozilla/5.0 (compatible; Amazonbot/0.1;...200103 ms205 B126.1 KBServed
GrokBotMozilla/5.0 (compatible; GrokBot/1.0; +https://x.ai)20096 ms169 B126.1 KBServed
Meta-ExternalAgentmeta-externalagent/1.1...20084 ms206 B126.1 KBServed
DS16fail32 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
32 URL group(s) are reachable under more than one form (case, trailing slash, or query variants)
The evidence, taken from the page as served
The URLs that serve the same page under more than one form
Page ยท opens in a new tabDetail
www.eclecticiq.comsame page, group 1
www.eclecticiq.com/?hsLang=ensame page, group 1
www.eclecticiq.com?hsLang=ensame page, group 1
www.eclecticiq.com/threat-intelligence-platformsame page, group 2
www.eclecticiq.com/threat-intelligence-platform?hsLang=ensame page, group 2
www.eclecticiq.com/threat-intelligence-browser-extensionsame page, group 3
www.eclecticiq.com/threat-intelligence-browser-extension?hsLang=ensame page, group 3
www.eclecticiq.com/threat-intelligence-feedssame page, group 4
www.eclecticiq.com/threat-intelligence-feeds?hsLang=ensame page, group 4
www.eclecticiq.com/defense-tipsame page, group 5
www.eclecticiq.com/defense-tip?hsLang=ensame page, group 5
www.eclecticiq.com/alert-triagesame page, group 6
www.eclecticiq.com/alert-triage?hsLang=ensame page, group 6
www.eclecticiq.com/incident-responsesame page, group 7
www.eclecticiq.com/incident-response?hsLang=ensame page, group 7
www.eclecticiq.com/-reportingsame page, group 8
www.eclecticiq.com/-reporting?hsLang=ensame page, group 8
www.eclecticiq.com/ai-searchsame page, group 9
www.eclecticiq.com/ai-search?hsLang=ensame page, group 9
www.eclecticiq.com/integration-partnerssame page, group 10
www.eclecticiq.com/integration-partners?hsLang=ensame page, group 10
www.eclecticiq.com/channel-partnerssame page, group 11
www.eclecticiq.com/channel-partners?hsLang=ensame page, group 11
www.eclecticiq.com/librarysame page, group 12
www.eclecticiq.com/library?hsLang=ensame page, group 12
www.eclecticiq.com/library?type=case+studysame page, group 12
www.eclecticiq.com/library?type=case+study&hsLang=ensame page, group 12
www.eclecticiq.com/library?type=product+sheetsame page, group 12
www.eclecticiq.com/library?type=product+sheet&hsLang=ensame page, group 12
www.eclecticiq.com/library?type=solution+briefsame page, group 12
www.eclecticiq.com/library?type=solution+brief&hsLang=ensame page, group 12
www.eclecticiq.com/library?type=use+casesame page, group 12
www.eclecticiq.com/library?type=webinarsame page, group 12
www.eclecticiq.com/library?type=webinar&hsLang=ensame page, group 12
www.eclecticiq.com/library?type=white+papersame page, group 12
www.eclecticiq.com/library?type=white+paper&hsLang=ensame page, group 12
MX12fail2 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
2 pair(s) of pages carry near-identical text (at least 90% of the same words)
The evidence, taken from the page as served
Each page pair whose visible text is near-identical (at least 90% shared vocabulary)
Page A ยท opens in a new tabPage B ยท opens in a new tabShared
www.eclecticiq.com/threat-intelligence-platform?hsLang=enwww.eclecticiq.com/threat-intelligence-platform100%
www.eclecticiq.com/news-awards?hsLang=enwww.eclecticiq.com/news-awards100%
CT34fail8 page(s) read as near-identical to other pages in the text a machine ingests (up to 94% shared), but the overlap is shared navigation and footer rather than content: the worst affected page has 50 words of its own out of 316. 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
8 page(s) read as near-identical to other pages in the text a machine ingests (up to 94% shared), but the overlap is shared navigation and footer rather than content: the worst affected page has 50 words of its own out of 316. Distinct pages can then be taken as duplicates and the real content passed over; the pages are listed in the view.
CT07warning3 page title(s) are used on more than one page: โ€œNews & Awardsโ€, โ€œResourcesโ€, โ€œThreat Intelligence Platformโ€; 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
3 page title(s) are used on more than one page: โ€œNews & Awardsโ€, โ€œResourcesโ€, โ€œThreat Intelligence Platformโ€; the pages are listed in the view

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

Pages considered 37 pages

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

https://www.eclecticiq.com 55.5% Likely 10 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 name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, viewport-fit=cover"/> <meta name="referrer" content="origin-when-cross-origin"/> <title>The threat intelligence platform that understands your business</title> <meta name="description" content="EclecticIQ Threat Intelligence Center is a Cyber Threat Intelligence tool that helps with threat hunting, threat analysis, incident response, and more. "/> <meta property="og:image" content="https://www.eclecticiq.com/hubfs/raw_assets/public/rebrand-2024/assets/img/og-eclecticiq.png"/> <script>loadjs=function(){var l=function(){},c={},f={},u={};function s(e,n){if(e){var t=u[e];if(f[e]=n,t)for(;t.length;)t[0](e,n),t.splice(0,1)}}function o(e,n){e.call&amp;&amp;(e={success:e}),n.length?(e.error||l)(n):(e.success||l)(e)}function h(t,r,i,c){var s,o,e=document,n=i.async,f=(i.numRetries||0)+1,u=i.before||l,a=t.replace(/^(css|img)!/,"");c=c||0,/(^css!|\.css$)/.test(t)?(s=!0,(o=e.createElement("link")).rel="stylesheet",o.href=a):/(^img!|\.(png|gif|jpg|svg)$)/.test(t)?(o=e.createElement("img")).src=a:((o=e.createElement("script")).src=t,o.async=void 0===n||n),!(o.oโ€ฆ
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 name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, viewport-fit=cover"/> <meta name="referrer" content="origin-when-cross-origin"/> <title>The threat intelligence platform that understands your business</title> <meta name="description" content="EclecticIQ Threat Intelligence Center is a Cyber Threat Intelligence tool that helps with threat hunting, threat analysis, incident response, and more. "/> <meta property="og:image" content="https://www.eclecticiq.com/hubfs/raw_assets/public/rebrand-2024/assets/img/og-eclecticiq.png"/> <script>loadjs=function(){var l=function(){},c={},f={},u={};function s(e,n){if(e){var t=u[e];if(f[e]=n,t)for(;t.length;)t[0](e,n),t.splice(0,1)}}function o(e,n){e.call&amp;&amp;(e={success:e}),n.length?(e.error||l)(n):(e.success||l)(e)}function h(t,r,i,c){var s,o,e=document,n=i.async,f=(i.numRetries||0)+1,u=i.before||l,a=t.replace(/^(css|img)!/,"");c=c||0,/(^css!|\.css$)/.test(t)?(s=!0,(o=e.createElement("link")).rel="stylesheet",o.href=a):/(^img!|\.(png|gif|jpg|svg)$)/.test(t)?(o=e.createElement("img")).src=a:((o=e.createElement("script")).src=t,o.async=void 0===n||n),!(o.oโ€ฆ
CT35warningthe copyright line at the foot of this page states 2024, 2 years behind the year this assessment ran, which reads as a page left unattended and is the usual sign of a template copied from elsewhere
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 copyright line at the foot of this page states 2024, 2 years behind the year this assessment ran, which reads as a page left unattended and is the usual sign of a template copied from elsewhere
The evidence, taken from the page as served
The copyright line as served, and the year it claims
Page ยท opens in a new tabFoundThe text, as served, around the word
www.eclecticiq.com…ยฉ 2024…
AJ05warningno site-search control detected on this page
What we check
Whether a search box for the site is present in the page as it is served.
What good looks like
A search box is present in the served markup, so the site's own content can be queried directly.
Why it matters
With no search box on the page, its links are the only route from here into the rest of the site.
What we found on this page
no site-search control detected on this page
The evidence, taken from the page as served
The head of this page, as served

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

<head> <meta charset="utf-8"/> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, viewport-fit=cover"/> <meta name="referrer" content="origin-when-cross-origin"/> <title>The threat intelligence platform that understands your business</title> <meta name="description" content="EclecticIQ Threat Intelligence Center is a Cyber Threat Intelligence tool that helps with threat hunting, threat analysis, incident response, and more. "/> <meta property="og:image" content="https://www.eclecticiq.com/hubfs/raw_assets/public/rebrand-2024/assets/img/og-eclecticiq.png"/> <script>loadjs=function(){var l=function(){},c={},f={},u={};function s(e,n){if(e){var t=u[e];if(f[e]=n,t)for(;t.length;)t[0](e,n),t.splice(0,1)}}function o(e,n){e.call&amp;&amp;(e={success:e}),n.length?(e.error||l)(n):(e.success||l)(e)}function h(t,r,i,c){var s,o,e=document,n=i.async,f=(i.numRetries||0)+1,u=i.before||l,a=t.replace(/^(css|img)!/,"");c=c||0,/(^css!|\.css$)/.test(t)?(s=!0,(o=e.createElement("link")).rel="stylesheet",o.href=a):/(^img!|\.(png|gif|jpg|svg)$)/.test(t)?(o=e.createElement("img")).src=a:((o=e.createElement("script")).src=t,o.async=void 0===n||n),!(o.oโ€ฆ
MS08fail3 link wording(s) are used for more than one destination, so the same words point at different pages: โ€œbook a demoโ€, โ€œdownloadโ€, โ€œread blogโ€; 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: โ€œbook a demoโ€, โ€œdownloadโ€, โ€œread blogโ€; 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
"Book a demo"
<a href="https://www.eclecticiq.com/book-a-demo?hsLang=en" target="_blank" class="relative group inline-flex items-center h-12 px-8 rounded-full font-bold bg-blue text-nav text-white leading-none tracking-wide hover:pr-12 transition-all duration-200"> <span class="flex-none">Book a demo</span> <img class="lazyload absoโ€ฆ
"Book a demo"
<a href="https://www.eclecticiq.com/book-a-demo?hsLang=en" class="group inline-flex items-center gap-2 lg:gap-3 max-w-full font-bold text-sm xl:text-base leading-tight tracking-wide h-11 xl:h-12 px-6 xl:px-7 rounded-full transition-all duration-200 bg-red text-white"> <span class="sm:flex-none truncate">Book a demo</spโ€ฆ
"Read blog"
<a href="https://blog.eclecticiq.com/eclecticiq-mcp-server?hsLang=en" class="group inline-flex items-center gap-2 lg:gap-3 max-w-full font-bold text-sm xl:text-base leading-tight tracking-wide font-semibold text-white mt-auto leading-tight"> <span class="sm:flex-none truncate">Read blog</span> <svg xmlns="http://www.w3โ€ฆ
"Read blog"
<a href="https://blog.eclecticiq.com/the-ai-arms-race-how-adversaries-are-weaponizing-ai-for-speed-and-scale?hsLang=en" class="group inline-flex items-center gap-2 lg:gap-3 max-w-full font-bold text-sm xl:text-base leading-tight tracking-wide font-semibold text-white mt-auto leading-tight"> <span class="sm:flex-none trโ€ฆ
"Download"
<a href="https://www.eclecticiq.com/library/intelligent-mapping-of-cti-to-mitre-attck-automating-ttp-classification-with-ai?hsLang=en" class="group inline-flex items-center gap-2 lg:gap-3 max-w-full font-bold text-sm xl:text-base leading-tight tracking-wide font-semibold text-white mt-auto leading-tight"> <span class="โ€ฆ
"Download"
<a href="https://www.eclecticiq.com/library/advanced-static-analysis-real-time-threat-intelligence-for-faster-triage?hsLang=en" class="group inline-flex items-center gap-2 lg:gap-3 max-w-full font-bold text-sm xl:text-base leading-tight tracking-wide font-semibold text-white mt-auto leading-tight"> <span class="sm:flexโ€ฆ
"Book a demo"
<a href="" class="relative flex xs:inline-flex justify-center items-center h-12 px-8 rounded-full font-bold bg-blue text-nav text-white leading-none tracking-wide"> <span class="flex-none">Book a demo</span> <img class="lazyload absolute -top-2 right-2 w-4 scale-110" src="https://www.eclecticiq.com/hubfs/raw_assets/pubโ€ฆ
MS10failthe page's first heading is not its top-level heading, so the structure starts part way down
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 page's first heading is not its top-level heading, so the structure starts part way down
The evidence, taken from the page as served
The page's heading outline, in document order (a jump in level is marked)
H3 Products level jumped
H3 Use Cases
H3 Partners
H3 Resources
H3 Company
H1 The Threat Intelligence Platform that understands your business
H2 Proactive threat management that leads to better security
H2 How our TIP helps your team
H3 CTI Analysts
H3 SOC Analysts
H3 Cybersecurity Leaders and CISO
H3 MSSPs
H2 What sets us apart
H3 Unified command center
H3 Adaptive threat detection
H3 Rapid threat response
H3 Intelligence driven action
H2 Words from our customers
H2 Latest blogs and key resources
H3 EclecticIQ MCP Server: Connect your AI agents directly to your threat intelligen
H3 The AI Arms Race:ย How Adversaries are Weaponizing AI for Speed and Scale
H3 Intelligent Mapping of CTI to MITRE ATT&CK: Automating TTP Classification with A
H3 Advanced Static Analysis + Real-Time Threat Intelligence for Faster Triage
H2 As featured in
H2 Talk to one of our experts
H3 (no text)
MS13warning2 of 2 iframes untitled
What we check
Each embedded panel on the page carries a title saying what it contains.
What good looks like
Each embedded panel carries a title saying what it contains.
Why it matters
The embedded region stays unnamed, so what it holds is left unstated in the page around it.
What we found on this page
2 of 2 iframes untitled
The evidence, taken from the page as served
The iframes with no title attribute, as served
src=https://www.googletagmanager.com/ns.html?id=GTM-MC7MVC
<iframe src="https://www.googletagmanager.com/ns.html?id=GTM-MC7MVC" height="0" width="0" style="display:none;visibility:hidden"/>
src=https://www.googletagmanager.com/ns.html?id=GTM-MC7MVC
<iframe src="https://www.googletagmanager.com/ns.html?id=GTM-MC7MVC" height="0" width="0" style="display:none;visibility:hidden"/>
MS02warning6 of 65 buttons, links and controls on the loaded page carry no name in the page's code saying what each is for
What we check
Whether the page's buttons, links and form controls each carry a name once the page has loaded.
What good looks like
The page's buttons, links and form controls each carry a name once the page has loaded.
Why it matters
Unnamed controls are identified by their position on the screen alone, so a redesign moves what they refer to.
What we found on this page
6 of 65 buttons, links and controls on the loaded page carry no name in the page's code saying what each is for
The evidence, taken from the page as served
The controls on this page that carry no name

Read on the page once its scripts had run.

What was measuredAs measured on this page
Controls found65
Of those, carrying no name6
Kinds affectedlink, textbox
MS04warningthe page's naming markup is faulty: 3 name label(s) point at nothing: the code that should hold the name is absent
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: 3 name label(s) point at nothing: the code that should hold the name is absent
The evidence, taken from the page as served
The faulty markup, as the page serves it once loaded
<div x-show="subnav" @keydown.escape.prevent.stop="subnav = false" role="dialog" aria-modal="true" x-id="['use cases ']" :aria-labelledby="$id('use cases ')" class="absolute top-0 pt-12 -left-8" aria-labelledby="use cases -1" style="display: none;"> <div class="relative h-full w-full flex items-center justify-center teโ€ฆ
AJ08warningfocus order: the first 12 Tab stops do not follow document order
What we check
Whether pressing Tab moves through the page in the order its content is written.
What good looks like
Pressing Tab moves through the page in the order its content is written.
Why it matters
The keyboard jumps around the page out of sequence, so a form is worked through in an order nobody intended.
What we found on this page
focus order: the first 12 Tab stops do not follow document order
The evidence, taken from the page as served
How the keyboard moves through this page

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

What was measuredAs measured on this page
Stops the keyboard makes12
The stops follow the order of the pageno
Controls given a forced position0
https://www.eclecticiq.com/library?type=case+study&hsLang=en 29.9% Very likely 16 out of 58
CheckResultEvidence
DS17failthe page states no preferred address for itself, so duplicate copies compete to be the one cited
What we check
Each page names one preferred address for itself, its canonical link.
What good looks like
Each page names one preferred address for itself.
Why it matters
With no preferred address stated, duplicate copies compete and the version that ends up cited is arbitrary.
What we found on this page
the page states no preferred address for itself, so duplicate copies compete to be the one cited
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 naming the page's preferred address.

<head> <meta charset="utf-8"/> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, viewport-fit=cover"/> <meta name="referrer" content="origin-when-cross-origin"/> <title>Resources</title> <meta name="description" content="Resource Library"/> <meta property="og:image" content="https://www.eclecticiq.com/hubfs/raw_assets/public/rebrand-2024/assets/img/og-eclecticiq.png"/> <script>loadjs=function(){var l=function(){},c={},f={},u={};function s(e,n){if(e){var t=u[e];if(f[e]=n,t)for(;t.length;)t[0](e,n),t.splice(0,1)}}function o(e,n){e.call&amp;&amp;(e={success:e}),n.length?(e.error||l)(n):(e.success||l)(e)}function h(t,r,i,c){var s,o,e=document,n=i.async,f=(i.numRetries||0)+1,u=i.before||l,a=t.replace(/^(css|img)!/,"");c=c||0,/(^css!|\.css$)/.test(t)?(s=!0,(o=e.createElement("link")).rel="stylesheet",o.href=a):/(^img!|\.(png|gif|jpg|svg)$)/.test(t)?(o=e.createElement("img")).src=a:((o=e.createElement("script")).src=t,o.async=void 0===n||n),!(o.onload=o.onerror=o.onbeforeload=function(e){var n=e.type[0];if(s&amp;&amp;"hideFocus"in o)try{o.sheet.cssText.length||(n="e")}catch(e){n="e"}if("e"==n&amp;&amp;(c+=1)&lt;f)return h(t,r,i,c);rโ€ฆ
CT06warningtitle length 9 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 9 chars
The evidence, taken from the page as served
The page title, as served
9 characters
<title>Resources</title>
CT32warninglength 16
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 16
The evidence, taken from the page as served
The page's description, as served
16 characters
<meta name="description" content="Resource Library"/>
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)
H3 Products
H3 Use Cases
H3 Partners
H3 Resources
H3 Company
H1 Resource Library
H3 Enhancing Triage and Collaboration for Global Banking Security level jumped
H3 EclecticIQ Empowers a National CERTโ€™s Collaborative Threat Intelligence Sharing
H3 EclecticIQ Intelligence Platform Makes Threat Intelligence Actionable for Financ
H3 (no text)
CT16warningthe page carries no structured data block stating what it is (not required; a hygiene signal)
What we check
The page carries structured data, the machine-readable summary of what it describes.
What good looks like
The page carries structured data summarising what it describes.
Why it matters
Vendors document this as optional rather than required, so its absence is a small forfeit and no more.
What we found on this page
the page carries no structured data block stating what it is (not required; a hygiene signal)
The evidence, taken from the page as served
The head of this page, as served

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

<head> <meta charset="utf-8"/> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, viewport-fit=cover"/> <meta name="referrer" content="origin-when-cross-origin"/> <title>Resources</title> <meta name="description" content="Resource Library"/> <meta property="og:image" content="https://www.eclecticiq.com/hubfs/raw_assets/public/rebrand-2024/assets/img/og-eclecticiq.png"/> <script>loadjs=function(){var l=function(){},c={},f={},u={};function s(e,n){if(e){var t=u[e];if(f[e]=n,t)for(;t.length;)t[0](e,n),t.splice(0,1)}}function o(e,n){e.call&amp;&amp;(e={success:e}),n.length?(e.error||l)(n):(e.success||l)(e)}function h(t,r,i,c){var s,o,e=document,n=i.async,f=(i.numRetries||0)+1,u=i.before||l,a=t.replace(/^(css|img)!/,"");c=c||0,/(^css!|\.css$)/.test(t)?(s=!0,(o=e.createElement("link")).rel="stylesheet",o.href=a):/(^img!|\.(png|gif|jpg|svg)$)/.test(t)?(o=e.createElement("img")).src=a:((o=e.createElement("script")).src=t,o.async=void 0===n||n),!(o.onload=o.onerror=o.onbeforeload=function(e){var n=e.type[0];if(s&amp;&amp;"hideFocus"in o)try{o.sheet.cssText.length||(n="e")}catch(e){n="e"}if("e"==n&amp;&amp;(c+=1)&lt;f)return h(t,r,i,c);rโ€ฆ
CT04warningthe page shows the year 2025 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 2025 in its text, but nothing on the page states it as the date of the content
The evidence, taken from the page as served
The head of this page, as served

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

<head> <meta charset="utf-8"/> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, viewport-fit=cover"/> <meta name="referrer" content="origin-when-cross-origin"/> <title>Resources</title> <meta name="description" content="Resource Library"/> <meta property="og:image" content="https://www.eclecticiq.com/hubfs/raw_assets/public/rebrand-2024/assets/img/og-eclecticiq.png"/> <script>loadjs=function(){var l=function(){},c={},f={},u={};function s(e,n){if(e){var t=u[e];if(f[e]=n,t)for(;t.length;)t[0](e,n),t.splice(0,1)}}function o(e,n){e.call&amp;&amp;(e={success:e}),n.length?(e.error||l)(n):(e.success||l)(e)}function h(t,r,i,c){var s,o,e=document,n=i.async,f=(i.numRetries||0)+1,u=i.before||l,a=t.replace(/^(css|img)!/,"");c=c||0,/(^css!|\.css$)/.test(t)?(s=!0,(o=e.createElement("link")).rel="stylesheet",o.href=a):/(^img!|\.(png|gif|jpg|svg)$)/.test(t)?(o=e.createElement("img")).src=a:((o=e.createElement("script")).src=t,o.async=void 0===n||n),!(o.onload=o.onerror=o.onbeforeload=function(e){var n=e.type[0];if(s&amp;&amp;"hideFocus"in o)try{o.sheet.cssText.length||(n="e")}catch(e){n="e"}if("e"==n&amp;&amp;(c+=1)&lt;f)return h(t,r,i,c);rโ€ฆ
CT35warningthe copyright line at the foot of this page states 2024, 2 years behind the year this assessment ran, which reads as a page left unattended and is the usual sign of a template copied from elsewhere
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 copyright line at the foot of this page states 2024, 2 years behind the year this assessment ran, which reads as a page left unattended and is the usual sign of a template copied from elsewhere
The evidence, taken from the page as served
The copyright line as served, and the year it claims
Page ยท opens in a new tabFoundThe text, as served, around the word
www.eclecticiq.com/library?type=case+study&hsLang=en…ยฉ 2024…
AJ05warningno site-search control detected on this page
What we check
Whether a search box for the site is present in the page as it is served.
What good looks like
A search box is present in the served markup, so the site's own content can be queried directly.
Why it matters
With no search box on the page, its links are the only route from here into the rest of the site.
What we found on this page
no site-search control detected on this page
The evidence, taken from the page as served
The head of this page, as served

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

<head> <meta charset="utf-8"/> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, viewport-fit=cover"/> <meta name="referrer" content="origin-when-cross-origin"/> <title>Resources</title> <meta name="description" content="Resource Library"/> <meta property="og:image" content="https://www.eclecticiq.com/hubfs/raw_assets/public/rebrand-2024/assets/img/og-eclecticiq.png"/> <script>loadjs=function(){var l=function(){},c={},f={},u={};function s(e,n){if(e){var t=u[e];if(f[e]=n,t)for(;t.length;)t[0](e,n),t.splice(0,1)}}function o(e,n){e.call&amp;&amp;(e={success:e}),n.length?(e.error||l)(n):(e.success||l)(e)}function h(t,r,i,c){var s,o,e=document,n=i.async,f=(i.numRetries||0)+1,u=i.before||l,a=t.replace(/^(css|img)!/,"");c=c||0,/(^css!|\.css$)/.test(t)?(s=!0,(o=e.createElement("link")).rel="stylesheet",o.href=a):/(^img!|\.(png|gif|jpg|svg)$)/.test(t)?(o=e.createElement("img")).src=a:((o=e.createElement("script")).src=t,o.async=void 0===n||n),!(o.onload=o.onerror=o.onbeforeload=function(e){var n=e.type[0];if(s&amp;&amp;"hideFocus"in o)try{o.sheet.cssText.length||(n="e")}catch(e){n="e"}if("e"==n&amp;&amp;(c+=1)&lt;f)return h(t,r,i,c);rโ€ฆ
MS08fail2 link wording(s) are used for more than one destination, so the same words point at different pages: โ€œbook a demoโ€, โ€œdownloadโ€; 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: โ€œbook a demoโ€, โ€œdownloadโ€; 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
"Book a demo"
<a href="https://www.eclecticiq.com/book-a-demo" target="_blank" class="relative group inline-flex items-center h-12 px-8 rounded-full font-bold bg-blue text-nav text-white leading-none tracking-wide hover:pr-12 transition-all duration-200"> <span class="flex-none">Book a demo</span> <img class="lazyload absolute -top-โ€ฆ
"Download"
<a href="https://www.eclecticiq.com/library/enhancing-triage-and-collaboration-for-global-banking-security" class="group inline-flex items-center gap-2 lg:gap-3 max-w-full font-bold text-sm xl:text-base leading-tight tracking-wide font-semibold text-white mt-auto leading-tight"> <span class="sm:flex-none truncate">Downโ€ฆ
"Download"
<a href="https://www.eclecticiq.com/library/eclecticiq-empowers-a-national-certs-collaborative-threat-intelligence-sharing-community" class="group inline-flex items-center gap-2 lg:gap-3 max-w-full font-bold text-sm xl:text-base leading-tight tracking-wide font-semibold text-white mt-auto leading-tight"> <span class="sโ€ฆ
"Download"
<a href="https://www.eclecticiq.com/library/a-financial-heavyweight-makes-threat-intelligence-actionable-with-eclecticiq" class="group inline-flex items-center gap-2 lg:gap-3 max-w-full font-bold text-sm xl:text-base leading-tight tracking-wide font-semibold text-white mt-auto leading-tight"> <span class="sm:flex-none โ€ฆ
"Book a demo"
<a href="" class="relative flex xs:inline-flex justify-center items-center h-12 px-8 rounded-full font-bold bg-blue text-nav text-white leading-none tracking-wide"> <span class="flex-none">Book a demo</span> <img class="lazyload absolute -top-2 right-2 w-4 scale-110" src="https://www.eclecticiq.com/hubfs/raw_assets/pubโ€ฆ
MS10failthe page's first heading is not its top-level heading, so the structure starts part way down; the 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 page's first heading is not its top-level heading, so the structure starts part way down; 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)
H3 Products level jumped
H3 Use Cases
H3 Partners
H3 Resources
H3 Company
H1 Resource Library
H3 Enhancing Triage and Collaboration for Global Banking Security level jumped
H3 EclecticIQ Empowers a National CERTโ€™s Collaborative Threat Intelligence Sharing
H3 EclecticIQ Intelligence Platform Makes Threat Intelligence Actionable for Financ
H3 (no text)
MS13warning2 of 2 iframes untitled
What we check
Each embedded panel on the page carries a title saying what it contains.
What good looks like
Each embedded panel carries a title saying what it contains.
Why it matters
The embedded region stays unnamed, so what it holds is left unstated in the page around it.
What we found on this page
2 of 2 iframes untitled
The evidence, taken from the page as served
The iframes with no title attribute, as served
src=https://www.googletagmanager.com/ns.html?id=GTM-MC7MVC
<iframe src="https://www.googletagmanager.com/ns.html?id=GTM-MC7MVC" height="0" width="0" style="display:none;visibility:hidden"/>
src=https://www.googletagmanager.com/ns.html?id=GTM-MC7MVC
<iframe src="https://www.googletagmanager.com/ns.html?id=GTM-MC7MVC" height="0" width="0" style="display:none;visibility:hidden"/>
AR03warning14% of the words a person sees are missing from the page as first delivered (2175 characters delivered, 2375 once the page finishes building itself)
What we check
How much of the page's content exists only once JavaScript has run.
What good looks like
The page's content is present in the served HTML, so it does not depend on JavaScript to appear.
Why it matters
The page is fetched successfully but the answer is missing from what comes back, so the content is absent rather than wrong.
What we found on this page
14% of the words a person sees are missing from the page as first delivered (2175 characters delivered, 2375 once the page finishes building itself)
The evidence, taken from the page as served
Content present only after JavaScript runs (absent from the served HTML)

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

What the server sends (raw HTML text, first 280 chars)
Resources Products Products Threat Intelligence Platform Threat Intelligence Browser Extension Threat Intelligence Feeds Use Cases Use Cases Defense TIP Alert Triage Incident Response Reporting AI Search Partners Partners Integration Partners Channel Partners Resources Resources …
Words present only after JavaScript runs
accordanceacknowledgeaddressagreebusinessemailforminformationpersonalprocesssignsubmittingthatthisupdateswillyour
AR11warning14% of the words a person sees are missing from the page as first delivered, which is 0.92 of its finished size
What we check
The measured gap between the page as served and the page after the browser has built it.
What good looks like
The served page and the fully built page carry the same words, with little gap between them.
Why it matters
Two versions of the same page exist, and which words come back depends on which version was fetched.
What we found on this page
14% of the words a person sees are missing from the page as first delivered, which is 0.92 of its finished size
The evidence, taken from the page as served
This page as first delivered, against the page once its scripts have run

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

What was measuredAs measured on this page
Text in the page as delivered2175 characters
Text once the page finishes building2375 characters
Words absent from the delivered page14%
The point we measure against10%
MS02warning6 of 57 buttons, links and controls on the loaded page carry no name in the page's code saying what each is for
What we check
Whether the page's buttons, links and form controls each carry a name once the page has loaded.
What good looks like
The page's buttons, links and form controls each carry a name once the page has loaded.
Why it matters
Unnamed controls are identified by their position on the screen alone, so a redesign moves what they refer to.
What we found on this page
6 of 57 buttons, links and controls on the loaded page carry no name in the page's code saying what each is for
The evidence, taken from the page as served
The controls on this page that carry no name

Read on the page once its scripts had run.

What was measuredAs measured on this page
Controls found57
Of those, carrying no name6
Kinds affectedlink, textbox
MS04warningthe page's naming markup is faulty: 3 name label(s) point at nothing: the code that should hold the name is absent
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: 3 name label(s) point at nothing: the code that should hold the name is absent
The evidence, taken from the page as served
The faulty markup, as the page serves it once loaded
<div x-show="subnav" @keydown.escape.prevent.stop="subnav = false" role="dialog" aria-modal="true" x-id="['use cases ']" :aria-labelledby="$id('use cases ')" class="absolute top-0 pt-12 -left-8" aria-labelledby="use cases -1" style="display: none;"> <div class="relative h-full w-full flex items-center justify-center teโ€ฆ
CT34failthe page's own words are thin: 266 of its 316 words are shared navigation and footer, so it reads as 94% identical to another page, which a machine can then take as a duplicate and pass over, missing the little content that is its own; the matching page is named in the view
What we check
Whether a page's own words are so few against a large shared navigation and footer that it reads as near-identical to other pages.
What good looks like
A page carries enough of its own words that a shared navigation and footer do not make it read as a copy of other pages.
Why it matters
When shared furniture is most of the text, distinct pages look like copies of each other and the little real content is easily passed over.
What we found on this page
the page's own words are thin: 266 of its 316 words are shared navigation and footer, so it reads as 94% identical to another page, which a machine can then take as a duplicate and pass over, missing the little content that is its own; the matching page is named in the view
The evidence, taken from the page as served
This page's own words, lost in shared navigation and footer
Page ยท opens in a new tabOwn wordsChromeReads as identical toShared
www.eclecticiq.com/library?type=case+study&hsLang=en50 of 31684%www.eclecticiq.com/library?type=product+sheet&hsLang=en94%
https://www.eclecticiq.com/library?type=product+sheet&hsLang=en 29.9% Very likely 16 out of 58
CheckResultEvidence
DS17failthe page states no preferred address for itself, so duplicate copies compete to be the one cited
What we check
Each page names one preferred address for itself, its canonical link.
What good looks like
Each page names one preferred address for itself.
Why it matters
With no preferred address stated, duplicate copies compete and the version that ends up cited is arbitrary.
What we found on this page
the page states no preferred address for itself, so duplicate copies compete to be the one cited
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 naming the page's preferred address.

<head> <meta charset="utf-8"/> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, viewport-fit=cover"/> <meta name="referrer" content="origin-when-cross-origin"/> <title>Resources</title> <meta name="description" content="Resource Library"/> <meta property="og:image" content="https://www.eclecticiq.com/hubfs/raw_assets/public/rebrand-2024/assets/img/og-eclecticiq.png"/> <script>loadjs=function(){var l=function(){},c={},f={},u={};function s(e,n){if(e){var t=u[e];if(f[e]=n,t)for(;t.length;)t[0](e,n),t.splice(0,1)}}function o(e,n){e.call&amp;&amp;(e={success:e}),n.length?(e.error||l)(n):(e.success||l)(e)}function h(t,r,i,c){var s,o,e=document,n=i.async,f=(i.numRetries||0)+1,u=i.before||l,a=t.replace(/^(css|img)!/,"");c=c||0,/(^css!|\.css$)/.test(t)?(s=!0,(o=e.createElement("link")).rel="stylesheet",o.href=a):/(^img!|\.(png|gif|jpg|svg)$)/.test(t)?(o=e.createElement("img")).src=a:((o=e.createElement("script")).src=t,o.async=void 0===n||n),!(o.onload=o.onerror=o.onbeforeload=function(e){var n=e.type[0];if(s&amp;&amp;"hideFocus"in o)try{o.sheet.cssText.length||(n="e")}catch(e){n="e"}if("e"==n&amp;&amp;(c+=1)&lt;f)return h(t,r,i,c);rโ€ฆ
CT06warningtitle length 9 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 9 chars
The evidence, taken from the page as served
The page title, as served
9 characters
<title>Resources</title>
CT32warninglength 16
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 16
The evidence, taken from the page as served
The page's description, as served
16 characters
<meta name="description" content="Resource Library"/>
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)
H3 Products
H3 Use Cases
H3 Partners
H3 Resources
H3 Company
H1 Resource Library
H3 Threat Intelligence Feeds level jumped
H3 Threat Intelligence Platform
H3 Threat Intelligence Browser Extension
H3 (no text)
CT16warningthe page carries no structured data block stating what it is (not required; a hygiene signal)
What we check
The page carries structured data, the machine-readable summary of what it describes.
What good looks like
The page carries structured data summarising what it describes.
Why it matters
Vendors document this as optional rather than required, so its absence is a small forfeit and no more.
What we found on this page
the page carries no structured data block stating what it is (not required; a hygiene signal)
The evidence, taken from the page as served
The head of this page, as served

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

<head> <meta charset="utf-8"/> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, viewport-fit=cover"/> <meta name="referrer" content="origin-when-cross-origin"/> <title>Resources</title> <meta name="description" content="Resource Library"/> <meta property="og:image" content="https://www.eclecticiq.com/hubfs/raw_assets/public/rebrand-2024/assets/img/og-eclecticiq.png"/> <script>loadjs=function(){var l=function(){},c={},f={},u={};function s(e,n){if(e){var t=u[e];if(f[e]=n,t)for(;t.length;)t[0](e,n),t.splice(0,1)}}function o(e,n){e.call&amp;&amp;(e={success:e}),n.length?(e.error||l)(n):(e.success||l)(e)}function h(t,r,i,c){var s,o,e=document,n=i.async,f=(i.numRetries||0)+1,u=i.before||l,a=t.replace(/^(css|img)!/,"");c=c||0,/(^css!|\.css$)/.test(t)?(s=!0,(o=e.createElement("link")).rel="stylesheet",o.href=a):/(^img!|\.(png|gif|jpg|svg)$)/.test(t)?(o=e.createElement("img")).src=a:((o=e.createElement("script")).src=t,o.async=void 0===n||n),!(o.onload=o.onerror=o.onbeforeload=function(e){var n=e.type[0];if(s&amp;&amp;"hideFocus"in o)try{o.sheet.cssText.length||(n="e")}catch(e){n="e"}if("e"==n&amp;&amp;(c+=1)&lt;f)return h(t,r,i,c);rโ€ฆ
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 name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, viewport-fit=cover"/> <meta name="referrer" content="origin-when-cross-origin"/> <title>Resources</title> <meta name="description" content="Resource Library"/> <meta property="og:image" content="https://www.eclecticiq.com/hubfs/raw_assets/public/rebrand-2024/assets/img/og-eclecticiq.png"/> <script>loadjs=function(){var l=function(){},c={},f={},u={};function s(e,n){if(e){var t=u[e];if(f[e]=n,t)for(;t.length;)t[0](e,n),t.splice(0,1)}}function o(e,n){e.call&amp;&amp;(e={success:e}),n.length?(e.error||l)(n):(e.success||l)(e)}function h(t,r,i,c){var s,o,e=document,n=i.async,f=(i.numRetries||0)+1,u=i.before||l,a=t.replace(/^(css|img)!/,"");c=c||0,/(^css!|\.css$)/.test(t)?(s=!0,(o=e.createElement("link")).rel="stylesheet",o.href=a):/(^img!|\.(png|gif|jpg|svg)$)/.test(t)?(o=e.createElement("img")).src=a:((o=e.createElement("script")).src=t,o.async=void 0===n||n),!(o.onload=o.onerror=o.onbeforeload=function(e){var n=e.type[0];if(s&amp;&amp;"hideFocus"in o)try{o.sheet.cssText.length||(n="e")}catch(e){n="e"}if("e"==n&amp;&amp;(c+=1)&lt;f)return h(t,r,i,c);rโ€ฆ
CT35warningthe copyright line at the foot of this page states 2024, 2 years behind the year this assessment ran, which reads as a page left unattended and is the usual sign of a template copied from elsewhere
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 copyright line at the foot of this page states 2024, 2 years behind the year this assessment ran, which reads as a page left unattended and is the usual sign of a template copied from elsewhere
The evidence, taken from the page as served
The copyright line as served, and the year it claims
Page ยท opens in a new tabFoundThe text, as served, around the word
www.eclecticiq.com/library?type=product+sheet&hsLang=en…ยฉ 2024…
AJ05warningno site-search control detected on this page
What we check
Whether a search box for the site is present in the page as it is served.
What good looks like
A search box is present in the served markup, so the site's own content can be queried directly.
Why it matters
With no search box on the page, its links are the only route from here into the rest of the site.
What we found on this page
no site-search control detected on this page
The evidence, taken from the page as served
The head of this page, as served

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

<head> <meta charset="utf-8"/> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, viewport-fit=cover"/> <meta name="referrer" content="origin-when-cross-origin"/> <title>Resources</title> <meta name="description" content="Resource Library"/> <meta property="og:image" content="https://www.eclecticiq.com/hubfs/raw_assets/public/rebrand-2024/assets/img/og-eclecticiq.png"/> <script>loadjs=function(){var l=function(){},c={},f={},u={};function s(e,n){if(e){var t=u[e];if(f[e]=n,t)for(;t.length;)t[0](e,n),t.splice(0,1)}}function o(e,n){e.call&amp;&amp;(e={success:e}),n.length?(e.error||l)(n):(e.success||l)(e)}function h(t,r,i,c){var s,o,e=document,n=i.async,f=(i.numRetries||0)+1,u=i.before||l,a=t.replace(/^(css|img)!/,"");c=c||0,/(^css!|\.css$)/.test(t)?(s=!0,(o=e.createElement("link")).rel="stylesheet",o.href=a):/(^img!|\.(png|gif|jpg|svg)$)/.test(t)?(o=e.createElement("img")).src=a:((o=e.createElement("script")).src=t,o.async=void 0===n||n),!(o.onload=o.onerror=o.onbeforeload=function(e){var n=e.type[0];if(s&amp;&amp;"hideFocus"in o)try{o.sheet.cssText.length||(n="e")}catch(e){n="e"}if("e"==n&amp;&amp;(c+=1)&lt;f)return h(t,r,i,c);rโ€ฆ
MS08fail5 link wording(s) are used for more than one destination, so the same words point at different pages: โ€œbook a demoโ€, โ€œdownloadโ€, โ€œthreat intelligence browser extensionโ€ and 2 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
5 link wording(s) are used for more than one destination, so the same words point at different pages: โ€œbook a demoโ€, โ€œdownloadโ€, โ€œthreat intelligence browser extensionโ€ and 2 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
"Threat Intelligence Platform"
<a class="flex items-center gap-6 hover:text-red" href="https://www.eclecticiq.com/threat-intelligence-platform" target="_self"> <img class="w-8" src="https://www.eclecticiq.com/hubfs/raw_assets/public/rebrand-2024/assets/svg/platform.svg" alt=""/> <span>Threat Intelligence Platform</span> </a>
"Threat Intelligence Browser Extension"
<a class="flex items-center gap-6 hover:text-red" href="https://www.eclecticiq.com/threat-intelligence-browser-extension" target="_self"> <img class="w-8" src="https://www.eclecticiq.com/hubfs/raw_assets/public/rebrand-2024/assets/svg/browser.svg" alt=""/> <span>Threat Intelligence Browser Extension</span> </a>
"Threat Intelligence Feeds"
<a class="flex items-center gap-6 hover:text-red" href="https://www.eclecticiq.com/threat-intelligence-feeds" target="_self"> <img class="w-8" src="https://www.eclecticiq.com/hubfs/raw_assets/public/rebrand-2024/assets/svg/feeds.svg" alt=""/> <span>Threat Intelligence Feeds</span> </a>
"Book a demo"
<a href="https://www.eclecticiq.com/book-a-demo" target="_blank" class="relative group inline-flex items-center h-12 px-8 rounded-full font-bold bg-blue text-nav text-white leading-none tracking-wide hover:pr-12 transition-all duration-200"> <span class="flex-none">Book a demo</span> <img class="lazyload absolute -top-โ€ฆ
"Threat Intelligence Feeds"
<a href="https://www.eclecticiq.com/library/threat-intelligence-feeds" class="mt-6 xl:mt-10 mb-10 xl:mb-16"> <h3 class="faux-h6 text-lg leading-tight">Threat Intelligence Feeds</h3> </a>
"Download"
<a href="https://www.eclecticiq.com/library/threat-intelligence-feeds" class="group inline-flex items-center gap-2 lg:gap-3 max-w-full font-bold text-sm xl:text-base leading-tight tracking-wide font-semibold text-white mt-auto leading-tight"> <span class="sm:flex-none truncate">Download</span> <svg xmlns="http://www.w3โ€ฆ
"Threat Intelligence Platform"
<a href="https://www.eclecticiq.com/library/threat-intelligence-platform-product-sheet" class="mt-6 xl:mt-10 mb-10 xl:mb-16"> <h3 class="faux-h6 text-lg leading-tight">Threat Intelligence Platform</h3> </a>
"Download"
<a href="https://www.eclecticiq.com/library/threat-intelligence-platform-product-sheet" class="group inline-flex items-center gap-2 lg:gap-3 max-w-full font-bold text-sm xl:text-base leading-tight tracking-wide font-semibold text-white mt-auto leading-tight"> <span class="sm:flex-none truncate">Download</span> <svg xmlโ€ฆ
"Threat Intelligence Browser Extension"
<a href="https://www.eclecticiq.com/library/threat-intelligence-browser-extension" class="mt-6 xl:mt-10 mb-10 xl:mb-16"> <h3 class="faux-h6 text-lg leading-tight">Threat Intelligence Browser Extension</h3> </a>
"Download"
<a href="https://www.eclecticiq.com/library/threat-intelligence-browser-extension" class="group inline-flex items-center gap-2 lg:gap-3 max-w-full font-bold text-sm xl:text-base leading-tight tracking-wide font-semibold text-white mt-auto leading-tight"> <span class="sm:flex-none truncate">Download</span> <svg xmlns="hโ€ฆ
MS10failthe page's first heading is not its top-level heading, so the structure starts part way down; the 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 page's first heading is not its top-level heading, so the structure starts part way down; 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)
H3 Products level jumped
H3 Use Cases
H3 Partners
H3 Resources
H3 Company
H1 Resource Library
H3 Threat Intelligence Feeds level jumped
H3 Threat Intelligence Platform
H3 Threat Intelligence Browser Extension
H3 (no text)
MS13warning2 of 2 iframes untitled
What we check
Each embedded panel on the page carries a title saying what it contains.
What good looks like
Each embedded panel carries a title saying what it contains.
Why it matters
The embedded region stays unnamed, so what it holds is left unstated in the page around it.
What we found on this page
2 of 2 iframes untitled
The evidence, taken from the page as served
The iframes with no title attribute, as served
src=https://www.googletagmanager.com/ns.html?id=GTM-MC7MVC
<iframe src="https://www.googletagmanager.com/ns.html?id=GTM-MC7MVC" height="0" width="0" style="display:none;visibility:hidden"/>
src=https://www.googletagmanager.com/ns.html?id=GTM-MC7MVC
<iframe src="https://www.googletagmanager.com/ns.html?id=GTM-MC7MVC" height="0" width="0" style="display:none;visibility:hidden"/>
AR03warning16% of the words a person sees are missing from the page as first delivered (2041 characters delivered, 2241 once the page finishes building itself)
What we check
How much of the page's content exists only once JavaScript has run.
What good looks like
The page's content is present in the served HTML, so it does not depend on JavaScript to appear.
Why it matters
The page is fetched successfully but the answer is missing from what comes back, so the content is absent rather than wrong.
What we found on this page
16% of the words a person sees are missing from the page as first delivered (2041 characters delivered, 2241 once the page finishes building itself)
The evidence, taken from the page as served
Content present only after JavaScript runs (absent from the served HTML)

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

What the server sends (raw HTML text, first 280 chars)
Resources Products Products Threat Intelligence Platform Threat Intelligence Browser Extension Threat Intelligence Feeds Use Cases Use Cases Defense TIP Alert Triage Incident Response Reporting AI Search Partners Partners Integration Partners Channel Partners Resources Resources …
Words present only after JavaScript runs
accordanceacknowledgeaddressagreebusinessemailforminformationpersonalprocesssignsubmittingthatthisupdateswillyour
AR11warning16% of the words a person sees are missing from the page as first delivered, which is 0.91 of its finished size
What we check
The measured gap between the page as served and the page after the browser has built it.
What good looks like
The served page and the fully built page carry the same words, with little gap between them.
Why it matters
Two versions of the same page exist, and which words come back depends on which version was fetched.
What we found on this page
16% of the words a person sees are missing from the page as first delivered, which is 0.91 of its finished size
The evidence, taken from the page as served
This page as first delivered, against the page once its scripts have run

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

What was measuredAs measured on this page
Text in the page as delivered2041 characters
Text once the page finishes building2241 characters
Words absent from the delivered page16%
The point we measure against10%
MS02warning6 of 57 buttons, links and controls on the loaded page carry no name in the page's code saying what each is for
What we check
Whether the page's buttons, links and form controls each carry a name once the page has loaded.
What good looks like
The page's buttons, links and form controls each carry a name once the page has loaded.
Why it matters
Unnamed controls are identified by their position on the screen alone, so a redesign moves what they refer to.
What we found on this page
6 of 57 buttons, links and controls on the loaded page carry no name in the page's code saying what each is for
The evidence, taken from the page as served
The controls on this page that carry no name

Read on the page once its scripts had run.

What was measuredAs measured on this page
Controls found57
Of those, carrying no name6
Kinds affectedlink, textbox
MS04warningthe page's naming markup is faulty: 3 name label(s) point at nothing: the code that should hold the name is absent
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: 3 name label(s) point at nothing: the code that should hold the name is absent
The evidence, taken from the page as served
The faulty markup, as the page serves it once loaded
<div x-show="subnav" @keydown.escape.prevent.stop="subnav = false" role="dialog" aria-modal="true" x-id="['use cases ']" :aria-labelledby="$id('use cases ')" class="absolute top-0 pt-12 -left-8" aria-labelledby="use cases -1" style="display: none;"> <div class="relative h-full w-full flex items-center justify-center teโ€ฆ
CT34failthe page's own words are thin: 266 of its 301 words are shared navigation and footer, so it reads as 94% identical to another page, which a machine can then take as a duplicate and pass over, missing the little content that is its own; the matching page is named in the view
What we check
Whether a page's own words are so few against a large shared navigation and footer that it reads as near-identical to other pages.
What good looks like
A page carries enough of its own words that a shared navigation and footer do not make it read as a copy of other pages.
Why it matters
When shared furniture is most of the text, distinct pages look like copies of each other and the little real content is easily passed over.
What we found on this page
the page's own words are thin: 266 of its 301 words are shared navigation and footer, so it reads as 94% identical to another page, which a machine can then take as a duplicate and pass over, missing the little content that is its own; the matching page is named in the view
The evidence, taken from the page as served
This page's own words, lost in shared navigation and footer
Page ยท opens in a new tabOwn wordsChromeReads as identical toShared
www.eclecticiq.com/library?type=product+sheet&hsLang=en35 of 30188%www.eclecticiq.com/library?type=case+study&hsLang=en94%
https://www.eclecticiq.com/library?type=solution+brief&hsLang=en 29.9% Very likely 16 out of 58
CheckResultEvidence
DS17failthe page states no preferred address for itself, so duplicate copies compete to be the one cited
What we check
Each page names one preferred address for itself, its canonical link.
What good looks like
Each page names one preferred address for itself.
Why it matters
With no preferred address stated, duplicate copies compete and the version that ends up cited is arbitrary.
What we found on this page
the page states no preferred address for itself, so duplicate copies compete to be the one cited
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 naming the page's preferred address.

<head> <meta charset="utf-8"/> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, viewport-fit=cover"/> <meta name="referrer" content="origin-when-cross-origin"/> <title>Resources</title> <meta name="description" content="Resource Library"/> <meta property="og:image" content="https://www.eclecticiq.com/hubfs/raw_assets/public/rebrand-2024/assets/img/og-eclecticiq.png"/> <script>loadjs=function(){var l=function(){},c={},f={},u={};function s(e,n){if(e){var t=u[e];if(f[e]=n,t)for(;t.length;)t[0](e,n),t.splice(0,1)}}function o(e,n){e.call&amp;&amp;(e={success:e}),n.length?(e.error||l)(n):(e.success||l)(e)}function h(t,r,i,c){var s,o,e=document,n=i.async,f=(i.numRetries||0)+1,u=i.before||l,a=t.replace(/^(css|img)!/,"");c=c||0,/(^css!|\.css$)/.test(t)?(s=!0,(o=e.createElement("link")).rel="stylesheet",o.href=a):/(^img!|\.(png|gif|jpg|svg)$)/.test(t)?(o=e.createElement("img")).src=a:((o=e.createElement("script")).src=t,o.async=void 0===n||n),!(o.onload=o.onerror=o.onbeforeload=function(e){var n=e.type[0];if(s&amp;&amp;"hideFocus"in o)try{o.sheet.cssText.length||(n="e")}catch(e){n="e"}if("e"==n&amp;&amp;(c+=1)&lt;f)return h(t,r,i,c);rโ€ฆ
CT06warningtitle length 9 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 9 chars
The evidence, taken from the page as served
The page title, as served
9 characters
<title>Resources</title>
CT32warninglength 16
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 16
The evidence, taken from the page as served
The page's description, as served
16 characters
<meta name="description" content="Resource Library"/>
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)
H3 Products
H3 Use Cases
H3 Partners
H3 Resources
H3 Company
H1 Resource Library
H3 Censys and EclecticIQ Intelligence Centerโ„ข level jumped
H3 Bluesky and EclecticIQ Intelligence Centerโ„ข
H3 Modat Integration with EclecticIQ Intelligence Centerโ„ข
H3 Twitter (X) and EclecticIQ Intelligence Centerโ„ข
H3 Telegram and EclecticIQ Intelligence Center
H3 ReversingLabs Spectra Analyze and Spectra Intelligence Integration with Eclectic
H3 VMRay UniqueSignal and EclecticIQ Intelligence Center
H3 Bitdefender Sandbox and EclecticIQ Intelligence Center
H3 Qualys and EclecticIQ Intelligence Center
H3 Silobreaker and EclecticIQ Intelligence Center
H3 Microsoft Sentinel and EclecticIQ Intelligence Center
H3 Group-IB and EclecticIQ Intelligence Center
H3 Intel 471 and EclecticIQ Intelligence Center
H3 Kaspersky and EclecticIQ Intelligence Center
H3 Recorded Future and EclecticIQ Intelligence Center
H3 Flashpoint and EclecticIQ Intelligence Center
H3 Splunk and EclecticIQ Intelligence Center
H3 IBM Security and EclecticIQ Intelligence Center
H3 Google Chronicle and EclecticIQ Intelligence Center
H3 Cortex XSOAR and EclecticIQ Intelligence Center
H3 ServiceNow and EclecticIQ Intelligence Center
H3 (no text)
CT16warningthe page carries no structured data block stating what it is (not required; a hygiene signal)
What we check
The page carries structured data, the machine-readable summary of what it describes.
What good looks like
The page carries structured data summarising what it describes.
Why it matters
Vendors document this as optional rather than required, so its absence is a small forfeit and no more.
What we found on this page
the page carries no structured data block stating what it is (not required; a hygiene signal)
The evidence, taken from the page as served
The head of this page, as served

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

<head> <meta charset="utf-8"/> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, viewport-fit=cover"/> <meta name="referrer" content="origin-when-cross-origin"/> <title>Resources</title> <meta name="description" content="Resource Library"/> <meta property="og:image" content="https://www.eclecticiq.com/hubfs/raw_assets/public/rebrand-2024/assets/img/og-eclecticiq.png"/> <script>loadjs=function(){var l=function(){},c={},f={},u={};function s(e,n){if(e){var t=u[e];if(f[e]=n,t)for(;t.length;)t[0](e,n),t.splice(0,1)}}function o(e,n){e.call&amp;&amp;(e={success:e}),n.length?(e.error||l)(n):(e.success||l)(e)}function h(t,r,i,c){var s,o,e=document,n=i.async,f=(i.numRetries||0)+1,u=i.before||l,a=t.replace(/^(css|img)!/,"");c=c||0,/(^css!|\.css$)/.test(t)?(s=!0,(o=e.createElement("link")).rel="stylesheet",o.href=a):/(^img!|\.(png|gif|jpg|svg)$)/.test(t)?(o=e.createElement("img")).src=a:((o=e.createElement("script")).src=t,o.async=void 0===n||n),!(o.onload=o.onerror=o.onbeforeload=function(e){var n=e.type[0];if(s&amp;&amp;"hideFocus"in o)try{o.sheet.cssText.length||(n="e")}catch(e){n="e"}if("e"==n&amp;&amp;(c+=1)&lt;f)return h(t,r,i,c);rโ€ฆ
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 name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, viewport-fit=cover"/> <meta name="referrer" content="origin-when-cross-origin"/> <title>Resources</title> <meta name="description" content="Resource Library"/> <meta property="og:image" content="https://www.eclecticiq.com/hubfs/raw_assets/public/rebrand-2024/assets/img/og-eclecticiq.png"/> <script>loadjs=function(){var l=function(){},c={},f={},u={};function s(e,n){if(e){var t=u[e];if(f[e]=n,t)for(;t.length;)t[0](e,n),t.splice(0,1)}}function o(e,n){e.call&amp;&amp;(e={success:e}),n.length?(e.error||l)(n):(e.success||l)(e)}function h(t,r,i,c){var s,o,e=document,n=i.async,f=(i.numRetries||0)+1,u=i.before||l,a=t.replace(/^(css|img)!/,"");c=c||0,/(^css!|\.css$)/.test(t)?(s=!0,(o=e.createElement("link")).rel="stylesheet",o.href=a):/(^img!|\.(png|gif|jpg|svg)$)/.test(t)?(o=e.createElement("img")).src=a:((o=e.createElement("script")).src=t,o.async=void 0===n||n),!(o.onload=o.onerror=o.onbeforeload=function(e){var n=e.type[0];if(s&amp;&amp;"hideFocus"in o)try{o.sheet.cssText.length||(n="e")}catch(e){n="e"}if("e"==n&amp;&amp;(c+=1)&lt;f)return h(t,r,i,c);rโ€ฆ
CT35warningthe copyright line at the foot of this page states 2024, 2 years behind the year this assessment ran, which reads as a page left unattended and is the usual sign of a template copied from elsewhere
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 copyright line at the foot of this page states 2024, 2 years behind the year this assessment ran, which reads as a page left unattended and is the usual sign of a template copied from elsewhere
The evidence, taken from the page as served
The copyright line as served, and the year it claims
Page ยท opens in a new tabFoundThe text, as served, around the word
www.eclecticiq.com/library?type=solution+brief&hsLang=en…ยฉ 2024…
AJ05warningno site-search control detected on this page
What we check
Whether a search box for the site is present in the page as it is served.
What good looks like
A search box is present in the served markup, so the site's own content can be queried directly.
Why it matters
With no search box on the page, its links are the only route from here into the rest of the site.
What we found on this page
no site-search control detected on this page
The evidence, taken from the page as served
The head of this page, as served

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

<head> <meta charset="utf-8"/> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, viewport-fit=cover"/> <meta name="referrer" content="origin-when-cross-origin"/> <title>Resources</title> <meta name="description" content="Resource Library"/> <meta property="og:image" content="https://www.eclecticiq.com/hubfs/raw_assets/public/rebrand-2024/assets/img/og-eclecticiq.png"/> <script>loadjs=function(){var l=function(){},c={},f={},u={};function s(e,n){if(e){var t=u[e];if(f[e]=n,t)for(;t.length;)t[0](e,n),t.splice(0,1)}}function o(e,n){e.call&amp;&amp;(e={success:e}),n.length?(e.error||l)(n):(e.success||l)(e)}function h(t,r,i,c){var s,o,e=document,n=i.async,f=(i.numRetries||0)+1,u=i.before||l,a=t.replace(/^(css|img)!/,"");c=c||0,/(^css!|\.css$)/.test(t)?(s=!0,(o=e.createElement("link")).rel="stylesheet",o.href=a):/(^img!|\.(png|gif|jpg|svg)$)/.test(t)?(o=e.createElement("img")).src=a:((o=e.createElement("script")).src=t,o.async=void 0===n||n),!(o.onload=o.onerror=o.onbeforeload=function(e){var n=e.type[0];if(s&amp;&amp;"hideFocus"in o)try{o.sheet.cssText.length||(n="e")}catch(e){n="e"}if("e"==n&amp;&amp;(c+=1)&lt;f)return h(t,r,i,c);rโ€ฆ
MS08fail2 link wording(s) are used for more than one destination, so the same words point at different pages: โ€œbook a demoโ€, โ€œdownloadโ€; 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: โ€œbook a demoโ€, โ€œdownloadโ€; 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
"Book a demo"
<a href="https://www.eclecticiq.com/book-a-demo" target="_blank" class="relative group inline-flex items-center h-12 px-8 rounded-full font-bold bg-blue text-nav text-white leading-none tracking-wide hover:pr-12 transition-all duration-200"> <span class="flex-none">Book a demo</span> <img class="lazyload absolute -top-โ€ฆ
"Download"
<a href="https://www.eclecticiq.com/library/censys-and-eclecticiq-intelligence-center" class="group inline-flex items-center gap-2 lg:gap-3 max-w-full font-bold text-sm xl:text-base leading-tight tracking-wide font-semibold text-white mt-auto leading-tight"> <span class="sm:flex-none truncate">Download</span> <svg xmlnโ€ฆ
"Download"
<a href="https://www.eclecticiq.com/library/bluesky-and-eclecticiq-intelligence-center" class="group inline-flex items-center gap-2 lg:gap-3 max-w-full font-bold text-sm xl:text-base leading-tight tracking-wide font-semibold text-white mt-auto leading-tight"> <span class="sm:flex-none truncate">Download</span> <svg xmlโ€ฆ
"Download"
<a href="https://www.eclecticiq.com/library/modat-integration-with-eclecticiq-intelligence-center" class="group inline-flex items-center gap-2 lg:gap-3 max-w-full font-bold text-sm xl:text-base leading-tight tracking-wide font-semibold text-white mt-auto leading-tight"> <span class="sm:flex-none truncate">Download</spaโ€ฆ
"Download"
<a href="https://www.eclecticiq.com/library/twitter-x-channel-monitoring-and-intelligence-extraction-for-eclecticiq-intelligence-center" class="group inline-flex items-center gap-2 lg:gap-3 max-w-full font-bold text-sm xl:text-base leading-tight tracking-wide font-semibold text-white mt-auto leading-tight"> <span classโ€ฆ
"Download"
<a href="https://www.eclecticiq.com/library/telegram-and-eclecticiq-intelligence-center" class="group inline-flex items-center gap-2 lg:gap-3 max-w-full font-bold text-sm xl:text-base leading-tight tracking-wide font-semibold text-white mt-auto leading-tight"> <span class="sm:flex-none truncate">Download</span> <svg xmโ€ฆ
"Download"
<a href="https://www.eclecticiq.com/library/reversinglabs-spectra-analyze-and-spectra-intelligence-integration-with-eclecticiq-intelligence-center" class="group inline-flex items-center gap-2 lg:gap-3 max-w-full font-bold text-sm xl:text-base leading-tight tracking-wide font-semibold text-white mt-auto leading-tight"> โ€ฆ
"Download"
<a href="https://www.eclecticiq.com/library/vmray-uniquesignal-and-eclecticiq-intelligence-center" class="group inline-flex items-center gap-2 lg:gap-3 max-w-full font-bold text-sm xl:text-base leading-tight tracking-wide font-semibold text-white mt-auto leading-tight"> <span class="sm:flex-none truncate">Download</spaโ€ฆ
"Download"
<a href="https://www.eclecticiq.com/library/bitdefender-sandbox-and-eclecticiq" class="group inline-flex items-center gap-2 lg:gap-3 max-w-full font-bold text-sm xl:text-base leading-tight tracking-wide font-semibold text-white mt-auto leading-tight"> <span class="sm:flex-none truncate">Download</span> <svg xmlns="httpโ€ฆ
"Download"
<a href="https://www.eclecticiq.com/library/qualys-and-eclecticiq-intelligence-center" class="group inline-flex items-center gap-2 lg:gap-3 max-w-full font-bold text-sm xl:text-base leading-tight tracking-wide font-semibold text-white mt-auto leading-tight"> <span class="sm:flex-none truncate">Download</span> <svg xmlnโ€ฆ
MS10failthe page's first heading is not its top-level heading, so the structure starts part way down; the 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 page's first heading is not its top-level heading, so the structure starts part way down; 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)
H3 Products level jumped
H3 Use Cases
H3 Partners
H3 Resources
H3 Company
H1 Resource Library
H3 Censys and EclecticIQ Intelligence Centerโ„ข level jumped
H3 Bluesky and EclecticIQ Intelligence Centerโ„ข
H3 Modat Integration with EclecticIQ Intelligence Centerโ„ข
H3 Twitter (X) and EclecticIQ Intelligence Centerโ„ข
H3 Telegram and EclecticIQ Intelligence Center
H3 ReversingLabs Spectra Analyze and Spectra Intelligence Integration with Eclectic
H3 VMRay UniqueSignal and EclecticIQ Intelligence Center
H3 Bitdefender Sandbox and EclecticIQ Intelligence Center
H3 Qualys and EclecticIQ Intelligence Center
H3 Silobreaker and EclecticIQ Intelligence Center
H3 Microsoft Sentinel and EclecticIQ Intelligence Center
H3 Group-IB and EclecticIQ Intelligence Center
H3 Intel 471 and EclecticIQ Intelligence Center
H3 Kaspersky and EclecticIQ Intelligence Center
H3 Recorded Future and EclecticIQ Intelligence Center
H3 Flashpoint and EclecticIQ Intelligence Center
H3 Splunk and EclecticIQ Intelligence Center
H3 IBM Security and EclecticIQ Intelligence Center
H3 Google Chronicle and EclecticIQ Intelligence Center
H3 Cortex XSOAR and EclecticIQ Intelligence Center
H3 ServiceNow and EclecticIQ Intelligence Center
H3 (no text)
MS13warning2 of 2 iframes untitled
What we check
Each embedded panel on the page carries a title saying what it contains.
What good looks like
Each embedded panel carries a title saying what it contains.
Why it matters
The embedded region stays unnamed, so what it holds is left unstated in the page around it.
What we found on this page
2 of 2 iframes untitled
The evidence, taken from the page as served
The iframes with no title attribute, as served
src=https://www.googletagmanager.com/ns.html?id=GTM-MC7MVC
<iframe src="https://www.googletagmanager.com/ns.html?id=GTM-MC7MVC" height="0" width="0" style="display:none;visibility:hidden"/>
src=https://www.googletagmanager.com/ns.html?id=GTM-MC7MVC
<iframe src="https://www.googletagmanager.com/ns.html?id=GTM-MC7MVC" height="0" width="0" style="display:none;visibility:hidden"/>
AR03warning12% of the words a person sees are missing from the page as first delivered (3712 characters delivered, 3912 once the page finishes building itself)
What we check
How much of the page's content exists only once JavaScript has run.
What good looks like
The page's content is present in the served HTML, so it does not depend on JavaScript to appear.
Why it matters
The page is fetched successfully but the answer is missing from what comes back, so the content is absent rather than wrong.
What we found on this page
12% of the words a person sees are missing from the page as first delivered (3712 characters delivered, 3912 once the page finishes building itself)
The evidence, taken from the page as served
Content present only after JavaScript runs (absent from the served HTML)

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

What the server sends (raw HTML text, first 280 chars)
Resources Products Products Threat Intelligence Platform Threat Intelligence Browser Extension Threat Intelligence Feeds Use Cases Use Cases Defense TIP Alert Triage Incident Response Reporting AI Search Partners Partners Integration Partners Channel Partners Resources Resources …
Words present only after JavaScript runs
accordanceacknowledgeaddressagreebusinessemailforminformationpersonalprocesssignsubmittingthatthisupdateswillyour
AR11warning12% of the words a person sees are missing from the page as first delivered, which is 0.95 of its finished size
What we check
The measured gap between the page as served and the page after the browser has built it.
What good looks like
The served page and the fully built page carry the same words, with little gap between them.
Why it matters
Two versions of the same page exist, and which words come back depends on which version was fetched.
What we found on this page
12% of the words a person sees are missing from the page as first delivered, which is 0.95 of its finished size
The evidence, taken from the page as served
This page as first delivered, against the page once its scripts have run

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

What was measuredAs measured on this page
Text in the page as delivered3712 characters
Text once the page finishes building3912 characters
Words absent from the delivered page12%
The point we measure against10%
MS02warning6 of 93 buttons, links and controls on the loaded page carry no name in the page's code saying what each is for
What we check
Whether the page's buttons, links and form controls each carry a name once the page has loaded.
What good looks like
The page's buttons, links and form controls each carry a name once the page has loaded.
Why it matters
Unnamed controls are identified by their position on the screen alone, so a redesign moves what they refer to.
What we found on this page
6 of 93 buttons, links and controls on the loaded page carry no name in the page's code saying what each is for
The evidence, taken from the page as served
The controls on this page that carry no name

Read on the page once its scripts had run.

What was measuredAs measured on this page
Controls found93
Of those, carrying no name6
Kinds affectedlink, textbox
MS04warningthe page's naming markup is faulty: 3 name label(s) point at nothing: the code that should hold the name is absent
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: 3 name label(s) point at nothing: the code that should hold the name is absent
The evidence, taken from the page as served
The faulty markup, as the page serves it once loaded
<div x-show="subnav" @keydown.escape.prevent.stop="subnav = false" role="dialog" aria-modal="true" x-id="['use cases ']" :aria-labelledby="$id('use cases ')" class="absolute top-0 pt-12 -left-8" aria-labelledby="use cases -1" style="display: none;"> <div class="relative h-full w-full flex items-center justify-center teโ€ฆ
CT34failthe page's own words are thin: 266 of its 331 words are shared navigation and footer, so it reads as 90% 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: 266 of its 331 words are shared navigation and footer, so it reads as 90% identical to another page, which a machine can then take as a duplicate and pass over, missing the little content that is its own; the matching page is named in the view
The evidence, taken from the page as served
This page's own words, lost in shared navigation and footer
Page ยท opens in a new tabOwn wordsChromeReads as identical toShared
www.eclecticiq.com/library?type=solution+brief&hsLang=en65 of 33180%www.eclecticiq.com/library?type=product+sheet&hsLang=en90%
https://www.eclecticiq.com/library?type=webinar&hsLang=en 50.4% Likely 15 out of 57
CheckResultEvidence
DS17failthe page states no preferred address for itself, so duplicate copies compete to be the one cited
What we check
Each page names one preferred address for itself, its canonical link.
What good looks like
Each page names one preferred address for itself.
Why it matters
With no preferred address stated, duplicate copies compete and the version that ends up cited is arbitrary.
What we found on this page
the page states no preferred address for itself, so duplicate copies compete to be the one cited
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 naming the page's preferred address.

<head> <meta charset="utf-8"/> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, viewport-fit=cover"/> <meta name="referrer" content="origin-when-cross-origin"/> <title>Resources</title> <meta name="description" content="Resource Library"/> <meta property="og:image" content="https://www.eclecticiq.com/hubfs/raw_assets/public/rebrand-2024/assets/img/og-eclecticiq.png"/> <script>loadjs=function(){var l=function(){},c={},f={},u={};function s(e,n){if(e){var t=u[e];if(f[e]=n,t)for(;t.length;)t[0](e,n),t.splice(0,1)}}function o(e,n){e.call&amp;&amp;(e={success:e}),n.length?(e.error||l)(n):(e.success||l)(e)}function h(t,r,i,c){var s,o,e=document,n=i.async,f=(i.numRetries||0)+1,u=i.before||l,a=t.replace(/^(css|img)!/,"");c=c||0,/(^css!|\.css$)/.test(t)?(s=!0,(o=e.createElement("link")).rel="stylesheet",o.href=a):/(^img!|\.(png|gif|jpg|svg)$)/.test(t)?(o=e.createElement("img")).src=a:((o=e.createElement("script")).src=t,o.async=void 0===n||n),!(o.onload=o.onerror=o.onbeforeload=function(e){var n=e.type[0];if(s&amp;&amp;"hideFocus"in o)try{o.sheet.cssText.length||(n="e")}catch(e){n="e"}if("e"==n&amp;&amp;(c+=1)&lt;f)return h(t,r,i,c);rโ€ฆ
CT06warningtitle length 9 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 9 chars
The evidence, taken from the page as served
The page title, as served
9 characters
<title>Resources</title>
CT32warninglength 16
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 16
The evidence, taken from the page as served
The page's description, as served
16 characters
<meta name="description" content="Resource Library"/>
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)
H3 Products
H3 Use Cases
H3 Partners
H3 Resources
H3 Company
H1 Resource Library
H3 Intelligent Mapping of CTI to MITRE ATT&CK: Automating TTP Classification with A level jumped
H3 Advanced Static Analysis + Real-Time Threat Intelligence for Faster Triage
H3 The Weaponization of AI & Implications for Defenders
H3 AI-Powered CTI Excellence: Transforming European Cybersecurity Operations
H3 Strategic Intelligence: Translating APAC Threats to Business Risk
H3 The Context Advantage: from Drowning in Data to Decisive Defense
H3 Sandwormโ€™s Cyber Espionage: Russiaโ€™s GRU-Linked APT Uses Pirated Software in Ukr
H3 Needle-Sharp CTI: AI for Business-Aligned Threats
H3 Building a Strong CTI Foundation
H3 (no text)
CT16warningthe page carries no structured data block stating what it is (not required; a hygiene signal)
What we check
The page carries structured data, the machine-readable summary of what it describes.
What good looks like
The page carries structured data summarising what it describes.
Why it matters
Vendors document this as optional rather than required, so its absence is a small forfeit and no more.
What we found on this page
the page carries no structured data block stating what it is (not required; a hygiene signal)
The evidence, taken from the page as served
The head of this page, as served

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

<head> <meta charset="utf-8"/> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, viewport-fit=cover"/> <meta name="referrer" content="origin-when-cross-origin"/> <title>Resources</title> <meta name="description" content="Resource Library"/> <meta property="og:image" content="https://www.eclecticiq.com/hubfs/raw_assets/public/rebrand-2024/assets/img/og-eclecticiq.png"/> <script>loadjs=function(){var l=function(){},c={},f={},u={};function s(e,n){if(e){var t=u[e];if(f[e]=n,t)for(;t.length;)t[0](e,n),t.splice(0,1)}}function o(e,n){e.call&amp;&amp;(e={success:e}),n.length?(e.error||l)(n):(e.success||l)(e)}function h(t,r,i,c){var s,o,e=document,n=i.async,f=(i.numRetries||0)+1,u=i.before||l,a=t.replace(/^(css|img)!/,"");c=c||0,/(^css!|\.css$)/.test(t)?(s=!0,(o=e.createElement("link")).rel="stylesheet",o.href=a):/(^img!|\.(png|gif|jpg|svg)$)/.test(t)?(o=e.createElement("img")).src=a:((o=e.createElement("script")).src=t,o.async=void 0===n||n),!(o.onload=o.onerror=o.onbeforeload=function(e){var n=e.type[0];if(s&amp;&amp;"hideFocus"in o)try{o.sheet.cssText.length||(n="e")}catch(e){n="e"}if("e"==n&amp;&amp;(c+=1)&lt;f)return h(t,r,i,c);rโ€ฆ
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 name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, viewport-fit=cover"/> <meta name="referrer" content="origin-when-cross-origin"/> <title>Resources</title> <meta name="description" content="Resource Library"/> <meta property="og:image" content="https://www.eclecticiq.com/hubfs/raw_assets/public/rebrand-2024/assets/img/og-eclecticiq.png"/> <script>loadjs=function(){var l=function(){},c={},f={},u={};function s(e,n){if(e){var t=u[e];if(f[e]=n,t)for(;t.length;)t[0](e,n),t.splice(0,1)}}function o(e,n){e.call&amp;&amp;(e={success:e}),n.length?(e.error||l)(n):(e.success||l)(e)}function h(t,r,i,c){var s,o,e=document,n=i.async,f=(i.numRetries||0)+1,u=i.before||l,a=t.replace(/^(css|img)!/,"");c=c||0,/(^css!|\.css$)/.test(t)?(s=!0,(o=e.createElement("link")).rel="stylesheet",o.href=a):/(^img!|\.(png|gif|jpg|svg)$)/.test(t)?(o=e.createElement("img")).src=a:((o=e.createElement("script")).src=t,o.async=void 0===n||n),!(o.onload=o.onerror=o.onbeforeload=function(e){var n=e.type[0];if(s&amp;&amp;"hideFocus"in o)try{o.sheet.cssText.length||(n="e")}catch(e){n="e"}if("e"==n&amp;&amp;(c+=1)&lt;f)return h(t,r,i,c);rโ€ฆ
CT35warningthe copyright line at the foot of this page states 2024, 2 years behind the year this assessment ran, which reads as a page left unattended and is the usual sign of a template copied from elsewhere
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 copyright line at the foot of this page states 2024, 2 years behind the year this assessment ran, which reads as a page left unattended and is the usual sign of a template copied from elsewhere
The evidence, taken from the page as served
The copyright line as served, and the year it claims
Page ยท opens in a new tabFoundThe text, as served, around the word
www.eclecticiq.com/library?type=webinar&hsLang=en…ยฉ 2024…
AJ05warningno site-search control detected on this page
What we check
Whether a search box for the site is present in the page as it is served.
What good looks like
A search box is present in the served markup, so the site's own content can be queried directly.
Why it matters
With no search box on the page, its links are the only route from here into the rest of the site.
What we found on this page
no site-search control detected on this page
The evidence, taken from the page as served
The head of this page, as served

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

<head> <meta charset="utf-8"/> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, viewport-fit=cover"/> <meta name="referrer" content="origin-when-cross-origin"/> <title>Resources</title> <meta name="description" content="Resource Library"/> <meta property="og:image" content="https://www.eclecticiq.com/hubfs/raw_assets/public/rebrand-2024/assets/img/og-eclecticiq.png"/> <script>loadjs=function(){var l=function(){},c={},f={},u={};function s(e,n){if(e){var t=u[e];if(f[e]=n,t)for(;t.length;)t[0](e,n),t.splice(0,1)}}function o(e,n){e.call&amp;&amp;(e={success:e}),n.length?(e.error||l)(n):(e.success||l)(e)}function h(t,r,i,c){var s,o,e=document,n=i.async,f=(i.numRetries||0)+1,u=i.before||l,a=t.replace(/^(css|img)!/,"");c=c||0,/(^css!|\.css$)/.test(t)?(s=!0,(o=e.createElement("link")).rel="stylesheet",o.href=a):/(^img!|\.(png|gif|jpg|svg)$)/.test(t)?(o=e.createElement("img")).src=a:((o=e.createElement("script")).src=t,o.async=void 0===n||n),!(o.onload=o.onerror=o.onbeforeload=function(e){var n=e.type[0];if(s&amp;&amp;"hideFocus"in o)try{o.sheet.cssText.length||(n="e")}catch(e){n="e"}if("e"==n&amp;&amp;(c+=1)&lt;f)return h(t,r,i,c);rโ€ฆ
MS08fail2 link wording(s) are used for more than one destination, so the same words point at different pages: โ€œbook a demoโ€, โ€œwatchโ€; 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: โ€œbook a demoโ€, โ€œwatchโ€; 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
"Book a demo"
<a href="https://www.eclecticiq.com/book-a-demo" target="_blank" class="relative group inline-flex items-center h-12 px-8 rounded-full font-bold bg-blue text-nav text-white leading-none tracking-wide hover:pr-12 transition-all duration-200"> <span class="flex-none">Book a demo</span> <img class="lazyload absolute -top-โ€ฆ
"Watch"
<a href="https://www.eclecticiq.com/library/intelligent-mapping-of-cti-to-mitre-attck-automating-ttp-classification-with-ai" class="group inline-flex items-center gap-2 lg:gap-3 max-w-full font-bold text-sm xl:text-base leading-tight tracking-wide font-semibold text-white mt-auto leading-tight"> <span class="sm:flex-noโ€ฆ
"Watch"
<a href="https://www.eclecticiq.com/library/advanced-static-analysis-real-time-threat-intelligence-for-faster-triage" class="group inline-flex items-center gap-2 lg:gap-3 max-w-full font-bold text-sm xl:text-base leading-tight tracking-wide font-semibold text-white mt-auto leading-tight"> <span class="sm:flex-none trunโ€ฆ
"Watch"
<a href="https://www.eclecticiq.com/library/the-weaponization-of-ai-implications-for-defenders" class="group inline-flex items-center gap-2 lg:gap-3 max-w-full font-bold text-sm xl:text-base leading-tight tracking-wide font-semibold text-white mt-auto leading-tight"> <span class="sm:flex-none truncate">Watch</span> <svโ€ฆ
"Watch"
<a href="https://www.eclecticiq.com/library/ai-powered-cti-excellence-transforming-european-cybersecurity-operations" class="group inline-flex items-center gap-2 lg:gap-3 max-w-full font-bold text-sm xl:text-base leading-tight tracking-wide font-semibold text-white mt-auto leading-tight"> <span class="sm:flex-none trunโ€ฆ
"Watch"
<a href="https://www.eclecticiq.com/library/strategic-intelligence-translating-apac-threats-to-business-risk" class="group inline-flex items-center gap-2 lg:gap-3 max-w-full font-bold text-sm xl:text-base leading-tight tracking-wide font-semibold text-white mt-auto leading-tight"> <span class="sm:flex-none truncate">Waโ€ฆ
"Watch"
<a href="https://www.eclecticiq.com/library/the-context-advantage-from-drowning-in-data-to-decisive-defense" class="group inline-flex items-center gap-2 lg:gap-3 max-w-full font-bold text-sm xl:text-base leading-tight tracking-wide font-semibold text-white mt-auto leading-tight"> <span class="sm:flex-none truncate">Watโ€ฆ
"Watch"
<a href="https://www.eclecticiq.com/library/needle-sharp-cti-ai-for-business-aligned-threats-0" class="group inline-flex items-center gap-2 lg:gap-3 max-w-full font-bold text-sm xl:text-base leading-tight tracking-wide font-semibold text-white mt-auto leading-tight"> <span class="sm:flex-none truncate">Watch</span> <svโ€ฆ
"Watch"
<a href="https://www.eclecticiq.com/library/needle-sharp-cti-ai-for-business-aligned-threats" class="group inline-flex items-center gap-2 lg:gap-3 max-w-full font-bold text-sm xl:text-base leading-tight tracking-wide font-semibold text-white mt-auto leading-tight"> <span class="sm:flex-none truncate">Watch</span> <svg โ€ฆ
"Watch"
<a href="https://www.eclecticiq.com/library/eclecticiq-webinar-building-a-strong-cti-foundation" class="group inline-flex items-center gap-2 lg:gap-3 max-w-full font-bold text-sm xl:text-base leading-tight tracking-wide font-semibold text-white mt-auto leading-tight"> <span class="sm:flex-none truncate">Watch</span> <sโ€ฆ
MS10failthe page's first heading is not its top-level heading, so the structure starts part way down; the 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 page's first heading is not its top-level heading, so the structure starts part way down; 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)
H3 Products level jumped
H3 Use Cases
H3 Partners
H3 Resources
H3 Company
H1 Resource Library
H3 Intelligent Mapping of CTI to MITRE ATT&CK: Automating TTP Classification with A level jumped
H3 Advanced Static Analysis + Real-Time Threat Intelligence for Faster Triage
H3 The Weaponization of AI & Implications for Defenders
H3 AI-Powered CTI Excellence: Transforming European Cybersecurity Operations
H3 Strategic Intelligence: Translating APAC Threats to Business Risk
H3 The Context Advantage: from Drowning in Data to Decisive Defense
H3 Sandwormโ€™s Cyber Espionage: Russiaโ€™s GRU-Linked APT Uses Pirated Software in Ukr
H3 Needle-Sharp CTI: AI for Business-Aligned Threats
H3 Building a Strong CTI Foundation
H3 (no text)
MS13warning2 of 2 iframes untitled
What we check
Each embedded panel on the page carries a title saying what it contains.
What good looks like
Each embedded panel carries a title saying what it contains.
Why it matters
The embedded region stays unnamed, so what it holds is left unstated in the page around it.
What we found on this page
2 of 2 iframes untitled
The evidence, taken from the page as served
The iframes with no title attribute, as served
src=https://www.googletagmanager.com/ns.html?id=GTM-MC7MVC
<iframe src="https://www.googletagmanager.com/ns.html?id=GTM-MC7MVC" height="0" width="0" style="display:none;visibility:hidden"/>
src=https://www.googletagmanager.com/ns.html?id=GTM-MC7MVC
<iframe src="https://www.googletagmanager.com/ns.html?id=GTM-MC7MVC" height="0" width="0" style="display:none;visibility:hidden"/>
AR03warning10% of the words a person sees are missing from the page as first delivered (2674 characters delivered, 2874 once the page finishes building itself)
What we check
How much of the page's content exists only once JavaScript has run.
What good looks like
The page's content is present in the served HTML, so it does not depend on JavaScript to appear.
Why it matters
The page is fetched successfully but the answer is missing from what comes back, so the content is absent rather than wrong.
What we found on this page
10% of the words a person sees are missing from the page as first delivered (2674 characters delivered, 2874 once the page finishes building itself)
The evidence, taken from the page as served
Content present only after JavaScript runs (absent from the served HTML)

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

What the server sends (raw HTML text, first 280 chars)
Resources Products Products Threat Intelligence Platform Threat Intelligence Browser Extension Threat Intelligence Feeds Use Cases Use Cases Defense TIP Alert Triage Incident Response Reporting AI Search Partners Partners Integration Partners Channel Partners Resources Resources …
Words present only after JavaScript runs
accordanceacknowledgeaddressagreeemailforminformationpersonalprocesssignsubmittingthatthisupdateswillyour
AR11warning10% of the words a person sees are missing from the page as first delivered, which is 0.93 of its finished size
What we check
The measured gap between the page as served and the page after the browser has built it.
What good looks like
The served page and the fully built page carry the same words, with little gap between them.
Why it matters
Two versions of the same page exist, and which words come back depends on which version was fetched.
What we found on this page
10% of the words a person sees are missing from the page as first delivered, which is 0.93 of its finished size
The evidence, taken from the page as served
This page as first delivered, against the page once its scripts have run

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

What was measuredAs measured on this page
Text in the page as delivered2674 characters
Text once the page finishes building2874 characters
Words absent from the delivered page10%
The point we measure against10%
MS02warning6 of 69 buttons, links and controls on the loaded page carry no name in the page's code saying what each is for
What we check
Whether the page's buttons, links and form controls each carry a name once the page has loaded.
What good looks like
The page's buttons, links and form controls each carry a name once the page has loaded.
Why it matters
Unnamed controls are identified by their position on the screen alone, so a redesign moves what they refer to.
What we found on this page
6 of 69 buttons, links and controls on the loaded page carry no name in the page's code saying what each is for
The evidence, taken from the page as served
The controls on this page that carry no name

Read on the page once its scripts had run.

What was measuredAs measured on this page
Controls found69
Of those, carrying no name6
Kinds affectedlink, textbox
MS04warningthe page's naming markup is faulty: 3 name label(s) point at nothing: the code that should hold the name is absent
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: 3 name label(s) point at nothing: the code that should hold the name is absent
The evidence, taken from the page as served
The faulty markup, as the page serves it once loaded
<div x-show="subnav" @keydown.escape.prevent.stop="subnav = false" role="dialog" aria-modal="true" x-id="['use cases ']" :aria-labelledby="$id('use cases ')" class="absolute top-0 pt-12 -left-8" aria-labelledby="use cases -1" style="display: none;"> <div class="relative h-full w-full flex items-center justify-center teโ€ฆ
https://www.eclecticiq.com/library?type=white+paper&hsLang=en 50.4% Likely 15 out of 57
CheckResultEvidence
DS17failthe page states no preferred address for itself, so duplicate copies compete to be the one cited
What we check
Each page names one preferred address for itself, its canonical link.
What good looks like
Each page names one preferred address for itself.
Why it matters
With no preferred address stated, duplicate copies compete and the version that ends up cited is arbitrary.
What we found on this page
the page states no preferred address for itself, so duplicate copies compete to be the one cited
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 naming the page's preferred address.

<head> <meta charset="utf-8"/> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, viewport-fit=cover"/> <meta name="referrer" content="origin-when-cross-origin"/> <title>Resources</title> <meta name="description" content="Resource Library"/> <meta property="og:image" content="https://www.eclecticiq.com/hubfs/raw_assets/public/rebrand-2024/assets/img/og-eclecticiq.png"/> <script>loadjs=function(){var l=function(){},c={},f={},u={};function s(e,n){if(e){var t=u[e];if(f[e]=n,t)for(;t.length;)t[0](e,n),t.splice(0,1)}}function o(e,n){e.call&amp;&amp;(e={success:e}),n.length?(e.error||l)(n):(e.success||l)(e)}function h(t,r,i,c){var s,o,e=document,n=i.async,f=(i.numRetries||0)+1,u=i.before||l,a=t.replace(/^(css|img)!/,"");c=c||0,/(^css!|\.css$)/.test(t)?(s=!0,(o=e.createElement("link")).rel="stylesheet",o.href=a):/(^img!|\.(png|gif|jpg|svg)$)/.test(t)?(o=e.createElement("img")).src=a:((o=e.createElement("script")).src=t,o.async=void 0===n||n),!(o.onload=o.onerror=o.onbeforeload=function(e){var n=e.type[0];if(s&amp;&amp;"hideFocus"in o)try{o.sheet.cssText.length||(n="e")}catch(e){n="e"}if("e"==n&amp;&amp;(c+=1)&lt;f)return h(t,r,i,c);rโ€ฆ
CT06warningtitle length 9 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 9 chars
The evidence, taken from the page as served
The page title, as served
9 characters
<title>Resources</title>
CT32warninglength 16
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 16
The evidence, taken from the page as served
The page's description, as served
16 characters
<meta name="description" content="Resource Library"/>
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)
H3 Products
H3 Use Cases
H3 Partners
H3 Resources
H3 Company
H1 Resource Library
H3 The information age battlefield: Combining CTI & Information Operations Intellig level jumped
H3 An AI-driven threat intelligence program
H3 A Stakeholder-centric Approach to Building a High-performing CTI Practice
H3 Beyond the IOC: Elevating Threat Intelligence with Tactics, Techniques, and Proc
H3 STIX 2.1 and Beyond: The Essential Role of STIX in CTI Operations
H3 Strengthening Europeโ€™s cybersecurity future: A strategic imperative
H3 SilkSpecter exposed: Inside a global phishing operation
H3 The Path to Pre-emptive CTI Operations
H3 Accelerate Incident Response with Threat Intelligence
H3 Augment Your SOC with Human-Led Threat Intelligence
H3 CTI Maturity-driven Threat Intelligence Platform Buyerโ€™s Guide
H3 (no text)
CT16warningthe page carries no structured data block stating what it is (not required; a hygiene signal)
What we check
The page carries structured data, the machine-readable summary of what it describes.
What good looks like
The page carries structured data summarising what it describes.
Why it matters
Vendors document this as optional rather than required, so its absence is a small forfeit and no more.
What we found on this page
the page carries no structured data block stating what it is (not required; a hygiene signal)
The evidence, taken from the page as served
The head of this page, as served

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

<head> <meta charset="utf-8"/> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, viewport-fit=cover"/> <meta name="referrer" content="origin-when-cross-origin"/> <title>Resources</title> <meta name="description" content="Resource Library"/> <meta property="og:image" content="https://www.eclecticiq.com/hubfs/raw_assets/public/rebrand-2024/assets/img/og-eclecticiq.png"/> <script>loadjs=function(){var l=function(){},c={},f={},u={};function s(e,n){if(e){var t=u[e];if(f[e]=n,t)for(;t.length;)t[0](e,n),t.splice(0,1)}}function o(e,n){e.call&amp;&amp;(e={success:e}),n.length?(e.error||l)(n):(e.success||l)(e)}function h(t,r,i,c){var s,o,e=document,n=i.async,f=(i.numRetries||0)+1,u=i.before||l,a=t.replace(/^(css|img)!/,"");c=c||0,/(^css!|\.css$)/.test(t)?(s=!0,(o=e.createElement("link")).rel="stylesheet",o.href=a):/(^img!|\.(png|gif|jpg|svg)$)/.test(t)?(o=e.createElement("img")).src=a:((o=e.createElement("script")).src=t,o.async=void 0===n||n),!(o.onload=o.onerror=o.onbeforeload=function(e){var n=e.type[0];if(s&amp;&amp;"hideFocus"in o)try{o.sheet.cssText.length||(n="e")}catch(e){n="e"}if("e"==n&amp;&amp;(c+=1)&lt;f)return h(t,r,i,c);rโ€ฆ
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 name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, viewport-fit=cover"/> <meta name="referrer" content="origin-when-cross-origin"/> <title>Resources</title> <meta name="description" content="Resource Library"/> <meta property="og:image" content="https://www.eclecticiq.com/hubfs/raw_assets/public/rebrand-2024/assets/img/og-eclecticiq.png"/> <script>loadjs=function(){var l=function(){},c={},f={},u={};function s(e,n){if(e){var t=u[e];if(f[e]=n,t)for(;t.length;)t[0](e,n),t.splice(0,1)}}function o(e,n){e.call&amp;&amp;(e={success:e}),n.length?(e.error||l)(n):(e.success||l)(e)}function h(t,r,i,c){var s,o,e=document,n=i.async,f=(i.numRetries||0)+1,u=i.before||l,a=t.replace(/^(css|img)!/,"");c=c||0,/(^css!|\.css$)/.test(t)?(s=!0,(o=e.createElement("link")).rel="stylesheet",o.href=a):/(^img!|\.(png|gif|jpg|svg)$)/.test(t)?(o=e.createElement("img")).src=a:((o=e.createElement("script")).src=t,o.async=void 0===n||n),!(o.onload=o.onerror=o.onbeforeload=function(e){var n=e.type[0];if(s&amp;&amp;"hideFocus"in o)try{o.sheet.cssText.length||(n="e")}catch(e){n="e"}if("e"==n&amp;&amp;(c+=1)&lt;f)return h(t,r,i,c);rโ€ฆ
CT35warningthe copyright line at the foot of this page states 2024, 2 years behind the year this assessment ran, which reads as a page left unattended and is the usual sign of a template copied from elsewhere
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 copyright line at the foot of this page states 2024, 2 years behind the year this assessment ran, which reads as a page left unattended and is the usual sign of a template copied from elsewhere
The evidence, taken from the page as served
The copyright line as served, and the year it claims
Page ยท opens in a new tabFoundThe text, as served, around the word
www.eclecticiq.com/library?type=white+paper&hsLang=en…ยฉ 2024…
AJ05warningno site-search control detected on this page
What we check
Whether a search box for the site is present in the page as it is served.
What good looks like
A search box is present in the served markup, so the site's own content can be queried directly.
Why it matters
With no search box on the page, its links are the only route from here into the rest of the site.
What we found on this page
no site-search control detected on this page
The evidence, taken from the page as served
The head of this page, as served

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

<head> <meta charset="utf-8"/> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, viewport-fit=cover"/> <meta name="referrer" content="origin-when-cross-origin"/> <title>Resources</title> <meta name="description" content="Resource Library"/> <meta property="og:image" content="https://www.eclecticiq.com/hubfs/raw_assets/public/rebrand-2024/assets/img/og-eclecticiq.png"/> <script>loadjs=function(){var l=function(){},c={},f={},u={};function s(e,n){if(e){var t=u[e];if(f[e]=n,t)for(;t.length;)t[0](e,n),t.splice(0,1)}}function o(e,n){e.call&amp;&amp;(e={success:e}),n.length?(e.error||l)(n):(e.success||l)(e)}function h(t,r,i,c){var s,o,e=document,n=i.async,f=(i.numRetries||0)+1,u=i.before||l,a=t.replace(/^(css|img)!/,"");c=c||0,/(^css!|\.css$)/.test(t)?(s=!0,(o=e.createElement("link")).rel="stylesheet",o.href=a):/(^img!|\.(png|gif|jpg|svg)$)/.test(t)?(o=e.createElement("img")).src=a:((o=e.createElement("script")).src=t,o.async=void 0===n||n),!(o.onload=o.onerror=o.onbeforeload=function(e){var n=e.type[0];if(s&amp;&amp;"hideFocus"in o)try{o.sheet.cssText.length||(n="e")}catch(e){n="e"}if("e"==n&amp;&amp;(c+=1)&lt;f)return h(t,r,i,c);rโ€ฆ
MS08fail2 link wording(s) are used for more than one destination, so the same words point at different pages: โ€œbook a demoโ€, โ€œdownloadโ€; 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: โ€œbook a demoโ€, โ€œdownloadโ€; 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
"Book a demo"
<a href="https://www.eclecticiq.com/book-a-demo" target="_blank" class="relative group inline-flex items-center h-12 px-8 rounded-full font-bold bg-blue text-nav text-white leading-none tracking-wide hover:pr-12 transition-all duration-200"> <span class="flex-none">Book a demo</span> <img class="lazyload absolute -top-โ€ฆ
"Download"
<a href="https://www.eclecticiq.com/library/the-information-age-battlefield" class="group inline-flex items-center gap-2 lg:gap-3 max-w-full font-bold text-sm xl:text-base leading-tight tracking-wide font-semibold text-white mt-auto leading-tight"> <span class="sm:flex-none truncate">Download</span> <svg xmlns="http://โ€ฆ
"Download"
<a href="https://www.eclecticiq.com/library/an-ai-driven-threat-intelligence-program" class="group inline-flex items-center gap-2 lg:gap-3 max-w-full font-bold text-sm xl:text-base leading-tight tracking-wide font-semibold text-white mt-auto leading-tight"> <span class="sm:flex-none truncate">Download</span> <svg xmlnsโ€ฆ
"Download"
<a href="https://www.eclecticiq.com/library/a-stakeholder-centric-approach-to-building-a-high-performing-cti-practice" class="group inline-flex items-center gap-2 lg:gap-3 max-w-full font-bold text-sm xl:text-base leading-tight tracking-wide font-semibold text-white mt-auto leading-tight"> <span class="sm:flex-none truโ€ฆ
"Download"
<a href="https://www.eclecticiq.com/library/beyond-the-ioc-elevating-threat-intelligence-with-tactics-techniques-and-procedures-ttps" class="group inline-flex items-center gap-2 lg:gap-3 max-w-full font-bold text-sm xl:text-base leading-tight tracking-wide font-semibold text-white mt-auto leading-tight"> <span class="sโ€ฆ
"Download"
<a href="https://www.eclecticiq.com/library/stix-2.1-and-beyond" class="group inline-flex items-center gap-2 lg:gap-3 max-w-full font-bold text-sm xl:text-base leading-tight tracking-wide font-semibold text-white mt-auto leading-tight"> <span class="sm:flex-none truncate">Download</span> <svg xmlns="http://www.w3.org/2โ€ฆ
"Download"
<a href="https://www.eclecticiq.com/library/strengthening-europes-cybersecurity-future-a-strategic-imperative" class="group inline-flex items-center gap-2 lg:gap-3 max-w-full font-bold text-sm xl:text-base leading-tight tracking-wide font-semibold text-white mt-auto leading-tight"> <span class="sm:flex-none truncate">Dโ€ฆ
"Download"
<a href="https://www.eclecticiq.com/library/silkspecter-exposed-inside-a-global-phishing-operation" class="group inline-flex items-center gap-2 lg:gap-3 max-w-full font-bold text-sm xl:text-base leading-tight tracking-wide font-semibold text-white mt-auto leading-tight"> <span class="sm:flex-none truncate">Download</spโ€ฆ
"Download"
<a href="https://www.eclecticiq.com/library/the-path-to-pre-emptive-cti-operations" class="group inline-flex items-center gap-2 lg:gap-3 max-w-full font-bold text-sm xl:text-base leading-tight tracking-wide font-semibold text-white mt-auto leading-tight"> <span class="sm:flex-none truncate">Download</span> <svg xmlns="โ€ฆ
"Download"
<a href="https://www.eclecticiq.com/library/accelerate-incident-response-with-threat-intelligence" class="group inline-flex items-center gap-2 lg:gap-3 max-w-full font-bold text-sm xl:text-base leading-tight tracking-wide font-semibold text-white mt-auto leading-tight"> <span class="sm:flex-none truncate">Download</spaโ€ฆ
MS10failthe page's first heading is not its top-level heading, so the structure starts part way down; the 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 page's first heading is not its top-level heading, so the structure starts part way down; 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)
H3 Products level jumped
H3 Use Cases
H3 Partners
H3 Resources
H3 Company
H1 Resource Library
H3 The information age battlefield: Combining CTI & Information Operations Intellig level jumped
H3 An AI-driven threat intelligence program
H3 A Stakeholder-centric Approach to Building a High-performing CTI Practice
H3 Beyond the IOC: Elevating Threat Intelligence with Tactics, Techniques, and Proc
H3 STIX 2.1 and Beyond: The Essential Role of STIX in CTI Operations
H3 Strengthening Europeโ€™s cybersecurity future: A strategic imperative
H3 SilkSpecter exposed: Inside a global phishing operation
H3 The Path to Pre-emptive CTI Operations
H3 Accelerate Incident Response with Threat Intelligence
H3 Augment Your SOC with Human-Led Threat Intelligence
H3 CTI Maturity-driven Threat Intelligence Platform Buyerโ€™s Guide
H3 (no text)
MS13warning2 of 2 iframes untitled
What we check
Each embedded panel on the page carries a title saying what it contains.
What good looks like
Each embedded panel carries a title saying what it contains.
Why it matters
The embedded region stays unnamed, so what it holds is left unstated in the page around it.
What we found on this page
2 of 2 iframes untitled
The evidence, taken from the page as served
The iframes with no title attribute, as served
src=https://www.googletagmanager.com/ns.html?id=GTM-MC7MVC
<iframe src="https://www.googletagmanager.com/ns.html?id=GTM-MC7MVC" height="0" width="0" style="display:none;visibility:hidden"/>
src=https://www.googletagmanager.com/ns.html?id=GTM-MC7MVC
<iframe src="https://www.googletagmanager.com/ns.html?id=GTM-MC7MVC" height="0" width="0" style="display:none;visibility:hidden"/>
AR03warning10% of the words a person sees are missing from the page as first delivered (2946 characters delivered, 3146 once the page finishes building itself)
What we check
How much of the page's content exists only once JavaScript has run.
What good looks like
The page's content is present in the served HTML, so it does not depend on JavaScript to appear.
Why it matters
The page is fetched successfully but the answer is missing from what comes back, so the content is absent rather than wrong.
What we found on this page
10% of the words a person sees are missing from the page as first delivered (2946 characters delivered, 3146 once the page finishes building itself)
The evidence, taken from the page as served
Content present only after JavaScript runs (absent from the served HTML)

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

What the server sends (raw HTML text, first 280 chars)
Resources Products Products Threat Intelligence Platform Threat Intelligence Browser Extension Threat Intelligence Feeds Use Cases Use Cases Defense TIP Alert Triage Incident Response Reporting AI Search Partners Partners Integration Partners Channel Partners Resources Resources …
Words present only after JavaScript runs
accordanceacknowledgeaddressagreebusinessemailformpersonalprocesssignsubmittingthatthisupdateswill
AR11warning10% of the words a person sees are missing from the page as first delivered, which is 0.94 of its finished size
What we check
The measured gap between the page as served and the page after the browser has built it.
What good looks like
The served page and the fully built page carry the same words, with little gap between them.
Why it matters
Two versions of the same page exist, and which words come back depends on which version was fetched.
What we found on this page
10% of the words a person sees are missing from the page as first delivered, which is 0.94 of its finished size
The evidence, taken from the page as served
This page as first delivered, against the page once its scripts have run

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

What was measuredAs measured on this page
Text in the page as delivered2946 characters
Text once the page finishes building3146 characters
Words absent from the delivered page10%
The point we measure against10%
MS02warning6 of 73 buttons, links and controls on the loaded page carry no name in the page's code saying what each is for
What we check
Whether the page's buttons, links and form controls each carry a name once the page has loaded.
What good looks like
The page's buttons, links and form controls each carry a name once the page has loaded.
Why it matters
Unnamed controls are identified by their position on the screen alone, so a redesign moves what they refer to.
What we found on this page
6 of 73 buttons, links and controls on the loaded page carry no name in the page's code saying what each is for
The evidence, taken from the page as served
The controls on this page that carry no name

Read on the page once its scripts had run.

What was measuredAs measured on this page
Controls found73
Of those, carrying no name6
Kinds affectedlink, textbox
MS04warningthe page's naming markup is faulty: 3 name label(s) point at nothing: the code that should hold the name is absent
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: 3 name label(s) point at nothing: the code that should hold the name is absent
The evidence, taken from the page as served
The faulty markup, as the page serves it once loaded
<div x-show="subnav" @keydown.escape.prevent.stop="subnav = false" role="dialog" aria-modal="true" x-id="['use cases ']" :aria-labelledby="$id('use cases ')" class="absolute top-0 pt-12 -left-8" aria-labelledby="use cases -1" style="display: none;"> <div class="relative h-full w-full flex items-center justify-center teโ€ฆ
https://www.eclecticiq.com/news?hsLang=en 51.5% Likely 13 out of 58
CheckResultEvidence
DS17failthe page states no preferred address for itself, so duplicate copies compete to be the one cited
What we check
Each page names one preferred address for itself, its canonical link.
What good looks like
Each page names one preferred address for itself.
Why it matters
With no preferred address stated, duplicate copies compete and the version that ends up cited is arbitrary.
What we found on this page
the page states no preferred address for itself, so duplicate copies compete to be the one cited
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 naming the page's preferred address.

<head> <meta charset="utf-8"/> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, viewport-fit=cover"/> <meta name="referrer" content="origin-when-cross-origin"/> <title>Press release overview</title> <meta name="description" content="Find here all official press releases of EclecticIQ"/> <meta property="og:image" content="https://www.eclecticiq.com/hubfs/raw_assets/public/rebrand-2024/assets/img/og-eclecticiq.png"/> <script>loadjs=function(){var l=function(){},c={},f={},u={};function s(e,n){if(e){var t=u[e];if(f[e]=n,t)for(;t.length;)t[0](e,n),t.splice(0,1)}}function o(e,n){e.call&amp;&amp;(e={success:e}),n.length?(e.error||l)(n):(e.success||l)(e)}function h(t,r,i,c){var s,o,e=document,n=i.async,f=(i.numRetries||0)+1,u=i.before||l,a=t.replace(/^(css|img)!/,"");c=c||0,/(^css!|\.css$)/.test(t)?(s=!0,(o=e.createElement("link")).rel="stylesheet",o.href=a):/(^img!|\.(png|gif|jpg|svg)$)/.test(t)?(o=e.createElement("img")).src=a:((o=e.createElement("script")).src=t,o.async=void 0===n||n),!(o.onload=o.onerror=o.onbeforeload=function(e){var n=e.type[0];if(s&amp;&amp;"hideFocus"in o)try{o.sheet.cssText.length||(n="e")}catch(e){n="e"}ifโ€ฆ
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)
H3 Products
H3 Use Cases
H3 Partners
H3 Resources
H3 Company
H1 Press Releases
H3 EclecticIQ appoints James Oโ€™Connor as Chief Technology Officer to drive next pha level jumped
H3 Organisations gain clearer context and faster decision-making in the fight again
H3 EclecticIQ launches first-of-its-kind doctrine-aligned Threat Intelligence Platf
H3 EclecticIQ Appoints Chief Marketing Officer and Chief Revenue Officerย to Drive N
H3 Businesses to gain speed, clarity and flexibility in combating cyber threats as
H3 EclecticIQ drives Asiaโ€“Pacific expansion with strategic appointment
H3 EclecticIQ contributes cyber threat intelligence expertise to NATO CCDCOE report
H3 European Consortium Awarded Digital Europe Program Grant to Enhance AI-driven Cy
H3 EclecticIQ and TeamT5 Join Forces to Combat Asia-Pacific Cyber Threats with Enha
H3 Businesses empowered to combat cybersecurity threats through launch of EclecticI
H3 EclecticIQ Welcomes Cybersecurity Veteran Rich Wickersham to its Supervisory Boa
H3 EclecticIQ Paves the Way for Its AI-Embedded Threat Intelligence Platform
H3 EclecticIQ Introduces Threat Scout
H3 EclecticIQ Appoints Cody Barrow as Its New CEO
H3 EclecticIQ In Consortium Selected by European Commission to Enhance Europe's Cyb
H3 EclecticIQ sells Endpoint Detection talent and software capabilities to ReliaQue
H3 EclecticIQ launches version 3.0 of its flagship threat intelligence platform, In
H3 CyberSecurity Malaysia, EclecticIQ, and Syntx Sign MOU to Build Cyber Threat Int
H3 AaDya Security Partners with EclecticIQ to Deliver Next Generation Endpoint Prot
H3 EclecticIQ Partners with Sopra Steria Group
H3 Dutch Security TechFund Invests in Innovative Cybersecurity Leader EclecticIQ
H3 Dutch Scale-up EclecticIQ Receives โ‚ฌ15โ€ฏMillion in EU Financing to Boost Developm
H3 EclecticIQ Joins Health-ISAC Navigatorโ„ข Program
H3 EclecticIQ Endpoint Response 3.0 Released โ€“ Improve Cyberdefense with Real-Time
H3 EclecticIQ Launches New Platform and Vision that Re-imagines How Threat Intellig
H3 EclecticIQ Establishes Engineering Hub in Bengaluru, India
H3 ASM Technologies partners with Netherlands based EclecticIQ
H3 Devo Platform Selected to Power New EclecticIQ XDR
H3 EclecticIQ Appoints Jay Zimmet as Chief Revenue Officer
H3 EclecticIQ Partners with ACDS to Expand Managed Security Service Offering
H3 EclecticIQ raises โ‚ฌ20 million in Series C funding
H3 Press release: EclecticIQ launches remote, instructor-led training for CTI analy
H3 Joint Threat Intelligence investigation by EclecticIQ and ThreatFabric
H3 New CTI partnership between Z-Cert and EclecticIQ to protect healthcare institut
H3 PolyLogyx joins EclecticIQ for next-gen CTI solutions
H3 Deal for faster time-to-release for intelligence-powered security products
H3 EclecticIQ Browser Extension for CTI analysts
H3 Continued growth for EclecticIQ in 2019
H3 Kaspersky partners with EclecticIQ to empower businesses with first-hand Threat
H3 EclecticIQ strengthens leadership team
H3 EclecticIQ joins forces with IXTEL in UAE
H3 EclecticIQ Recognized in Gartner 2019 Market Guide for SOAR
H3 Global Resilience Federation and EclecticIQ Partnership for Platform Access
H3 EclecticIQ listed in Gartner Market Guide for Security Threat Intelligence 2019
H3 Spire Solutions and EclecticIQ Ink Middle East Partnership
H3 EclecticIQ strengthens threat intelligence for critical infrastructures with new
H3 EclecticIQ Platform 2.3 brings improved collaboration and data management featur
H3 EclecticIQ delivers curated and structured intelligence with Fusion Center Intel
H3 Michael Seguinot joins EclecticIQ to drive forward North American Channel Strate
H3 EclecticIQ Fusion Center integrates with MITRE's ATT&CK Framework
H3 EclecticIQ joins forces with Pink Elephant South Africa to further drive interna
H3 EclecticIQ establishes North American Headquarters
H3 EclecticIQ lands Series-B investment of โ‚ฌ14 million
H3 EclecticIQ launches Fusion Center Intelligence Essentials
H3 EclecticIQ Platform 2.0 Redefines Threat Analysis with Intelligence Reporting, N
H3 [German] EclecticIQ: Neueinstellungen stรคrken Prรคsenz in DACH
H3 EclecticIQ cited in two recent Gartner reports on Security Threat Intelligence
H3 Group-IB and EclecticIQ partner to deliver threat intelligence on Russian-langua
H3 Former Head of CERT-EU joins EclecticIQ Board of Directors
H3 Press release: EclecticIQ simplifies threat intelligence with EclecticIQ Fusion
H3 Joint press release EclecticIQ and SenseCy
H3 Soltra is winding down, is this the end of STIX/TAXII?
H3 EclecticIQ boosts information sharing for New Zealand Internet Task Force
H3 Protect against identified Zero-Day threats with Exodus Intelligence and Eclecti
H3 EclecticIQ wins the Deloitte FAST50 Rising Star award
H3 EclecticIQ Platform mentioned by Gartner in recent Advice on Threat Intelligence
H3 EclecticIQ Announces Bi-directional Threat Intelligence Integration with HPE Sec
H3 EclecticIQ presents Cyber Threat Intelligence Maturity Model
H3 EclecticIQ expands its UK presence
H3 EclecticIQ and Cosive partnership Cyber Threat Intelligence
H3 Press Release: EclecticIQ and Intel 471 Partnership Threat Intelligence
H3 EclecticIQ Raises 5.5 Million Euro for Enterprise-Ready Cyber Threat Intelligenc
H3 Press Release: EclecticIQ Joins FS-ISAC as an Affiliate
H3 Press Release: EclecticIQ Presents "Cyber Threat Management Best Practices" Work
H3 A New Weapon in the Fight Against Cyber Criminals
H3 (no text)
CT16warningthe page carries no structured data block stating what it is (not required; a hygiene signal)
What we check
The page carries structured data, the machine-readable summary of what it describes.
What good looks like
The page carries structured data summarising what it describes.
Why it matters
Vendors document this as optional rather than required, so its absence is a small forfeit and no more.
What we found on this page
the page carries no structured data block stating what it is (not required; a hygiene signal)
The evidence, taken from the page as served
The head of this page, as served

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

<head> <meta charset="utf-8"/> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, viewport-fit=cover"/> <meta name="referrer" content="origin-when-cross-origin"/> <title>Press release overview</title> <meta name="description" content="Find here all official press releases of EclecticIQ"/> <meta property="og:image" content="https://www.eclecticiq.com/hubfs/raw_assets/public/rebrand-2024/assets/img/og-eclecticiq.png"/> <script>loadjs=function(){var l=function(){},c={},f={},u={};function s(e,n){if(e){var t=u[e];if(f[e]=n,t)for(;t.length;)t[0](e,n),t.splice(0,1)}}function o(e,n){e.call&amp;&amp;(e={success:e}),n.length?(e.error||l)(n):(e.success||l)(e)}function h(t,r,i,c){var s,o,e=document,n=i.async,f=(i.numRetries||0)+1,u=i.before||l,a=t.replace(/^(css|img)!/,"");c=c||0,/(^css!|\.css$)/.test(t)?(s=!0,(o=e.createElement("link")).rel="stylesheet",o.href=a):/(^img!|\.(png|gif|jpg|svg)$)/.test(t)?(o=e.createElement("img")).src=a:((o=e.createElement("script")).src=t,o.async=void 0===n||n),!(o.onload=o.onerror=o.onbeforeload=function(e){var n=e.type[0];if(s&amp;&amp;"hideFocus"in o)try{o.sheet.cssText.length||(n="e")}catch(e){n="e"}ifโ€ฆ
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 name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, viewport-fit=cover"/> <meta name="referrer" content="origin-when-cross-origin"/> <title>Press release overview</title> <meta name="description" content="Find here all official press releases of EclecticIQ"/> <meta property="og:image" content="https://www.eclecticiq.com/hubfs/raw_assets/public/rebrand-2024/assets/img/og-eclecticiq.png"/> <script>loadjs=function(){var l=function(){},c={},f={},u={};function s(e,n){if(e){var t=u[e];if(f[e]=n,t)for(;t.length;)t[0](e,n),t.splice(0,1)}}function o(e,n){e.call&amp;&amp;(e={success:e}),n.length?(e.error||l)(n):(e.success||l)(e)}function h(t,r,i,c){var s,o,e=document,n=i.async,f=(i.numRetries||0)+1,u=i.before||l,a=t.replace(/^(css|img)!/,"");c=c||0,/(^css!|\.css$)/.test(t)?(s=!0,(o=e.createElement("link")).rel="stylesheet",o.href=a):/(^img!|\.(png|gif|jpg|svg)$)/.test(t)?(o=e.createElement("img")).src=a:((o=e.createElement("script")).src=t,o.async=void 0===n||n),!(o.onload=o.onerror=o.onbeforeload=function(e){var n=e.type[0];if(s&amp;&amp;"hideFocus"in o)try{o.sheet.cssText.length||(n="e")}catch(e){n="e"}ifโ€ฆ
CT35warningthe copyright line at the foot of this page states 2024, 2 years behind the year this assessment ran, which reads as a page left unattended and is the usual sign of a template copied from elsewhere
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 copyright line at the foot of this page states 2024, 2 years behind the year this assessment ran, which reads as a page left unattended and is the usual sign of a template copied from elsewhere
The evidence, taken from the page as served
The copyright line as served, and the year it claims
Page ยท opens in a new tabFoundThe text, as served, around the word
www.eclecticiq.com/news?hsLang=en…ยฉ 2024…
AJ05warningno site-search control detected on this page
What we check
Whether a search box for the site is present in the page as it is served.
What good looks like
A search box is present in the served markup, so the site's own content can be queried directly.
Why it matters
With no search box on the page, its links are the only route from here into the rest of the site.
What we found on this page
no site-search control detected on this page
The evidence, taken from the page as served
The head of this page, as served

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

<head> <meta charset="utf-8"/> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, viewport-fit=cover"/> <meta name="referrer" content="origin-when-cross-origin"/> <title>Press release overview</title> <meta name="description" content="Find here all official press releases of EclecticIQ"/> <meta property="og:image" content="https://www.eclecticiq.com/hubfs/raw_assets/public/rebrand-2024/assets/img/og-eclecticiq.png"/> <script>loadjs=function(){var l=function(){},c={},f={},u={};function s(e,n){if(e){var t=u[e];if(f[e]=n,t)for(;t.length;)t[0](e,n),t.splice(0,1)}}function o(e,n){e.call&amp;&amp;(e={success:e}),n.length?(e.error||l)(n):(e.success||l)(e)}function h(t,r,i,c){var s,o,e=document,n=i.async,f=(i.numRetries||0)+1,u=i.before||l,a=t.replace(/^(css|img)!/,"");c=c||0,/(^css!|\.css$)/.test(t)?(s=!0,(o=e.createElement("link")).rel="stylesheet",o.href=a):/(^img!|\.(png|gif|jpg|svg)$)/.test(t)?(o=e.createElement("img")).src=a:((o=e.createElement("script")).src=t,o.async=void 0===n||n),!(o.onload=o.onerror=o.onbeforeload=function(e){var n=e.type[0];if(s&amp;&amp;"hideFocus"in o)try{o.sheet.cssText.length||(n="e")}catch(e){n="e"}ifโ€ฆ
MS08fail2 link wording(s) are used for more than one destination, so the same words point at different pages: โ€œbook a demoโ€, โ€œread 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: โ€œbook a demoโ€, โ€œread 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
"Book a demo"
<a href="https://www.eclecticiq.com/book-a-demo" target="_blank" class="relative group inline-flex items-center h-12 px-8 rounded-full font-bold bg-blue text-nav text-white leading-none tracking-wide hover:pr-12 transition-all duration-200"> <span class="flex-none">Book a demo</span> <img class="lazyload absolute -top-โ€ฆ
"Read more"
<a href="https://www.eclecticiq.com/news/eclecticiq-appoints-james-oconnor-as-chief-technology-officer-to-drive-next-phase-of-product-scale-and-innovation" class="group inline-flex items-center gap-2 lg:gap-3 max-w-full font-bold text-sm xl:text-base leading-tight tracking-wide font-semibold text-white mt-auto leading-โ€ฆ
"Read more"
<a href="https://www.eclecticiq.com/news/organisations-gain-clearer-context-and-faster-decision-making-in-the-fight-against-cyber-threats-with-eclecticiq-intelligence-center-3.7" class="group inline-flex items-center gap-2 lg:gap-3 max-w-full font-bold text-sm xl:text-base leading-tight tracking-wide font-semibold textโ€ฆ
"Read more"
<a href="https://www.eclecticiq.com/news/eclecticiq-launches-first-of-its-kind-doctrine-aligned-threat-intelligence-platform-for-defence-and-national-security" class="group inline-flex items-center gap-2 lg:gap-3 max-w-full font-bold text-sm xl:text-base leading-tight tracking-wide font-semibold text-white mt-auto leadโ€ฆ
"Read more"
<a href="https://www.eclecticiq.com/news/eclecticiq-appoints-chief-marketing-officer-and-chief-revenue-officer-to-drive-next-phase-of-growth" class="group inline-flex items-center gap-2 lg:gap-3 max-w-full font-bold text-sm xl:text-base leading-tight tracking-wide font-semibold text-white mt-auto leading-tight"> <span โ€ฆ
"Read more"
<a href="https://www.eclecticiq.com/news/businesses-to-gain-speed-clarity-and-flexibility-in-combating-cyber-threats-as-eclecticiq-launches-next-generation-platform" class="group inline-flex items-center gap-2 lg:gap-3 max-w-full font-bold text-sm xl:text-base leading-tight tracking-wide font-semibold text-white mt-autโ€ฆ
"Read more"
<a href="https://www.eclecticiq.com/news/eclecticiq-drives-asia-pacific-expansion-with-strategic-appointment" class="group inline-flex items-center gap-2 lg:gap-3 max-w-full font-bold text-sm xl:text-base leading-tight tracking-wide font-semibold text-white mt-auto leading-tight"> <span class="sm:flex-none truncate">Reโ€ฆ
"Read more"
<a href="https://www.eclecticiq.com/news/eclecticiq-contributes-cyber-threat-intelligence-expertise-to-nato-report-on-maritime-port-infrastructure-security" class="group inline-flex items-center gap-2 lg:gap-3 max-w-full font-bold text-sm xl:text-base leading-tight tracking-wide font-semibold text-white mt-auto leadingโ€ฆ
"Read more"
<a href="https://www.eclecticiq.com/news/european-consortium-awarded-digital-europe-program-grant-to-enhance-ai-driven-cyber-threat-intelligence-capabilities" class="group inline-flex items-center gap-2 lg:gap-3 max-w-full font-bold text-sm xl:text-base leading-tight tracking-wide font-semibold text-white mt-auto leadiโ€ฆ
"Read more"
<a href="https://www.eclecticiq.com/news/eclecticiq-and-teamt5-join-forces-to-combat-asia-pacific-cyber-threats-with-enhanced-intelligence-capabilities" class="group inline-flex items-center gap-2 lg:gap-3 max-w-full font-bold text-sm xl:text-base leading-tight tracking-wide font-semibold text-white mt-auto leading-tigโ€ฆ
MS10failthe page's first heading is not its top-level heading, so the structure starts part way down; the 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 page's first heading is not its top-level heading, so the structure starts part way down; 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)
H3 Products level jumped
H3 Use Cases
H3 Partners
H3 Resources
H3 Company
H1 Press Releases
H3 EclecticIQ appoints James Oโ€™Connor as Chief Technology Officer to drive next pha level jumped
H3 Organisations gain clearer context and faster decision-making in the fight again
H3 EclecticIQ launches first-of-its-kind doctrine-aligned Threat Intelligence Platf
H3 EclecticIQ Appoints Chief Marketing Officer and Chief Revenue Officerย to Drive N
H3 Businesses to gain speed, clarity and flexibility in combating cyber threats as
H3 EclecticIQ drives Asiaโ€“Pacific expansion with strategic appointment
H3 EclecticIQ contributes cyber threat intelligence expertise to NATO CCDCOE report
H3 European Consortium Awarded Digital Europe Program Grant to Enhance AI-driven Cy
H3 EclecticIQ and TeamT5 Join Forces to Combat Asia-Pacific Cyber Threats with Enha
H3 Businesses empowered to combat cybersecurity threats through launch of EclecticI
H3 EclecticIQ Welcomes Cybersecurity Veteran Rich Wickersham to its Supervisory Boa
H3 EclecticIQ Paves the Way for Its AI-Embedded Threat Intelligence Platform
H3 EclecticIQ Introduces Threat Scout
H3 EclecticIQ Appoints Cody Barrow as Its New CEO
H3 EclecticIQ In Consortium Selected by European Commission to Enhance Europe's Cyb
H3 EclecticIQ sells Endpoint Detection talent and software capabilities to ReliaQue
H3 EclecticIQ launches version 3.0 of its flagship threat intelligence platform, In
H3 CyberSecurity Malaysia, EclecticIQ, and Syntx Sign MOU to Build Cyber Threat Int
H3 AaDya Security Partners with EclecticIQ to Deliver Next Generation Endpoint Prot
H3 EclecticIQ Partners with Sopra Steria Group
H3 Dutch Security TechFund Invests in Innovative Cybersecurity Leader EclecticIQ
H3 Dutch Scale-up EclecticIQ Receives โ‚ฌ15โ€ฏMillion in EU Financing to Boost Developm
H3 EclecticIQ Joins Health-ISAC Navigatorโ„ข Program
H3 EclecticIQ Endpoint Response 3.0 Released โ€“ Improve Cyberdefense with Real-Time
H3 EclecticIQ Launches New Platform and Vision that Re-imagines How Threat Intellig
H3 EclecticIQ Establishes Engineering Hub in Bengaluru, India
H3 ASM Technologies partners with Netherlands based EclecticIQ
H3 Devo Platform Selected to Power New EclecticIQ XDR
H3 EclecticIQ Appoints Jay Zimmet as Chief Revenue Officer
H3 EclecticIQ Partners with ACDS to Expand Managed Security Service Offering
H3 EclecticIQ raises โ‚ฌ20 million in Series C funding
H3 Press release: EclecticIQ launches remote, instructor-led training for CTI analy
H3 Joint Threat Intelligence investigation by EclecticIQ and ThreatFabric
H3 New CTI partnership between Z-Cert and EclecticIQ to protect healthcare institut
H3 PolyLogyx joins EclecticIQ for next-gen CTI solutions
H3 Deal for faster time-to-release for intelligence-powered security products
H3 EclecticIQ Browser Extension for CTI analysts
H3 Continued growth for EclecticIQ in 2019
H3 Kaspersky partners with EclecticIQ to empower businesses with first-hand Threat
H3 EclecticIQ strengthens leadership team
H3 EclecticIQ joins forces with IXTEL in UAE
H3 EclecticIQ Recognized in Gartner 2019 Market Guide for SOAR
H3 Global Resilience Federation and EclecticIQ Partnership for Platform Access
H3 EclecticIQ listed in Gartner Market Guide for Security Threat Intelligence 2019
H3 Spire Solutions and EclecticIQ Ink Middle East Partnership
H3 EclecticIQ strengthens threat intelligence for critical infrastructures with new
H3 EclecticIQ Platform 2.3 brings improved collaboration and data management featur
H3 EclecticIQ delivers curated and structured intelligence with Fusion Center Intel
H3 Michael Seguinot joins EclecticIQ to drive forward North American Channel Strate
H3 EclecticIQ Fusion Center integrates with MITRE's ATT&CK Framework
H3 EclecticIQ joins forces with Pink Elephant South Africa to further drive interna
H3 EclecticIQ establishes North American Headquarters
H3 EclecticIQ lands Series-B investment of โ‚ฌ14 million
H3 EclecticIQ launches Fusion Center Intelligence Essentials
H3 EclecticIQ Platform 2.0 Redefines Threat Analysis with Intelligence Reporting, N
H3 [German] EclecticIQ: Neueinstellungen stรคrken Prรคsenz in DACH
H3 EclecticIQ cited in two recent Gartner reports on Security Threat Intelligence
H3 Group-IB and EclecticIQ partner to deliver threat intelligence on Russian-langua
H3 Former Head of CERT-EU joins EclecticIQ Board of Directors
H3 Press release: EclecticIQ simplifies threat intelligence with EclecticIQ Fusion
H3 Joint press release EclecticIQ and SenseCy
H3 Soltra is winding down, is this the end of STIX/TAXII?
H3 EclecticIQ boosts information sharing for New Zealand Internet Task Force
H3 Protect against identified Zero-Day threats with Exodus Intelligence and Eclecti
H3 EclecticIQ wins the Deloitte FAST50 Rising Star award
H3 EclecticIQ Platform mentioned by Gartner in recent Advice on Threat Intelligence
H3 EclecticIQ Announces Bi-directional Threat Intelligence Integration with HPE Sec
H3 EclecticIQ presents Cyber Threat Intelligence Maturity Model
H3 EclecticIQ expands its UK presence
H3 EclecticIQ and Cosive partnership Cyber Threat Intelligence
H3 Press Release: EclecticIQ and Intel 471 Partnership Threat Intelligence
H3 EclecticIQ Raises 5.5 Million Euro for Enterprise-Ready Cyber Threat Intelligenc
H3 Press Release: EclecticIQ Joins FS-ISAC as an Affiliate
H3 Press Release: EclecticIQ Presents "Cyber Threat Management Best Practices" Work
H3 A New Weapon in the Fight Against Cyber Criminals
H3 (no text)
MS09warninglink wording that does not say where it leads: โ€œread moreโ€
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: โ€œread moreโ€
The evidence, taken from the page as served
The links whose text names no destination, as served
"Read more"
<a href="https://www.eclecticiq.com/news/eclecticiq-appoints-james-oconnor-as-chief-technology-officer-to-drive-next-phase-of-product-scale-and-innovation" class="group inline-flex items-center gap-2 lg:gap-3 max-w-full font-bold text-sm xl:text-base leading-tight tracking-wide font-semibold text-white mt-auto leading-โ€ฆ
"Read more"
<a href="https://www.eclecticiq.com/news/organisations-gain-clearer-context-and-faster-decision-making-in-the-fight-against-cyber-threats-with-eclecticiq-intelligence-center-3.7" class="group inline-flex items-center gap-2 lg:gap-3 max-w-full font-bold text-sm xl:text-base leading-tight tracking-wide font-semibold textโ€ฆ
"Read more"
<a href="https://www.eclecticiq.com/news/eclecticiq-launches-first-of-its-kind-doctrine-aligned-threat-intelligence-platform-for-defence-and-national-security" class="group inline-flex items-center gap-2 lg:gap-3 max-w-full font-bold text-sm xl:text-base leading-tight tracking-wide font-semibold text-white mt-auto leadโ€ฆ
"Read more"
<a href="https://www.eclecticiq.com/news/eclecticiq-appoints-chief-marketing-officer-and-chief-revenue-officer-to-drive-next-phase-of-growth" class="group inline-flex items-center gap-2 lg:gap-3 max-w-full font-bold text-sm xl:text-base leading-tight tracking-wide font-semibold text-white mt-auto leading-tight"> <span โ€ฆ
"Read more"
<a href="https://www.eclecticiq.com/news/businesses-to-gain-speed-clarity-and-flexibility-in-combating-cyber-threats-as-eclecticiq-launches-next-generation-platform" class="group inline-flex items-center gap-2 lg:gap-3 max-w-full font-bold text-sm xl:text-base leading-tight tracking-wide font-semibold text-white mt-autโ€ฆ
"Read more"
<a href="https://www.eclecticiq.com/news/eclecticiq-drives-asia-pacific-expansion-with-strategic-appointment" class="group inline-flex items-center gap-2 lg:gap-3 max-w-full font-bold text-sm xl:text-base leading-tight tracking-wide font-semibold text-white mt-auto leading-tight"> <span class="sm:flex-none truncate">Reโ€ฆ
"Read more"
<a href="https://www.eclecticiq.com/news/eclecticiq-contributes-cyber-threat-intelligence-expertise-to-nato-report-on-maritime-port-infrastructure-security" class="group inline-flex items-center gap-2 lg:gap-3 max-w-full font-bold text-sm xl:text-base leading-tight tracking-wide font-semibold text-white mt-auto leadingโ€ฆ
"Read more"
<a href="https://www.eclecticiq.com/news/european-consortium-awarded-digital-europe-program-grant-to-enhance-ai-driven-cyber-threat-intelligence-capabilities" class="group inline-flex items-center gap-2 lg:gap-3 max-w-full font-bold text-sm xl:text-base leading-tight tracking-wide font-semibold text-white mt-auto leadiโ€ฆ
"Read more"
<a href="https://www.eclecticiq.com/news/eclecticiq-and-teamt5-join-forces-to-combat-asia-pacific-cyber-threats-with-enhanced-intelligence-capabilities" class="group inline-flex items-center gap-2 lg:gap-3 max-w-full font-bold text-sm xl:text-base leading-tight tracking-wide font-semibold text-white mt-auto leading-tigโ€ฆ
"Read more"
<a href="https://www.eclecticiq.com/news/businesses-empowered-to-combat-cybersecurity-threats-through-launch-of-eclecticiqs-ai-embedded-solution" class="group inline-flex items-center gap-2 lg:gap-3 max-w-full font-bold text-sm xl:text-base leading-tight tracking-wide font-semibold text-white mt-auto leading-tight"> <sโ€ฆ
MS13warning2 of 2 iframes untitled
What we check
Each embedded panel on the page carries a title saying what it contains.
What good looks like
Each embedded panel carries a title saying what it contains.
Why it matters
The embedded region stays unnamed, so what it holds is left unstated in the page around it.
What we found on this page
2 of 2 iframes untitled
The evidence, taken from the page as served
The iframes with no title attribute, as served
src=https://www.googletagmanager.com/ns.html?id=GTM-MC7MVC
<iframe src="https://www.googletagmanager.com/ns.html?id=GTM-MC7MVC" height="0" width="0" style="display:none;visibility:hidden"/>
src=https://www.googletagmanager.com/ns.html?id=GTM-MC7MVC
<iframe src="https://www.googletagmanager.com/ns.html?id=GTM-MC7MVC" height="0" width="0" style="display:none;visibility:hidden"/>
AR12warning77% of the page's text (8060 of 10441 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
77% of the page's text (8060 of 10441 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 click8060 characters
All the text on the finished page10441 characters
Hidden share77%
The point we measure against50%
MS02warning6 of 70 buttons, links and controls on the loaded page carry no name in the page's code saying what each is for
What we check
Whether the page's buttons, links and form controls each carry a name once the page has loaded.
What good looks like
The page's buttons, links and form controls each carry a name once the page has loaded.
Why it matters
Unnamed controls are identified by their position on the screen alone, so a redesign moves what they refer to.
What we found on this page
6 of 70 buttons, links and controls on the loaded page carry no name in the page's code saying what each is for
The evidence, taken from the page as served
The controls on this page that carry no name

Read on the page once its scripts had run.

What was measuredAs measured on this page
Controls found70
Of those, carrying no name6
Kinds affectedlink, textbox
MS04warningthe page's naming markup is faulty: 3 name label(s) point at nothing: the code that should hold the name is absent
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: 3 name label(s) point at nothing: the code that should hold the name is absent
The evidence, taken from the page as served
The faulty markup, as the page serves it once loaded
<div x-show="subnav" @keydown.escape.prevent.stop="subnav = false" role="dialog" aria-modal="true" x-id="['use cases ']" :aria-labelledby="$id('use cases ')" class="absolute top-0 pt-12 -left-8" aria-labelledby="use cases -1" style="display: none;"> <div class="relative h-full w-full flex items-center justify-center teโ€ฆ
https://www.eclecticiq.com/events?hsLang=en 9.3% Extremely likely 19 out of 58
CheckResultEvidence
DS17failthe page states no preferred address for itself, so duplicate copies compete to be the one cited
What we check
Each page names one preferred address for itself, its canonical link.
What good looks like
Each page names one preferred address for itself.
Why it matters
With no preferred address stated, duplicate copies compete and the version that ends up cited is arbitrary.
What we found on this page
the page states no preferred address for itself, so duplicate copies compete to be the one cited
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 naming the page's preferred address.

<head> <meta charset="utf-8"/> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, viewport-fit=cover"/> <meta name="referrer" content="origin-when-cross-origin"/> <title>Events</title> <meta name="description" content="Events"/> <meta property="og:image" content="https://www.eclecticiq.com/hubfs/raw_assets/public/rebrand-2024/assets/img/og-eclecticiq.png"/> <script>loadjs=function(){var l=function(){},c={},f={},u={};function s(e,n){if(e){var t=u[e];if(f[e]=n,t)for(;t.length;)t[0](e,n),t.splice(0,1)}}function o(e,n){e.call&amp;&amp;(e={success:e}),n.length?(e.error||l)(n):(e.success||l)(e)}function h(t,r,i,c){var s,o,e=document,n=i.async,f=(i.numRetries||0)+1,u=i.before||l,a=t.replace(/^(css|img)!/,"");c=c||0,/(^css!|\.css$)/.test(t)?(s=!0,(o=e.createElement("link")).rel="stylesheet",o.href=a):/(^img!|\.(png|gif|jpg|svg)$)/.test(t)?(o=e.createElement("img")).src=a:((o=e.createElement("script")).src=t,o.async=void 0===n||n),!(o.onload=o.onerror=o.onbeforeload=function(e){var n=e.type[0];if(s&amp;&amp;"hideFocus"in o)try{o.sheet.cssText.length||(n="e")}catch(e){n="e"}if("e"==n&amp;&amp;(c+=1)&lt;f)return h(t,r,i,c);r(t,n,e.defaulโ€ฆ
CT06warningtitle length 6 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 6 chars
The evidence, taken from the page as served
The page title, as served
6 characters
<title>Events</title>
CT32warninglength 6
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 6
The evidence, taken from the page as served
The page's description, as served
6 characters
<meta name="description" content="Events"/>
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)
H3 Products
H3 Use Cases
H3 Partners
H3 Resources
H3 Company
H1 Events
H3 (no text) level jumped
CT16warningthe page carries no structured data block stating what it is (not required; a hygiene signal)
What we check
The page carries structured data, the machine-readable summary of what it describes.
What good looks like
The page carries structured data summarising what it describes.
Why it matters
Vendors document this as optional rather than required, so its absence is a small forfeit and no more.
What we found on this page
the page carries no structured data block stating what it is (not required; a hygiene signal)
The evidence, taken from the page as served
The head of this page, as served

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

<head> <meta charset="utf-8"/> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, viewport-fit=cover"/> <meta name="referrer" content="origin-when-cross-origin"/> <title>Events</title> <meta name="description" content="Events"/> <meta property="og:image" content="https://www.eclecticiq.com/hubfs/raw_assets/public/rebrand-2024/assets/img/og-eclecticiq.png"/> <script>loadjs=function(){var l=function(){},c={},f={},u={};function s(e,n){if(e){var t=u[e];if(f[e]=n,t)for(;t.length;)t[0](e,n),t.splice(0,1)}}function o(e,n){e.call&amp;&amp;(e={success:e}),n.length?(e.error||l)(n):(e.success||l)(e)}function h(t,r,i,c){var s,o,e=document,n=i.async,f=(i.numRetries||0)+1,u=i.before||l,a=t.replace(/^(css|img)!/,"");c=c||0,/(^css!|\.css$)/.test(t)?(s=!0,(o=e.createElement("link")).rel="stylesheet",o.href=a):/(^img!|\.(png|gif|jpg|svg)$)/.test(t)?(o=e.createElement("img")).src=a:((o=e.createElement("script")).src=t,o.async=void 0===n||n),!(o.onload=o.onerror=o.onbeforeload=function(e){var n=e.type[0];if(s&amp;&amp;"hideFocus"in o)try{o.sheet.cssText.length||(n="e")}catch(e){n="e"}if("e"==n&amp;&amp;(c+=1)&lt;f)return h(t,r,i,c);r(t,n,e.defaulโ€ฆ
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 name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, viewport-fit=cover"/> <meta name="referrer" content="origin-when-cross-origin"/> <title>Events</title> <meta name="description" content="Events"/> <meta property="og:image" content="https://www.eclecticiq.com/hubfs/raw_assets/public/rebrand-2024/assets/img/og-eclecticiq.png"/> <script>loadjs=function(){var l=function(){},c={},f={},u={};function s(e,n){if(e){var t=u[e];if(f[e]=n,t)for(;t.length;)t[0](e,n),t.splice(0,1)}}function o(e,n){e.call&amp;&amp;(e={success:e}),n.length?(e.error||l)(n):(e.success||l)(e)}function h(t,r,i,c){var s,o,e=document,n=i.async,f=(i.numRetries||0)+1,u=i.before||l,a=t.replace(/^(css|img)!/,"");c=c||0,/(^css!|\.css$)/.test(t)?(s=!0,(o=e.createElement("link")).rel="stylesheet",o.href=a):/(^img!|\.(png|gif|jpg|svg)$)/.test(t)?(o=e.createElement("img")).src=a:((o=e.createElement("script")).src=t,o.async=void 0===n||n),!(o.onload=o.onerror=o.onbeforeload=function(e){var n=e.type[0];if(s&amp;&amp;"hideFocus"in o)try{o.sheet.cssText.length||(n="e")}catch(e){n="e"}if("e"==n&amp;&amp;(c+=1)&lt;f)return h(t,r,i,c);r(t,n,e.defaulโ€ฆ
AR13warningonly 142 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 142 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
142 characters
Events Meet the EclecticIQ team both in the real world and online: at conferences, meetups, summit, workshops or webinars. No upcoming events.
CT24warningthe page's own content runs to 142 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 142 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 content142 characters
All the text on the page1570 characters
The point we measure against400 characters
CT13failmain content is 9% 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 9% 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 content142 characters
All the text on the page1570 characters
The page's own share of it9%
The point we measure against25%
AJ05warningno site-search control detected on this page
What we check
Whether a search box for the site is present in the page as it is served.
What good looks like
A search box is present in the served markup, so the site's own content can be queried directly.
Why it matters
With no search box on the page, its links are the only route from here into the rest of the site.
What we found on this page
no site-search control detected on this page
The evidence, taken from the page as served
The head of this page, as served

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

<head> <meta charset="utf-8"/> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, viewport-fit=cover"/> <meta name="referrer" content="origin-when-cross-origin"/> <title>Events</title> <meta name="description" content="Events"/> <meta property="og:image" content="https://www.eclecticiq.com/hubfs/raw_assets/public/rebrand-2024/assets/img/og-eclecticiq.png"/> <script>loadjs=function(){var l=function(){},c={},f={},u={};function s(e,n){if(e){var t=u[e];if(f[e]=n,t)for(;t.length;)t[0](e,n),t.splice(0,1)}}function o(e,n){e.call&amp;&amp;(e={success:e}),n.length?(e.error||l)(n):(e.success||l)(e)}function h(t,r,i,c){var s,o,e=document,n=i.async,f=(i.numRetries||0)+1,u=i.before||l,a=t.replace(/^(css|img)!/,"");c=c||0,/(^css!|\.css$)/.test(t)?(s=!0,(o=e.createElement("link")).rel="stylesheet",o.href=a):/(^img!|\.(png|gif|jpg|svg)$)/.test(t)?(o=e.createElement("img")).src=a:((o=e.createElement("script")).src=t,o.async=void 0===n||n),!(o.onload=o.onerror=o.onbeforeload=function(e){var n=e.type[0];if(s&amp;&amp;"hideFocus"in o)try{o.sheet.cssText.length||(n="e")}catch(e){n="e"}if("e"==n&amp;&amp;(c+=1)&lt;f)return h(t,r,i,c);r(t,n,e.defaulโ€ฆ
MS08fail1 link wording(s) are used for more than one destination, so the same words point at different pages: โ€œbook a demoโ€; 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: โ€œbook a demoโ€; 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
"Book a demo"
<a href="https://www.eclecticiq.com/book-a-demo" target="_blank" class="relative group inline-flex items-center h-12 px-8 rounded-full font-bold bg-blue text-nav text-white leading-none tracking-wide hover:pr-12 transition-all duration-200"> <span class="flex-none">Book a demo</span> <img class="lazyload absolute -top-โ€ฆ
"Book a demo"
<a href="" class="relative flex xs:inline-flex justify-center items-center h-12 px-8 rounded-full font-bold bg-blue text-nav text-white leading-none tracking-wide"> <span class="flex-none">Book a demo</span> <img class="lazyload absolute -top-2 right-2 w-4 scale-110" src="https://www.eclecticiq.com/hubfs/raw_assets/pubโ€ฆ
MS10failthe page's first heading is not its top-level heading, so the structure starts part way down; the 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 page's first heading is not its top-level heading, so the structure starts part way down; 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)
H3 Products level jumped
H3 Use Cases
H3 Partners
H3 Resources
H3 Company
H1 Events
H3 (no text) level jumped
MS13warning2 of 2 iframes untitled
What we check
Each embedded panel on the page carries a title saying what it contains.
What good looks like
Each embedded panel carries a title saying what it contains.
Why it matters
The embedded region stays unnamed, so what it holds is left unstated in the page around it.
What we found on this page
2 of 2 iframes untitled
The evidence, taken from the page as served
The iframes with no title attribute, as served
src=https://www.googletagmanager.com/ns.html?id=GTM-MC7MVC
<iframe src="https://www.googletagmanager.com/ns.html?id=GTM-MC7MVC" height="0" width="0" style="display:none;visibility:hidden"/>
src=https://www.googletagmanager.com/ns.html?id=GTM-MC7MVC
<iframe src="https://www.googletagmanager.com/ns.html?id=GTM-MC7MVC" height="0" width="0" style="display:none;visibility:hidden"/>
AR03warning19% of the words a person sees are missing from the page as first delivered (1570 characters delivered, 1770 once the page finishes building itself)
What we check
How much of the page's content exists only once JavaScript has run.
What good looks like
The page's content is present in the served HTML, so it does not depend on JavaScript to appear.
Why it matters
The page is fetched successfully but the answer is missing from what comes back, so the content is absent rather than wrong.
What we found on this page
19% of the words a person sees are missing from the page as first delivered (1570 characters delivered, 1770 once the page finishes building itself)
The evidence, taken from the page as served
Content present only after JavaScript runs (absent from the served HTML)

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

What the server sends (raw HTML text, first 280 chars)
Events Products Products Threat Intelligence Platform Threat Intelligence Browser Extension Threat Intelligence Feeds Use Cases Use Cases Defense TIP Alert Triage Incident Response Reporting AI Search Partners Partners Integration Partners Channel Partners Resources Resources Lib…
Words present only after JavaScript runs
accordanceacknowledgeaddressagreebusinessemailforminformationpersonalprocesssignsubmittingthatthisupdateswillyour
AR11warning19% of the words a person sees are missing from the page as first delivered, which is 0.89 of its finished size
What we check
The measured gap between the page as served and the page after the browser has built it.
What good looks like
The served page and the fully built page carry the same words, with little gap between them.
Why it matters
Two versions of the same page exist, and which words come back depends on which version was fetched.
What we found on this page
19% of the words a person sees are missing from the page as first delivered, which is 0.89 of its finished size
The evidence, taken from the page as served
This page as first delivered, against the page once its scripts have run

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

What was measuredAs measured on this page
Text in the page as delivered1570 characters
Text once the page finishes building1770 characters
Words absent from the delivered page19%
The point we measure against10%
AR12warning59% of the page's text (1057 of 1770 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
59% of the page's text (1057 of 1770 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 click1057 characters
All the text on the finished page1770 characters
Hidden share59%
The point we measure against50%
MS02warning6 of 44 buttons, links and controls on the loaded page carry no name in the page's code saying what each is for
What we check
Whether the page's buttons, links and form controls each carry a name once the page has loaded.
What good looks like
The page's buttons, links and form controls each carry a name once the page has loaded.
Why it matters
Unnamed controls are identified by their position on the screen alone, so a redesign moves what they refer to.
What we found on this page
6 of 44 buttons, links and controls on the loaded page carry no name in the page's code saying what each is for
The evidence, taken from the page as served
The controls on this page that carry no name

Read on the page once its scripts had run.

What was measuredAs measured on this page
Controls found44
Of those, carrying no name6
Kinds affectedlink, textbox
MS04warningthe page's naming markup is faulty: 3 name label(s) point at nothing: the code that should hold the name is absent
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: 3 name label(s) point at nothing: the code that should hold the name is absent
The evidence, taken from the page as served
The faulty markup, as the page serves it once loaded
<div x-show="subnav" @keydown.escape.prevent.stop="subnav = false" role="dialog" aria-modal="true" x-id="['use cases ']" :aria-labelledby="$id('use cases ')" class="absolute top-0 pt-12 -left-8" aria-labelledby="use cases -1" style="display: none;"> <div class="relative h-full w-full flex items-center justify-center teโ€ฆ
CT34failthe page's own words are thin: 266 of its 287 words are shared navigation and footer, so it reads as 88% 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: 266 of its 287 words are shared navigation and footer, so it reads as 88% identical to another page, which a machine can then take as a duplicate and pass over, missing the little content that is its own; the matching page is named in the view
The evidence, taken from the page as served
This page's own words, lost in shared navigation and footer
Page ยท opens in a new tabOwn wordsChromeReads as identical toShared
www.eclecticiq.com/events?hsLang=en21 of 28793%www.eclecticiq.com/library?type=product+sheet&hsLang=en88%
https://www.eclecticiq.com/threat-intelligence-platform?hsLang=en 54.1% Likely 12 out of 59
CheckResultEvidence
CT32warninglength 172
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 172
The evidence, taken from the page as served
The page's description, as served
172 characters
<meta name="description" content="Empower your team with AI-embedded threat intelligence capabilities to prioritize critical threats, make faster security decisions, and strengthen defenses against threats."/>
CT16warningthe page carries no structured data block stating what it is (not required; a hygiene signal)
What we check
The page carries structured data, the machine-readable summary of what it describes.
What good looks like
The page carries structured data summarising what it describes.
Why it matters
Vendors document this as optional rather than required, so its absence is a small forfeit and no more.
What we found on this page
the page carries no structured data block stating what it is (not required; a hygiene signal)
The evidence, taken from the page as served
The head of this page, as served

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

<head> <meta charset="utf-8"/> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, viewport-fit=cover"/> <meta name="referrer" content="origin-when-cross-origin"/> <title>Threat Intelligence Platform</title> <meta name="description" content="Empower your team with AI-embedded threat intelligence capabilities to prioritize critical threats, make faster security decisions, and strengthen defenses against threats."/> <meta property="og:image" content="https://www.eclecticiq.com/hubfs/raw_assets/public/rebrand-2024/assets/img/og-eclecticiq.png"/> <script>loadjs=function(){var l=function(){},c={},f={},u={};function s(e,n){if(e){var t=u[e];if(f[e]=n,t)for(;t.length;)t[0](e,n),t.splice(0,1)}}function o(e,n){e.call&amp;&amp;(e={success:e}),n.length?(e.error||l)(n):(e.success||l)(e)}function h(t,r,i,c){var s,o,e=document,n=i.async,f=(i.numRetries||0)+1,u=i.before||l,a=t.replace(/^(css|img)!/,"");c=c||0,/(^css!|\.css$)/.test(t)?(s=!0,(o=e.createElement("link")).rel="stylesheet",o.href=a):/(^img!|\.(png|gif|jpg|svg)$)/.test(t)?(o=e.createElement("img")).src=a:((o=e.createElement("script")).src=t,o.async=void 0===n||n),!(o.onload=o.onerrorโ€ฆ
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 name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, viewport-fit=cover"/> <meta name="referrer" content="origin-when-cross-origin"/> <title>Threat Intelligence Platform</title> <meta name="description" content="Empower your team with AI-embedded threat intelligence capabilities to prioritize critical threats, make faster security decisions, and strengthen defenses against threats."/> <meta property="og:image" content="https://www.eclecticiq.com/hubfs/raw_assets/public/rebrand-2024/assets/img/og-eclecticiq.png"/> <script>loadjs=function(){var l=function(){},c={},f={},u={};function s(e,n){if(e){var t=u[e];if(f[e]=n,t)for(;t.length;)t[0](e,n),t.splice(0,1)}}function o(e,n){e.call&amp;&amp;(e={success:e}),n.length?(e.error||l)(n):(e.success||l)(e)}function h(t,r,i,c){var s,o,e=document,n=i.async,f=(i.numRetries||0)+1,u=i.before||l,a=t.replace(/^(css|img)!/,"");c=c||0,/(^css!|\.css$)/.test(t)?(s=!0,(o=e.createElement("link")).rel="stylesheet",o.href=a):/(^img!|\.(png|gif|jpg|svg)$)/.test(t)?(o=e.createElement("img")).src=a:((o=e.createElement("script")).src=t,o.async=void 0===n||n),!(o.onload=o.onerrorโ€ฆ
CT35warningthe copyright line at the foot of this page states 2024, 2 years behind the year this assessment ran, which reads as a page left unattended and is the usual sign of a template copied from elsewhere
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 copyright line at the foot of this page states 2024, 2 years behind the year this assessment ran, which reads as a page left unattended and is the usual sign of a template copied from elsewhere
The evidence, taken from the page as served
The copyright line as served, and the year it claims
Page ยท opens in a new tabFoundThe text, as served, around the word
www.eclecticiq.com/threat-intelligence-platform?hsLang=en…ยฉ 2024…
AJ05warningno site-search control detected on this page
What we check
Whether a search box for the site is present in the page as it is served.
What good looks like
A search box is present in the served markup, so the site's own content can be queried directly.
Why it matters
With no search box on the page, its links are the only route from here into the rest of the site.
What we found on this page
no site-search control detected on this page
The evidence, taken from the page as served
The head of this page, as served

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

<head> <meta charset="utf-8"/> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, viewport-fit=cover"/> <meta name="referrer" content="origin-when-cross-origin"/> <title>Threat Intelligence Platform</title> <meta name="description" content="Empower your team with AI-embedded threat intelligence capabilities to prioritize critical threats, make faster security decisions, and strengthen defenses against threats."/> <meta property="og:image" content="https://www.eclecticiq.com/hubfs/raw_assets/public/rebrand-2024/assets/img/og-eclecticiq.png"/> <script>loadjs=function(){var l=function(){},c={},f={},u={};function s(e,n){if(e){var t=u[e];if(f[e]=n,t)for(;t.length;)t[0](e,n),t.splice(0,1)}}function o(e,n){e.call&amp;&amp;(e={success:e}),n.length?(e.error||l)(n):(e.success||l)(e)}function h(t,r,i,c){var s,o,e=document,n=i.async,f=(i.numRetries||0)+1,u=i.before||l,a=t.replace(/^(css|img)!/,"");c=c||0,/(^css!|\.css$)/.test(t)?(s=!0,(o=e.createElement("link")).rel="stylesheet",o.href=a):/(^img!|\.(png|gif|jpg|svg)$)/.test(t)?(o=e.createElement("img")).src=a:((o=e.createElement("script")).src=t,o.async=void 0===n||n),!(o.onload=o.onerrorโ€ฆ
MS08fail1 link wording(s) are used for more than one destination, so the same words point at different pages: โ€œbook a demoโ€; 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: โ€œbook a demoโ€; 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
"Book a demo"
<a href="https://www.eclecticiq.com/book-a-demo?hsLang=en" target="_blank" class="relative group inline-flex items-center h-12 px-8 rounded-full font-bold bg-blue text-nav text-white leading-none tracking-wide hover:pr-12 transition-all duration-200"> <span class="flex-none">Book a demo</span> <img class="lazyload absoโ€ฆ
"Book a demo"
<a href="" class="relative flex xs:inline-flex justify-center items-center h-12 px-8 rounded-full font-bold bg-blue text-nav text-white leading-none tracking-wide"> <span class="flex-none">Book a demo</span> <img class="lazyload absolute -top-2 right-2 w-4 scale-110" src="https://www.eclecticiq.com/hubfs/raw_assets/pubโ€ฆ
MS10failthe page's first heading is not its top-level heading, so the structure starts part way down
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 page's first heading is not its top-level heading, so the structure starts part way down
The evidence, taken from the page as served
The page's heading outline, in document order (a jump in level is marked)
H3 Products level jumped
H3 Use Cases
H3 Partners
H3 Resources
H3 Company
H1 Intelligence Center: The AI-embedded Threat Intelligence Platform
H2 What our Threat Intelligence Platform (TIP) can do
H3 1. Direction & planning
H4 1. Direction & planning
H3 2. Data collection
H4 2. Data collection
H3 3. Processing
H4 3. Processing
H3 4. Analysis
H4 4. Analysis
H3 5. Actioning & production
H4 5. Actioning & production
H3 6. Dissemination & feedback
H4 6. Dissemination & feedback
H2 How you can use our TIP
H2 How our TIP helps your team
H3 CTI Analysts
H3 SOC Analysts
H3 Cybersecurity Leaders and CISO
H3 MSSPs
H2 Learn more about Intelligence Center
H3 Download the Threat Intelligence Platform product sheet
H3 Read our latest blogs
H3 Get access to our latest reports
H2 Talk to one of our experts
H3 (no text)
MS09warninglink wording that does not say where it leads: โ€œlearn moreโ€
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: โ€œlearn moreโ€
The evidence, taken from the page as served
The links whose text names no destination, as served
"Learn more"
<a href="#" class="group inline-flex items-center gap-2 lg:gap-3 max-w-full font-bold text-sm xl:text-base leading-tight tracking-wide font-semibold text-white absolute bottom-5 right-8"> <span class="sm:flex-none truncate">Learn more</span> <svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 31 31" class="hidden xs:bโ€ฆ
"Learn more"
<a href="#" class="group inline-flex items-center gap-2 lg:gap-3 max-w-full font-bold text-sm xl:text-base leading-tight tracking-wide font-semibold text-white absolute bottom-5 right-8"> <span class="sm:flex-none truncate">Learn more</span> <svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 31 31" class="hidden xs:bโ€ฆ
"Learn more"
<a href="#" class="group inline-flex items-center gap-2 lg:gap-3 max-w-full font-bold text-sm xl:text-base leading-tight tracking-wide font-semibold text-white absolute bottom-5 right-8"> <span class="sm:flex-none truncate">Learn more</span> <svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 31 31" class="hidden xs:bโ€ฆ
"Learn more"
<a href="#" class="group inline-flex items-center gap-2 lg:gap-3 max-w-full font-bold text-sm xl:text-base leading-tight tracking-wide font-semibold text-white absolute bottom-5 right-8"> <span class="sm:flex-none truncate">Learn more</span> <svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 31 31" class="hidden xs:bโ€ฆ
"Learn more"
<a href="#" class="group inline-flex items-center gap-2 lg:gap-3 max-w-full font-bold text-sm xl:text-base leading-tight tracking-wide font-semibold text-white absolute bottom-5 right-8"> <span class="sm:flex-none truncate">Learn more</span> <svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 31 31" class="hidden xs:bโ€ฆ
"Learn more"
<a href="#" class="group inline-flex items-center gap-2 lg:gap-3 max-w-full font-bold text-sm xl:text-base leading-tight tracking-wide font-semibold text-white absolute bottom-5 right-8"> <span class="sm:flex-none truncate">Learn more</span> <svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 31 31" class="hidden xs:bโ€ฆ
"Learn more"
<a href="https://blog.eclecticiq.com?type=intelligence-research&amp;hsLang=en" class="group inline-flex items-center gap-2 lg:gap-3 max-w-full font-bold text-sm xl:text-base leading-tight tracking-wide font-semibold text-white mt-auto leading-tight"> <span class="sm:flex-none truncate">Learn more</span> <svg xmlns="httโ€ฆ
MS13warning2 of 2 iframes untitled
What we check
Each embedded panel on the page carries a title saying what it contains.
What good looks like
Each embedded panel carries a title saying what it contains.
Why it matters
The embedded region stays unnamed, so what it holds is left unstated in the page around it.
What we found on this page
2 of 2 iframes untitled
The evidence, taken from the page as served
The iframes with no title attribute, as served
src=https://www.googletagmanager.com/ns.html?id=GTM-MC7MVC
<iframe src="https://www.googletagmanager.com/ns.html?id=GTM-MC7MVC" height="0" width="0" style="display:none;visibility:hidden"/>
src=https://www.googletagmanager.com/ns.html?id=GTM-MC7MVC
<iframe src="https://www.googletagmanager.com/ns.html?id=GTM-MC7MVC" height="0" width="0" style="display:none;visibility:hidden"/>
AR12warning69% of the page's text (5981 of 8668 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
69% of the page's text (5981 of 8668 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 click5981 characters
All the text on the finished page8668 characters
Hidden share69%
The point we measure against50%
MS02warning6 of 67 buttons, links and controls on the loaded page carry no name in the page's code saying what each is for
What we check
Whether the page's buttons, links and form controls each carry a name once the page has loaded.
What good looks like
The page's buttons, links and form controls each carry a name once the page has loaded.
Why it matters
Unnamed controls are identified by their position on the screen alone, so a redesign moves what they refer to.
What we found on this page
6 of 67 buttons, links and controls on the loaded page carry no name in the page's code saying what each is for
The evidence, taken from the page as served
The controls on this page that carry no name

Read on the page once its scripts had run.

What was measuredAs measured on this page
Controls found67
Of those, carrying no name6
Kinds affectedlink, textbox
MS04warningthe page's naming markup is faulty: 3 name label(s) point at nothing: the code that should hold the name is absent
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: 3 name label(s) point at nothing: the code that should hold the name is absent
The evidence, taken from the page as served
The faulty markup, as the page serves it once loaded
<div x-show="subnav" @keydown.escape.prevent.stop="subnav = false" role="dialog" aria-modal="true" x-id="['use cases ']" :aria-labelledby="$id('use cases ')" class="absolute top-0 pt-12 -left-8" aria-labelledby="use cases -1" style="display: none;"> <div class="relative h-full w-full flex items-center justify-center teโ€ฆ
https://www.eclecticiq.com/threat-intelligence-browser-extension?hsLang=en 54.1% Likely 10 out of 58
CheckResultEvidence
CT09fail2 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
2 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)
H3 Products
H3 Use Cases
H3 Partners
H3 Resources
H3 Company
H1 Threat Scout: The free Browser Extension for instant threat intelligence
H2 Automatically collect relevant threat intelligence from any web content
H2 How Threat Scout works
H3 Web content scanner
H3 Intel extraction
H3 Analyst oversight
H3 CSV export
H2 Exclusive features for EclecticIQ Threat Intelligence Platform users
H3 Intel creation in TIP
H3 Automated lookups
H2 How you can use Threat Scout
H3 Streamline threat research
H5 How Threat Scout makes a difference level jumped
H3 Augment your SOC
H5 How Threat Scout makes a difference level jumped
H2 How Threat Scout helps your team
H2 Stronger security
H2 Streamlined efficiency
H2 Smarter decision-making
H2 Learn more about Threat Scout
H3 (no text)
CT16warningthe page carries no structured data block stating what it is (not required; a hygiene signal)
What we check
The page carries structured data, the machine-readable summary of what it describes.
What good looks like
The page carries structured data summarising what it describes.
Why it matters
Vendors document this as optional rather than required, so its absence is a small forfeit and no more.
What we found on this page
the page carries no structured data block stating what it is (not required; a hygiene signal)
The evidence, taken from the page as served
The head of this page, as served

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

<head> <meta charset="utf-8"/> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, viewport-fit=cover"/> <meta name="referrer" content="origin-when-cross-origin"/> <title>Threat Intelligence Browser Extension</title> <meta name="description" content="Enhance cyber threat intelligence gathering with the Threat Scout browser extension. Extract and export actionable data faster. "/> <meta property="og:image" content="https://www.eclecticiq.com/hubfs/raw_assets/public/rebrand-2024/assets/img/og-eclecticiq.png"/> <script>loadjs=function(){var l=function(){},c={},f={},u={};function s(e,n){if(e){var t=u[e];if(f[e]=n,t)for(;t.length;)t[0](e,n),t.splice(0,1)}}function o(e,n){e.call&amp;&amp;(e={success:e}),n.length?(e.error||l)(n):(e.success||l)(e)}function h(t,r,i,c){var s,o,e=document,n=i.async,f=(i.numRetries||0)+1,u=i.before||l,a=t.replace(/^(css|img)!/,"");c=c||0,/(^css!|\.css$)/.test(t)?(s=!0,(o=e.createElement("link")).rel="stylesheet",o.href=a):/(^img!|\.(png|gif|jpg|svg)$)/.test(t)?(o=e.createElement("img")).src=a:((o=e.createElement("script")).src=t,o.async=void 0===n||n),!(o.onload=o.onerror=o.onbeforeload=function(e){var n=eโ€ฆ
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 name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, viewport-fit=cover"/> <meta name="referrer" content="origin-when-cross-origin"/> <title>Threat Intelligence Browser Extension</title> <meta name="description" content="Enhance cyber threat intelligence gathering with the Threat Scout browser extension. Extract and export actionable data faster. "/> <meta property="og:image" content="https://www.eclecticiq.com/hubfs/raw_assets/public/rebrand-2024/assets/img/og-eclecticiq.png"/> <script>loadjs=function(){var l=function(){},c={},f={},u={};function s(e,n){if(e){var t=u[e];if(f[e]=n,t)for(;t.length;)t[0](e,n),t.splice(0,1)}}function o(e,n){e.call&amp;&amp;(e={success:e}),n.length?(e.error||l)(n):(e.success||l)(e)}function h(t,r,i,c){var s,o,e=document,n=i.async,f=(i.numRetries||0)+1,u=i.before||l,a=t.replace(/^(css|img)!/,"");c=c||0,/(^css!|\.css$)/.test(t)?(s=!0,(o=e.createElement("link")).rel="stylesheet",o.href=a):/(^img!|\.(png|gif|jpg|svg)$)/.test(t)?(o=e.createElement("img")).src=a:((o=e.createElement("script")).src=t,o.async=void 0===n||n),!(o.onload=o.onerror=o.onbeforeload=function(e){var n=eโ€ฆ
CT35warningthe copyright line at the foot of this page states 2024, 2 years behind the year this assessment ran, which reads as a page left unattended and is the usual sign of a template copied from elsewhere
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 copyright line at the foot of this page states 2024, 2 years behind the year this assessment ran, which reads as a page left unattended and is the usual sign of a template copied from elsewhere
The evidence, taken from the page as served
The copyright line as served, and the year it claims
Page ยท opens in a new tabFoundThe text, as served, around the word
www.eclecticiq.com/threat-intelligence-browser-extension?hsLang=en…ยฉ 2024…
AJ05warningno site-search control detected on this page
What we check
Whether a search box for the site is present in the page as it is served.
What good looks like
A search box is present in the served markup, so the site's own content can be queried directly.
Why it matters
With no search box on the page, its links are the only route from here into the rest of the site.
What we found on this page
no site-search control detected on this page
The evidence, taken from the page as served
The head of this page, as served

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

<head> <meta charset="utf-8"/> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, viewport-fit=cover"/> <meta name="referrer" content="origin-when-cross-origin"/> <title>Threat Intelligence Browser Extension</title> <meta name="description" content="Enhance cyber threat intelligence gathering with the Threat Scout browser extension. Extract and export actionable data faster. "/> <meta property="og:image" content="https://www.eclecticiq.com/hubfs/raw_assets/public/rebrand-2024/assets/img/og-eclecticiq.png"/> <script>loadjs=function(){var l=function(){},c={},f={},u={};function s(e,n){if(e){var t=u[e];if(f[e]=n,t)for(;t.length;)t[0](e,n),t.splice(0,1)}}function o(e,n){e.call&amp;&amp;(e={success:e}),n.length?(e.error||l)(n):(e.success||l)(e)}function h(t,r,i,c){var s,o,e=document,n=i.async,f=(i.numRetries||0)+1,u=i.before||l,a=t.replace(/^(css|img)!/,"");c=c||0,/(^css!|\.css$)/.test(t)?(s=!0,(o=e.createElement("link")).rel="stylesheet",o.href=a):/(^img!|\.(png|gif|jpg|svg)$)/.test(t)?(o=e.createElement("img")).src=a:((o=e.createElement("script")).src=t,o.async=void 0===n||n),!(o.onload=o.onerror=o.onbeforeload=function(e){var n=eโ€ฆ
MS08fail1 link wording(s) are used for more than one destination, so the same words point at different pages: โ€œbook a demoโ€; 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: โ€œbook a demoโ€; 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
"Book a demo"
<a href="https://www.eclecticiq.com/book-a-demo?hsLang=en" target="_blank" class="relative group inline-flex items-center h-12 px-8 rounded-full font-bold bg-blue text-nav text-white leading-none tracking-wide hover:pr-12 transition-all duration-200"> <span class="flex-none">Book a demo</span> <img class="lazyload absoโ€ฆ
"Book a demo"
<a href="" class="relative flex xs:inline-flex justify-center items-center h-12 px-8 rounded-full font-bold bg-blue text-nav text-white leading-none tracking-wide"> <span class="flex-none">Book a demo</span> <img class="lazyload absolute -top-2 right-2 w-4 scale-110" src="https://www.eclecticiq.com/hubfs/raw_assets/pubโ€ฆ
MS10failthe page's first heading is not its top-level heading, so the structure starts part way down; the heading structure skips a level in 2 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 page's first heading is not its top-level heading, so the structure starts part way down; the heading structure skips a level in 2 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)
H3 Products level jumped
H3 Use Cases
H3 Partners
H3 Resources
H3 Company
H1 Threat Scout: The free Browser Extension for instant threat intelligence
H2 Automatically collect relevant threat intelligence from any web content
H2 How Threat Scout works
H3 Web content scanner
H3 Intel extraction
H3 Analyst oversight
H3 CSV export
H2 Exclusive features for EclecticIQ Threat Intelligence Platform users
H3 Intel creation in TIP
H3 Automated lookups
H2 How you can use Threat Scout
H3 Streamline threat research
H5 How Threat Scout makes a difference level jumped
H3 Augment your SOC
H5 How Threat Scout makes a difference level jumped
H2 How Threat Scout helps your team
H2 Stronger security
H2 Streamlined efficiency
H2 Smarter decision-making
H2 Learn more about Threat Scout
H3 (no text)
MS13warning2 of 2 iframes untitled
What we check
Each embedded panel on the page carries a title saying what it contains.
What good looks like
Each embedded panel carries a title saying what it contains.
Why it matters
The embedded region stays unnamed, so what it holds is left unstated in the page around it.
What we found on this page
2 of 2 iframes untitled
The evidence, taken from the page as served
The iframes with no title attribute, as served
src=https://www.googletagmanager.com/ns.html?id=GTM-MC7MVC
<iframe src="https://www.googletagmanager.com/ns.html?id=GTM-MC7MVC" height="0" width="0" style="display:none;visibility:hidden"/>
src=https://www.googletagmanager.com/ns.html?id=GTM-MC7MVC
<iframe src="https://www.googletagmanager.com/ns.html?id=GTM-MC7MVC" height="0" width="0" style="display:none;visibility:hidden"/>
MS02warning6 of 48 buttons, links and controls on the loaded page carry no name in the page's code saying what each is for
What we check
Whether the page's buttons, links and form controls each carry a name once the page has loaded.
What good looks like
The page's buttons, links and form controls each carry a name once the page has loaded.
Why it matters
Unnamed controls are identified by their position on the screen alone, so a redesign moves what they refer to.
What we found on this page
6 of 48 buttons, links and controls on the loaded page carry no name in the page's code saying what each is for
The evidence, taken from the page as served
The controls on this page that carry no name

Read on the page once its scripts had run.

What was measuredAs measured on this page
Controls found48
Of those, carrying no name6
Kinds affectedlink, textbox
MS04warningthe page's naming markup is faulty: 3 name label(s) point at nothing: the code that should hold the name is absent
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: 3 name label(s) point at nothing: the code that should hold the name is absent
The evidence, taken from the page as served
The faulty markup, as the page serves it once loaded
<div x-show="subnav" @keydown.escape.prevent.stop="subnav = false" role="dialog" aria-modal="true" x-id="['use cases ']" :aria-labelledby="$id('use cases ')" class="absolute top-0 pt-12 -left-8" aria-labelledby="use cases -1" style="display: none;"> <div class="relative h-full w-full flex items-center justify-center teโ€ฆ
https://www.eclecticiq.com/threat-intelligence-feeds?hsLang=en 54.6% Likely 7 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 name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, viewport-fit=cover"/> <meta name="referrer" content="origin-when-cross-origin"/> <title>Threat Intelligence Feeds</title> <meta name="description" content="Empower your security team with real-time threat intelligence feeds from EclecticIQ. Stay ahead of evolving threats with curated insights for proactive security."/> <meta property="og:image" content="https://www.eclecticiq.com/hubfs/raw_assets/public/rebrand-2024/assets/img/og-eclecticiq.png"/> <script>loadjs=function(){var l=function(){},c={},f={},u={};function s(e,n){if(e){var t=u[e];if(f[e]=n,t)for(;t.length;)t[0](e,n),t.splice(0,1)}}function o(e,n){e.call&amp;&amp;(e={success:e}),n.length?(e.error||l)(n):(e.success||l)(e)}function h(t,r,i,c){var s,o,e=document,n=i.async,f=(i.numRetries||0)+1,u=i.before||l,a=t.replace(/^(css|img)!/,"");c=c||0,/(^css!|\.css$)/.test(t)?(s=!0,(o=e.createElement("link")).rel="stylesheet",o.href=a):/(^img!|\.(png|gif|jpg|svg)$)/.test(t)?(o=e.createElement("img")).src=a:((o=e.createElement("script")).src=t,o.async=void 0===n||n),!(o.onload=o.onerror=o.onbeforeloaโ€ฆ
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 name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, viewport-fit=cover"/> <meta name="referrer" content="origin-when-cross-origin"/> <title>Threat Intelligence Feeds</title> <meta name="description" content="Empower your security team with real-time threat intelligence feeds from EclecticIQ. Stay ahead of evolving threats with curated insights for proactive security."/> <meta property="og:image" content="https://www.eclecticiq.com/hubfs/raw_assets/public/rebrand-2024/assets/img/og-eclecticiq.png"/> <script>loadjs=function(){var l=function(){},c={},f={},u={};function s(e,n){if(e){var t=u[e];if(f[e]=n,t)for(;t.length;)t[0](e,n),t.splice(0,1)}}function o(e,n){e.call&amp;&amp;(e={success:e}),n.length?(e.error||l)(n):(e.success||l)(e)}function h(t,r,i,c){var s,o,e=document,n=i.async,f=(i.numRetries||0)+1,u=i.before||l,a=t.replace(/^(css|img)!/,"");c=c||0,/(^css!|\.css$)/.test(t)?(s=!0,(o=e.createElement("link")).rel="stylesheet",o.href=a):/(^img!|\.(png|gif|jpg|svg)$)/.test(t)?(o=e.createElement("img")).src=a:((o=e.createElement("script")).src=t,o.async=void 0===n||n),!(o.onload=o.onerror=o.onbeforeloaโ€ฆ
CT35warningthe copyright line at the foot of this page states 2024, 2 years behind the year this assessment ran, which reads as a page left unattended and is the usual sign of a template copied from elsewhere
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 copyright line at the foot of this page states 2024, 2 years behind the year this assessment ran, which reads as a page left unattended and is the usual sign of a template copied from elsewhere
The evidence, taken from the page as served
The copyright line as served, and the year it claims
Page ยท opens in a new tabFoundThe text, as served, around the word
www.eclecticiq.com/threat-intelligence-feeds?hsLang=en…ยฉ 2024…
AJ05warningno site-search control detected on this page
What we check
Whether a search box for the site is present in the page as it is served.
What good looks like
A search box is present in the served markup, so the site's own content can be queried directly.
Why it matters
With no search box on the page, its links are the only route from here into the rest of the site.
What we found on this page
no site-search control detected on this page
The evidence, taken from the page as served
The head of this page, as served

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

<head> <meta charset="utf-8"/> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, viewport-fit=cover"/> <meta name="referrer" content="origin-when-cross-origin"/> <title>Threat Intelligence Feeds</title> <meta name="description" content="Empower your security team with real-time threat intelligence feeds from EclecticIQ. Stay ahead of evolving threats with curated insights for proactive security."/> <meta property="og:image" content="https://www.eclecticiq.com/hubfs/raw_assets/public/rebrand-2024/assets/img/og-eclecticiq.png"/> <script>loadjs=function(){var l=function(){},c={},f={},u={};function s(e,n){if(e){var t=u[e];if(f[e]=n,t)for(;t.length;)t[0](e,n),t.splice(0,1)}}function o(e,n){e.call&amp;&amp;(e={success:e}),n.length?(e.error||l)(n):(e.success||l)(e)}function h(t,r,i,c){var s,o,e=document,n=i.async,f=(i.numRetries||0)+1,u=i.before||l,a=t.replace(/^(css|img)!/,"");c=c||0,/(^css!|\.css$)/.test(t)?(s=!0,(o=e.createElement("link")).rel="stylesheet",o.href=a):/(^img!|\.(png|gif|jpg|svg)$)/.test(t)?(o=e.createElement("img")).src=a:((o=e.createElement("script")).src=t,o.async=void 0===n||n),!(o.onload=o.onerror=o.onbeforeloaโ€ฆ
MS08fail1 link wording(s) are used for more than one destination, so the same words point at different pages: โ€œbook a demoโ€; 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: โ€œbook a demoโ€; 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
"Book a demo"
<a href="https://www.eclecticiq.com/book-a-demo?hsLang=en" target="_blank" class="relative group inline-flex items-center h-12 px-8 rounded-full font-bold bg-blue text-nav text-white leading-none tracking-wide hover:pr-12 transition-all duration-200"> <span class="flex-none">Book a demo</span> <img class="lazyload absoโ€ฆ
"Book a demo"
<a href="" class="relative flex xs:inline-flex justify-center items-center h-12 px-8 rounded-full font-bold bg-blue text-nav text-white leading-none tracking-wide"> <span class="flex-none">Book a demo</span> <img class="lazyload absolute -top-2 right-2 w-4 scale-110" src="https://www.eclecticiq.com/hubfs/raw_assets/pubโ€ฆ
MS10failthe page's first heading is not its top-level heading, so the structure starts part way down
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 page's first heading is not its top-level heading, so the structure starts part way down
The evidence, taken from the page as served
The page's heading outline, in document order (a jump in level is marked)
H3 Products level jumped
H3 Use Cases
H3 Partners
H3 Resources
H3 Company
H1 EclecticIQ Threat Intelligence Feeds: the smart add-on to your intelligence arse
H2 Feed types
H3 Open Source
H3 Commercial
H2 How EclecticIQ Feeds work
H3 Matching the right Intelligence Feeds to your needs
H2 What makes our Commercial Feeds unique?
H3 Real-time updates and early detection
H3 Deeper threat context
H3 Predictive threat insights
H3 Comprehensive data sources
H2 How EclecticIQ Commercial Feeds help your team
H2 Smart add-on to your intelligence
H2 Enhanced visibility
H2 Simplified access
H2 Learn more about EclecticIQ Threat Intelligence Feeds
H3 (no text)
MS13warning2 of 2 iframes untitled
What we check
Each embedded panel on the page carries a title saying what it contains.
What good looks like
Each embedded panel carries a title saying what it contains.
Why it matters
The embedded region stays unnamed, so what it holds is left unstated in the page around it.
What we found on this page
2 of 2 iframes untitled
The evidence, taken from the page as served
The iframes with no title attribute, as served
src=https://www.googletagmanager.com/ns.html?id=GTM-MC7MVC
<iframe src="https://www.googletagmanager.com/ns.html?id=GTM-MC7MVC" height="0" width="0" style="display:none;visibility:hidden"/>
src=https://www.googletagmanager.com/ns.html?id=GTM-MC7MVC
<iframe src="https://www.googletagmanager.com/ns.html?id=GTM-MC7MVC" height="0" width="0" style="display:none;visibility:hidden"/>
https://www.eclecticiq.com/integration-partners?hsLang=en 51.4% Likely 9 out of 42
CheckResultEvidence
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)
H3 Products
H3 Use Cases
H3 Partners
H3 Resources
H3 Company
H1 Elevate your security with seamless integrations
H4 (no text) level jumped
H3 (no text)
CT16warningthe page carries no structured data block stating what it is (not required; a hygiene signal)
What we check
The page carries structured data, the machine-readable summary of what it describes.
What good looks like
The page carries structured data summarising what it describes.
Why it matters
Vendors document this as optional rather than required, so its absence is a small forfeit and no more.
What we found on this page
the page carries no structured data block stating what it is (not required; a hygiene signal)
The evidence, taken from the page as served
The head of this page, as served

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

<head> <meta charset="utf-8"/> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, viewport-fit=cover"/> <meta name="referrer" content="origin-when-cross-origin"/> <title>Integration Partners</title> <meta name="description" content="Discover our 90+ integration partners, like AlienVault, CrowdStrike, Microsoft, AWS, CISA, CISCO, Splunk, Palo Alto, and IBM Security. "/> <meta property="og:image" content="https://www.eclecticiq.com/hubfs/raw_assets/public/rebrand-2024/assets/img/og-eclecticiq.png"/> <script>loadjs=function(){var l=function(){},c={},f={},u={};function s(e,n){if(e){var t=u[e];if(f[e]=n,t)for(;t.length;)t[0](e,n),t.splice(0,1)}}function o(e,n){e.call&amp;&amp;(e={success:e}),n.length?(e.error||l)(n):(e.success||l)(e)}function h(t,r,i,c){var s,o,e=document,n=i.async,f=(i.numRetries||0)+1,u=i.before||l,a=t.replace(/^(css|img)!/,"");c=c||0,/(^css!|\.css$)/.test(t)?(s=!0,(o=e.createElement("link")).rel="stylesheet",o.href=a):/(^img!|\.(png|gif|jpg|svg)$)/.test(t)?(o=e.createElement("img")).src=a:((o=e.createElement("script")).src=t,o.async=void 0===n||n),!(o.onload=o.onerror=o.onbeforeload=function(e){var n=e.type[0];iโ€ฆ
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 name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, viewport-fit=cover"/> <meta name="referrer" content="origin-when-cross-origin"/> <title>Integration Partners</title> <meta name="description" content="Discover our 90+ integration partners, like AlienVault, CrowdStrike, Microsoft, AWS, CISA, CISCO, Splunk, Palo Alto, and IBM Security. "/> <meta property="og:image" content="https://www.eclecticiq.com/hubfs/raw_assets/public/rebrand-2024/assets/img/og-eclecticiq.png"/> <script>loadjs=function(){var l=function(){},c={},f={},u={};function s(e,n){if(e){var t=u[e];if(f[e]=n,t)for(;t.length;)t[0](e,n),t.splice(0,1)}}function o(e,n){e.call&amp;&amp;(e={success:e}),n.length?(e.error||l)(n):(e.success||l)(e)}function h(t,r,i,c){var s,o,e=document,n=i.async,f=(i.numRetries||0)+1,u=i.before||l,a=t.replace(/^(css|img)!/,"");c=c||0,/(^css!|\.css$)/.test(t)?(s=!0,(o=e.createElement("link")).rel="stylesheet",o.href=a):/(^img!|\.(png|gif|jpg|svg)$)/.test(t)?(o=e.createElement("img")).src=a:((o=e.createElement("script")).src=t,o.async=void 0===n||n),!(o.onload=o.onerror=o.onbeforeload=function(e){var n=e.type[0];iโ€ฆ
CT35warningthe copyright line at the foot of this page states 2024, 2 years behind the year this assessment ran, which reads as a page left unattended and is the usual sign of a template copied from elsewhere
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 copyright line at the foot of this page states 2024, 2 years behind the year this assessment ran, which reads as a page left unattended and is the usual sign of a template copied from elsewhere
The evidence, taken from the page as served
The copyright line as served, and the year it claims
Page ยท opens in a new tabFoundThe text, as served, around the word
www.eclecticiq.com/integration-partners?hsLang=en…ยฉ 2024…
MS01fail1 of 1 boxes in the page's forms carry no name saying what each is for, so which answer belongs in which box rests on layout alone
What we check
Each box, dropdown and text area in a form carries a name saying what it is for.
What good looks like
Each field in a form carries a name saying what it is for.
Why it matters
Unnamed fields leave the tie between a question and its box resting on layout, which shifts as the page reflows.
What we found on this page
1 of 1 boxes in the page's forms carry no name saying what each is for, so which answer belongs in which box rests on layout alone
The evidence, taken from the page as served
The form boxes that carry no name, as served
name=(none)
<input class="!border-black/10 shadow-inner" type="search" placeholder="Search partners" x-model="search" @keydown="$scroll('#overview', { offset: 32 })"/>
MS06warning2 of 20 images lack an alt attribute (0 inside links = unnamed controls); alt="" on decorative images is correct and not penalised
What we check
Images published with no alt text at all, and whether any of those images are themselves links.
What good looks like
Each informative image carries alt text describing it.
Why it matters
The image says nothing in text, and where it is a link that link is left with no name of its own.
What we found on this page
2 of 20 images lack an alt attribute (0 inside links = unnamed controls); alt="" on decorative images is correct and not penalised
The evidence, taken from the page as served
The images with no alt attribute, as served (with the file each points at)
src=(no src)
<img :src="partner.logo" :alt="partner.name" class="w-full h-full object-contain"/>
src=(no src)
<img :src="partner.logo" :alt="partner.name" class="w-full h-full object-contain object-left"/>
MS08fail1 link wording(s) are used for more than one destination, so the same words point at different pages: โ€œbook a demoโ€; 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: โ€œbook a demoโ€; 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
"Book a demo"
<a href="https://www.eclecticiq.com/book-a-demo?hsLang=en" target="_blank" class="relative group inline-flex items-center h-12 px-8 rounded-full font-bold bg-blue text-nav text-white leading-none tracking-wide hover:pr-12 transition-all duration-200"> <span class="flex-none">Book a demo</span> <img class="lazyload absoโ€ฆ
"Book a demo"
<a href="" class="relative flex xs:inline-flex justify-center items-center h-12 px-8 rounded-full font-bold bg-blue text-nav text-white leading-none tracking-wide"> <span class="flex-none">Book a demo</span> <img class="lazyload absolute -top-2 right-2 w-4 scale-110" src="https://www.eclecticiq.com/hubfs/raw_assets/pubโ€ฆ
MS10failthe page's first heading is not its top-level heading, so the structure starts part way down; the 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 page's first heading is not its top-level heading, so the structure starts part way down; 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)
H3 Products level jumped
H3 Use Cases
H3 Partners
H3 Resources
H3 Company
H1 Elevate your security with seamless integrations
H4 (no text) level jumped
H3 (no text)
MS13warning2 of 2 iframes untitled
What we check
Each embedded panel on the page carries a title saying what it contains.
What good looks like
Each embedded panel carries a title saying what it contains.
Why it matters
The embedded region stays unnamed, so what it holds is left unstated in the page around it.
What we found on this page
2 of 2 iframes untitled
The evidence, taken from the page as served
The iframes with no title attribute, as served
src=https://www.googletagmanager.com/ns.html?id=GTM-MC7MVC
<iframe src="https://www.googletagmanager.com/ns.html?id=GTM-MC7MVC" height="0" width="0" style="display:none;visibility:hidden"/>
src=https://www.googletagmanager.com/ns.html?id=GTM-MC7MVC
<iframe src="https://www.googletagmanager.com/ns.html?id=GTM-MC7MVC" height="0" width="0" style="display:none;visibility:hidden"/>
https://www.eclecticiq.com/channel-partners?hsLang=en 51.0% Likely 10 out of 41
CheckResultEvidence
CT31warningthe page carries no description of itself in its head
What we check
The page provides a meta description, the short summary offered alongside its title.
What good looks like
The page provides a meta description.
Why it matters
Absent, the page gives up its one documented summary field, though Google rewrites these freely anyway.
What we found on this page
the page carries no description of itself in its head
The evidence, taken from the page as served
The head of this page, as served

The head of the page was read for a description tag.

<head> <meta charset="utf-8"/> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, viewport-fit=cover"/> <meta name="referrer" content="origin-when-cross-origin"/> <title>Channel Partners</title> <meta name="description" content=""/> <meta property="og:image" content="https://www.eclecticiq.com/hubfs/raw_assets/public/rebrand-2024/assets/img/og-eclecticiq.png"/> <script>loadjs=function(){var l=function(){},c={},f={},u={};function s(e,n){if(e){var t=u[e];if(f[e]=n,t)for(;t.length;)t[0](e,n),t.splice(0,1)}}function o(e,n){e.call&amp;&amp;(e={success:e}),n.length?(e.error||l)(n):(e.success||l)(e)}function h(t,r,i,c){var s,o,e=document,n=i.async,f=(i.numRetries||0)+1,u=i.before||l,a=t.replace(/^(css|img)!/,"");c=c||0,/(^css!|\.css$)/.test(t)?(s=!0,(o=e.createElement("link")).rel="stylesheet",o.href=a):/(^img!|\.(png|gif|jpg|svg)$)/.test(t)?(o=e.createElement("img")).src=a:((o=e.createElement("script")).src=t,o.async=void 0===n||n),!(o.onload=o.onerror=o.onbeforeload=function(e){var n=e.type[0];if(s&amp;&amp;"hideFocus"in o)try{o.sheet.cssText.length||(n="e")}catch(e){n="e"}if("e"==n&amp;&amp;(c+=1)&lt;f)return h(t,r,i,c);r(t,n,e.deโ€ฆ
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)
H3 Products
H3 Use Cases
H3 Partners
H3 Resources
H3 Company
H1 Grow your business with industry-leading cybersecurity solutions
H4 (no text) level jumped
H3 (no text)
CT16warningthe page carries no structured data block stating what it is (not required; a hygiene signal)
What we check
The page carries structured data, the machine-readable summary of what it describes.
What good looks like
The page carries structured data summarising what it describes.
Why it matters
Vendors document this as optional rather than required, so its absence is a small forfeit and no more.
What we found on this page
the page carries no structured data block stating what it is (not required; a hygiene signal)
The evidence, taken from the page as served
The head of this page, as served

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

<head> <meta charset="utf-8"/> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, viewport-fit=cover"/> <meta name="referrer" content="origin-when-cross-origin"/> <title>Channel Partners</title> <meta name="description" content=""/> <meta property="og:image" content="https://www.eclecticiq.com/hubfs/raw_assets/public/rebrand-2024/assets/img/og-eclecticiq.png"/> <script>loadjs=function(){var l=function(){},c={},f={},u={};function s(e,n){if(e){var t=u[e];if(f[e]=n,t)for(;t.length;)t[0](e,n),t.splice(0,1)}}function o(e,n){e.call&amp;&amp;(e={success:e}),n.length?(e.error||l)(n):(e.success||l)(e)}function h(t,r,i,c){var s,o,e=document,n=i.async,f=(i.numRetries||0)+1,u=i.before||l,a=t.replace(/^(css|img)!/,"");c=c||0,/(^css!|\.css$)/.test(t)?(s=!0,(o=e.createElement("link")).rel="stylesheet",o.href=a):/(^img!|\.(png|gif|jpg|svg)$)/.test(t)?(o=e.createElement("img")).src=a:((o=e.createElement("script")).src=t,o.async=void 0===n||n),!(o.onload=o.onerror=o.onbeforeload=function(e){var n=e.type[0];if(s&amp;&amp;"hideFocus"in o)try{o.sheet.cssText.length||(n="e")}catch(e){n="e"}if("e"==n&amp;&amp;(c+=1)&lt;f)return h(t,r,i,c);r(t,n,e.deโ€ฆ
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 name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, viewport-fit=cover"/> <meta name="referrer" content="origin-when-cross-origin"/> <title>Channel Partners</title> <meta name="description" content=""/> <meta property="og:image" content="https://www.eclecticiq.com/hubfs/raw_assets/public/rebrand-2024/assets/img/og-eclecticiq.png"/> <script>loadjs=function(){var l=function(){},c={},f={},u={};function s(e,n){if(e){var t=u[e];if(f[e]=n,t)for(;t.length;)t[0](e,n),t.splice(0,1)}}function o(e,n){e.call&amp;&amp;(e={success:e}),n.length?(e.error||l)(n):(e.success||l)(e)}function h(t,r,i,c){var s,o,e=document,n=i.async,f=(i.numRetries||0)+1,u=i.before||l,a=t.replace(/^(css|img)!/,"");c=c||0,/(^css!|\.css$)/.test(t)?(s=!0,(o=e.createElement("link")).rel="stylesheet",o.href=a):/(^img!|\.(png|gif|jpg|svg)$)/.test(t)?(o=e.createElement("img")).src=a:((o=e.createElement("script")).src=t,o.async=void 0===n||n),!(o.onload=o.onerror=o.onbeforeload=function(e){var n=e.type[0];if(s&amp;&amp;"hideFocus"in o)try{o.sheet.cssText.length||(n="e")}catch(e){n="e"}if("e"==n&amp;&amp;(c+=1)&lt;f)return h(t,r,i,c);r(t,n,e.deโ€ฆ
CT35warningthe copyright line at the foot of this page states 2024, 2 years behind the year this assessment ran, which reads as a page left unattended and is the usual sign of a template copied from elsewhere
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 copyright line at the foot of this page states 2024, 2 years behind the year this assessment ran, which reads as a page left unattended and is the usual sign of a template copied from elsewhere
The evidence, taken from the page as served
The copyright line as served, and the year it claims
Page ยท opens in a new tabFoundThe text, as served, around the word
www.eclecticiq.com/channel-partners?hsLang=en…ยฉ 2024…
MS01fail1 of 1 boxes in the page's forms carry no name saying what each is for, so which answer belongs in which box rests on layout alone
What we check
Each box, dropdown and text area in a form carries a name saying what it is for.
What good looks like
Each field in a form carries a name saying what it is for.
Why it matters
Unnamed fields leave the tie between a question and its box resting on layout, which shifts as the page reflows.
What we found on this page
1 of 1 boxes in the page's forms carry no name saying what each is for, so which answer belongs in which box rests on layout alone
The evidence, taken from the page as served
The form boxes that carry no name, as served
name=(none)
<input class="!border-black/10 shadow-inner" type="search" placeholder="Search partners" x-model="search" @keydown="$scroll('#overview', { offset: 32 })"/>
MS06warning2 of 20 images lack an alt attribute (0 inside links = unnamed controls); alt="" on decorative images is correct and not penalised
What we check
Images published with no alt text at all, and whether any of those images are themselves links.
What good looks like
Each informative image carries alt text describing it.
Why it matters
The image says nothing in text, and where it is a link that link is left with no name of its own.
What we found on this page
2 of 20 images lack an alt attribute (0 inside links = unnamed controls); alt="" on decorative images is correct and not penalised
The evidence, taken from the page as served
The images with no alt attribute, as served (with the file each points at)
src=(no src)
<img :src="partner.logo" :alt="partner.name" class="w-full h-full object-contain"/>
src=(no src)
<img :src="partner.logo" :alt="partner.name" class="w-full h-full object-contain object-left"/>
MS08fail1 link wording(s) are used for more than one destination, so the same words point at different pages: โ€œbook a demoโ€; 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: โ€œbook a demoโ€; 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
"Book a demo"
<a href="https://www.eclecticiq.com/book-a-demo?hsLang=en" target="_blank" class="relative group inline-flex items-center h-12 px-8 rounded-full font-bold bg-blue text-nav text-white leading-none tracking-wide hover:pr-12 transition-all duration-200"> <span class="flex-none">Book a demo</span> <img class="lazyload absoโ€ฆ
"Book a demo"
<a href="" class="relative flex xs:inline-flex justify-center items-center h-12 px-8 rounded-full font-bold bg-blue text-nav text-white leading-none tracking-wide"> <span class="flex-none">Book a demo</span> <img class="lazyload absolute -top-2 right-2 w-4 scale-110" src="https://www.eclecticiq.com/hubfs/raw_assets/pubโ€ฆ
MS10failthe page's first heading is not its top-level heading, so the structure starts part way down; the 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 page's first heading is not its top-level heading, so the structure starts part way down; 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)
H3 Products level jumped
H3 Use Cases
H3 Partners
H3 Resources
H3 Company
H1 Grow your business with industry-leading cybersecurity solutions
H4 (no text) level jumped
H3 (no text)
MS13warning2 of 2 iframes untitled
What we check
Each embedded panel on the page carries a title saying what it contains.
What good looks like
Each embedded panel carries a title saying what it contains.
Why it matters
The embedded region stays unnamed, so what it holds is left unstated in the page around it.
What we found on this page
2 of 2 iframes untitled
The evidence, taken from the page as served
The iframes with no title attribute, as served
src=https://www.googletagmanager.com/ns.html?id=GTM-MC7MVC
<iframe src="https://www.googletagmanager.com/ns.html?id=GTM-MC7MVC" height="0" width="0" style="display:none;visibility:hidden"/>
src=https://www.googletagmanager.com/ns.html?id=GTM-MC7MVC
<iframe src="https://www.googletagmanager.com/ns.html?id=GTM-MC7MVC" height="0" width="0" style="display:none;visibility:hidden"/>
https://www.eclecticiq.com/about-us?hsLang=en 53.8% Likely 8 out of 42
CheckResultEvidence
CT06warningtitle length 8 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 8 chars
The evidence, taken from the page as served
The page title, as served
8 characters
<title>About us</title>
CT16warningthe page carries no structured data block stating what it is (not required; a hygiene signal)
What we check
The page carries structured data, the machine-readable summary of what it describes.
What good looks like
The page carries structured data summarising what it describes.
Why it matters
Vendors document this as optional rather than required, so its absence is a small forfeit and no more.
What we found on this page
the page carries no structured data block stating what it is (not required; a hygiene signal)
The evidence, taken from the page as served
The head of this page, as served

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

<head> <meta charset="utf-8"/> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, viewport-fit=cover"/> <meta name="referrer" content="origin-when-cross-origin"/> <title>About us</title> <meta name="description" content="EclecticIQ is ISO-certified. Headquartered in Amsterdam, and have offices in the UK, US and Singapore. "/> <meta property="og:image" content="https://www.eclecticiq.com/hubfs/raw_assets/public/rebrand-2024/assets/img/og-eclecticiq.png"/> <script>loadjs=function(){var l=function(){},c={},f={},u={};function s(e,n){if(e){var t=u[e];if(f[e]=n,t)for(;t.length;)t[0](e,n),t.splice(0,1)}}function o(e,n){e.call&amp;&amp;(e={success:e}),n.length?(e.error||l)(n):(e.success||l)(e)}function h(t,r,i,c){var s,o,e=document,n=i.async,f=(i.numRetries||0)+1,u=i.before||l,a=t.replace(/^(css|img)!/,"");c=c||0,/(^css!|\.css$)/.test(t)?(s=!0,(o=e.createElement("link")).rel="stylesheet",o.href=a):/(^img!|\.(png|gif|jpg|svg)$)/.test(t)?(o=e.createElement("img")).src=a:((o=e.createElement("script")).src=t,o.async=void 0===n||n),!(o.onload=o.onerror=o.onbeforeload=function(e){var n=e.type[0];if(s&amp;&amp;"hideFocus"in o)try{o.sheet.cssโ€ฆ
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 name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, viewport-fit=cover"/> <meta name="referrer" content="origin-when-cross-origin"/> <title>About us</title> <meta name="description" content="EclecticIQ is ISO-certified. Headquartered in Amsterdam, and have offices in the UK, US and Singapore. "/> <meta property="og:image" content="https://www.eclecticiq.com/hubfs/raw_assets/public/rebrand-2024/assets/img/og-eclecticiq.png"/> <script>loadjs=function(){var l=function(){},c={},f={},u={};function s(e,n){if(e){var t=u[e];if(f[e]=n,t)for(;t.length;)t[0](e,n),t.splice(0,1)}}function o(e,n){e.call&amp;&amp;(e={success:e}),n.length?(e.error||l)(n):(e.success||l)(e)}function h(t,r,i,c){var s,o,e=document,n=i.async,f=(i.numRetries||0)+1,u=i.before||l,a=t.replace(/^(css|img)!/,"");c=c||0,/(^css!|\.css$)/.test(t)?(s=!0,(o=e.createElement("link")).rel="stylesheet",o.href=a):/(^img!|\.(png|gif|jpg|svg)$)/.test(t)?(o=e.createElement("img")).src=a:((o=e.createElement("script")).src=t,o.async=void 0===n||n),!(o.onload=o.onerror=o.onbeforeload=function(e){var n=e.type[0];if(s&amp;&amp;"hideFocus"in o)try{o.sheet.cssโ€ฆ
CT35warningthe copyright line at the foot of this page states 2024, 2 years behind the year this assessment ran, which reads as a page left unattended and is the usual sign of a template copied from elsewhere
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 copyright line at the foot of this page states 2024, 2 years behind the year this assessment ran, which reads as a page left unattended and is the usual sign of a template copied from elsewhere
The evidence, taken from the page as served
The copyright line as served, and the year it claims
Page ยท opens in a new tabFoundThe text, as served, around the word
www.eclecticiq.com/about-us?hsLang=en…ยฉ 2024…
AJ05warningno site-search control detected on this page
What we check
Whether a search box for the site is present in the page as it is served.
What good looks like
A search box is present in the served markup, so the site's own content can be queried directly.
Why it matters
With no search box on the page, its links are the only route from here into the rest of the site.
What we found on this page
no site-search control detected on this page
The evidence, taken from the page as served
The head of this page, as served

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

<head> <meta charset="utf-8"/> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, viewport-fit=cover"/> <meta name="referrer" content="origin-when-cross-origin"/> <title>About us</title> <meta name="description" content="EclecticIQ is ISO-certified. Headquartered in Amsterdam, and have offices in the UK, US and Singapore. "/> <meta property="og:image" content="https://www.eclecticiq.com/hubfs/raw_assets/public/rebrand-2024/assets/img/og-eclecticiq.png"/> <script>loadjs=function(){var l=function(){},c={},f={},u={};function s(e,n){if(e){var t=u[e];if(f[e]=n,t)for(;t.length;)t[0](e,n),t.splice(0,1)}}function o(e,n){e.call&amp;&amp;(e={success:e}),n.length?(e.error||l)(n):(e.success||l)(e)}function h(t,r,i,c){var s,o,e=document,n=i.async,f=(i.numRetries||0)+1,u=i.before||l,a=t.replace(/^(css|img)!/,"");c=c||0,/(^css!|\.css$)/.test(t)?(s=!0,(o=e.createElement("link")).rel="stylesheet",o.href=a):/(^img!|\.(png|gif|jpg|svg)$)/.test(t)?(o=e.createElement("img")).src=a:((o=e.createElement("script")).src=t,o.async=void 0===n||n),!(o.onload=o.onerror=o.onbeforeload=function(e){var n=e.type[0];if(s&amp;&amp;"hideFocus"in o)try{o.sheet.cssโ€ฆ
MS08fail1 link wording(s) are used for more than one destination, so the same words point at different pages: โ€œbook a demoโ€; 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: โ€œbook a demoโ€; 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
"Book a demo"
<a href="https://www.eclecticiq.com/book-a-demo?hsLang=en" target="_blank" class="relative group inline-flex items-center h-12 px-8 rounded-full font-bold bg-blue text-nav text-white leading-none tracking-wide hover:pr-12 transition-all duration-200"> <span class="flex-none">Book a demo</span> <img class="lazyload absoโ€ฆ
"Book a demo"
<a href="" class="relative flex xs:inline-flex justify-center items-center h-12 px-8 rounded-full font-bold bg-blue text-nav text-white leading-none tracking-wide"> <span class="flex-none">Book a demo</span> <img class="lazyload absolute -top-2 right-2 w-4 scale-110" src="https://www.eclecticiq.com/hubfs/raw_assets/pubโ€ฆ
MS10failthe page's first heading is not its top-level heading, so the structure starts part way down
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 page's first heading is not its top-level heading, so the structure starts part way down
The evidence, taken from the page as served
The page's heading outline, in document order (a jump in level is marked)
H3 Products level jumped
H3 Use Cases
H3 Partners
H3 Resources
H3 Company
H1 About us
H2 Our values
H3 Be bold
H3 Be collaborative
H3 Be curious
H3 Be accountable
H2 EclecticIQ is certified to ISO standards
H2 Our offices
H3 Headquarters
H3 US Office
H3 UK Office
H3 Singapore Office
H3 (no text)
MS13warning2 of 2 iframes untitled
What we check
Each embedded panel on the page carries a title saying what it contains.
What good looks like
Each embedded panel carries a title saying what it contains.
Why it matters
The embedded region stays unnamed, so what it holds is left unstated in the page around it.
What we found on this page
2 of 2 iframes untitled
The evidence, taken from the page as served
The iframes with no title attribute, as served
src=https://www.googletagmanager.com/ns.html?id=GTM-MC7MVC
<iframe src="https://www.googletagmanager.com/ns.html?id=GTM-MC7MVC" height="0" width="0" style="display:none;visibility:hidden"/>
src=https://www.googletagmanager.com/ns.html?id=GTM-MC7MVC
<iframe src="https://www.googletagmanager.com/ns.html?id=GTM-MC7MVC" height="0" width="0" style="display:none;visibility:hidden"/>
https://www.eclecticiq.com/leadership?hsLang=en 8.6% Extremely likely 12 out of 43
CheckResultEvidence
CT32warninglength 41
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 41
The evidence, taken from the page as served
The page's description, as served
41 characters
<meta name="description" content="EclecticIQ leadership and advisory team. "/>
CT16warningthe page carries no structured data block stating what it is (not required; a hygiene signal)
What we check
The page carries structured data, the machine-readable summary of what it describes.
What good looks like
The page carries structured data summarising what it describes.
Why it matters
Vendors document this as optional rather than required, so its absence is a small forfeit and no more.
What we found on this page
the page carries no structured data block stating what it is (not required; a hygiene signal)
The evidence, taken from the page as served
The head of this page, as served

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

<head> <meta charset="utf-8"/> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, viewport-fit=cover"/> <meta name="referrer" content="origin-when-cross-origin"/> <title>Leadership</title> <meta name="description" content="EclecticIQ leadership and advisory team. "/> <meta property="og:image" content="https://www.eclecticiq.com/hubfs/raw_assets/public/rebrand-2024/assets/img/og-eclecticiq.png"/> <script>loadjs=function(){var l=function(){},c={},f={},u={};function s(e,n){if(e){var t=u[e];if(f[e]=n,t)for(;t.length;)t[0](e,n),t.splice(0,1)}}function o(e,n){e.call&amp;&amp;(e={success:e}),n.length?(e.error||l)(n):(e.success||l)(e)}function h(t,r,i,c){var s,o,e=document,n=i.async,f=(i.numRetries||0)+1,u=i.before||l,a=t.replace(/^(css|img)!/,"");c=c||0,/(^css!|\.css$)/.test(t)?(s=!0,(o=e.createElement("link")).rel="stylesheet",o.href=a):/(^img!|\.(png|gif|jpg|svg)$)/.test(t)?(o=e.createElement("img")).src=a:((o=e.createElement("script")).src=t,o.async=void 0===n||n),!(o.onload=o.onerror=o.onbeforeload=function(e){var n=e.type[0];if(s&amp;&amp;"hideFocus"in o)try{o.sheet.cssText.length||(n="e")}catch(e){n="e"}if("e"==n&amp;&amp;(c+=1โ€ฆ
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 name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, viewport-fit=cover"/> <meta name="referrer" content="origin-when-cross-origin"/> <title>Leadership</title> <meta name="description" content="EclecticIQ leadership and advisory team. "/> <meta property="og:image" content="https://www.eclecticiq.com/hubfs/raw_assets/public/rebrand-2024/assets/img/og-eclecticiq.png"/> <script>loadjs=function(){var l=function(){},c={},f={},u={};function s(e,n){if(e){var t=u[e];if(f[e]=n,t)for(;t.length;)t[0](e,n),t.splice(0,1)}}function o(e,n){e.call&amp;&amp;(e={success:e}),n.length?(e.error||l)(n):(e.success||l)(e)}function h(t,r,i,c){var s,o,e=document,n=i.async,f=(i.numRetries||0)+1,u=i.before||l,a=t.replace(/^(css|img)!/,"");c=c||0,/(^css!|\.css$)/.test(t)?(s=!0,(o=e.createElement("link")).rel="stylesheet",o.href=a):/(^img!|\.(png|gif|jpg|svg)$)/.test(t)?(o=e.createElement("img")).src=a:((o=e.createElement("script")).src=t,o.async=void 0===n||n),!(o.onload=o.onerror=o.onbeforeload=function(e){var n=e.type[0];if(s&amp;&amp;"hideFocus"in o)try{o.sheet.cssText.length||(n="e")}catch(e){n="e"}if("e"==n&amp;&amp;(c+=1โ€ฆ
CT35warningthe copyright line at the foot of this page states 2024, 2 years behind the year this assessment ran, which reads as a page left unattended and is the usual sign of a template copied from elsewhere
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 copyright line at the foot of this page states 2024, 2 years behind the year this assessment ran, which reads as a page left unattended and is the usual sign of a template copied from elsewhere
The evidence, taken from the page as served
The copyright line as served, and the year it claims
Page ยท opens in a new tabFoundThe text, as served, around the word
www.eclecticiq.com/leadership?hsLang=en…ยฉ 2024…
CT24warningthe page's own content runs to 307 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 307 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 content307 characters
All the text on the page1739 characters
The point we measure against400 characters
CT13warningmain content is 17% 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 17% 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 content307 characters
All the text on the page1739 characters
The page's own share of it17%
The point we measure against25%
AJ05warningno site-search control detected on this page
What we check
Whether a search box for the site is present in the page as it is served.
What good looks like
A search box is present in the served markup, so the site's own content can be queried directly.
Why it matters
With no search box on the page, its links are the only route from here into the rest of the site.
What we found on this page
no site-search control detected on this page
The evidence, taken from the page as served
The head of this page, as served

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

<head> <meta charset="utf-8"/> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, viewport-fit=cover"/> <meta name="referrer" content="origin-when-cross-origin"/> <title>Leadership</title> <meta name="description" content="EclecticIQ leadership and advisory team. "/> <meta property="og:image" content="https://www.eclecticiq.com/hubfs/raw_assets/public/rebrand-2024/assets/img/og-eclecticiq.png"/> <script>loadjs=function(){var l=function(){},c={},f={},u={};function s(e,n){if(e){var t=u[e];if(f[e]=n,t)for(;t.length;)t[0](e,n),t.splice(0,1)}}function o(e,n){e.call&amp;&amp;(e={success:e}),n.length?(e.error||l)(n):(e.success||l)(e)}function h(t,r,i,c){var s,o,e=document,n=i.async,f=(i.numRetries||0)+1,u=i.before||l,a=t.replace(/^(css|img)!/,"");c=c||0,/(^css!|\.css$)/.test(t)?(s=!0,(o=e.createElement("link")).rel="stylesheet",o.href=a):/(^img!|\.(png|gif|jpg|svg)$)/.test(t)?(o=e.createElement("img")).src=a:((o=e.createElement("script")).src=t,o.async=void 0===n||n),!(o.onload=o.onerror=o.onbeforeload=function(e){var n=e.type[0];if(s&amp;&amp;"hideFocus"in o)try{o.sheet.cssText.length||(n="e")}catch(e){n="e"}if("e"==n&amp;&amp;(c+=1โ€ฆ
MS08fail2 link wording(s) are used for more than one destination, so the same words point at different pages: โ€œbook a demoโ€, โ€œlinkedinโ€; 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: โ€œbook a demoโ€, โ€œlinkedinโ€; 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
"Book a demo"
<a href="https://www.eclecticiq.com/book-a-demo?hsLang=en" target="_blank" class="relative group inline-flex items-center h-12 px-8 rounded-full font-bold bg-blue text-nav text-white leading-none tracking-wide hover:pr-12 transition-all duration-200"> <span class="flex-none">Book a demo</span> <img class="lazyload absoโ€ฆ
"LinkedIn"
<a href="https://www.linkedin.com/in/jamesoconnor314159/" class="group inline-flex items-center gap-2 lg:gap-3 max-w-full font-bold text-sm xl:text-base leading-tight tracking-wide font-semibold text-white px-10 xl:px-12 mt-6 xl:mt-12 leading-tight"> <span class="sm:flex-none truncate">LinkedIn</span> <svg xmlns="http:โ€ฆ
"LinkedIn"
<a href="https://www.linkedin.com/search/results/all/?fetchDeterministicClustersOnly=true&amp;heroEntityKey=urn%3Ali%3Afsd_profile%3AACoAAAVuC7oBiGiXuxa9O_0NzRWYe74CyQA7PvM&amp;keywords=steve%20armstrong&amp;origin=RICH_QUERY_SUGGESTION&amp;position=0&amp;searchId=89704a81-177e-4e5a-a279-d4d3920dc6bc&amp;sid=4D%3B&amp;โ€ฆ
"LinkedIn"
<a href="https://www.linkedin.com/in/elena-kalinnikova-7155391/" class="group inline-flex items-center gap-2 lg:gap-3 max-w-full font-bold text-sm xl:text-base leading-tight tracking-wide font-semibold text-white px-10 xl:px-12 mt-6 xl:mt-12 leading-tight"> <span class="sm:flex-none truncate">LinkedIn</span> <svg xmlnsโ€ฆ
"LinkedIn"
<a href="https://www.linkedin.com/in/sara-mcmunn-54283841/" class="group inline-flex items-center gap-2 lg:gap-3 max-w-full font-bold text-sm xl:text-base leading-tight tracking-wide font-semibold text-blue-600 px-10 xl:px-12 mt-6 xl:mt-12 leading-tight"> <span class="sm:flex-none truncate">LinkedIn</span> <svg xmlns="โ€ฆ
"LinkedIn"
<a href="https://www.linkedin.com/in/maartenderks1/" class="group inline-flex items-center gap-2 lg:gap-3 max-w-full font-bold text-sm xl:text-base leading-tight tracking-wide font-semibold text-blue-600 px-10 xl:px-12 mt-6 xl:mt-12 leading-tight"> <span class="sm:flex-none truncate">LinkedIn</span> <svg xmlns="http://โ€ฆ
"LinkedIn"
<a href="https://www.linkedin.com/in/francois-lavaste-bab913/" class="group inline-flex items-center gap-2 lg:gap-3 max-w-full font-bold text-sm xl:text-base leading-tight tracking-wide font-semibold text-blue-600 px-10 xl:px-12 mt-6 xl:mt-12 leading-tight"> <span class="sm:flex-none truncate">LinkedIn</span> <svg xmlnโ€ฆ
"LinkedIn"
<a href="https://www.linkedin.com/in/franklansink/" class="group inline-flex items-center gap-2 lg:gap-3 max-w-full font-bold text-sm xl:text-base leading-tight tracking-wide font-semibold text-blue-600 px-10 xl:px-12 mt-6 xl:mt-12 leading-tight"> <span class="sm:flex-none truncate">LinkedIn</span> <svg xmlns="http://wโ€ฆ
"Book a demo"
<a href="" class="relative flex xs:inline-flex justify-center items-center h-12 px-8 rounded-full font-bold bg-blue text-nav text-white leading-none tracking-wide"> <span class="flex-none">Book a demo</span> <img class="lazyload absolute -top-2 right-2 w-4 scale-110" src="https://www.eclecticiq.com/hubfs/raw_assets/pubโ€ฆ
MS10failthe page's first heading is not its top-level heading, so the structure starts part way down
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 page's first heading is not its top-level heading, so the structure starts part way down
The evidence, taken from the page as served
The page's heading outline, in document order (a jump in level is marked)
H3 Products level jumped
H3 Use Cases
H3 Partners
H3 Resources
H3 Company
H1 Meet our Leadership Team and Supervisory Board
H2 Leadership Team
H3 James O'Connor
H3 Steve Armstrong
H3 Elena Kalinnikova
H2 Supervisory Board
H3 Sara McMunn
H3 Maarten Derks
H3 Franรงois Lavaste
H3 Frank Lansink
H3 (no text)
MS13warning2 of 2 iframes untitled
What we check
Each embedded panel on the page carries a title saying what it contains.
What good looks like
Each embedded panel carries a title saying what it contains.
Why it matters
The embedded region stays unnamed, so what it holds is left unstated in the page around it.
What we found on this page
2 of 2 iframes untitled
The evidence, taken from the page as served
The iframes with no title attribute, as served
src=https://www.googletagmanager.com/ns.html?id=GTM-MC7MVC
<iframe src="https://www.googletagmanager.com/ns.html?id=GTM-MC7MVC" height="0" width="0" style="display:none;visibility:hidden"/>
src=https://www.googletagmanager.com/ns.html?id=GTM-MC7MVC
<iframe src="https://www.googletagmanager.com/ns.html?id=GTM-MC7MVC" height="0" width="0" style="display:none;visibility:hidden"/>
DS28failSEVERE: 60% of the links to sources on other sites did not open when they were checked. 3 point at a page that no longer exists. That is 3 of the 5 checked, which stand for the 11 links to other sites on this page
What we check
For a single page, the share of its links to OTHER sites, sampled, that lead nowhere. The site's own links are assessed separately.
What good looks like
The page's references to other sites open for any reader. Where one refuses or has gone, the page carries the fact itself, shows the reference as plain text rather than as a link, or points to a source that answers.
Why it matters
The outside sources this page offers as support did not answer when they were asked for, so what the page claims is left resting on material that does not come back. In a regulated setting, where a link is carrying a figure or a required statement, that is the difference between a claim that is evidenced and one that is merely asserted.
What we found on this page
SEVERE: 60% of the links to sources on other sites did not open when they were checked. 3 point at a page that no longer exists. That is 3 of the 5 checked, which stand for the 11 links to other sites on this page
The evidence, taken from the page as served
The external links checked on this page, with the status each returned

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

Link ยท opens in a new tabStatusResult
eclecticiq.bamboohr.com/careers200Reachable
www.linkedin.com/in/jamesoconnor314159999Dead (404/410)
www.linkedin.com/search/results/all/?fetchDeterministicClustersOnly=true&heroEntityKey=urn%3Ali%3Afsd_profile%3AACoAAAVuC7oBiGiXuxa9O_0NzRWYe74CyQA7PvM&keywords=steve%20armstrong&origin=RICH_QUERY_SUGGESTION&position=0&searchId=89704a81-177e-4e5a-a279-d4d3920dc6bc&sid=4D%3B&spellCorrectionEnabled=false200Reachable
www.linkedin.com/in/elena-kalinnikova-7155391999Dead (404/410)
www.linkedin.com/in/sara-mcmunn-54283841999Dead (404/410)
CT34failthe page's own words are thin: 266 of its 300 words are shared navigation and footer, so it reads as 88% 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: 266 of its 300 words are shared navigation and footer, so it reads as 88% identical to another page, which a machine can then take as a duplicate and pass over, missing the little content that is its own; the matching page is named in the view
The evidence, taken from the page as served
This page's own words, lost in shared navigation and footer
Page ยท opens in a new tabOwn wordsChromeReads as identical toShared
www.eclecticiq.com/leadership?hsLang=en34 of 30089%www.eclecticiq.com/impressum?hsLang=en88%
https://www.eclecticiq.com/news-awards?hsLang=en 51.0% Likely 11 out of 42
CheckResultEvidence
CT31warningthe page carries no description of itself in its head
What we check
The page provides a meta description, the short summary offered alongside its title.
What good looks like
The page provides a meta description.
Why it matters
Absent, the page gives up its one documented summary field, though Google rewrites these freely anyway.
What we found on this page
the page carries no description of itself in its head
The evidence, taken from the page as served
The head of this page, as served

The head of the page was read for a description tag.

<head> <meta charset="utf-8"/> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, viewport-fit=cover"/> <meta name="referrer" content="origin-when-cross-origin"/> <title>News &amp; Awards</title> <meta name="description" content=""/> <meta property="og:image" content="https://www.eclecticiq.com/hubfs/raw_assets/public/rebrand-2024/assets/img/og-eclecticiq.png"/> <script>loadjs=function(){var l=function(){},c={},f={},u={};function s(e,n){if(e){var t=u[e];if(f[e]=n,t)for(;t.length;)t[0](e,n),t.splice(0,1)}}function o(e,n){e.call&amp;&amp;(e={success:e}),n.length?(e.error||l)(n):(e.success||l)(e)}function h(t,r,i,c){var s,o,e=document,n=i.async,f=(i.numRetries||0)+1,u=i.before||l,a=t.replace(/^(css|img)!/,"");c=c||0,/(^css!|\.css$)/.test(t)?(s=!0,(o=e.createElement("link")).rel="stylesheet",o.href=a):/(^img!|\.(png|gif|jpg|svg)$)/.test(t)?(o=e.createElement("img")).src=a:((o=e.createElement("script")).src=t,o.async=void 0===n||n),!(o.onload=o.onerror=o.onbeforeload=function(e){var n=e.type[0];if(s&amp;&amp;"hideFocus"in o)try{o.sheet.cssText.length||(n="e")}catch(e){n="e"}if("e"==n&amp;&amp;(c+=1)&lt;f)return h(t,r,i,c);r(t,n,e.dโ€ฆ
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)
H3 Products
H3 Use Cases
H3 Partners
H3 Resources
H3 Company
H1 News & Awards
H3 New Black Friday Warningโ€”Do Not Shop On These Websites level jumped
H3 'SilkSpecter' hacking operation uses sophisticated ring of 4,700 spoofed storefr
H3 Watch out for fake online stores as Black Friday approaches
H3 Why Black Friday Is A Hotbed For AI Scamsโ€”And How To Spot Them
H3 Fake Discount Sites Exploit Black Friday to Hijack Shopper Information
H3 Fraud network uses 4,700 fake shopping sites to steal credit cards
H3 โ€˜SilkSpecterโ€™ Campaign Uses 4,000 Fake Domains Against Black Friday Shoppers
H3 Socially Savvy Scattered Spider Traps Cloud Admins in Web
H3 New Developer-as-a-Service on Hacking Forums Fuels Phishing and Cyberattacks
H3 Oyster Backdoor Spreading via Trojanized Popular Software Downloads
H3 'ONNX' MFA Bypass Targets Microsoft 365 Accounts
H3 ONNX phishing service targets Microsoft 365 accounts at financial firms
H3 Cyber espionage strikes Indiaโ€™s defence and energy sectors
H3 Massive Phishing Campaign Strikes Latin America: Venom RAT Targeting Multiple Se
H3 Cyberespionage Campaign Targets Government, Energy Entities in India
H3 Episode March 27, 2024
H3 Hackers Hit Indian Defense, Energy Sectors with Malware Posing as Air Force Invi
H3 India's government, energy sector breached in cyber-espionage campaign
H3 Chinese Hackers Attacking Semiconductor Industries Using Cobalt Strike Beacon
H3 Chinese Hackers Target Semiconductor Firms in East Asia with Cobalt Strike
H3 Chinese Hackers Target Semiconductor Firms in East Asia with Cobalt Strike
H3 Podcast Episode 43- Cody Barrow - Cybersecurity in the European Union Compared t
H3 Episode September 1, 2023
H3 Key Group Ransomware Foiled by New Decryptor
H3 Free Key Group ransomware decryptor helps victims recover data
H3 Good news for Key Group ransomware victims: Free decryptor out now
H3 PDF lures aimed at NATO countries contain a Russian clue
H3 Manually patch this Zimbra bug that's under attack
H3 The art of managing cyber risk
H3 Private equity 'presents cyber security risk' for asset managers
H3 [FIC 2023] : les gangs de ransomware sont-ils des entreprises comme les autres ?
H3 Cybersecurity misconceptions
H3 De toekomst van cybercrime
H3 LockBit crew cooks up half-baked Mac ransomware
H3 Dark Pink APT group linked to new KamiKakiBot attacks in Southeast Asia
H3 KamiKakaBot Malware Used in Latest Dark Pink APT Attacks on Southeast Asian Targ
H3 Logiciel malveillant KamiKakaBot utilisรฉ dans les derniรจres attaques APT rose fo
H3 DeFi Hack Recovers Stolen Funds; Blacklotus Bypasses Windows Secure Boot
H3 10 European defence tech startups to watch, according to investors
H3 PassW0rd
H3 2023 - Threat Intelligence Predictions
H3 NATO Innovation and Technology Issue #8
H3 Russian hackers targeting Dutch gas terminal: report
H3 'Russische hackers hebben het gemunt op Nederlandse gasinstallaties'
H3 Comprendre le fonctionnement des hackers pour une meilleure cyber sรฉcuritรฉ
H3 Collaboration is key to a stronger cyber resilience, says cybersecurity expert
H3 The Top of the Netherlands
H3 Soonicorn Club 2022: Top Tech Startups In Netherlands
H3 EclecticIQ, Protection Contre la Cybercriminalitรฉ
H3 Das Beste fรผr Daten? Sichere Kรคfighaltung!
H3 Van Huffelens overvolle agenda: van datacenters tot nepnieuws
H3 Six Innovative Cybersecurity Companies in the Netherlands
H3 The Other Scary Virus
H3 Delen van Dreigingsinformatie Als Interessante Business
H3 Article FD: Cyber Security Organisations Call for National Government to Take Co
H3 IT-beveiligers Pleiten voor Landelijke Regie in Strijd Tegen Cybercriminaliteit
H3 EU Invests Millions in Cybersecurity
H3 Europees Geld voor Expansie EclecticIQ
H3 Investment Plan for Europe Supports Development of Next-generation Cyber Securit
H3 Peeters biedt Dedonder Europees geld voor Belgische defensie aan
H3 EIB-geld Moet Wereldspeler Maken van Nederlands Cyberveiligheidsbedrijf Eclectic
H3 Biden: โ€œCyber breach of great consequenceโ€ may lead to โ€œreal shooting warโ€
H3 WeChat Suspends New User Registrations to Comply with Chinese laws
H3 IBM Contributes Kestrel Threat Hunting Tool to OASIS Open Cybersecurity Alliance
H3 SolarWinds Hackers Strike Again: Kremlin-backed Group Hits Microsoft Customers
H3 Risky Biz Soap Box: EclecticIQ's CEO Joep Gommers on Operationalising Threat Int
H3 EclecticIQ Platform Delivers Threat Intelligence, Hunting, and Response Capabili
H3 EclecticIQ platform: Intelligence at the Core
H3 ASM Tech spurts 5% after partnership with Netherlands-based EclecticIQ for new C
H3 Fake COVID contact tracers
H3 The evolution of ransomware threats in the energy sector
H3 CyberKnight, EclecticIQ Augment Threat Detection, Hunting And Response
H3 Z-CERT and EclecticIQ Cooperate to Bring Benefits of CTI to Dutch Healthcare Sec
H3 EclecticIQ - Samen investeren in een Europees cybersecurity ecosysteem
H3 EclecticIQ and PolyLogyx join forces to bring intelligence-led security products
H3 EclecticIQ Joins Forces with Endpoint Solution Provider PolyLogyx
H3 EclecticIQ: Building Next-Gen Intelligence-Powered Cybersecurity
H3 Typosquatting & duplication of pharmaceutical domain: Possibly used for phishing
H3 How diverse teams can help protect your business against cyber-attacks
H3 Hacking as a Service?
H3 EclecticIQโ€™s new browser extension helps analysts capture threat indicators auto
H3 EclecticIQ continues its global expansion, reaching significant milestones in 20
H3 Top Dutch startups to follow in 2020
H3 Kaspersky partners with EclecticIQ to empower businesses with first-hand threat-
H3 How will the UK tech sector be affected by Brexit?
H3 Data Privacy Day: Security industry highlights key issues
H3 Amsterdam Startups to Watch in 2020
H3 Going for gold: Security learnings for the Tokyo 2020 Olympics
H3 Threat Intelligence
H3 EclecticIQ hires Michel de Jong as Chief Operating Officer
H3 How fake news could ruin Britain's next election
H3 Cybersecurity giants join forces to combat cyberthreats under OASIS umbrella
H3 Threat intelligence and the role of automation in improving security
H3 Product Review - EclecticIQ Platform 2.4
H3 Maximizing the Use of Enterprise Cyber-Threat Intelligence Feeds
H3 Communication, communication, communication: the route to actionable cyber threa
H3 The path to actionable cyber threat intelligence
H3 Using OpSec to protect yourself at security industry events
H3 Avoiding cyber disaster
H3 Todayโ€™s cyber threat landscape and mitigating appropriately
H3 What's new in ransomware and how can businesses stay ahead of the threat?
H3 Disinformation effort targeted at EU Parliament Elections
H3 How security & intelligence can share the same language
H3 Free Boxing Streams are being hidden on the most popular video sites
H3 Understanding the modern ransomware landscape
H3 Cyber Threats: How to manage intelligence in a multi-risk environment
H3 Top 10 cybersecurity startups from Amsterdam that help you fight off hackers
H3 Lessons learned from Ukraine elections
H3 Spire Solutions and EclecticIQ ink Middle East partnership
H3 Psychological Warfare and Information Operations: The Real Threat to Western Dem
H3 Election Hacking
H3 German Politicians Personal Details Hacked
H3 Russia Or The Far-Right: Who Hacked German Politics?
H3 How not to get hacked in 2019
H3 Hackers leak details of German politicians
H3 Hackers leak details of German politicians
H3 5 Things We Know about the German Hack, from Porn to Mirrors
H3 Why We Should Focus on โ€˜How,โ€™ not โ€˜Who,โ€™ of Cyberattacks
H3 Spike in Brexit-themed phishing attacks expected once withdrawal agreement is fi
H3 Why is โ€˜Attributionโ€™ Still the Focus Following Cyber Attacks?
H3 EclecticIQ strengthens threat intelligence for infrastructures with new integrat
H3 UK foils more than 10 cyber attacks per week, says GCHQ
H3 EclecticIQ Platform 2.3 Brings Improved Collaboration and Data Management Featur
H3 EclecticIQ Platform 2.3 brings improved collaboration and data management featur
H3 Cyber security: Your boss doesn't care and that's not OK anymore
H3 European Threat Intelligence provider EclecticIQ Increases North American invest
H3 6 most talented online entrepreneurs in the Netherlands that deserve your attent
H3 The Vulnerability Disclosure Process Still Broken
H3 Batten down the ports: Linux networking bug SegmentSmack could remotely crash sy
H3 Inzicht in digitale dreigingen
H3 The digital โ€˜bank jobโ€™ โ€“ investigating the unprecedented rise in crypto threats
H3 Tour de France 2018 live stream sites that let cycling fans watch race online fo
H3 Adjusting to GDPR compliance challenges for threat intelligence analysts
H3 Typical 24: Joep Gommers, EclecticIQ
H3 EclecticIQ integrates with MITREโ€™s ATT&CK framework
H3 A Different Kind Of Heist: How Cryptocurrency Is Churning Profits For Criminals
H3 The evolution of the cyber threat landscape โ€“ whatโ€™s next?
H3 GDPRโ€™s Impact On Threat Intelligence Sharing
H3 Data Breach
H3 Ticketmaster security breach - the industry speaks
H3 World Cup streaming: Free live feeds online can endanger football fans who try t
H3 World Cup Russian hacking threat is real, security experts warn
H3 Why The North Korean Cyber Threat Shouldn't be Ignored
H3 Effectively Managing Mistrust for Optimal Cybersecurity
H3 Working with Competitors
H3 10 Dutch Startups to Watch in 2018
H3 10 amazing start-ups from Amsterdam to watch
H3 The World Cup in motion: the infrastructure behind the greatest show on earth
H3 Cybersecurity Managing Distrust: The Key To Cybersecurity
H3 Will Threat Intelligence Go Dark Under GDPR?
H3 The impact of GDPR on threat intelligence analysts
H3 The evolving threat landscape: nation state, third party attacks and cyber vanda
H3 Identifying can be a waste of time
H3 The great attribution debate: Why we should focus on HOW not WHO
H3 Going for gold in the Cyber Olympics: a look at cybersecurity in Pyeongchang
H3 Cyberattacks In An Evolving Landscape โ€“ Should Businesses Be Worried?
H3 ะะฒั‚ะพะผะฐั‚ะธะทะฐั†ะธั ะฟั€ะพั†ะตััะพะฒ ะบะธะฑะตั€ั€ะฐะทะฒะตะดะบะธ ะฝะฐ ะพัะฝะพะฒะต ั€ะตัˆะตะฝะธะน ะบะปะฐััะฐ Threat Intelligen
H3 The evolving threat landscape: nation state, third party attacks and cyber vanda
H3 How to protect against the evolving threat landscape
H3 Fortune Term Sheet
H3 14 miljoen voor Amsterdamse startup die bedrijven veilig houdt
H3 Amsterdam-based EclecticIQ secures โ‚ฌ14 million to further expand with its Cyber
H3 14 miljoen voor Amsterdamse startup die bedrijven veilig houdt
H3 Ben Verwaayen steekt miljoenen in Nederlandse beveiligings-start-up
H3 EclecticIQ launches Fusion Center Intelligence Essentials
H3 Cyber threat analysis training โ€“ why a robust platform is critical
H3 New infosec products of the weekโ€‹: October 6, 2017
H3 EclecticIQ baut deutsches Team aus
H3 The hottest startups in Amsterdam
H3 Drei Ebenen der IT-Sicherheit
H3 The UK's ยฃ1.9bn cyber-security spend โ€“ getting the priorities right
H3 Interview with Raymon van der Velde, VP Product & Co-founder EclecticIQ
H3 EclecticIQ partners with SenseCy to bring leading Cyber Threat Intelligence tech
H3 โ€œCyberdreigingsinformatie nieuw antwoord op cyberaanvallenโ€
H3 Minister-president Rutte brengt bezoekt aan The Hague Security Delta
H3 Plug Pulled on Soltra Edge Threat Info Sharing Platform
H3 NZITF deploys EclecticIQ to share cyber threat information
H3 WIRED Security 2016: Startup Stage
H3 Daar komen de whizzkids
H3 TechRound Cybersecurity40 2025
H3 Top 250 Scaleups 2022
H3 EclecticIQ Is Certified to ISO Standards
H3 Top 250 Fastest Growing Companies
H3 Infosec Awards
H3 Cybersecurity Excellence Award
H3 Cyber Defense Magazine 2019 Infosec Award
H3 Cybersecurity Excellence Award
H3 Next Unicorn Award 2018
H3 Cyber Defense 2018 Global Awards Winner
H3 MKB Innovatie Top 100 van 2018
H3 SC 2018 Awards Europe
H3 Top250 Scale-ups 2018
H3 Softshell Vendor Award 2018
H3 Softshell Vendor Award 2017
H3 SC Magazine Lab Approved 2017
H3 (no text)
CT16warningthe page carries no structured data block stating what it is (not required; a hygiene signal)
What we check
The page carries structured data, the machine-readable summary of what it describes.
What good looks like
The page carries structured data summarising what it describes.
Why it matters
Vendors document this as optional rather than required, so its absence is a small forfeit and no more.
What we found on this page
the page carries no structured data block stating what it is (not required; a hygiene signal)
The evidence, taken from the page as served
The head of this page, as served

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

<head> <meta charset="utf-8"/> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, viewport-fit=cover"/> <meta name="referrer" content="origin-when-cross-origin"/> <title>News &amp; Awards</title> <meta name="description" content=""/> <meta property="og:image" content="https://www.eclecticiq.com/hubfs/raw_assets/public/rebrand-2024/assets/img/og-eclecticiq.png"/> <script>loadjs=function(){var l=function(){},c={},f={},u={};function s(e,n){if(e){var t=u[e];if(f[e]=n,t)for(;t.length;)t[0](e,n),t.splice(0,1)}}function o(e,n){e.call&amp;&amp;(e={success:e}),n.length?(e.error||l)(n):(e.success||l)(e)}function h(t,r,i,c){var s,o,e=document,n=i.async,f=(i.numRetries||0)+1,u=i.before||l,a=t.replace(/^(css|img)!/,"");c=c||0,/(^css!|\.css$)/.test(t)?(s=!0,(o=e.createElement("link")).rel="stylesheet",o.href=a):/(^img!|\.(png|gif|jpg|svg)$)/.test(t)?(o=e.createElement("img")).src=a:((o=e.createElement("script")).src=t,o.async=void 0===n||n),!(o.onload=o.onerror=o.onbeforeload=function(e){var n=e.type[0];if(s&amp;&amp;"hideFocus"in o)try{o.sheet.cssText.length||(n="e")}catch(e){n="e"}if("e"==n&amp;&amp;(c+=1)&lt;f)return h(t,r,i,c);r(t,n,e.dโ€ฆ
CT04warningthe page shows the year 2025 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 2025 in its text, but nothing on the page states it as the date of the content
The evidence, taken from the page as served
The head of this page, as served

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

<head> <meta charset="utf-8"/> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, viewport-fit=cover"/> <meta name="referrer" content="origin-when-cross-origin"/> <title>News &amp; Awards</title> <meta name="description" content=""/> <meta property="og:image" content="https://www.eclecticiq.com/hubfs/raw_assets/public/rebrand-2024/assets/img/og-eclecticiq.png"/> <script>loadjs=function(){var l=function(){},c={},f={},u={};function s(e,n){if(e){var t=u[e];if(f[e]=n,t)for(;t.length;)t[0](e,n),t.splice(0,1)}}function o(e,n){e.call&amp;&amp;(e={success:e}),n.length?(e.error||l)(n):(e.success||l)(e)}function h(t,r,i,c){var s,o,e=document,n=i.async,f=(i.numRetries||0)+1,u=i.before||l,a=t.replace(/^(css|img)!/,"");c=c||0,/(^css!|\.css$)/.test(t)?(s=!0,(o=e.createElement("link")).rel="stylesheet",o.href=a):/(^img!|\.(png|gif|jpg|svg)$)/.test(t)?(o=e.createElement("img")).src=a:((o=e.createElement("script")).src=t,o.async=void 0===n||n),!(o.onload=o.onerror=o.onbeforeload=function(e){var n=e.type[0];if(s&amp;&amp;"hideFocus"in o)try{o.sheet.cssText.length||(n="e")}catch(e){n="e"}if("e"==n&amp;&amp;(c+=1)&lt;f)return h(t,r,i,c);r(t,n,e.dโ€ฆ
CT35warningthe copyright line at the foot of this page states 2024, 2 years behind the year this assessment ran, which reads as a page left unattended and is the usual sign of a template copied from elsewhere
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 copyright line at the foot of this page states 2024, 2 years behind the year this assessment ran, which reads as a page left unattended and is the usual sign of a template copied from elsewhere
The evidence, taken from the page as served
The copyright line as served, and the year it claims
Page ยท opens in a new tabFoundThe text, as served, around the word
www.eclecticiq.com/news-awards?hsLang=en…ยฉ 2024…
AJ05warningno site-search control detected on this page
What we check
Whether a search box for the site is present in the page as it is served.
What good looks like
A search box is present in the served markup, so the site's own content can be queried directly.
Why it matters
With no search box on the page, its links are the only route from here into the rest of the site.
What we found on this page
no site-search control detected on this page
The evidence, taken from the page as served
The head of this page, as served

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

<head> <meta charset="utf-8"/> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, viewport-fit=cover"/> <meta name="referrer" content="origin-when-cross-origin"/> <title>News &amp; Awards</title> <meta name="description" content=""/> <meta property="og:image" content="https://www.eclecticiq.com/hubfs/raw_assets/public/rebrand-2024/assets/img/og-eclecticiq.png"/> <script>loadjs=function(){var l=function(){},c={},f={},u={};function s(e,n){if(e){var t=u[e];if(f[e]=n,t)for(;t.length;)t[0](e,n),t.splice(0,1)}}function o(e,n){e.call&amp;&amp;(e={success:e}),n.length?(e.error||l)(n):(e.success||l)(e)}function h(t,r,i,c){var s,o,e=document,n=i.async,f=(i.numRetries||0)+1,u=i.before||l,a=t.replace(/^(css|img)!/,"");c=c||0,/(^css!|\.css$)/.test(t)?(s=!0,(o=e.createElement("link")).rel="stylesheet",o.href=a):/(^img!|\.(png|gif|jpg|svg)$)/.test(t)?(o=e.createElement("img")).src=a:((o=e.createElement("script")).src=t,o.async=void 0===n||n),!(o.onload=o.onerror=o.onbeforeload=function(e){var n=e.type[0];if(s&amp;&amp;"hideFocus"in o)try{o.sheet.cssText.length||(n="e")}catch(e){n="e"}if("e"==n&amp;&amp;(c+=1)&lt;f)return h(t,r,i,c);r(t,n,e.dโ€ฆ
MS08fail3 link wording(s) are used for more than one destination, so the same words point at different pages: โ€œbook a demoโ€, โ€œread full articleโ€, โ€œread 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
3 link wording(s) are used for more than one destination, so the same words point at different pages: โ€œbook a demoโ€, โ€œread full articleโ€, โ€œread 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
"Book a demo"
<a href="https://www.eclecticiq.com/book-a-demo?hsLang=en" target="_blank" class="relative group inline-flex items-center h-12 px-8 rounded-full font-bold bg-blue text-nav text-white leading-none tracking-wide hover:pr-12 transition-all duration-200"> <span class="flex-none">Book a demo</span> <img class="lazyload absoโ€ฆ
"Read full article"
<a href="https://www.forbes.com/sites/zakdoffman/2024/11/20/new-chrome-safari-firefox-edge-warning-do-not-shop-on-these-websites/" class="group inline-flex items-center gap-2 lg:gap-3 max-w-full font-bold text-sm xl:text-base leading-tight tracking-wide font-semibold text-white mt-auto leading-tight" target="_blank" reโ€ฆ
"Read full article"
<a href="https://www.pcgamer.com/hardware/silkspecter-scam-ring-spoofs-big-brands-this-black-friday/" class="group inline-flex items-center gap-2 lg:gap-3 max-w-full font-bold text-sm xl:text-base leading-tight tracking-wide font-semibold text-white mt-auto leading-tight" target="_blank" rel="nofollow"> <span class="smโ€ฆ
"Read full article"
<a href="https://www.pcworld.com/article/2522574/watch-out-for-fake-online-stores-as-black-friday-approaches.html" class="group inline-flex items-center gap-2 lg:gap-3 max-w-full font-bold text-sm xl:text-base leading-tight tracking-wide font-semibold text-white mt-auto leading-tight" target="_blank" rel="nofollow"> <sโ€ฆ
"Read full article"
<a href="https://www.forbes.com/sites/lindseychoo/2024/11/20/black-friday-ai-scams-how-to-spot-them/" class="group inline-flex items-center gap-2 lg:gap-3 max-w-full font-bold text-sm xl:text-base leading-tight tracking-wide font-semibold text-white mt-auto leading-tight" target="_blank" rel="nofollow"> <span class="smโ€ฆ
"Read full article"
<a href="https://thehackernews.com/2024/11/fake-discount-sites-exploit-black.html" class="group inline-flex items-center gap-2 lg:gap-3 max-w-full font-bold text-sm xl:text-base leading-tight tracking-wide font-semibold text-white mt-auto leading-tight" target="_blank" rel="nofollow"> <span class="sm:flex-none truncateโ€ฆ
"Read full article"
<a href="https://www.bleepingcomputer.com/news/security/fraud-network-uses-4-700-fake-shopping-sites-to-steal-credit-cards/" class="group inline-flex items-center gap-2 lg:gap-3 max-w-full font-bold text-sm xl:text-base leading-tight tracking-wide font-semibold text-white mt-auto leading-tight" target="_blank" rel="nofโ€ฆ
"Read full article"
<a href="https://cyberinsider.com/silkspecter-campaign-uses-4000-fake-domains-against-black-friday-shoppers/" class="group inline-flex items-center gap-2 lg:gap-3 max-w-full font-bold text-sm xl:text-base leading-tight tracking-wide font-semibold text-white mt-auto leading-tight" target="_blank" rel="nofollow"> <span cโ€ฆ
"Read full article"
<a href="https://www.darkreading.com/cloud-security/socially-savvy-scattered-spider-traps-cloud-admins-in-web" class="group inline-flex items-center gap-2 lg:gap-3 max-w-full font-bold text-sm xl:text-base leading-tight tracking-wide font-semibold text-white mt-auto leading-tight" target="_blank" rel="nofollow"> <span โ€ฆ
"Read full article"
<a href="https://cyberpress.org/new-developer-as-a-service-on-hacking-forums/" class="group inline-flex items-center gap-2 lg:gap-3 max-w-full font-bold text-sm xl:text-base leading-tight tracking-wide font-semibold text-white mt-auto leading-tight" target="_blank" rel="nofollow"> <span class="sm:flex-none truncate">Reโ€ฆ
MS10failthe page's first heading is not its top-level heading, so the structure starts part way down; the 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 page's first heading is not its top-level heading, so the structure starts part way down; 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)
H3 Products level jumped
H3 Use Cases
H3 Partners
H3 Resources
H3 Company
H1 News & Awards
H3 New Black Friday Warningโ€”Do Not Shop On These Websites level jumped
H3 'SilkSpecter' hacking operation uses sophisticated ring of 4,700 spoofed storefr
H3 Watch out for fake online stores as Black Friday approaches
H3 Why Black Friday Is A Hotbed For AI Scamsโ€”And How To Spot Them
H3 Fake Discount Sites Exploit Black Friday to Hijack Shopper Information
H3 Fraud network uses 4,700 fake shopping sites to steal credit cards
H3 โ€˜SilkSpecterโ€™ Campaign Uses 4,000 Fake Domains Against Black Friday Shoppers
H3 Socially Savvy Scattered Spider Traps Cloud Admins in Web
H3 New Developer-as-a-Service on Hacking Forums Fuels Phishing and Cyberattacks
H3 Oyster Backdoor Spreading via Trojanized Popular Software Downloads
H3 'ONNX' MFA Bypass Targets Microsoft 365 Accounts
H3 ONNX phishing service targets Microsoft 365 accounts at financial firms
H3 Cyber espionage strikes Indiaโ€™s defence and energy sectors
H3 Massive Phishing Campaign Strikes Latin America: Venom RAT Targeting Multiple Se
H3 Cyberespionage Campaign Targets Government, Energy Entities in India
H3 Episode March 27, 2024
H3 Hackers Hit Indian Defense, Energy Sectors with Malware Posing as Air Force Invi
H3 India's government, energy sector breached in cyber-espionage campaign
H3 Chinese Hackers Attacking Semiconductor Industries Using Cobalt Strike Beacon
H3 Chinese Hackers Target Semiconductor Firms in East Asia with Cobalt Strike
H3 Chinese Hackers Target Semiconductor Firms in East Asia with Cobalt Strike
H3 Podcast Episode 43- Cody Barrow - Cybersecurity in the European Union Compared t
H3 Episode September 1, 2023
H3 Key Group Ransomware Foiled by New Decryptor
H3 Free Key Group ransomware decryptor helps victims recover data
H3 Good news for Key Group ransomware victims: Free decryptor out now
H3 PDF lures aimed at NATO countries contain a Russian clue
H3 Manually patch this Zimbra bug that's under attack
H3 The art of managing cyber risk
H3 Private equity 'presents cyber security risk' for asset managers
H3 [FIC 2023] : les gangs de ransomware sont-ils des entreprises comme les autres ?
H3 Cybersecurity misconceptions
H3 De toekomst van cybercrime
H3 LockBit crew cooks up half-baked Mac ransomware
H3 Dark Pink APT group linked to new KamiKakiBot attacks in Southeast Asia
H3 KamiKakaBot Malware Used in Latest Dark Pink APT Attacks on Southeast Asian Targ
H3 Logiciel malveillant KamiKakaBot utilisรฉ dans les derniรจres attaques APT rose fo
H3 DeFi Hack Recovers Stolen Funds; Blacklotus Bypasses Windows Secure Boot
H3 10 European defence tech startups to watch, according to investors
H3 PassW0rd
H3 2023 - Threat Intelligence Predictions
H3 NATO Innovation and Technology Issue #8
H3 Russian hackers targeting Dutch gas terminal: report
H3 'Russische hackers hebben het gemunt op Nederlandse gasinstallaties'
H3 Comprendre le fonctionnement des hackers pour une meilleure cyber sรฉcuritรฉ
H3 Collaboration is key to a stronger cyber resilience, says cybersecurity expert
H3 The Top of the Netherlands
H3 Soonicorn Club 2022: Top Tech Startups In Netherlands
H3 EclecticIQ, Protection Contre la Cybercriminalitรฉ
H3 Das Beste fรผr Daten? Sichere Kรคfighaltung!
H3 Van Huffelens overvolle agenda: van datacenters tot nepnieuws
H3 Six Innovative Cybersecurity Companies in the Netherlands
H3 The Other Scary Virus
H3 Delen van Dreigingsinformatie Als Interessante Business
H3 Article FD: Cyber Security Organisations Call for National Government to Take Co
H3 IT-beveiligers Pleiten voor Landelijke Regie in Strijd Tegen Cybercriminaliteit
H3 EU Invests Millions in Cybersecurity
H3 Europees Geld voor Expansie EclecticIQ
H3 Investment Plan for Europe Supports Development of Next-generation Cyber Securit
H3 Peeters biedt Dedonder Europees geld voor Belgische defensie aan
H3 EIB-geld Moet Wereldspeler Maken van Nederlands Cyberveiligheidsbedrijf Eclectic
H3 Biden: โ€œCyber breach of great consequenceโ€ may lead to โ€œreal shooting warโ€
H3 WeChat Suspends New User Registrations to Comply with Chinese laws
H3 IBM Contributes Kestrel Threat Hunting Tool to OASIS Open Cybersecurity Alliance
H3 SolarWinds Hackers Strike Again: Kremlin-backed Group Hits Microsoft Customers
H3 Risky Biz Soap Box: EclecticIQ's CEO Joep Gommers on Operationalising Threat Int
H3 EclecticIQ Platform Delivers Threat Intelligence, Hunting, and Response Capabili
H3 EclecticIQ platform: Intelligence at the Core
H3 ASM Tech spurts 5% after partnership with Netherlands-based EclecticIQ for new C
H3 Fake COVID contact tracers
H3 The evolution of ransomware threats in the energy sector
H3 CyberKnight, EclecticIQ Augment Threat Detection, Hunting And Response
H3 Z-CERT and EclecticIQ Cooperate to Bring Benefits of CTI to Dutch Healthcare Sec
H3 EclecticIQ - Samen investeren in een Europees cybersecurity ecosysteem
H3 EclecticIQ and PolyLogyx join forces to bring intelligence-led security products
H3 EclecticIQ Joins Forces with Endpoint Solution Provider PolyLogyx
H3 EclecticIQ: Building Next-Gen Intelligence-Powered Cybersecurity
H3 Typosquatting & duplication of pharmaceutical domain: Possibly used for phishing
H3 How diverse teams can help protect your business against cyber-attacks
H3 Hacking as a Service?
H3 EclecticIQโ€™s new browser extension helps analysts capture threat indicators auto
H3 EclecticIQ continues its global expansion, reaching significant milestones in 20
H3 Top Dutch startups to follow in 2020
H3 Kaspersky partners with EclecticIQ to empower businesses with first-hand threat-
H3 How will the UK tech sector be affected by Brexit?
H3 Data Privacy Day: Security industry highlights key issues
H3 Amsterdam Startups to Watch in 2020
H3 Going for gold: Security learnings for the Tokyo 2020 Olympics
H3 Threat Intelligence
H3 EclecticIQ hires Michel de Jong as Chief Operating Officer
H3 How fake news could ruin Britain's next election
H3 Cybersecurity giants join forces to combat cyberthreats under OASIS umbrella
H3 Threat intelligence and the role of automation in improving security
H3 Product Review - EclecticIQ Platform 2.4
H3 Maximizing the Use of Enterprise Cyber-Threat Intelligence Feeds
H3 Communication, communication, communication: the route to actionable cyber threa
H3 The path to actionable cyber threat intelligence
H3 Using OpSec to protect yourself at security industry events
H3 Avoiding cyber disaster
H3 Todayโ€™s cyber threat landscape and mitigating appropriately
H3 What's new in ransomware and how can businesses stay ahead of the threat?
H3 Disinformation effort targeted at EU Parliament Elections
H3 How security & intelligence can share the same language
H3 Free Boxing Streams are being hidden on the most popular video sites
H3 Understanding the modern ransomware landscape
H3 Cyber Threats: How to manage intelligence in a multi-risk environment
H3 Top 10 cybersecurity startups from Amsterdam that help you fight off hackers
H3 Lessons learned from Ukraine elections
H3 Spire Solutions and EclecticIQ ink Middle East partnership
H3 Psychological Warfare and Information Operations: The Real Threat to Western Dem
H3 Election Hacking
H3 German Politicians Personal Details Hacked
H3 Russia Or The Far-Right: Who Hacked German Politics?
H3 How not to get hacked in 2019
H3 Hackers leak details of German politicians
H3 Hackers leak details of German politicians
H3 5 Things We Know about the German Hack, from Porn to Mirrors
H3 Why We Should Focus on โ€˜How,โ€™ not โ€˜Who,โ€™ of Cyberattacks
H3 Spike in Brexit-themed phishing attacks expected once withdrawal agreement is fi
H3 Why is โ€˜Attributionโ€™ Still the Focus Following Cyber Attacks?
H3 EclecticIQ strengthens threat intelligence for infrastructures with new integrat
H3 UK foils more than 10 cyber attacks per week, says GCHQ
H3 EclecticIQ Platform 2.3 Brings Improved Collaboration and Data Management Featur
H3 EclecticIQ Platform 2.3 brings improved collaboration and data management featur
H3 Cyber security: Your boss doesn't care and that's not OK anymore
H3 European Threat Intelligence provider EclecticIQ Increases North American invest
H3 6 most talented online entrepreneurs in the Netherlands that deserve your attent
H3 The Vulnerability Disclosure Process Still Broken
H3 Batten down the ports: Linux networking bug SegmentSmack could remotely crash sy
H3 Inzicht in digitale dreigingen
H3 The digital โ€˜bank jobโ€™ โ€“ investigating the unprecedented rise in crypto threats
H3 Tour de France 2018 live stream sites that let cycling fans watch race online fo
H3 Adjusting to GDPR compliance challenges for threat intelligence analysts
H3 Typical 24: Joep Gommers, EclecticIQ
H3 EclecticIQ integrates with MITREโ€™s ATT&CK framework
H3 A Different Kind Of Heist: How Cryptocurrency Is Churning Profits For Criminals
H3 The evolution of the cyber threat landscape โ€“ whatโ€™s next?
H3 GDPRโ€™s Impact On Threat Intelligence Sharing
H3 Data Breach
H3 Ticketmaster security breach - the industry speaks
H3 World Cup streaming: Free live feeds online can endanger football fans who try t
H3 World Cup Russian hacking threat is real, security experts warn
H3 Why The North Korean Cyber Threat Shouldn't be Ignored
H3 Effectively Managing Mistrust for Optimal Cybersecurity
H3 Working with Competitors
H3 10 Dutch Startups to Watch in 2018
H3 10 amazing start-ups from Amsterdam to watch
H3 The World Cup in motion: the infrastructure behind the greatest show on earth
H3 Cybersecurity Managing Distrust: The Key To Cybersecurity
H3 Will Threat Intelligence Go Dark Under GDPR?
H3 The impact of GDPR on threat intelligence analysts
H3 The evolving threat landscape: nation state, third party attacks and cyber vanda
H3 Identifying can be a waste of time
H3 The great attribution debate: Why we should focus on HOW not WHO
H3 Going for gold in the Cyber Olympics: a look at cybersecurity in Pyeongchang
H3 Cyberattacks In An Evolving Landscape โ€“ Should Businesses Be Worried?
H3 ะะฒั‚ะพะผะฐั‚ะธะทะฐั†ะธั ะฟั€ะพั†ะตััะพะฒ ะบะธะฑะตั€ั€ะฐะทะฒะตะดะบะธ ะฝะฐ ะพัะฝะพะฒะต ั€ะตัˆะตะฝะธะน ะบะปะฐััะฐ Threat Intelligen
H3 The evolving threat landscape: nation state, third party attacks and cyber vanda
H3 How to protect against the evolving threat landscape
H3 Fortune Term Sheet
H3 14 miljoen voor Amsterdamse startup die bedrijven veilig houdt
H3 Amsterdam-based EclecticIQ secures โ‚ฌ14 million to further expand with its Cyber
H3 14 miljoen voor Amsterdamse startup die bedrijven veilig houdt
H3 Ben Verwaayen steekt miljoenen in Nederlandse beveiligings-start-up
H3 EclecticIQ launches Fusion Center Intelligence Essentials
H3 Cyber threat analysis training โ€“ why a robust platform is critical
H3 New infosec products of the weekโ€‹: October 6, 2017
H3 EclecticIQ baut deutsches Team aus
H3 The hottest startups in Amsterdam
H3 Drei Ebenen der IT-Sicherheit
H3 The UK's ยฃ1.9bn cyber-security spend โ€“ getting the priorities right
H3 Interview with Raymon van der Velde, VP Product & Co-founder EclecticIQ
H3 EclecticIQ partners with SenseCy to bring leading Cyber Threat Intelligence tech
H3 โ€œCyberdreigingsinformatie nieuw antwoord op cyberaanvallenโ€
H3 Minister-president Rutte brengt bezoekt aan The Hague Security Delta
H3 Plug Pulled on Soltra Edge Threat Info Sharing Platform
H3 NZITF deploys EclecticIQ to share cyber threat information
H3 WIRED Security 2016: Startup Stage
H3 Daar komen de whizzkids
H3 TechRound Cybersecurity40 2025
H3 Top 250 Scaleups 2022
H3 EclecticIQ Is Certified to ISO Standards
H3 Top 250 Fastest Growing Companies
H3 Infosec Awards
H3 Cybersecurity Excellence Award
H3 Cyber Defense Magazine 2019 Infosec Award
H3 Cybersecurity Excellence Award
H3 Next Unicorn Award 2018
H3 Cyber Defense 2018 Global Awards Winner
H3 MKB Innovatie Top 100 van 2018
H3 SC 2018 Awards Europe
H3 Top250 Scale-ups 2018
H3 Softshell Vendor Award 2018
H3 Softshell Vendor Award 2017
H3 SC Magazine Lab Approved 2017
H3 (no text)
MS09warninglink wording that does not say where it leads: โ€œread moreโ€
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: โ€œread moreโ€
The evidence, taken from the page as served
The links whose text names no destination, as served
"Read more"
<a href="https://techround.co.uk/cybersecurity/7-eclecticiq/" class="group inline-flex items-center gap-2 lg:gap-3 max-w-full font-bold text-sm xl:text-base leading-tight tracking-wide font-semibold text-blue-400 mt-auto leading-tight" target="_blank" rel="nofollow"> <span class="sm:flex-none truncate">Read more</span>โ€ฆ
"Read more"
<a href="https://ece.nl/top250scaleups2022/?utm_campaign=GLOB%20-%20Campaign%20-%20Corporate&amp;utm_content=210811680&amp;utm_medium=social&amp;utm_source=linkedin&amp;hss_channel=lcp-10226527" class="group inline-flex items-center gap-2 lg:gap-3 max-w-full font-bold text-sm xl:text-base leading-tight tracking-wide foโ€ฆ
"Read more"
<a href="https://www.eclecticiq.com/eclecticiq-is-certified-to-iso-standards?hsLang=en" class="group inline-flex items-center gap-2 lg:gap-3 max-w-full font-bold text-sm xl:text-base leading-tight tracking-wide font-semibold text-blue-400 mt-auto leading-tight" target="_blank" rel="nofollow"> <span class="sm:flex-none โ€ฆ
"Read more"
<a href="https://cyberdefenseawards.com/infosec-awards-for-2020-winners/" class="group inline-flex items-center gap-2 lg:gap-3 max-w-full font-bold text-sm xl:text-base leading-tight tracking-wide font-semibold text-blue-400 mt-auto leading-tight" target="_blank" rel="nofollow"> <span class="sm:flex-none truncate">Readโ€ฆ
"Read more"
<a href="https://cybersecurity-excellence-awards.com/candidates/eclecticiq-platform-3/" class="group inline-flex items-center gap-2 lg:gap-3 max-w-full font-bold text-sm xl:text-base leading-tight tracking-wide font-semibold text-blue-400 mt-auto leading-tight" target="_blank" rel="nofollow"> <span class="sm:flex-none โ€ฆ
"Read more"
<a href="https://cyberdefenseawards.com" class="group inline-flex items-center gap-2 lg:gap-3 max-w-full font-bold text-sm xl:text-base leading-tight tracking-wide font-semibold text-blue-400 mt-auto leading-tight" target="_blank" rel="nofollow"> <span class="sm:flex-none truncate">Read more</span> <svg xmlns="http://wโ€ฆ
"Read more"
<a href="https://cybersecurity-excellence-awards.com/2019-cybersecurity-product-awards-winners-and-finalists/" class="group inline-flex items-center gap-2 lg:gap-3 max-w-full font-bold text-sm xl:text-base leading-tight tracking-wide font-semibold text-blue-400 mt-auto leading-tight" target="_blank" rel="nofollow"> <spโ€ฆ
"Read more"
<a href="https://www.amsterdambusinessawards.nl/_cms/awards/" class="group inline-flex items-center gap-2 lg:gap-3 max-w-full font-bold text-sm xl:text-base leading-tight tracking-wide font-semibold text-blue-400 mt-auto leading-tight" target="_blank" rel="nofollow"> <span class="sm:flex-none truncate">Read more</span>โ€ฆ
"Read more"
<a href="https://www.cyberdefensemagazine.com/" class="group inline-flex items-center gap-2 lg:gap-3 max-w-full font-bold text-sm xl:text-base leading-tight tracking-wide font-semibold text-blue-400 mt-auto leading-tight" target="_blank" rel="nofollow"> <span class="sm:flex-none truncate">Read more</span> <svg xmlns="hโ€ฆ
"Read more"
<a href="https://www.kvkinnovatietop100.nl/site/top-100-2018" class="group inline-flex items-center gap-2 lg:gap-3 max-w-full font-bold text-sm xl:text-base leading-tight tracking-wide font-semibold text-blue-400 mt-auto leading-tight" target="_blank" rel="nofollow"> <span class="sm:flex-none truncate">Read more</span>โ€ฆ
MS13warning2 of 2 iframes untitled
What we check
Each embedded panel on the page carries a title saying what it contains.
What good looks like
Each embedded panel carries a title saying what it contains.
Why it matters
The embedded region stays unnamed, so what it holds is left unstated in the page around it.
What we found on this page
2 of 2 iframes untitled
The evidence, taken from the page as served
The iframes with no title attribute, as served
src=https://www.googletagmanager.com/ns.html?id=GTM-MC7MVC
<iframe src="https://www.googletagmanager.com/ns.html?id=GTM-MC7MVC" height="0" width="0" style="display:none;visibility:hidden"/>
src=https://www.googletagmanager.com/ns.html?id=GTM-MC7MVC
<iframe src="https://www.googletagmanager.com/ns.html?id=GTM-MC7MVC" height="0" width="0" style="display:none;visibility:hidden"/>
DS28failone link to sources on other sites was refused when it was checked. The page is still published, but the other site turns away requests that do not come from a person using a browser. It is listed in the view
What we check
For a single page, the share of its links to OTHER sites, sampled, that lead nowhere. The site's own links are assessed separately.
What good looks like
The page's references to other sites open for any reader. Where one refuses or has gone, the page carries the fact itself, shows the reference as plain text rather than as a link, or points to a source that answers.
Why it matters
The outside sources this page offers as support did not answer when they were asked for, so what the page claims is left resting on material that does not come back. In a regulated setting, where a link is carrying a figure or a required statement, that is the difference between a claim that is evidenced and one that is merely asserted.
What we found on this page
one link to sources on other sites was refused when it was checked. The page is still published, but the other site turns away requests that do not come from a person using a browser. It is listed in the view
The evidence, taken from the page as served
The external links checked on this page, with the status each returned

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

Link ยท opens in a new tabStatusResult
eclecticiq.bamboohr.com/careers200Reachable
www.forbes.com/sites/zakdoffman/2024/11/20/new-chrome-safari-firefox-edge-warning-do-not-shop-on-these-websites200Reachable
www.pcgamer.com/hardware/silkspecter-scam-ring-spoofs-big-brands-this-black-friday403Access-restricted
www.pcworld.com/article/2522574/watch-out-for-fake-online-stores-as-black-friday-approaches.html200Reachable
www.forbes.com/sites/lindseychoo/2024/11/20/black-friday-ai-scams-how-to-spot-them200Reachable
https://www.eclecticiq.com/-reporting?hsLang=en 52.3% Likely 9 out of 42
CheckResultEvidence
CT06warningtitle length 9 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 9 chars
The evidence, taken from the page as served
The page title, as served
9 characters
<title>Reporting</title>
CT16warningthe page carries no structured data block stating what it is (not required; a hygiene signal)
What we check
The page carries structured data, the machine-readable summary of what it describes.
What good looks like
The page carries structured data summarising what it describes.
Why it matters
Vendors document this as optional rather than required, so its absence is a small forfeit and no more.
What we found on this page
the page carries no structured data block stating what it is (not required; a hygiene signal)
The evidence, taken from the page as served
The head of this page, as served

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

<head> <meta charset="utf-8"/> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, viewport-fit=cover"/> <meta name="referrer" content="origin-when-cross-origin"/> <title>Reporting</title> <meta name="description" content="Deliver high-quality, branded intelligence reports faster. Standardize how your team writes, formats, and shares finished reports - without breaking workflows."/> <script>loadjs=function(){var l=function(){},c={},f={},u={};function s(e,n){if(e){var t=u[e];if(f[e]=n,t)for(;t.length;)t[0](e,n),t.splice(0,1)}}function o(e,n){e.call&amp;&amp;(e={success:e}),n.length?(e.error||l)(n):(e.success||l)(e)}function h(t,r,i,c){var s,o,e=document,n=i.async,f=(i.numRetries||0)+1,u=i.before||l,a=t.replace(/^(css|img)!/,"");c=c||0,/(^css!|\.css$)/.test(t)?(s=!0,(o=e.createElement("link")).rel="stylesheet",o.href=a):/(^img!|\.(png|gif|jpg|svg)$)/.test(t)?(o=e.createElement("img")).src=a:((o=e.createElement("script")).src=t,o.async=void 0===n||n),!(o.onload=o.onerror=o.onbeforeload=function(e){var n=e.type[0];if(s&amp;&amp;"hideFocus"in o)try{o.sheet.cssText.length||(n="e")}catch(e){n="e"}if("e"==n&amp;&amp;(c+=1)&lt;f)return โ€ฆ
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 name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, viewport-fit=cover"/> <meta name="referrer" content="origin-when-cross-origin"/> <title>Reporting</title> <meta name="description" content="Deliver high-quality, branded intelligence reports faster. Standardize how your team writes, formats, and shares finished reports - without breaking workflows."/> <script>loadjs=function(){var l=function(){},c={},f={},u={};function s(e,n){if(e){var t=u[e];if(f[e]=n,t)for(;t.length;)t[0](e,n),t.splice(0,1)}}function o(e,n){e.call&amp;&amp;(e={success:e}),n.length?(e.error||l)(n):(e.success||l)(e)}function h(t,r,i,c){var s,o,e=document,n=i.async,f=(i.numRetries||0)+1,u=i.before||l,a=t.replace(/^(css|img)!/,"");c=c||0,/(^css!|\.css$)/.test(t)?(s=!0,(o=e.createElement("link")).rel="stylesheet",o.href=a):/(^img!|\.(png|gif|jpg|svg)$)/.test(t)?(o=e.createElement("img")).src=a:((o=e.createElement("script")).src=t,o.async=void 0===n||n),!(o.onload=o.onerror=o.onbeforeload=function(e){var n=e.type[0];if(s&amp;&amp;"hideFocus"in o)try{o.sheet.cssText.length||(n="e")}catch(e){n="e"}if("e"==n&amp;&amp;(c+=1)&lt;f)return โ€ฆ
CT35warningthe copyright line at the foot of this page states 2024, 2 years behind the year this assessment ran, which reads as a page left unattended and is the usual sign of a template copied from elsewhere
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 copyright line at the foot of this page states 2024, 2 years behind the year this assessment ran, which reads as a page left unattended and is the usual sign of a template copied from elsewhere
The evidence, taken from the page as served
The copyright line as served, and the year it claims
Page ยท opens in a new tabFoundThe text, as served, around the word
www.eclecticiq.com/-reporting?hsLang=en…ยฉ 2024…
AJ05warningno site-search control detected on this page
What we check
Whether a search box for the site is present in the page as it is served.
What good looks like
A search box is present in the served markup, so the site's own content can be queried directly.
Why it matters
With no search box on the page, its links are the only route from here into the rest of the site.
What we found on this page
no site-search control detected on this page
The evidence, taken from the page as served
The head of this page, as served

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

<head> <meta charset="utf-8"/> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, viewport-fit=cover"/> <meta name="referrer" content="origin-when-cross-origin"/> <title>Reporting</title> <meta name="description" content="Deliver high-quality, branded intelligence reports faster. Standardize how your team writes, formats, and shares finished reports - without breaking workflows."/> <script>loadjs=function(){var l=function(){},c={},f={},u={};function s(e,n){if(e){var t=u[e];if(f[e]=n,t)for(;t.length;)t[0](e,n),t.splice(0,1)}}function o(e,n){e.call&amp;&amp;(e={success:e}),n.length?(e.error||l)(n):(e.success||l)(e)}function h(t,r,i,c){var s,o,e=document,n=i.async,f=(i.numRetries||0)+1,u=i.before||l,a=t.replace(/^(css|img)!/,"");c=c||0,/(^css!|\.css$)/.test(t)?(s=!0,(o=e.createElement("link")).rel="stylesheet",o.href=a):/(^img!|\.(png|gif|jpg|svg)$)/.test(t)?(o=e.createElement("img")).src=a:((o=e.createElement("script")).src=t,o.async=void 0===n||n),!(o.onload=o.onerror=o.onbeforeload=function(e){var n=e.type[0];if(s&amp;&amp;"hideFocus"in o)try{o.sheet.cssText.length||(n="e")}catch(e){n="e"}if("e"==n&amp;&amp;(c+=1)&lt;f)return โ€ฆ
MS08fail1 link wording(s) are used for more than one destination, so the same words point at different pages: โ€œbook a demoโ€; 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: โ€œbook a demoโ€; 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
"Book a demo"
<a href="https://www.eclecticiq.com/book-a-demo?hsLang=en" target="_blank" class="relative group inline-flex items-center h-12 px-8 rounded-full font-bold bg-blue text-nav text-white leading-none tracking-wide hover:pr-12 transition-all duration-200"> <span class="flex-none">Book a demo</span> <img class="lazyload absoโ€ฆ
"Book a demo"
<a href="https://www.eclecticiq.com/book-a-demo?hsLang=en" class="group inline-flex items-center gap-2 lg:gap-3 max-w-full font-bold text-sm xl:text-base leading-tight tracking-wide h-11 xl:h-12 px-6 xl:px-7 rounded-full transition-all duration-200 bg-white text-blue mt-8 lg:mt-12"> <span class="sm:flex-none truncate">โ€ฆ
"Book a demo"
<a href="" class="relative flex xs:inline-flex justify-center items-center h-12 px-8 rounded-full font-bold bg-blue text-nav text-white leading-none tracking-wide"> <span class="flex-none">Book a demo</span> <img class="lazyload absolute -top-2 right-2 w-4 scale-110" src="https://www.eclecticiq.com/hubfs/raw_assets/pubโ€ฆ
MS10failthe page's first heading is not its top-level heading, so the structure starts part way down
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 page's first heading is not its top-level heading, so the structure starts part way down
The evidence, taken from the page as served
The page's heading outline, in document order (a jump in level is marked)
H3 Products level jumped
H3 Use Cases
H3 Partners
H3 Resources
H3 Company
H1 Smarter finished intelligence reporting
H2 A better way to manage finished intelligence reporting
H2 How it works
H3 Write structured, professional reports
H3 Standardize with reusable templates
H3 Generate reports directly from intelligence data
H3 Export and deliver in the right format
H2 Why it matters for your team
H3 Accelerated report creation
H3 Consistent, branded outputs
H3 Integrated with your intelligence workflows
H2 Ready to transform how your team delivers finished intelligence?
H3 (no text)
MS13warning2 of 3 iframes untitled
What we check
Each embedded panel on the page carries a title saying what it contains.
What good looks like
Each embedded panel carries a title saying what it contains.
Why it matters
The embedded region stays unnamed, so what it holds is left unstated in the page around it.
What we found on this page
2 of 3 iframes untitled
The evidence, taken from the page as served
The iframes with no title attribute, as served
src=https://www.googletagmanager.com/ns.html?id=GTM-MC7MVC
<iframe src="https://www.googletagmanager.com/ns.html?id=GTM-MC7MVC" height="0" width="0" style="display:none;visibility:hidden"/>
src=https://www.googletagmanager.com/ns.html?id=GTM-MC7MVC
<iframe src="https://www.googletagmanager.com/ns.html?id=GTM-MC7MVC" height="0" width="0" style="display:none;visibility:hidden"/>
MS14fail1 video(s) on the page with no captions on the video and no written transcript on the page: nothing spoken is available as text in any form
What we check
Whether each video carries captions of its own, timed text on the video itself, judged together with whether the page holds a written transcript.
What good looks like
Captions carried on the video. A WARNING means the video has no captions but a written transcript on the page holds the words. A FAIL means neither exists, so nothing spoken is available as text in any form; that total absence is marked here once, not spread across two findings.
Why it matters
Spoken content that exists only as sound is invisible to a reader, human or machine: nothing said in the video can be found, read or quoted.
What we found on this page
1 video(s) on the page with no captions on the video and no written transcript on the page: nothing spoken is available as text in any form
The evidence, taken from the page as served
Each video on the page, as served: its code, source file and caption track

No caption track on the video and no transcript link on the page.

Source file //www.youtube.com/embed/lGb_OF903Xs?si=KNUDS9sRhXGhVFCx  ·  Captions none
<iframe class="hs-responsive-embed-iframe" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border: none;" title="YouTube video player" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" xml="lang" src="//www.youtube.com/embed/lGb_OF903Xs?si=KNUDS9sRhXGhVFCx" width="1310" height="737" data-service="youtube" frameborder=
https://www.eclecticiq.com/the-cyber-threat-intelligence-maturity-path?hsLang=en 50.8% Likely 9 out of 41
CheckResultEvidence
DS17failthe page states no preferred address for itself, so duplicate copies compete to be the one cited
What we check
Each page names one preferred address for itself, its canonical link.
What good looks like
Each page names one preferred address for itself.
Why it matters
With no preferred address stated, duplicate copies compete and the version that ends up cited is arbitrary.
What we found on this page
the page states no preferred address for itself, so duplicate copies compete to be the one cited
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 naming the page's preferred address.

<head> <meta charset="utf-8"/> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, viewport-fit=cover"/> <meta name="referrer" content="origin-when-cross-origin"/> <title>The Cyber Threat Intelligence Maturity Path</title> <meta name="description" content="A CTI Capability Maturity Model for assessing the current CTI maturity of your organization and developing a path to pre-emptive CTI operations."/> <script>loadjs=function(){var l=function(){},c={},f={},u={};function s(e,n){if(e){var t=u[e];if(f[e]=n,t)for(;t.length;)t[0](e,n),t.splice(0,1)}}function o(e,n){e.call&amp;&amp;(e={success:e}),n.length?(e.error||l)(n):(e.success||l)(e)}function h(t,r,i,c){var s,o,e=document,n=i.async,f=(i.numRetries||0)+1,u=i.before||l,a=t.replace(/^(css|img)!/,"");c=c||0,/(^css!|\.css$)/.test(t)?(s=!0,(o=e.createElement("link")).rel="stylesheet",o.href=a):/(^img!|\.(png|gif|jpg|svg)$)/.test(t)?(o=e.createElement("img")).src=a:((o=e.createElement("script")).src=t,o.async=void 0===n||n),!(o.onload=o.onerror=o.onbeforeload=function(e){var n=e.type[0];if(s&amp;&amp;"hideFocus"in o)try{o.sheet.cssText.length||(n="e")}catch(e){n="e"}if("e"==n&amp;&amp;โ€ฆ
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)
H3 Products
H3 Use Cases
H3 Partners
H3 Resources
H3 Company
H1 The Cyber Threat Intelligence (CTI) Maturity Path
H3 1. The Need for a CTI Maturity Model level jumped
H3 2. An Innovative Model for Assessing Current and Desired CTI Maturity
H3 3. Using the Maturity Model: Know What you are Measuring!
H3 4. The Path to Pre-emptive CTI Operations
H3 5. Six Steps to Guide Your CTI Maturity Journey
H3 (no text)
CT16warningthe page carries no structured data block stating what it is (not required; a hygiene signal)
What we check
The page carries structured data, the machine-readable summary of what it describes.
What good looks like
The page carries structured data summarising what it describes.
Why it matters
Vendors document this as optional rather than required, so its absence is a small forfeit and no more.
What we found on this page
the page carries no structured data block stating what it is (not required; a hygiene signal)
The evidence, taken from the page as served
The head of this page, as served

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

<head> <meta charset="utf-8"/> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, viewport-fit=cover"/> <meta name="referrer" content="origin-when-cross-origin"/> <title>The Cyber Threat Intelligence Maturity Path</title> <meta name="description" content="A CTI Capability Maturity Model for assessing the current CTI maturity of your organization and developing a path to pre-emptive CTI operations."/> <script>loadjs=function(){var l=function(){},c={},f={},u={};function s(e,n){if(e){var t=u[e];if(f[e]=n,t)for(;t.length;)t[0](e,n),t.splice(0,1)}}function o(e,n){e.call&amp;&amp;(e={success:e}),n.length?(e.error||l)(n):(e.success||l)(e)}function h(t,r,i,c){var s,o,e=document,n=i.async,f=(i.numRetries||0)+1,u=i.before||l,a=t.replace(/^(css|img)!/,"");c=c||0,/(^css!|\.css$)/.test(t)?(s=!0,(o=e.createElement("link")).rel="stylesheet",o.href=a):/(^img!|\.(png|gif|jpg|svg)$)/.test(t)?(o=e.createElement("img")).src=a:((o=e.createElement("script")).src=t,o.async=void 0===n||n),!(o.onload=o.onerror=o.onbeforeload=function(e){var n=e.type[0];if(s&amp;&amp;"hideFocus"in o)try{o.sheet.cssText.length||(n="e")}catch(e){n="e"}if("e"==n&amp;&amp;โ€ฆ
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 name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, viewport-fit=cover"/> <meta name="referrer" content="origin-when-cross-origin"/> <title>The Cyber Threat Intelligence Maturity Path</title> <meta name="description" content="A CTI Capability Maturity Model for assessing the current CTI maturity of your organization and developing a path to pre-emptive CTI operations."/> <script>loadjs=function(){var l=function(){},c={},f={},u={};function s(e,n){if(e){var t=u[e];if(f[e]=n,t)for(;t.length;)t[0](e,n),t.splice(0,1)}}function o(e,n){e.call&amp;&amp;(e={success:e}),n.length?(e.error||l)(n):(e.success||l)(e)}function h(t,r,i,c){var s,o,e=document,n=i.async,f=(i.numRetries||0)+1,u=i.before||l,a=t.replace(/^(css|img)!/,"");c=c||0,/(^css!|\.css$)/.test(t)?(s=!0,(o=e.createElement("link")).rel="stylesheet",o.href=a):/(^img!|\.(png|gif|jpg|svg)$)/.test(t)?(o=e.createElement("img")).src=a:((o=e.createElement("script")).src=t,o.async=void 0===n||n),!(o.onload=o.onerror=o.onbeforeload=function(e){var n=e.type[0];if(s&amp;&amp;"hideFocus"in o)try{o.sheet.cssText.length||(n="e")}catch(e){n="e"}if("e"==n&amp;&amp;โ€ฆ
CT35warningthe copyright line at the foot of this page states 2024, 2 years behind the year this assessment ran, which reads as a page left unattended and is the usual sign of a template copied from elsewhere
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 copyright line at the foot of this page states 2024, 2 years behind the year this assessment ran, which reads as a page left unattended and is the usual sign of a template copied from elsewhere
The evidence, taken from the page as served
The copyright line as served, and the year it claims
Page ยท opens in a new tabFoundThe text, as served, around the word
www.eclecticiq.com/the-cyber-threat-intelligence-maturity-path?hsLang=en…ยฉ 2024…
AJ05warningno site-search control detected on this page
What we check
Whether a search box for the site is present in the page as it is served.
What good looks like
A search box is present in the served markup, so the site's own content can be queried directly.
Why it matters
With no search box on the page, its links are the only route from here into the rest of the site.
What we found on this page
no site-search control detected on this page
The evidence, taken from the page as served
The head of this page, as served

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

<head> <meta charset="utf-8"/> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, viewport-fit=cover"/> <meta name="referrer" content="origin-when-cross-origin"/> <title>The Cyber Threat Intelligence Maturity Path</title> <meta name="description" content="A CTI Capability Maturity Model for assessing the current CTI maturity of your organization and developing a path to pre-emptive CTI operations."/> <script>loadjs=function(){var l=function(){},c={},f={},u={};function s(e,n){if(e){var t=u[e];if(f[e]=n,t)for(;t.length;)t[0](e,n),t.splice(0,1)}}function o(e,n){e.call&amp;&amp;(e={success:e}),n.length?(e.error||l)(n):(e.success||l)(e)}function h(t,r,i,c){var s,o,e=document,n=i.async,f=(i.numRetries||0)+1,u=i.before||l,a=t.replace(/^(css|img)!/,"");c=c||0,/(^css!|\.css$)/.test(t)?(s=!0,(o=e.createElement("link")).rel="stylesheet",o.href=a):/(^img!|\.(png|gif|jpg|svg)$)/.test(t)?(o=e.createElement("img")).src=a:((o=e.createElement("script")).src=t,o.async=void 0===n||n),!(o.onload=o.onerror=o.onbeforeload=function(e){var n=e.type[0];if(s&amp;&amp;"hideFocus"in o)try{o.sheet.cssText.length||(n="e")}catch(e){n="e"}if("e"==n&amp;&amp;โ€ฆ
MS08fail2 link wording(s) are used for more than one destination, so the same words point at different pages: โ€œbook a demoโ€, โ€œread blogโ€; 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: โ€œbook a demoโ€, โ€œread blogโ€; 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
"Book a demo"
<a href="https://www.eclecticiq.com/book-a-demo" target="_blank" class="relative group inline-flex items-center h-12 px-8 rounded-full font-bold bg-blue text-nav text-white leading-none tracking-wide hover:pr-12 transition-all duration-200"> <span class="flex-none">Book a demo</span> <img class="lazyload absolute -top-โ€ฆ
"Read blog"
<a href="https://www.eclecticiq.com/the-cyber-threat-intelligence-maturity-path/the-need-for-a-cti-maturity-model" class="group inline-flex items-center gap-2 lg:gap-3 max-w-full font-bold text-sm xl:text-base leading-tight tracking-wide font-semibold text-white mt-auto leading-tight"> <span class="sm:flex-none truncatโ€ฆ
"Read blog"
<a href="https://www.eclecticiq.com/the-cyber-threat-intelligence-maturity-path/an-innovative-model-for-assessing-current-and-desired-cti-maturity" class="group inline-flex items-center gap-2 lg:gap-3 max-w-full font-bold text-sm xl:text-base leading-tight tracking-wide font-semibold text-white mt-auto leading-tight"> โ€ฆ
"Read blog"
<a href="https://www.eclecticiq.com/the-cyber-threat-intelligence-maturity-path/using-the-maturity-model-know-what-you-are-measuring" class="group inline-flex items-center gap-2 lg:gap-3 max-w-full font-bold text-sm xl:text-base leading-tight tracking-wide font-semibold text-white mt-auto leading-tight"> <span class="sโ€ฆ
"Read blog"
<a href="https://www.eclecticiq.com/the-cyber-threat-intelligence-maturity-path/the-path-to-pre-emptive-cti-operations" class="group inline-flex items-center gap-2 lg:gap-3 max-w-full font-bold text-sm xl:text-base leading-tight tracking-wide font-semibold text-white mt-auto leading-tight"> <span class="sm:flex-none trโ€ฆ
"Read blog"
<a href="https://www.eclecticiq.com/the-cyber-threat-intelligence-maturity-path/6-steps-to-guide-your-cti-maturity-journey" class="group inline-flex items-center gap-2 lg:gap-3 max-w-full font-bold text-sm xl:text-base leading-tight tracking-wide font-semibold text-white mt-auto leading-tight"> <span class="sm:flex-nonโ€ฆ
"Book a demo"
<a href="" class="relative flex xs:inline-flex justify-center items-center h-12 px-8 rounded-full font-bold bg-blue text-nav text-white leading-none tracking-wide"> <span class="flex-none">Book a demo</span> <img class="lazyload absolute -top-2 right-2 w-4 scale-110" src="https://www.eclecticiq.com/hubfs/raw_assets/pubโ€ฆ
MS10failthe page's first heading is not its top-level heading, so the structure starts part way down; the 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 page's first heading is not its top-level heading, so the structure starts part way down; 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)
H3 Products level jumped
H3 Use Cases
H3 Partners
H3 Resources
H3 Company
H1 The Cyber Threat Intelligence (CTI) Maturity Path
H3 1. The Need for a CTI Maturity Model level jumped
H3 2. An Innovative Model for Assessing Current and Desired CTI Maturity
H3 3. Using the Maturity Model: Know What you are Measuring!
H3 4. The Path to Pre-emptive CTI Operations
H3 5. Six Steps to Guide Your CTI Maturity Journey
H3 (no text)
MS13warning2 of 2 iframes untitled
What we check
Each embedded panel on the page carries a title saying what it contains.
What good looks like
Each embedded panel carries a title saying what it contains.
Why it matters
The embedded region stays unnamed, so what it holds is left unstated in the page around it.
What we found on this page
2 of 2 iframes untitled
The evidence, taken from the page as served
The iframes with no title attribute, as served
src=https://www.googletagmanager.com/ns.html?id=GTM-MC7MVC
<iframe src="https://www.googletagmanager.com/ns.html?id=GTM-MC7MVC" height="0" width="0" style="display:none;visibility:hidden"/>
src=https://www.googletagmanager.com/ns.html?id=GTM-MC7MVC
<iframe src="https://www.googletagmanager.com/ns.html?id=GTM-MC7MVC" height="0" width="0" style="display:none;visibility:hidden"/>
https://www.eclecticiq.com/take-action-with-cti?hsLang=en 50.5% Likely 10 out of 41
CheckResultEvidence
DS17failthe page states no preferred address for itself, so duplicate copies compete to be the one cited
What we check
Each page names one preferred address for itself, its canonical link.
What good looks like
Each page names one preferred address for itself.
Why it matters
With no preferred address stated, duplicate copies compete and the version that ends up cited is arbitrary.
What we found on this page
the page states no preferred address for itself, so duplicate copies compete to be the one cited
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 naming the page's preferred address.

<head> <meta charset="utf-8"/> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, viewport-fit=cover"/> <meta name="referrer" content="origin-when-cross-origin"/> <title>Take Action with CTI</title> <meta name="description" content="Get strategic and technical guidance (e.g., MITRE ATT&amp;CK) to operationalize your threat intelligence and make it actionable. Learn how a threat intelligence platform (TIP) can help your organization become more cyber resilient."/> <meta property="og:image" content="https://www.eclecticiq.com/hubfs/raw_assets/public/rebrand-2024/assets/img/og-eclecticiq.png"/> <script>loadjs=function(){var l=function(){},c={},f={},u={};function s(e,n){if(e){var t=u[e];if(f[e]=n,t)for(;t.length;)t[0](e,n),t.splice(0,1)}}function o(e,n){e.call&amp;&amp;(e={success:e}),n.length?(e.error||l)(n):(e.success||l)(e)}function h(t,r,i,c){var s,o,e=document,n=i.async,f=(i.numRetries||0)+1,u=i.before||l,a=t.replace(/^(css|img)!/,"");c=c||0,/(^css!|\.css$)/.test(t)?(s=!0,(o=e.createElement("link")).rel="stylesheet",o.href=a):/(^img!|\.(png|gif|jpg|svg)$)/.test(t)?(o=e.createElement("img")).src=a:((o=e.createElement("script")โ€ฆ
CT32warninglength 227
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 227
The evidence, taken from the page as served
The page's description, as served
227 characters
<meta name="description" content="Get strategic and technical guidance (e.g., MITRE ATT&amp;CK) to operationalize your threat intelligence and make it actionable. Learn how a threat intelligence platform (TIP) can help your organization become more cyber resilient."/>
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)
H3 Products
H3 Use Cases
H3 Partners
H3 Resources
H3 Company
H1 Take action with CTI
H3 1. Operationalize Your Threat Intelligence in Four Moves level jumped
H3 2. Smarten Up, Open Up, Tighten Up, and Power Up to Make Threat Intelligence Act
H3 3. Three Strategic Steps to a Threat-informed Defense (TiD)
H3 4. How to Use MITRE ATT&CK to Map and Track Adversary TTPs
H3 5. Shifting from What to How with TTPs
H3 6. Three Steps to Aligning CTI, SOC, and IR for Action
H3 7. Achieving Early Warning for Cyber Resilience
H3 8. Three Steps to Early Warning
H3 9. How to Jumpstart High-performance CTI Operations
H3 10. Preventing Your TIP from Becoming a Trash Dump
H3 (no text)
CT16warningthe page carries no structured data block stating what it is (not required; a hygiene signal)
What we check
The page carries structured data, the machine-readable summary of what it describes.
What good looks like
The page carries structured data summarising what it describes.
Why it matters
Vendors document this as optional rather than required, so its absence is a small forfeit and no more.
What we found on this page
the page carries no structured data block stating what it is (not required; a hygiene signal)
The evidence, taken from the page as served
The head of this page, as served

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

<head> <meta charset="utf-8"/> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, viewport-fit=cover"/> <meta name="referrer" content="origin-when-cross-origin"/> <title>Take Action with CTI</title> <meta name="description" content="Get strategic and technical guidance (e.g., MITRE ATT&amp;CK) to operationalize your threat intelligence and make it actionable. Learn how a threat intelligence platform (TIP) can help your organization become more cyber resilient."/> <meta property="og:image" content="https://www.eclecticiq.com/hubfs/raw_assets/public/rebrand-2024/assets/img/og-eclecticiq.png"/> <script>loadjs=function(){var l=function(){},c={},f={},u={};function s(e,n){if(e){var t=u[e];if(f[e]=n,t)for(;t.length;)t[0](e,n),t.splice(0,1)}}function o(e,n){e.call&amp;&amp;(e={success:e}),n.length?(e.error||l)(n):(e.success||l)(e)}function h(t,r,i,c){var s,o,e=document,n=i.async,f=(i.numRetries||0)+1,u=i.before||l,a=t.replace(/^(css|img)!/,"");c=c||0,/(^css!|\.css$)/.test(t)?(s=!0,(o=e.createElement("link")).rel="stylesheet",o.href=a):/(^img!|\.(png|gif|jpg|svg)$)/.test(t)?(o=e.createElement("img")).src=a:((o=e.createElement("script")โ€ฆ
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 name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, viewport-fit=cover"/> <meta name="referrer" content="origin-when-cross-origin"/> <title>Take Action with CTI</title> <meta name="description" content="Get strategic and technical guidance (e.g., MITRE ATT&amp;CK) to operationalize your threat intelligence and make it actionable. Learn how a threat intelligence platform (TIP) can help your organization become more cyber resilient."/> <meta property="og:image" content="https://www.eclecticiq.com/hubfs/raw_assets/public/rebrand-2024/assets/img/og-eclecticiq.png"/> <script>loadjs=function(){var l=function(){},c={},f={},u={};function s(e,n){if(e){var t=u[e];if(f[e]=n,t)for(;t.length;)t[0](e,n),t.splice(0,1)}}function o(e,n){e.call&amp;&amp;(e={success:e}),n.length?(e.error||l)(n):(e.success||l)(e)}function h(t,r,i,c){var s,o,e=document,n=i.async,f=(i.numRetries||0)+1,u=i.before||l,a=t.replace(/^(css|img)!/,"");c=c||0,/(^css!|\.css$)/.test(t)?(s=!0,(o=e.createElement("link")).rel="stylesheet",o.href=a):/(^img!|\.(png|gif|jpg|svg)$)/.test(t)?(o=e.createElement("img")).src=a:((o=e.createElement("script")โ€ฆ
CT35warningthe copyright line at the foot of this page states 2024, 2 years behind the year this assessment ran, which reads as a page left unattended and is the usual sign of a template copied from elsewhere
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 copyright line at the foot of this page states 2024, 2 years behind the year this assessment ran, which reads as a page left unattended and is the usual sign of a template copied from elsewhere
The evidence, taken from the page as served
The copyright line as served, and the year it claims
Page ยท opens in a new tabFoundThe text, as served, around the word
www.eclecticiq.com/take-action-with-cti?hsLang=en…ยฉ 2024…
AJ05warningno site-search control detected on this page
What we check
Whether a search box for the site is present in the page as it is served.
What good looks like
A search box is present in the served markup, so the site's own content can be queried directly.
Why it matters
With no search box on the page, its links are the only route from here into the rest of the site.
What we found on this page
no site-search control detected on this page
The evidence, taken from the page as served
The head of this page, as served

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

<head> <meta charset="utf-8"/> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, viewport-fit=cover"/> <meta name="referrer" content="origin-when-cross-origin"/> <title>Take Action with CTI</title> <meta name="description" content="Get strategic and technical guidance (e.g., MITRE ATT&amp;CK) to operationalize your threat intelligence and make it actionable. Learn how a threat intelligence platform (TIP) can help your organization become more cyber resilient."/> <meta property="og:image" content="https://www.eclecticiq.com/hubfs/raw_assets/public/rebrand-2024/assets/img/og-eclecticiq.png"/> <script>loadjs=function(){var l=function(){},c={},f={},u={};function s(e,n){if(e){var t=u[e];if(f[e]=n,t)for(;t.length;)t[0](e,n),t.splice(0,1)}}function o(e,n){e.call&amp;&amp;(e={success:e}),n.length?(e.error||l)(n):(e.success||l)(e)}function h(t,r,i,c){var s,o,e=document,n=i.async,f=(i.numRetries||0)+1,u=i.before||l,a=t.replace(/^(css|img)!/,"");c=c||0,/(^css!|\.css$)/.test(t)?(s=!0,(o=e.createElement("link")).rel="stylesheet",o.href=a):/(^img!|\.(png|gif|jpg|svg)$)/.test(t)?(o=e.createElement("img")).src=a:((o=e.createElement("script")โ€ฆ
MS08fail2 link wording(s) are used for more than one destination, so the same words point at different pages: โ€œbook a demoโ€, โ€œread blogโ€; 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: โ€œbook a demoโ€, โ€œread blogโ€; 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
"Book a demo"
<a href="https://www.eclecticiq.com/book-a-demo" target="_blank" class="relative group inline-flex items-center h-12 px-8 rounded-full font-bold bg-blue text-nav text-white leading-none tracking-wide hover:pr-12 transition-all duration-200"> <span class="flex-none">Book a demo</span> <img class="lazyload absolute -top-โ€ฆ
"Read blog"
<a href="https://www.eclecticiq.com/take-action-with-cti/operationalize-your-threat-intelligence-in-four-moves" class="group inline-flex items-center gap-2 lg:gap-3 max-w-full font-bold text-sm xl:text-base leading-tight tracking-wide font-semibold text-white mt-auto leading-tight"> <span class="sm:flex-none truncate">โ€ฆ
"Read blog"
<a href="https://www.eclecticiq.com/take-action-with-cti/smarten-up-open-up-tighten-up-and-power-up-to-make-threat-intelligence-actionable" class="group inline-flex items-center gap-2 lg:gap-3 max-w-full font-bold text-sm xl:text-base leading-tight tracking-wide font-semibold text-white mt-auto leading-tight"> <span clโ€ฆ
"Read blog"
<a href="https://www.eclecticiq.com/take-action-with-cti/three-strategic-steps-to-a-threat-informed-defense-tid" class="group inline-flex items-center gap-2 lg:gap-3 max-w-full font-bold text-sm xl:text-base leading-tight tracking-wide font-semibold text-white mt-auto leading-tight"> <span class="sm:flex-none truncate"โ€ฆ
"Read blog"
<a href="https://www.eclecticiq.com/take-action-with-cti/how-to-use-mitre-attck-to-map-and-track-adversary-ttps" class="group inline-flex items-center gap-2 lg:gap-3 max-w-full font-bold text-sm xl:text-base leading-tight tracking-wide font-semibold text-white mt-auto leading-tight"> <span class="sm:flex-none truncate"โ€ฆ
"Read blog"
<a href="https://www.eclecticiq.com/take-action-with-cti/shifting-from-what-to-how-with-ttps" class="group inline-flex items-center gap-2 lg:gap-3 max-w-full font-bold text-sm xl:text-base leading-tight tracking-wide font-semibold text-white mt-auto leading-tight"> <span class="sm:flex-none truncate">Read blog</span> <โ€ฆ
"Read blog"
<a href="https://www.eclecticiq.com/take-action-with-cti/three-steps-to-aligning-cti-soc-and-ir-for-action" class="group inline-flex items-center gap-2 lg:gap-3 max-w-full font-bold text-sm xl:text-base leading-tight tracking-wide font-semibold text-white mt-auto leading-tight"> <span class="sm:flex-none truncate">Readโ€ฆ
"Read blog"
<a href="https://www.eclecticiq.com/take-action-with-cti/achieving-early-warning-for-cyber-resilience" class="group inline-flex items-center gap-2 lg:gap-3 max-w-full font-bold text-sm xl:text-base leading-tight tracking-wide font-semibold text-white mt-auto leading-tight"> <span class="sm:flex-none truncate">Read blogโ€ฆ
"Read blog"
<a href="https://www.eclecticiq.com/take-action-with-cti/three-steps-to-early-warning" class="group inline-flex items-center gap-2 lg:gap-3 max-w-full font-bold text-sm xl:text-base leading-tight tracking-wide font-semibold text-white mt-auto leading-tight"> <span class="sm:flex-none truncate">Read blog</span> <svg xmlโ€ฆ
"Read blog"
<a href="https://www.eclecticiq.com/take-action-with-cti/how-to-jumpstart-high-performance-cti-operations" class="group inline-flex items-center gap-2 lg:gap-3 max-w-full font-bold text-sm xl:text-base leading-tight tracking-wide font-semibold text-white mt-auto leading-tight"> <span class="sm:flex-none truncate">Read โ€ฆ
MS10failthe page's first heading is not its top-level heading, so the structure starts part way down; the 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 page's first heading is not its top-level heading, so the structure starts part way down; 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)
H3 Products level jumped
H3 Use Cases
H3 Partners
H3 Resources
H3 Company
H1 Take action with CTI
H3 1. Operationalize Your Threat Intelligence in Four Moves level jumped
H3 2. Smarten Up, Open Up, Tighten Up, and Power Up to Make Threat Intelligence Act
H3 3. Three Strategic Steps to a Threat-informed Defense (TiD)
H3 4. How to Use MITRE ATT&CK to Map and Track Adversary TTPs
H3 5. Shifting from What to How with TTPs
H3 6. Three Steps to Aligning CTI, SOC, and IR for Action
H3 7. Achieving Early Warning for Cyber Resilience
H3 8. Three Steps to Early Warning
H3 9. How to Jumpstart High-performance CTI Operations
H3 10. Preventing Your TIP from Becoming a Trash Dump
H3 (no text)
MS13warning2 of 2 iframes untitled
What we check
Each embedded panel on the page carries a title saying what it contains.
What good looks like
Each embedded panel carries a title saying what it contains.
Why it matters
The embedded region stays unnamed, so what it holds is left unstated in the page around it.
What we found on this page
2 of 2 iframes untitled
The evidence, taken from the page as served
The iframes with no title attribute, as served
src=https://www.googletagmanager.com/ns.html?id=GTM-MC7MVC
<iframe src="https://www.googletagmanager.com/ns.html?id=GTM-MC7MVC" height="0" width="0" style="display:none;visibility:hidden"/>
src=https://www.googletagmanager.com/ns.html?id=GTM-MC7MVC
<iframe src="https://www.googletagmanager.com/ns.html?id=GTM-MC7MVC" height="0" width="0" style="display:none;visibility:hidden"/>
https://www.eclecticiq.com/open-source?hsLang=en 54.3% Likely 8 out of 42
CheckResultEvidence
CT32warninglength 183
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 183
The evidence, taken from the page as served
The page's description, as served
183 characters
<meta name="description" content="Explore EclecticIQ's commitment to the cybersecurity community with over 50 open source projects, including Cabby and OpenTAXII. Join us in advancing threat intelligence capabilities."/>
CT16warningthe page carries no structured data block stating what it is (not required; a hygiene signal)
What we check
The page carries structured data, the machine-readable summary of what it describes.
What good looks like
The page carries structured data summarising what it describes.
Why it matters
Vendors document this as optional rather than required, so its absence is a small forfeit and no more.
What we found on this page
the page carries no structured data block stating what it is (not required; a hygiene signal)
The evidence, taken from the page as served
The head of this page, as served

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

<head> <meta charset="utf-8"/> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, viewport-fit=cover"/> <meta name="referrer" content="origin-when-cross-origin"/> <title>Open Source Projects</title> <meta name="description" content="Explore EclecticIQ's commitment to the cybersecurity community with over 50 open source projects, including Cabby and OpenTAXII. Join us in advancing threat intelligence capabilities."/> <meta property="og:image" content="https://www.eclecticiq.com/hubfs/raw_assets/public/rebrand-2024/assets/img/og-eclecticiq.png"/> <script>loadjs=function(){var l=function(){},c={},f={},u={};function s(e,n){if(e){var t=u[e];if(f[e]=n,t)for(;t.length;)t[0](e,n),t.splice(0,1)}}function o(e,n){e.call&amp;&amp;(e={success:e}),n.length?(e.error||l)(n):(e.success||l)(e)}function h(t,r,i,c){var s,o,e=document,n=i.async,f=(i.numRetries||0)+1,u=i.before||l,a=t.replace(/^(css|img)!/,"");c=c||0,/(^css!|\.css$)/.test(t)?(s=!0,(o=e.createElement("link")).rel="stylesheet",o.href=a):/(^img!|\.(png|gif|jpg|svg)$)/.test(t)?(o=e.createElement("img")).src=a:((o=e.createElement("script")).src=t,o.async=void 0===n||n),!(o.onload=o.onerโ€ฆ
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 name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, viewport-fit=cover"/> <meta name="referrer" content="origin-when-cross-origin"/> <title>Open Source Projects</title> <meta name="description" content="Explore EclecticIQ's commitment to the cybersecurity community with over 50 open source projects, including Cabby and OpenTAXII. Join us in advancing threat intelligence capabilities."/> <meta property="og:image" content="https://www.eclecticiq.com/hubfs/raw_assets/public/rebrand-2024/assets/img/og-eclecticiq.png"/> <script>loadjs=function(){var l=function(){},c={},f={},u={};function s(e,n){if(e){var t=u[e];if(f[e]=n,t)for(;t.length;)t[0](e,n),t.splice(0,1)}}function o(e,n){e.call&amp;&amp;(e={success:e}),n.length?(e.error||l)(n):(e.success||l)(e)}function h(t,r,i,c){var s,o,e=document,n=i.async,f=(i.numRetries||0)+1,u=i.before||l,a=t.replace(/^(css|img)!/,"");c=c||0,/(^css!|\.css$)/.test(t)?(s=!0,(o=e.createElement("link")).rel="stylesheet",o.href=a):/(^img!|\.(png|gif|jpg|svg)$)/.test(t)?(o=e.createElement("img")).src=a:((o=e.createElement("script")).src=t,o.async=void 0===n||n),!(o.onload=o.onerโ€ฆ
CT35warningthe copyright line at the foot of this page states 2024, 2 years behind the year this assessment ran, which reads as a page left unattended and is the usual sign of a template copied from elsewhere
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 copyright line at the foot of this page states 2024, 2 years behind the year this assessment ran, which reads as a page left unattended and is the usual sign of a template copied from elsewhere
The evidence, taken from the page as served
The copyright line as served, and the year it claims
Page ยท opens in a new tabFoundThe text, as served, around the word
www.eclecticiq.com/open-source?hsLang=en…ยฉ 2024…
AJ05warningno site-search control detected on this page
What we check
Whether a search box for the site is present in the page as it is served.
What good looks like
A search box is present in the served markup, so the site's own content can be queried directly.
Why it matters
With no search box on the page, its links are the only route from here into the rest of the site.
What we found on this page
no site-search control detected on this page
The evidence, taken from the page as served
The head of this page, as served

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

<head> <meta charset="utf-8"/> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, viewport-fit=cover"/> <meta name="referrer" content="origin-when-cross-origin"/> <title>Open Source Projects</title> <meta name="description" content="Explore EclecticIQ's commitment to the cybersecurity community with over 50 open source projects, including Cabby and OpenTAXII. Join us in advancing threat intelligence capabilities."/> <meta property="og:image" content="https://www.eclecticiq.com/hubfs/raw_assets/public/rebrand-2024/assets/img/og-eclecticiq.png"/> <script>loadjs=function(){var l=function(){},c={},f={},u={};function s(e,n){if(e){var t=u[e];if(f[e]=n,t)for(;t.length;)t[0](e,n),t.splice(0,1)}}function o(e,n){e.call&amp;&amp;(e={success:e}),n.length?(e.error||l)(n):(e.success||l)(e)}function h(t,r,i,c){var s,o,e=document,n=i.async,f=(i.numRetries||0)+1,u=i.before||l,a=t.replace(/^(css|img)!/,"");c=c||0,/(^css!|\.css$)/.test(t)?(s=!0,(o=e.createElement("link")).rel="stylesheet",o.href=a):/(^img!|\.(png|gif|jpg|svg)$)/.test(t)?(o=e.createElement("img")).src=a:((o=e.createElement("script")).src=t,o.async=void 0===n||n),!(o.onload=o.onerโ€ฆ
MS08fail1 link wording(s) are used for more than one destination, so the same words point at different pages: โ€œbook a demoโ€; 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: โ€œbook a demoโ€; 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
"Book a demo"
<a href="https://www.eclecticiq.com/book-a-demo?hsLang=en" target="_blank" class="relative group inline-flex items-center h-12 px-8 rounded-full font-bold bg-blue text-nav text-white leading-none tracking-wide hover:pr-12 transition-all duration-200"> <span class="flex-none">Book a demo</span> <img class="lazyload absoโ€ฆ
"Book a demo"
<a href="" class="relative flex xs:inline-flex justify-center items-center h-12 px-8 rounded-full font-bold bg-blue text-nav text-white leading-none tracking-wide"> <span class="flex-none">Book a demo</span> <img class="lazyload absolute -top-2 right-2 w-4 scale-110" src="https://www.eclecticiq.com/hubfs/raw_assets/pubโ€ฆ
MS10failthe page's first heading is not its top-level heading, so the structure starts part way down
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 page's first heading is not its top-level heading, so the structure starts part way down
The evidence, taken from the page as served
The page's heading outline, in document order (a jump in level is marked)
H3 Products level jumped
H3 Use Cases
H3 Partners
H3 Resources
H3 Company
H1 Open Source Projects
H2 Featured projects
H3 Cabby
H3 OpenTAXII
H2 EclecticIQ add-ons
H3 (no text)
MS13warning2 of 2 iframes untitled
What we check
Each embedded panel on the page carries a title saying what it contains.
What good looks like
Each embedded panel carries a title saying what it contains.
Why it matters
The embedded region stays unnamed, so what it holds is left unstated in the page around it.
What we found on this page
2 of 2 iframes untitled
The evidence, taken from the page as served
The iframes with no title attribute, as served
src=https://www.googletagmanager.com/ns.html?id=GTM-MC7MVC
<iframe src="https://www.googletagmanager.com/ns.html?id=GTM-MC7MVC" height="0" width="0" style="display:none;visibility:hidden"/>
src=https://www.googletagmanager.com/ns.html?id=GTM-MC7MVC
<iframe src="https://www.googletagmanager.com/ns.html?id=GTM-MC7MVC" height="0" width="0" style="display:none;visibility:hidden"/>
https://www.eclecticiq.com/projects?hsLang=en 50.8% Likely 9 out of 41
CheckResultEvidence
DS17failthe page states no preferred address for itself, so duplicate copies compete to be the one cited
What we check
Each page names one preferred address for itself, its canonical link.
What good looks like
Each page names one preferred address for itself.
Why it matters
With no preferred address stated, duplicate copies compete and the version that ends up cited is arbitrary.
What we found on this page
the page states no preferred address for itself, so duplicate copies compete to be the one cited
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 naming the page's preferred address.

<head> <meta charset="utf-8"/> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, viewport-fit=cover"/> <meta name="referrer" content="origin-when-cross-origin"/> <title>European Initiatives</title> <meta name="description" content="Special projects in collaboration with the wider cybersecurity community"/> <meta property="og:image" content="https://www.eclecticiq.com/hubfs/raw_assets/public/rebrand-2024/assets/img/og-eclecticiq.png"/> <script>loadjs=function(){var l=function(){},c={},f={},u={};function s(e,n){if(e){var t=u[e];if(f[e]=n,t)for(;t.length;)t[0](e,n),t.splice(0,1)}}function o(e,n){e.call&amp;&amp;(e={success:e}),n.length?(e.error||l)(n):(e.success||l)(e)}function h(t,r,i,c){var s,o,e=document,n=i.async,f=(i.numRetries||0)+1,u=i.before||l,a=t.replace(/^(css|img)!/,"");c=c||0,/(^css!|\.css$)/.test(t)?(s=!0,(o=e.createElement("link")).rel="stylesheet",o.href=a):/(^img!|\.(png|gif|jpg|svg)$)/.test(t)?(o=e.createElement("img")).src=a:((o=e.createElement("script")).src=t,o.async=void 0===n||n),!(o.onload=o.onerror=o.onbeforeload=function(e){var n=e.type[0];if(s&amp;&amp;"hideFocus"in o)try{o.sheet.cssText.length||(n="e"โ€ฆ
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)
H3 Products
H3 Use Cases
H3 Partners
H3 Resources
H3 Company
H1 European Initiatives
H3 1. AI-led Cyber Threat Intelligence (CTI) for Security Operations Centers and Na level jumped
H3 2. EclecticIQ partners with NATO CCDCOE to strengthen European maritime port inf
H3 3. CTI-AI: Advancing Cyber Threat Intelligence with Artificial Intelligence
H3 (no text)
CT16warningthe page carries no structured data block stating what it is (not required; a hygiene signal)
What we check
The page carries structured data, the machine-readable summary of what it describes.
What good looks like
The page carries structured data summarising what it describes.
Why it matters
Vendors document this as optional rather than required, so its absence is a small forfeit and no more.
What we found on this page
the page carries no structured data block stating what it is (not required; a hygiene signal)
The evidence, taken from the page as served
The head of this page, as served

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

<head> <meta charset="utf-8"/> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, viewport-fit=cover"/> <meta name="referrer" content="origin-when-cross-origin"/> <title>European Initiatives</title> <meta name="description" content="Special projects in collaboration with the wider cybersecurity community"/> <meta property="og:image" content="https://www.eclecticiq.com/hubfs/raw_assets/public/rebrand-2024/assets/img/og-eclecticiq.png"/> <script>loadjs=function(){var l=function(){},c={},f={},u={};function s(e,n){if(e){var t=u[e];if(f[e]=n,t)for(;t.length;)t[0](e,n),t.splice(0,1)}}function o(e,n){e.call&amp;&amp;(e={success:e}),n.length?(e.error||l)(n):(e.success||l)(e)}function h(t,r,i,c){var s,o,e=document,n=i.async,f=(i.numRetries||0)+1,u=i.before||l,a=t.replace(/^(css|img)!/,"");c=c||0,/(^css!|\.css$)/.test(t)?(s=!0,(o=e.createElement("link")).rel="stylesheet",o.href=a):/(^img!|\.(png|gif|jpg|svg)$)/.test(t)?(o=e.createElement("img")).src=a:((o=e.createElement("script")).src=t,o.async=void 0===n||n),!(o.onload=o.onerror=o.onbeforeload=function(e){var n=e.type[0];if(s&amp;&amp;"hideFocus"in o)try{o.sheet.cssText.length||(n="e"โ€ฆ
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 name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, viewport-fit=cover"/> <meta name="referrer" content="origin-when-cross-origin"/> <title>European Initiatives</title> <meta name="description" content="Special projects in collaboration with the wider cybersecurity community"/> <meta property="og:image" content="https://www.eclecticiq.com/hubfs/raw_assets/public/rebrand-2024/assets/img/og-eclecticiq.png"/> <script>loadjs=function(){var l=function(){},c={},f={},u={};function s(e,n){if(e){var t=u[e];if(f[e]=n,t)for(;t.length;)t[0](e,n),t.splice(0,1)}}function o(e,n){e.call&amp;&amp;(e={success:e}),n.length?(e.error||l)(n):(e.success||l)(e)}function h(t,r,i,c){var s,o,e=document,n=i.async,f=(i.numRetries||0)+1,u=i.before||l,a=t.replace(/^(css|img)!/,"");c=c||0,/(^css!|\.css$)/.test(t)?(s=!0,(o=e.createElement("link")).rel="stylesheet",o.href=a):/(^img!|\.(png|gif|jpg|svg)$)/.test(t)?(o=e.createElement("img")).src=a:((o=e.createElement("script")).src=t,o.async=void 0===n||n),!(o.onload=o.onerror=o.onbeforeload=function(e){var n=e.type[0];if(s&amp;&amp;"hideFocus"in o)try{o.sheet.cssText.length||(n="e"โ€ฆ
CT35warningthe copyright line at the foot of this page states 2024, 2 years behind the year this assessment ran, which reads as a page left unattended and is the usual sign of a template copied from elsewhere
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 copyright line at the foot of this page states 2024, 2 years behind the year this assessment ran, which reads as a page left unattended and is the usual sign of a template copied from elsewhere
The evidence, taken from the page as served
The copyright line as served, and the year it claims
Page ยท opens in a new tabFoundThe text, as served, around the word
www.eclecticiq.com/projects?hsLang=en…ยฉ 2024…
AJ05warningno site-search control detected on this page
What we check
Whether a search box for the site is present in the page as it is served.
What good looks like
A search box is present in the served markup, so the site's own content can be queried directly.
Why it matters
With no search box on the page, its links are the only route from here into the rest of the site.
What we found on this page
no site-search control detected on this page
The evidence, taken from the page as served
The head of this page, as served

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

<head> <meta charset="utf-8"/> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, viewport-fit=cover"/> <meta name="referrer" content="origin-when-cross-origin"/> <title>European Initiatives</title> <meta name="description" content="Special projects in collaboration with the wider cybersecurity community"/> <meta property="og:image" content="https://www.eclecticiq.com/hubfs/raw_assets/public/rebrand-2024/assets/img/og-eclecticiq.png"/> <script>loadjs=function(){var l=function(){},c={},f={},u={};function s(e,n){if(e){var t=u[e];if(f[e]=n,t)for(;t.length;)t[0](e,n),t.splice(0,1)}}function o(e,n){e.call&amp;&amp;(e={success:e}),n.length?(e.error||l)(n):(e.success||l)(e)}function h(t,r,i,c){var s,o,e=document,n=i.async,f=(i.numRetries||0)+1,u=i.before||l,a=t.replace(/^(css|img)!/,"");c=c||0,/(^css!|\.css$)/.test(t)?(s=!0,(o=e.createElement("link")).rel="stylesheet",o.href=a):/(^img!|\.(png|gif|jpg|svg)$)/.test(t)?(o=e.createElement("img")).src=a:((o=e.createElement("script")).src=t,o.async=void 0===n||n),!(o.onload=o.onerror=o.onbeforeload=function(e){var n=e.type[0];if(s&amp;&amp;"hideFocus"in o)try{o.sheet.cssText.length||(n="e"โ€ฆ
MS08fail2 link wording(s) are used for more than one destination, so the same words point at different pages: โ€œbook a demoโ€, โ€œread blogโ€; 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: โ€œbook a demoโ€, โ€œread blogโ€; 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
"Book a demo"
<a href="https://www.eclecticiq.com/book-a-demo" target="_blank" class="relative group inline-flex items-center h-12 px-8 rounded-full font-bold bg-blue text-nav text-white leading-none tracking-wide hover:pr-12 transition-all duration-200"> <span class="flex-none">Book a demo</span> <img class="lazyload absolute -top-โ€ฆ
"Read blog"
<a href="https://www.eclecticiq.com/projects/cti-ai" class="group inline-flex items-center gap-2 lg:gap-3 max-w-full font-bold text-sm xl:text-base leading-tight tracking-wide font-semibold text-white mt-auto leading-tight"> <span class="sm:flex-none truncate">Read blog</span> <svg xmlns="http://www.w3.org/2000/svg" viโ€ฆ
"Read blog"
<a href="https://www.eclecticiq.com/projects/landmark-nato-ccdcoe-policy-brief-shows-cross-sector-collaboration-delivers-actionable-intelligence-for-maritime-port-infrastructure-security" class="group inline-flex items-center gap-2 lg:gap-3 max-w-full font-bold text-sm xl:text-base leading-tight tracking-wide font-semiโ€ฆ
"Read blog"
<a href="https://www.eclecticiq.com/projects/cti-ai-advancing-cyber-threat-intelligence-with-artificial-intelligence" class="group inline-flex items-center gap-2 lg:gap-3 max-w-full font-bold text-sm xl:text-base leading-tight tracking-wide font-semibold text-white mt-auto leading-tight"> <span class="sm:flex-none trunโ€ฆ
"Book a demo"
<a href="" class="relative flex xs:inline-flex justify-center items-center h-12 px-8 rounded-full font-bold bg-blue text-nav text-white leading-none tracking-wide"> <span class="flex-none">Book a demo</span> <img class="lazyload absolute -top-2 right-2 w-4 scale-110" src="https://www.eclecticiq.com/hubfs/raw_assets/pubโ€ฆ
MS10failthe page's first heading is not its top-level heading, so the structure starts part way down; the 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 page's first heading is not its top-level heading, so the structure starts part way down; 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)
H3 Products level jumped
H3 Use Cases
H3 Partners
H3 Resources
H3 Company
H1 European Initiatives
H3 1. AI-led Cyber Threat Intelligence (CTI) for Security Operations Centers and Na level jumped
H3 2. EclecticIQ partners with NATO CCDCOE to strengthen European maritime port inf
H3 3. CTI-AI: Advancing Cyber Threat Intelligence with Artificial Intelligence
H3 (no text)
MS13warning2 of 2 iframes untitled
What we check
Each embedded panel on the page carries a title saying what it contains.
What good looks like
Each embedded panel carries a title saying what it contains.
Why it matters
The embedded region stays unnamed, so what it holds is left unstated in the page around it.
What we found on this page
2 of 2 iframes untitled
The evidence, taken from the page as served
The iframes with no title attribute, as served
src=https://www.googletagmanager.com/ns.html?id=GTM-MC7MVC
<iframe src="https://www.googletagmanager.com/ns.html?id=GTM-MC7MVC" height="0" width="0" style="display:none;visibility:hidden"/>
src=https://www.googletagmanager.com/ns.html?id=GTM-MC7MVC
<iframe src="https://www.googletagmanager.com/ns.html?id=GTM-MC7MVC" height="0" width="0" style="display:none;visibility:hidden"/>
https://www.eclecticiq.com/defense-tip?hsLang=en 52.8% Likely 9 out of 42
CheckResultEvidence
CT32warninglength 326
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 326
The evidence, taken from the page as served
The page's description, as served
326 characters
<meta name="description" content="Doctrine-aligned threat intelligence ready for national defense missions&#10;Built into EclecticIQ Intelligence Center, the Defense TIP aligns cyber threat intelligence with NATO and U.S. military doctrine, so teams can deliver trusted, interoperable outputs at operational tempo, withoโ€ฆ
CT16warningthe page carries no structured data block stating what it is (not required; a hygiene signal)
What we check
The page carries structured data, the machine-readable summary of what it describes.
What good looks like
The page carries structured data summarising what it describes.
Why it matters
Vendors document this as optional rather than required, so its absence is a small forfeit and no more.
What we found on this page
the page carries no structured data block stating what it is (not required; a hygiene signal)
The evidence, taken from the page as served
The head of this page, as served

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

<head> <meta charset="utf-8"/> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, viewport-fit=cover"/> <meta name="referrer" content="origin-when-cross-origin"/> <title>Defense TIP</title> <meta name="description" content="Doctrine-aligned threat intelligence ready for national defense missions&#10;Built into EclecticIQ Intelligence Center, the Defense TIP aligns cyber threat intelligence with NATO and U.S. military doctrine, so teams can deliver trusted, interoperable outputs at operational tempo, without translating, reformatting, or retraining."/> <script>loadjs=function(){var l=function(){},c={},f={},u={};function s(e,n){if(e){var t=u[e];if(f[e]=n,t)for(;t.length;)t[0](e,n),t.splice(0,1)}}function o(e,n){e.call&amp;&amp;(e={success:e}),n.length?(e.error||l)(n):(e.success||l)(e)}function h(t,r,i,c){var s,o,e=document,n=i.async,f=(i.numRetries||0)+1,u=i.before||l,a=t.replace(/^(css|img)!/,"");c=c||0,/(^css!|\.css$)/.test(t)?(s=!0,(o=e.createElement("link")).rel="stylesheet",o.href=a):/(^img!|\.(png|gif|jpg|svg)$)/.test(t)?(o=e.createElement("img")).src=a:((o=e.createElement("script")).src=t,o.async=void 0===n||n),!(o.onloadโ€ฆ
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 name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, viewport-fit=cover"/> <meta name="referrer" content="origin-when-cross-origin"/> <title>Defense TIP</title> <meta name="description" content="Doctrine-aligned threat intelligence ready for national defense missions&#10;Built into EclecticIQ Intelligence Center, the Defense TIP aligns cyber threat intelligence with NATO and U.S. military doctrine, so teams can deliver trusted, interoperable outputs at operational tempo, without translating, reformatting, or retraining."/> <script>loadjs=function(){var l=function(){},c={},f={},u={};function s(e,n){if(e){var t=u[e];if(f[e]=n,t)for(;t.length;)t[0](e,n),t.splice(0,1)}}function o(e,n){e.call&amp;&amp;(e={success:e}),n.length?(e.error||l)(n):(e.success||l)(e)}function h(t,r,i,c){var s,o,e=document,n=i.async,f=(i.numRetries||0)+1,u=i.before||l,a=t.replace(/^(css|img)!/,"");c=c||0,/(^css!|\.css$)/.test(t)?(s=!0,(o=e.createElement("link")).rel="stylesheet",o.href=a):/(^img!|\.(png|gif|jpg|svg)$)/.test(t)?(o=e.createElement("img")).src=a:((o=e.createElement("script")).src=t,o.async=void 0===n||n),!(o.onloadโ€ฆ
CT35warningthe copyright line at the foot of this page states 2024, 2 years behind the year this assessment ran, which reads as a page left unattended and is the usual sign of a template copied from elsewhere
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 copyright line at the foot of this page states 2024, 2 years behind the year this assessment ran, which reads as a page left unattended and is the usual sign of a template copied from elsewhere
The evidence, taken from the page as served
The copyright line as served, and the year it claims
Page ยท opens in a new tabFoundThe text, as served, around the word
www.eclecticiq.com/defense-tip?hsLang=en…ยฉ 2024…
AJ05warningno site-search control detected on this page
What we check
Whether a search box for the site is present in the page as it is served.
What good looks like
A search box is present in the served markup, so the site's own content can be queried directly.
Why it matters
With no search box on the page, its links are the only route from here into the rest of the site.
What we found on this page
no site-search control detected on this page
The evidence, taken from the page as served
The head of this page, as served

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

<head> <meta charset="utf-8"/> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, viewport-fit=cover"/> <meta name="referrer" content="origin-when-cross-origin"/> <title>Defense TIP</title> <meta name="description" content="Doctrine-aligned threat intelligence ready for national defense missions&#10;Built into EclecticIQ Intelligence Center, the Defense TIP aligns cyber threat intelligence with NATO and U.S. military doctrine, so teams can deliver trusted, interoperable outputs at operational tempo, without translating, reformatting, or retraining."/> <script>loadjs=function(){var l=function(){},c={},f={},u={};function s(e,n){if(e){var t=u[e];if(f[e]=n,t)for(;t.length;)t[0](e,n),t.splice(0,1)}}function o(e,n){e.call&amp;&amp;(e={success:e}),n.length?(e.error||l)(n):(e.success||l)(e)}function h(t,r,i,c){var s,o,e=document,n=i.async,f=(i.numRetries||0)+1,u=i.before||l,a=t.replace(/^(css|img)!/,"");c=c||0,/(^css!|\.css$)/.test(t)?(s=!0,(o=e.createElement("link")).rel="stylesheet",o.href=a):/(^img!|\.(png|gif|jpg|svg)$)/.test(t)?(o=e.createElement("img")).src=a:((o=e.createElement("script")).src=t,o.async=void 0===n||n),!(o.onloadโ€ฆ
MS08fail1 link wording(s) are used for more than one destination, so the same words point at different pages: โ€œbook a demoโ€; 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: โ€œbook a demoโ€; 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
"Book a demo"
<a href="https://www.eclecticiq.com/book-a-demo?hsLang=en" target="_blank" class="relative group inline-flex items-center h-12 px-8 rounded-full font-bold bg-blue text-nav text-white leading-none tracking-wide hover:pr-12 transition-all duration-200"> <span class="flex-none">Book a demo</span> <img class="lazyload absoโ€ฆ
"Book a demo"
<a href="https://www.eclecticiq.com/book-a-demo?hsLang=en" class="group inline-flex items-center gap-2 lg:gap-3 max-w-full font-bold text-sm xl:text-base leading-tight tracking-wide h-11 xl:h-12 px-6 xl:px-7 rounded-full transition-all duration-200 bg-white text-blue mt-8 lg:mt-12"> <span class="sm:flex-none truncate">โ€ฆ
"Book a demo"
<a href="" class="relative flex xs:inline-flex justify-center items-center h-12 px-8 rounded-full font-bold bg-blue text-nav text-white leading-none tracking-wide"> <span class="flex-none">Book a demo</span> <img class="lazyload absolute -top-2 right-2 w-4 scale-110" src="https://www.eclecticiq.com/hubfs/raw_assets/pubโ€ฆ
MS10failthe page's first heading is not its top-level heading, so the structure starts part way down
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 page's first heading is not its top-level heading, so the structure starts part way down
The evidence, taken from the page as served
The page's heading outline, in document order (a jump in level is marked)
H3 Products level jumped
H3 Use Cases
H3 Partners
H3 Resources
H3 Company
H1 Doctrine-aligned threat intelligence ready for national defense missions
H2 Built for command and coalition use
H2 How it works
H3 Doctrine-aligned language
H3 Classifications & credibility built in
H3 Multi-discipline intelligence in one model
H3 Templates for military intelligence products
H2 Why it matters for your team
H3 Decisions move faster
H3 Analysts focus on insight
H3 Coalition sharing works the first time
H3 Confidence holds up the chain
H2 Make cyber intelligence mission-ready
H3 (no text)
MS13warning3 of 3 iframes untitled
What we check
Each embedded panel on the page carries a title saying what it contains.
What good looks like
Each embedded panel carries a title saying what it contains.
Why it matters
The embedded region stays unnamed, so what it holds is left unstated in the page around it.
What we found on this page
3 of 3 iframes untitled
The evidence, taken from the page as served
The iframes with no title attribute, as served
src=https://www.googletagmanager.com/ns.html?id=GTM-MC7MVC
<iframe src="https://www.googletagmanager.com/ns.html?id=GTM-MC7MVC" height="0" width="0" style="display:none;visibility:hidden"/>
src=//www.youtube.com/embed/Nvbm8sgiEd4?si=O9bZJhDwewBhH2En
<iframe class="hs-responsive-embed-iframe" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border: none;" xml="lang" src="//www.youtube.com/embed/Nvbm8sgiEd4?si=O9bZJhDwewBhH2En" width="1310" height="737" data-service="youtube" frameborder="0"/>
src=https://www.googletagmanager.com/ns.html?id=GTM-MC7MVC
<iframe src="https://www.googletagmanager.com/ns.html?id=GTM-MC7MVC" height="0" width="0" style="display:none;visibility:hidden"/>
MS14fail1 video(s) on the page with no captions on the video and no written transcript on the page: nothing spoken is available as text in any form
What we check
Whether each video carries captions of its own, timed text on the video itself, judged together with whether the page holds a written transcript.
What good looks like
Captions carried on the video. A WARNING means the video has no captions but a written transcript on the page holds the words. A FAIL means neither exists, so nothing spoken is available as text in any form; that total absence is marked here once, not spread across two findings.
Why it matters
Spoken content that exists only as sound is invisible to a reader, human or machine: nothing said in the video can be found, read or quoted.
What we found on this page
1 video(s) on the page with no captions on the video and no written transcript on the page: nothing spoken is available as text in any form
The evidence, taken from the page as served
Each video on the page, as served: its code, source file and caption track

No caption track on the video and no transcript link on the page.

Source file //www.youtube.com/embed/Nvbm8sgiEd4?si=O9bZJhDwewBhH2En  ·  Captions none
<iframe class="hs-responsive-embed-iframe" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border: none;" xml="lang" src="//www.youtube.com/embed/Nvbm8sgiEd4?si=O9bZJhDwewBhH2En" width="1310" height="737" data-service="youtube" frameborder="0"/>
https://www.eclecticiq.com/alert-triage?hsLang=en 52.8% Likely 9 out of 42
CheckResultEvidence
CT32warninglength 249
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 249
The evidence, taken from the page as served
The page's description, as served
249 characters
<meta name="description" content="See how EclecticIQ Platform helps security teams cut through the noise and focus on what really matters. Learn how to define whatโ€™s important, surface relevant intelligence, and respond with confidence, simplifying alert triage from start to finish."/>
CT16warningthe page carries no structured data block stating what it is (not required; a hygiene signal)
What we check
The page carries structured data, the machine-readable summary of what it describes.
What good looks like
The page carries structured data summarising what it describes.
Why it matters
Vendors document this as optional rather than required, so its absence is a small forfeit and no more.
What we found on this page
the page carries no structured data block stating what it is (not required; a hygiene signal)
The evidence, taken from the page as served
The head of this page, as served

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

<head> <meta charset="utf-8"/> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, viewport-fit=cover"/> <meta name="referrer" content="origin-when-cross-origin"/> <title>Alert triage</title> <meta name="description" content="See how EclecticIQ Platform helps security teams cut through the noise and focus on what really matters. Learn how to define whatโ€™s important, surface relevant intelligence, and respond with confidence, simplifying alert triage from start to finish."/> <script>loadjs=function(){var l=function(){},c={},f={},u={};function s(e,n){if(e){var t=u[e];if(f[e]=n,t)for(;t.length;)t[0](e,n),t.splice(0,1)}}function o(e,n){e.call&amp;&amp;(e={success:e}),n.length?(e.error||l)(n):(e.success||l)(e)}function h(t,r,i,c){var s,o,e=document,n=i.async,f=(i.numRetries||0)+1,u=i.before||l,a=t.replace(/^(css|img)!/,"");c=c||0,/(^css!|\.css$)/.test(t)?(s=!0,(o=e.createElement("link")).rel="stylesheet",o.href=a):/(^img!|\.(png|gif|jpg|svg)$)/.test(t)?(o=e.createElement("img")).src=a:((o=e.createElement("script")).src=t,o.async=void 0===n||n),!(o.onload=o.onerror=o.onbeforeload=function(e){var n=e.type[0];if(s&amp;&amp;"hideFocus"iโ€ฆ
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 name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, viewport-fit=cover"/> <meta name="referrer" content="origin-when-cross-origin"/> <title>Alert triage</title> <meta name="description" content="See how EclecticIQ Platform helps security teams cut through the noise and focus on what really matters. Learn how to define whatโ€™s important, surface relevant intelligence, and respond with confidence, simplifying alert triage from start to finish."/> <script>loadjs=function(){var l=function(){},c={},f={},u={};function s(e,n){if(e){var t=u[e];if(f[e]=n,t)for(;t.length;)t[0](e,n),t.splice(0,1)}}function o(e,n){e.call&amp;&amp;(e={success:e}),n.length?(e.error||l)(n):(e.success||l)(e)}function h(t,r,i,c){var s,o,e=document,n=i.async,f=(i.numRetries||0)+1,u=i.before||l,a=t.replace(/^(css|img)!/,"");c=c||0,/(^css!|\.css$)/.test(t)?(s=!0,(o=e.createElement("link")).rel="stylesheet",o.href=a):/(^img!|\.(png|gif|jpg|svg)$)/.test(t)?(o=e.createElement("img")).src=a:((o=e.createElement("script")).src=t,o.async=void 0===n||n),!(o.onload=o.onerror=o.onbeforeload=function(e){var n=e.type[0];if(s&amp;&amp;"hideFocus"iโ€ฆ
CT35warningthe copyright line at the foot of this page states 2024, 2 years behind the year this assessment ran, which reads as a page left unattended and is the usual sign of a template copied from elsewhere
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 copyright line at the foot of this page states 2024, 2 years behind the year this assessment ran, which reads as a page left unattended and is the usual sign of a template copied from elsewhere
The evidence, taken from the page as served
The copyright line as served, and the year it claims
Page ยท opens in a new tabFoundThe text, as served, around the word
www.eclecticiq.com/alert-triage?hsLang=en…ยฉ 2024…
AJ05warningno site-search control detected on this page
What we check
Whether a search box for the site is present in the page as it is served.
What good looks like
A search box is present in the served markup, so the site's own content can be queried directly.
Why it matters
With no search box on the page, its links are the only route from here into the rest of the site.
What we found on this page
no site-search control detected on this page
The evidence, taken from the page as served
The head of this page, as served

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

<head> <meta charset="utf-8"/> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, viewport-fit=cover"/> <meta name="referrer" content="origin-when-cross-origin"/> <title>Alert triage</title> <meta name="description" content="See how EclecticIQ Platform helps security teams cut through the noise and focus on what really matters. Learn how to define whatโ€™s important, surface relevant intelligence, and respond with confidence, simplifying alert triage from start to finish."/> <script>loadjs=function(){var l=function(){},c={},f={},u={};function s(e,n){if(e){var t=u[e];if(f[e]=n,t)for(;t.length;)t[0](e,n),t.splice(0,1)}}function o(e,n){e.call&amp;&amp;(e={success:e}),n.length?(e.error||l)(n):(e.success||l)(e)}function h(t,r,i,c){var s,o,e=document,n=i.async,f=(i.numRetries||0)+1,u=i.before||l,a=t.replace(/^(css|img)!/,"");c=c||0,/(^css!|\.css$)/.test(t)?(s=!0,(o=e.createElement("link")).rel="stylesheet",o.href=a):/(^img!|\.(png|gif|jpg|svg)$)/.test(t)?(o=e.createElement("img")).src=a:((o=e.createElement("script")).src=t,o.async=void 0===n||n),!(o.onload=o.onerror=o.onbeforeload=function(e){var n=e.type[0];if(s&amp;&amp;"hideFocus"iโ€ฆ
MS08fail1 link wording(s) are used for more than one destination, so the same words point at different pages: โ€œbook a demoโ€; 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: โ€œbook a demoโ€; 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
"Book a demo"
<a href="https://www.eclecticiq.com/book-a-demo?hsLang=en" target="_blank" class="relative group inline-flex items-center h-12 px-8 rounded-full font-bold bg-blue text-nav text-white leading-none tracking-wide hover:pr-12 transition-all duration-200"> <span class="flex-none">Book a demo</span> <img class="lazyload absoโ€ฆ
"Book a demo"
<a href="https://www.eclecticiq.com/book-a-demo?hsLang=en" class="group inline-flex items-center gap-2 lg:gap-3 max-w-full font-bold text-sm xl:text-base leading-tight tracking-wide h-11 xl:h-12 px-6 xl:px-7 rounded-full transition-all duration-200 bg-white text-blue mt-8 lg:mt-12"> <span class="sm:flex-none truncate">โ€ฆ
"Book a demo"
<a href="" class="relative flex xs:inline-flex justify-center items-center h-12 px-8 rounded-full font-bold bg-blue text-nav text-white leading-none tracking-wide"> <span class="flex-none">Book a demo</span> <img class="lazyload absolute -top-2 right-2 w-4 scale-110" src="https://www.eclecticiq.com/hubfs/raw_assets/pubโ€ฆ
MS10failthe page's first heading is not its top-level heading, so the structure starts part way down
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 page's first heading is not its top-level heading, so the structure starts part way down
The evidence, taken from the page as served
The page's heading outline, in document order (a jump in level is marked)
H3 Products level jumped
H3 Use Cases
H3 Partners
H3 Resources
H3 Company
H1 Simplified alert triage in three easy steps
H2 A better way to handle alerts
H2 How it works
H3 1. Define what matters
H3 2. Surface relevant intelligence
H3 3. Take action
H2 Why it matters for your team
H3 Cut through the noise
H3 See the whole context
H3 Stay aligned, move faster
H2 Ready to simplify alert triage?
H3 (no text)
MS13warning2 of 3 iframes untitled
What we check
Each embedded panel on the page carries a title saying what it contains.
What good looks like
Each embedded panel carries a title saying what it contains.
Why it matters
The embedded region stays unnamed, so what it holds is left unstated in the page around it.
What we found on this page
2 of 3 iframes untitled
The evidence, taken from the page as served
The iframes with no title attribute, as served
src=https://www.googletagmanager.com/ns.html?id=GTM-MC7MVC
<iframe src="https://www.googletagmanager.com/ns.html?id=GTM-MC7MVC" height="0" width="0" style="display:none;visibility:hidden"/>
src=https://www.googletagmanager.com/ns.html?id=GTM-MC7MVC
<iframe src="https://www.googletagmanager.com/ns.html?id=GTM-MC7MVC" height="0" width="0" style="display:none;visibility:hidden"/>
MS14fail1 video(s) on the page with no captions on the video and no written transcript on the page: nothing spoken is available as text in any form
What we check
Whether each video carries captions of its own, timed text on the video itself, judged together with whether the page holds a written transcript.
What good looks like
Captions carried on the video. A WARNING means the video has no captions but a written transcript on the page holds the words. A FAIL means neither exists, so nothing spoken is available as text in any form; that total absence is marked here once, not spread across two findings.
Why it matters
Spoken content that exists only as sound is invisible to a reader, human or machine: nothing said in the video can be found, read or quoted.
What we found on this page
1 video(s) on the page with no captions on the video and no written transcript on the page: nothing spoken is available as text in any form
The evidence, taken from the page as served
Each video on the page, as served: its code, source file and caption track

No caption track on the video and no transcript link on the page.

Source file //www.youtube.com/embed/Vz74BDcOFhM?si=ycavm973XzsAmLwr  ·  Captions none
<iframe class="hs-responsive-embed-iframe" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border: none;" title="YouTube video player" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" xml="lang" src="//www.youtube.com/embed/Vz74BDcOFhM?si=ycavm973XzsAmLwr" width="1310" height="737" data-service="youtube" frameborder=
https://www.eclecticiq.com/incident-response?hsLang=en 53.1% Likely 8 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 name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, viewport-fit=cover"/> <meta name="referrer" content="origin-when-cross-origin"/> <title>Incident response</title> <meta name="description" content="Respond to incidents faster with one integrated workflow for triage, investigation, enrichment, and AI-powered reporting. No silos, no switching tools."/> <script>loadjs=function(){var l=function(){},c={},f={},u={};function s(e,n){if(e){var t=u[e];if(f[e]=n,t)for(;t.length;)t[0](e,n),t.splice(0,1)}}function o(e,n){e.call&amp;&amp;(e={success:e}),n.length?(e.error||l)(n):(e.success||l)(e)}function h(t,r,i,c){var s,o,e=document,n=i.async,f=(i.numRetries||0)+1,u=i.before||l,a=t.replace(/^(css|img)!/,"");c=c||0,/(^css!|\.css$)/.test(t)?(s=!0,(o=e.createElement("link")).rel="stylesheet",o.href=a):/(^img!|\.(png|gif|jpg|svg)$)/.test(t)?(o=e.createElement("img")).src=a:((o=e.createElement("script")).src=t,o.async=void 0===n||n),!(o.onload=o.onerror=o.onbeforeload=function(e){var n=e.type[0];if(s&amp;&amp;"hideFocus"in o)try{o.sheet.cssText.length||(n="e")}catch(e){n="e"}if("e"==n&amp;&amp;(c+=1)&lt;f)return โ€ฆ
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 name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, viewport-fit=cover"/> <meta name="referrer" content="origin-when-cross-origin"/> <title>Incident response</title> <meta name="description" content="Respond to incidents faster with one integrated workflow for triage, investigation, enrichment, and AI-powered reporting. No silos, no switching tools."/> <script>loadjs=function(){var l=function(){},c={},f={},u={};function s(e,n){if(e){var t=u[e];if(f[e]=n,t)for(;t.length;)t[0](e,n),t.splice(0,1)}}function o(e,n){e.call&amp;&amp;(e={success:e}),n.length?(e.error||l)(n):(e.success||l)(e)}function h(t,r,i,c){var s,o,e=document,n=i.async,f=(i.numRetries||0)+1,u=i.before||l,a=t.replace(/^(css|img)!/,"");c=c||0,/(^css!|\.css$)/.test(t)?(s=!0,(o=e.createElement("link")).rel="stylesheet",o.href=a):/(^img!|\.(png|gif|jpg|svg)$)/.test(t)?(o=e.createElement("img")).src=a:((o=e.createElement("script")).src=t,o.async=void 0===n||n),!(o.onload=o.onerror=o.onbeforeload=function(e){var n=e.type[0];if(s&amp;&amp;"hideFocus"in o)try{o.sheet.cssText.length||(n="e")}catch(e){n="e"}if("e"==n&amp;&amp;(c+=1)&lt;f)return โ€ฆ
CT35warningthe copyright line at the foot of this page states 2024, 2 years behind the year this assessment ran, which reads as a page left unattended and is the usual sign of a template copied from elsewhere
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 copyright line at the foot of this page states 2024, 2 years behind the year this assessment ran, which reads as a page left unattended and is the usual sign of a template copied from elsewhere
The evidence, taken from the page as served
The copyright line as served, and the year it claims
Page ยท opens in a new tabFoundThe text, as served, around the word
www.eclecticiq.com/incident-response?hsLang=en…ยฉ 2024…
AJ05warningno site-search control detected on this page
What we check
Whether a search box for the site is present in the page as it is served.
What good looks like
A search box is present in the served markup, so the site's own content can be queried directly.
Why it matters
With no search box on the page, its links are the only route from here into the rest of the site.
What we found on this page
no site-search control detected on this page
The evidence, taken from the page as served
The head of this page, as served

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

<head> <meta charset="utf-8"/> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, viewport-fit=cover"/> <meta name="referrer" content="origin-when-cross-origin"/> <title>Incident response</title> <meta name="description" content="Respond to incidents faster with one integrated workflow for triage, investigation, enrichment, and AI-powered reporting. No silos, no switching tools."/> <script>loadjs=function(){var l=function(){},c={},f={},u={};function s(e,n){if(e){var t=u[e];if(f[e]=n,t)for(;t.length;)t[0](e,n),t.splice(0,1)}}function o(e,n){e.call&amp;&amp;(e={success:e}),n.length?(e.error||l)(n):(e.success||l)(e)}function h(t,r,i,c){var s,o,e=document,n=i.async,f=(i.numRetries||0)+1,u=i.before||l,a=t.replace(/^(css|img)!/,"");c=c||0,/(^css!|\.css$)/.test(t)?(s=!0,(o=e.createElement("link")).rel="stylesheet",o.href=a):/(^img!|\.(png|gif|jpg|svg)$)/.test(t)?(o=e.createElement("img")).src=a:((o=e.createElement("script")).src=t,o.async=void 0===n||n),!(o.onload=o.onerror=o.onbeforeload=function(e){var n=e.type[0];if(s&amp;&amp;"hideFocus"in o)try{o.sheet.cssText.length||(n="e")}catch(e){n="e"}if("e"==n&amp;&amp;(c+=1)&lt;f)return โ€ฆ
MS08fail1 link wording(s) are used for more than one destination, so the same words point at different pages: โ€œbook a demoโ€; 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: โ€œbook a demoโ€; 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
"Book a demo"
<a href="https://www.eclecticiq.com/book-a-demo?hsLang=en" target="_blank" class="relative group inline-flex items-center h-12 px-8 rounded-full font-bold bg-blue text-nav text-white leading-none tracking-wide hover:pr-12 transition-all duration-200"> <span class="flex-none">Book a demo</span> <img class="lazyload absoโ€ฆ
"Book a demo"
<a href="https://www.eclecticiq.com/book-a-demo?hsLang=en" class="group inline-flex items-center gap-2 lg:gap-3 max-w-full font-bold text-sm xl:text-base leading-tight tracking-wide h-11 xl:h-12 px-6 xl:px-7 rounded-full transition-all duration-200 bg-white text-blue mt-8 lg:mt-12"> <span class="sm:flex-none truncate">โ€ฆ
"Book a demo"
<a href="" class="relative flex xs:inline-flex justify-center items-center h-12 px-8 rounded-full font-bold bg-blue text-nav text-white leading-none tracking-wide"> <span class="flex-none">Book a demo</span> <img class="lazyload absolute -top-2 right-2 w-4 scale-110" src="https://www.eclecticiq.com/hubfs/raw_assets/pubโ€ฆ
MS10failthe page's first heading is not its top-level heading, so the structure starts part way down
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 page's first heading is not its top-level heading, so the structure starts part way down
The evidence, taken from the page as served
The page's heading outline, in document order (a jump in level is marked)
H3 Products level jumped
H3 Use Cases
H3 Partners
H3 Resources
H3 Company
H1 Be in control when incidents hit
H2 A better way to manage incident response
H2 How it works
H3 Visualize and triage
H3 Investigate and enrich
H3 Build and refine reports
H3 Share and act
H2 Why it matters for your team
H3 Accelerated response with guided triage
H3 Smarter investigations with visual context
H3 Effortless, structured reporting with AI
H2 Ready to transform your incident response?
H3 (no text)
MS13warning3 of 3 iframes untitled
What we check
Each embedded panel on the page carries a title saying what it contains.
What good looks like
Each embedded panel carries a title saying what it contains.
Why it matters
The embedded region stays unnamed, so what it holds is left unstated in the page around it.
What we found on this page
3 of 3 iframes untitled
The evidence, taken from the page as served
The iframes with no title attribute, as served
src=https://www.googletagmanager.com/ns.html?id=GTM-MC7MVC
<iframe src="https://www.googletagmanager.com/ns.html?id=GTM-MC7MVC" height="0" width="0" style="display:none;visibility:hidden"/>
src=//www.youtube.com/embed/zgtbzqOyQKA?si=MexVLIshXtReQG_v
<iframe class="hs-responsive-embed-iframe" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border: none;" xml="lang" src="//www.youtube.com/embed/zgtbzqOyQKA?si=MexVLIshXtReQG_v" width="1310" height="737" data-service="youtube" frameborder="0"/>
src=https://www.googletagmanager.com/ns.html?id=GTM-MC7MVC
<iframe src="https://www.googletagmanager.com/ns.html?id=GTM-MC7MVC" height="0" width="0" style="display:none;visibility:hidden"/>
MS14fail1 video(s) on the page with no captions on the video and no written transcript on the page: nothing spoken is available as text in any form
What we check
Whether each video carries captions of its own, timed text on the video itself, judged together with whether the page holds a written transcript.
What good looks like
Captions carried on the video. A WARNING means the video has no captions but a written transcript on the page holds the words. A FAIL means neither exists, so nothing spoken is available as text in any form; that total absence is marked here once, not spread across two findings.
Why it matters
Spoken content that exists only as sound is invisible to a reader, human or machine: nothing said in the video can be found, read or quoted.
What we found on this page
1 video(s) on the page with no captions on the video and no written transcript on the page: nothing spoken is available as text in any form
The evidence, taken from the page as served
Each video on the page, as served: its code, source file and caption track

No caption track on the video and no transcript link on the page.

Source file //www.youtube.com/embed/zgtbzqOyQKA?si=MexVLIshXtReQG_v  ·  Captions none
<iframe class="hs-responsive-embed-iframe" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border: none;" xml="lang" src="//www.youtube.com/embed/zgtbzqOyQKA?si=MexVLIshXtReQG_v" width="1310" height="737" data-service="youtube" frameborder="0"/>
https://www.eclecticiq.com/ai-search?hsLang=en 52.3% Likely 9 out of 42
CheckResultEvidence
CT06warningtitle length 9 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 9 chars
The evidence, taken from the page as served
The page title, as served
9 characters
<title>AI Search</title>
CT16warningthe page carries no structured data block stating what it is (not required; a hygiene signal)
What we check
The page carries structured data, the machine-readable summary of what it describes.
What good looks like
The page carries structured data summarising what it describes.
Why it matters
Vendors document this as optional rather than required, so its absence is a small forfeit and no more.
What we found on this page
the page carries no structured data block stating what it is (not required; a hygiene signal)
The evidence, taken from the page as served
The head of this page, as served

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

<head> <meta charset="utf-8"/> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, viewport-fit=cover"/> <meta name="referrer" content="origin-when-cross-origin"/> <title>AI Search</title> <meta name="description" content="EclecticIQ makes threat intelligence search faster and easier with AI-powered natural language queries. No syntax needed, full Lucene control when required."/> <script>loadjs=function(){var l=function(){},c={},f={},u={};function s(e,n){if(e){var t=u[e];if(f[e]=n,t)for(;t.length;)t[0](e,n),t.splice(0,1)}}function o(e,n){e.call&amp;&amp;(e={success:e}),n.length?(e.error||l)(n):(e.success||l)(e)}function h(t,r,i,c){var s,o,e=document,n=i.async,f=(i.numRetries||0)+1,u=i.before||l,a=t.replace(/^(css|img)!/,"");c=c||0,/(^css!|\.css$)/.test(t)?(s=!0,(o=e.createElement("link")).rel="stylesheet",o.href=a):/(^img!|\.(png|gif|jpg|svg)$)/.test(t)?(o=e.createElement("img")).src=a:((o=e.createElement("script")).src=t,o.async=void 0===n||n),!(o.onload=o.onerror=o.onbeforeload=function(e){var n=e.type[0];if(s&amp;&amp;"hideFocus"in o)try{o.sheet.cssText.length||(n="e")}catch(e){n="e"}if("e"==n&amp;&amp;(c+=1)&lt;f)return h(tโ€ฆ
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 name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, viewport-fit=cover"/> <meta name="referrer" content="origin-when-cross-origin"/> <title>AI Search</title> <meta name="description" content="EclecticIQ makes threat intelligence search faster and easier with AI-powered natural language queries. No syntax needed, full Lucene control when required."/> <script>loadjs=function(){var l=function(){},c={},f={},u={};function s(e,n){if(e){var t=u[e];if(f[e]=n,t)for(;t.length;)t[0](e,n),t.splice(0,1)}}function o(e,n){e.call&amp;&amp;(e={success:e}),n.length?(e.error||l)(n):(e.success||l)(e)}function h(t,r,i,c){var s,o,e=document,n=i.async,f=(i.numRetries||0)+1,u=i.before||l,a=t.replace(/^(css|img)!/,"");c=c||0,/(^css!|\.css$)/.test(t)?(s=!0,(o=e.createElement("link")).rel="stylesheet",o.href=a):/(^img!|\.(png|gif|jpg|svg)$)/.test(t)?(o=e.createElement("img")).src=a:((o=e.createElement("script")).src=t,o.async=void 0===n||n),!(o.onload=o.onerror=o.onbeforeload=function(e){var n=e.type[0];if(s&amp;&amp;"hideFocus"in o)try{o.sheet.cssText.length||(n="e")}catch(e){n="e"}if("e"==n&amp;&amp;(c+=1)&lt;f)return h(tโ€ฆ
CT35warningthe copyright line at the foot of this page states 2024, 2 years behind the year this assessment ran, which reads as a page left unattended and is the usual sign of a template copied from elsewhere
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 copyright line at the foot of this page states 2024, 2 years behind the year this assessment ran, which reads as a page left unattended and is the usual sign of a template copied from elsewhere
The evidence, taken from the page as served
The copyright line as served, and the year it claims
Page ยท opens in a new tabFoundThe text, as served, around the word
www.eclecticiq.com/ai-search?hsLang=en…ยฉ 2024…
AJ05warningno site-search control detected on this page
What we check
Whether a search box for the site is present in the page as it is served.
What good looks like
A search box is present in the served markup, so the site's own content can be queried directly.
Why it matters
With no search box on the page, its links are the only route from here into the rest of the site.
What we found on this page
no site-search control detected on this page
The evidence, taken from the page as served
The head of this page, as served

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

<head> <meta charset="utf-8"/> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, viewport-fit=cover"/> <meta name="referrer" content="origin-when-cross-origin"/> <title>AI Search</title> <meta name="description" content="EclecticIQ makes threat intelligence search faster and easier with AI-powered natural language queries. No syntax needed, full Lucene control when required."/> <script>loadjs=function(){var l=function(){},c={},f={},u={};function s(e,n){if(e){var t=u[e];if(f[e]=n,t)for(;t.length;)t[0](e,n),t.splice(0,1)}}function o(e,n){e.call&amp;&amp;(e={success:e}),n.length?(e.error||l)(n):(e.success||l)(e)}function h(t,r,i,c){var s,o,e=document,n=i.async,f=(i.numRetries||0)+1,u=i.before||l,a=t.replace(/^(css|img)!/,"");c=c||0,/(^css!|\.css$)/.test(t)?(s=!0,(o=e.createElement("link")).rel="stylesheet",o.href=a):/(^img!|\.(png|gif|jpg|svg)$)/.test(t)?(o=e.createElement("img")).src=a:((o=e.createElement("script")).src=t,o.async=void 0===n||n),!(o.onload=o.onerror=o.onbeforeload=function(e){var n=e.type[0];if(s&amp;&amp;"hideFocus"in o)try{o.sheet.cssText.length||(n="e")}catch(e){n="e"}if("e"==n&amp;&amp;(c+=1)&lt;f)return h(tโ€ฆ
MS08fail1 link wording(s) are used for more than one destination, so the same words point at different pages: โ€œbook a demoโ€; 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: โ€œbook a demoโ€; 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
"Book a demo"
<a href="https://www.eclecticiq.com/book-a-demo?hsLang=en" target="_blank" class="relative group inline-flex items-center h-12 px-8 rounded-full font-bold bg-blue text-nav text-white leading-none tracking-wide hover:pr-12 transition-all duration-200"> <span class="flex-none">Book a demo</span> <img class="lazyload absoโ€ฆ
"Book a demo"
<a href="https://www.eclecticiq.com/book-a-demo?hsLang=en" class="group inline-flex items-center gap-2 lg:gap-3 max-w-full font-bold text-sm xl:text-base leading-tight tracking-wide h-11 xl:h-12 px-6 xl:px-7 rounded-full transition-all duration-200 bg-white text-blue mt-8 lg:mt-12"> <span class="sm:flex-none truncate">โ€ฆ
"Book a demo"
<a href="" class="relative flex xs:inline-flex justify-center items-center h-12 px-8 rounded-full font-bold bg-blue text-nav text-white leading-none tracking-wide"> <span class="flex-none">Book a demo</span> <img class="lazyload absolute -top-2 right-2 w-4 scale-110" src="https://www.eclecticiq.com/hubfs/raw_assets/pubโ€ฆ
MS10failthe page's first heading is not its top-level heading, so the structure starts part way down
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 page's first heading is not its top-level heading, so the structure starts part way down
The evidence, taken from the page as served
The page's heading outline, in document order (a jump in level is marked)
H3 Products level jumped
H3 Use Cases
H3 Partners
H3 Resources
H3 Company
H1 From question to answers in seconds
H2 A better way to search threat intelligence
H2 How it works
H3 Ask your question naturally
H3 AI builds a structured query
H3 Get back focused, relevant results
H2 Why it matters for your team
H3 Search without syntax training
H3 Accelerate investigations and triage
H3 More consistent, more reliable results
H2 Ready to find intel the easy way?
H3 (no text)
MS13warning2 of 3 iframes untitled
What we check
Each embedded panel on the page carries a title saying what it contains.
What good looks like
Each embedded panel carries a title saying what it contains.
Why it matters
The embedded region stays unnamed, so what it holds is left unstated in the page around it.
What we found on this page
2 of 3 iframes untitled
The evidence, taken from the page as served
The iframes with no title attribute, as served
src=https://www.googletagmanager.com/ns.html?id=GTM-MC7MVC
<iframe src="https://www.googletagmanager.com/ns.html?id=GTM-MC7MVC" height="0" width="0" style="display:none;visibility:hidden"/>
src=https://www.googletagmanager.com/ns.html?id=GTM-MC7MVC
<iframe src="https://www.googletagmanager.com/ns.html?id=GTM-MC7MVC" height="0" width="0" style="display:none;visibility:hidden"/>
MS14fail1 video(s) on the page with no captions on the video and no written transcript on the page: nothing spoken is available as text in any form
What we check
Whether each video carries captions of its own, timed text on the video itself, judged together with whether the page holds a written transcript.
What good looks like
Captions carried on the video. A WARNING means the video has no captions but a written transcript on the page holds the words. A FAIL means neither exists, so nothing spoken is available as text in any form; that total absence is marked here once, not spread across two findings.
Why it matters
Spoken content that exists only as sound is invisible to a reader, human or machine: nothing said in the video can be found, read or quoted.
What we found on this page
1 video(s) on the page with no captions on the video and no written transcript on the page: nothing spoken is available as text in any form
The evidence, taken from the page as served
Each video on the page, as served: its code, source file and caption track

No caption track on the video and no transcript link on the page.

Source file https://www.youtube.com/embed/jPa0nrvRI9I?si=WwqRsNx5gboDg8vw  ·  Captions none
<iframe class="hs-responsive-embed-iframe" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border: none;" title="YouTube video player" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" xml="lang" src="https://www.youtube.com/embed/jPa0nrvRI9I?si=WwqRsNx5gboDg8vw" width="1310" height="737" data-service="youtube" frameb
https://www.eclecticiq.com/stix-taxii?hsLang=en 51.1% Likely 11 out of 43
CheckResultEvidence
CT32warninglength 202
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 202
The evidence, taken from the page as served
The page's description, as served
202 characters
<meta name="description" content="Explore the industry standards for Cyber Threat Intelligence with STIX and TAXII. Learn how these tools enable real-time threat information exchange and collaboration within the cybersecurity community."/>
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)
H3 Products
H3 Use Cases
H3 Partners
H3 Resources
H3 Company
H1 What is STIX and TAXII?
H4 STIX level jumped
H4 TAXII
H2 Why is it important?
H2 The ecosystem
H2 Get started
H3 1. Read About STIX and TAXII
H3 2. Set-up your TAXII server and/or client
H3 3. Transform your Intelligence / Indicators
H3 4. Lift off!
H2 STIX and TAXII in action
H2 Resources
H3 STIX 2.1
H3 Awesome libraries
H3 TAXII collection
H3 (no text)
CT16warningthe page carries no structured data block stating what it is (not required; a hygiene signal)
What we check
The page carries structured data, the machine-readable summary of what it describes.
What good looks like
The page carries structured data summarising what it describes.
Why it matters
Vendors document this as optional rather than required, so its absence is a small forfeit and no more.
What we found on this page
the page carries no structured data block stating what it is (not required; a hygiene signal)
The evidence, taken from the page as served
The head of this page, as served

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

<head> <meta charset="utf-8"/> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, viewport-fit=cover"/> <meta name="referrer" content="origin-when-cross-origin"/> <title>What is STIX and TAXII?</title> <meta name="description" content="Explore the industry standards for Cyber Threat Intelligence with STIX and TAXII. Learn how these tools enable real-time threat information exchange and collaboration within the cybersecurity community."/> <meta property="og:image" content="https://www.eclecticiq.com/hubfs/raw_assets/public/rebrand-2024/assets/img/og-eclecticiq.png"/> <script>loadjs=function(){var l=function(){},c={},f={},u={};function s(e,n){if(e){var t=u[e];if(f[e]=n,t)for(;t.length;)t[0](e,n),t.splice(0,1)}}function o(e,n){e.call&amp;&amp;(e={success:e}),n.length?(e.error||l)(n):(e.success||l)(e)}function h(t,r,i,c){var s,o,e=document,n=i.async,f=(i.numRetries||0)+1,u=i.before||l,a=t.replace(/^(css|img)!/,"");c=c||0,/(^css!|\.css$)/.test(t)?(s=!0,(o=e.createElement("link")).rel="stylesheet",o.href=a):/(^img!|\.(png|gif|jpg|svg)$)/.test(t)?(o=e.createElement("img")).src=a:((o=e.createElement("script")).src=t,o.async=void 0===nโ€ฆ
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 name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, viewport-fit=cover"/> <meta name="referrer" content="origin-when-cross-origin"/> <title>What is STIX and TAXII?</title> <meta name="description" content="Explore the industry standards for Cyber Threat Intelligence with STIX and TAXII. Learn how these tools enable real-time threat information exchange and collaboration within the cybersecurity community."/> <meta property="og:image" content="https://www.eclecticiq.com/hubfs/raw_assets/public/rebrand-2024/assets/img/og-eclecticiq.png"/> <script>loadjs=function(){var l=function(){},c={},f={},u={};function s(e,n){if(e){var t=u[e];if(f[e]=n,t)for(;t.length;)t[0](e,n),t.splice(0,1)}}function o(e,n){e.call&amp;&amp;(e={success:e}),n.length?(e.error||l)(n):(e.success||l)(e)}function h(t,r,i,c){var s,o,e=document,n=i.async,f=(i.numRetries||0)+1,u=i.before||l,a=t.replace(/^(css|img)!/,"");c=c||0,/(^css!|\.css$)/.test(t)?(s=!0,(o=e.createElement("link")).rel="stylesheet",o.href=a):/(^img!|\.(png|gif|jpg|svg)$)/.test(t)?(o=e.createElement("img")).src=a:((o=e.createElement("script")).src=t,o.async=void 0===nโ€ฆ
CT35warningthe copyright line at the foot of this page states 2024, 2 years behind the year this assessment ran, which reads as a page left unattended and is the usual sign of a template copied from elsewhere
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 copyright line at the foot of this page states 2024, 2 years behind the year this assessment ran, which reads as a page left unattended and is the usual sign of a template copied from elsewhere
The evidence, taken from the page as served
The copyright line as served, and the year it claims
Page ยท opens in a new tabFoundThe text, as served, around the word
www.eclecticiq.com/stix-taxii?hsLang=en…ยฉ 2024…
AJ05warningno site-search control detected on this page
What we check
Whether a search box for the site is present in the page as it is served.
What good looks like
A search box is present in the served markup, so the site's own content can be queried directly.
Why it matters
With no search box on the page, its links are the only route from here into the rest of the site.
What we found on this page
no site-search control detected on this page
The evidence, taken from the page as served
The head of this page, as served

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

<head> <meta charset="utf-8"/> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, viewport-fit=cover"/> <meta name="referrer" content="origin-when-cross-origin"/> <title>What is STIX and TAXII?</title> <meta name="description" content="Explore the industry standards for Cyber Threat Intelligence with STIX and TAXII. Learn how these tools enable real-time threat information exchange and collaboration within the cybersecurity community."/> <meta property="og:image" content="https://www.eclecticiq.com/hubfs/raw_assets/public/rebrand-2024/assets/img/og-eclecticiq.png"/> <script>loadjs=function(){var l=function(){},c={},f={},u={};function s(e,n){if(e){var t=u[e];if(f[e]=n,t)for(;t.length;)t[0](e,n),t.splice(0,1)}}function o(e,n){e.call&amp;&amp;(e={success:e}),n.length?(e.error||l)(n):(e.success||l)(e)}function h(t,r,i,c){var s,o,e=document,n=i.async,f=(i.numRetries||0)+1,u=i.before||l,a=t.replace(/^(css|img)!/,"");c=c||0,/(^css!|\.css$)/.test(t)?(s=!0,(o=e.createElement("link")).rel="stylesheet",o.href=a):/(^img!|\.(png|gif|jpg|svg)$)/.test(t)?(o=e.createElement("img")).src=a:((o=e.createElement("script")).src=t,o.async=void 0===nโ€ฆ
MS08fail1 link wording(s) are used for more than one destination, so the same words point at different pages: โ€œbook a demoโ€; 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: โ€œbook a demoโ€; 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
"Book a demo"
<a href="https://www.eclecticiq.com/book-a-demo?hsLang=en" target="_blank" class="relative group inline-flex items-center h-12 px-8 rounded-full font-bold bg-blue text-nav text-white leading-none tracking-wide hover:pr-12 transition-all duration-200"> <span class="flex-none">Book a demo</span> <img class="lazyload absoโ€ฆ
"Book a demo"
<a href="" class="relative flex xs:inline-flex justify-center items-center h-12 px-8 rounded-full font-bold bg-blue text-nav text-white leading-none tracking-wide"> <span class="flex-none">Book a demo</span> <img class="lazyload absolute -top-2 right-2 w-4 scale-110" src="https://www.eclecticiq.com/hubfs/raw_assets/pubโ€ฆ
MS10failthe page's first heading is not its top-level heading, so the structure starts part way down; the 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 page's first heading is not its top-level heading, so the structure starts part way down; 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)
H3 Products level jumped
H3 Use Cases
H3 Partners
H3 Resources
H3 Company
H1 What is STIX and TAXII?
H4 STIX level jumped
H4 TAXII
H2 Why is it important?
H2 The ecosystem
H2 Get started
H3 1. Read About STIX and TAXII
H3 2. Set-up your TAXII server and/or client
H3 3. Transform your Intelligence / Indicators
H3 4. Lift off!
H2 STIX and TAXII in action
H2 Resources
H3 STIX 2.1
H3 Awesome libraries
H3 TAXII collection
H3 (no text)
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="https://test.taxiistand.com/" rel="noopener" target="_blank">here</a>
MS13warning2 of 2 iframes untitled
What we check
Each embedded panel on the page carries a title saying what it contains.
What good looks like
Each embedded panel carries a title saying what it contains.
Why it matters
The embedded region stays unnamed, so what it holds is left unstated in the page around it.
What we found on this page
2 of 2 iframes untitled
The evidence, taken from the page as served
The iframes with no title attribute, as served
src=https://www.googletagmanager.com/ns.html?id=GTM-MC7MVC
<iframe src="https://www.googletagmanager.com/ns.html?id=GTM-MC7MVC" height="0" width="0" style="display:none;visibility:hidden"/>
src=https://www.googletagmanager.com/ns.html?id=GTM-MC7MVC
<iframe src="https://www.googletagmanager.com/ns.html?id=GTM-MC7MVC" height="0" width="0" style="display:none;visibility:hidden"/>
DS28failone link to sources on other sites points at a page that no longer exists. 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 points at a page that no longer exists. 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
eclecticiq.bamboohr.com/careers200Reachable
oasis-open.github.io/cti-documentation/stix/intro200Reachable
oasis-open.github.io/cti-documentation/taxii/intro200Reachable
test.taxiistand.com/404Dead (404/410)
hub.docker.com/r/eclecticiq/opentaxii200Reachable
https://www.eclecticiq.com/book-a-demo?hsLang=en 32.1% Very likely 9 out of 42
CheckResultEvidence
CT31warningthe page carries no description of itself in its head
What we check
The page provides a meta description, the short summary offered alongside its title.
What good looks like
The page provides a meta description.
Why it matters
Absent, the page gives up its one documented summary field, though Google rewrites these freely anyway.
What we found on this page
the page carries no description of itself in its head
The evidence, taken from the page as served
The head of this page, as served

The head of the page was read for a description tag.

<head> <meta charset="utf-8"/> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, viewport-fit=cover"/> <meta name="referrer" content="origin-when-cross-origin"/> <title>Book a demo</title> <meta name="description" content=""/> <meta property="og:image" content="https://www.eclecticiq.com/hubfs/raw_assets/public/rebrand-2024/assets/img/og-eclecticiq.png"/> <script>loadjs=function(){var l=function(){},c={},f={},u={};function s(e,n){if(e){var t=u[e];if(f[e]=n,t)for(;t.length;)t[0](e,n),t.splice(0,1)}}function o(e,n){e.call&amp;&amp;(e={success:e}),n.length?(e.error||l)(n):(e.success||l)(e)}function h(t,r,i,c){var s,o,e=document,n=i.async,f=(i.numRetries||0)+1,u=i.before||l,a=t.replace(/^(css|img)!/,"");c=c||0,/(^css!|\.css$)/.test(t)?(s=!0,(o=e.createElement("link")).rel="stylesheet",o.href=a):/(^img!|\.(png|gif|jpg|svg)$)/.test(t)?(o=e.createElement("img")).src=a:((o=e.createElement("script")).src=t,o.async=void 0===n||n),!(o.onload=o.onerror=o.onbeforeload=function(e){var n=e.type[0];if(s&amp;&amp;"hideFocus"in o)try{o.sheet.cssText.length||(n="e")}catch(e){n="e"}if("e"==n&amp;&amp;(c+=1)&lt;f)return h(t,r,i,c);r(t,n,e.defaultโ€ฆ
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)
H3 Products
H3 Use Cases
H3 Partners
H3 Resources
H3 Company
H1 See our Threat Intelligence Platform in action
H3 (no text) level jumped
H3 (no text)
CT16warningthe page carries no structured data block stating what it is (not required; a hygiene signal)
What we check
The page carries structured data, the machine-readable summary of what it describes.
What good looks like
The page carries structured data summarising what it describes.
Why it matters
Vendors document this as optional rather than required, so its absence is a small forfeit and no more.
What we found on this page
the page carries no structured data block stating what it is (not required; a hygiene signal)
The evidence, taken from the page as served
The head of this page, as served

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

<head> <meta charset="utf-8"/> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, viewport-fit=cover"/> <meta name="referrer" content="origin-when-cross-origin"/> <title>Book a demo</title> <meta name="description" content=""/> <meta property="og:image" content="https://www.eclecticiq.com/hubfs/raw_assets/public/rebrand-2024/assets/img/og-eclecticiq.png"/> <script>loadjs=function(){var l=function(){},c={},f={},u={};function s(e,n){if(e){var t=u[e];if(f[e]=n,t)for(;t.length;)t[0](e,n),t.splice(0,1)}}function o(e,n){e.call&amp;&amp;(e={success:e}),n.length?(e.error||l)(n):(e.success||l)(e)}function h(t,r,i,c){var s,o,e=document,n=i.async,f=(i.numRetries||0)+1,u=i.before||l,a=t.replace(/^(css|img)!/,"");c=c||0,/(^css!|\.css$)/.test(t)?(s=!0,(o=e.createElement("link")).rel="stylesheet",o.href=a):/(^img!|\.(png|gif|jpg|svg)$)/.test(t)?(o=e.createElement("img")).src=a:((o=e.createElement("script")).src=t,o.async=void 0===n||n),!(o.onload=o.onerror=o.onbeforeload=function(e){var n=e.type[0];if(s&amp;&amp;"hideFocus"in o)try{o.sheet.cssText.length||(n="e")}catch(e){n="e"}if("e"==n&amp;&amp;(c+=1)&lt;f)return h(t,r,i,c);r(t,n,e.defaultโ€ฆ
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 name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, viewport-fit=cover"/> <meta name="referrer" content="origin-when-cross-origin"/> <title>Book a demo</title> <meta name="description" content=""/> <meta property="og:image" content="https://www.eclecticiq.com/hubfs/raw_assets/public/rebrand-2024/assets/img/og-eclecticiq.png"/> <script>loadjs=function(){var l=function(){},c={},f={},u={};function s(e,n){if(e){var t=u[e];if(f[e]=n,t)for(;t.length;)t[0](e,n),t.splice(0,1)}}function o(e,n){e.call&amp;&amp;(e={success:e}),n.length?(e.error||l)(n):(e.success||l)(e)}function h(t,r,i,c){var s,o,e=document,n=i.async,f=(i.numRetries||0)+1,u=i.before||l,a=t.replace(/^(css|img)!/,"");c=c||0,/(^css!|\.css$)/.test(t)?(s=!0,(o=e.createElement("link")).rel="stylesheet",o.href=a):/(^img!|\.(png|gif|jpg|svg)$)/.test(t)?(o=e.createElement("img")).src=a:((o=e.createElement("script")).src=t,o.async=void 0===n||n),!(o.onload=o.onerror=o.onbeforeload=function(e){var n=e.type[0];if(s&amp;&amp;"hideFocus"in o)try{o.sheet.cssText.length||(n="e")}catch(e){n="e"}if("e"==n&amp;&amp;(c+=1)&lt;f)return h(t,r,i,c);r(t,n,e.defaultโ€ฆ
CT35warningthe copyright line at the foot of this page states 2024, 2 years behind the year this assessment ran, which reads as a page left unattended and is the usual sign of a template copied from elsewhere
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 copyright line at the foot of this page states 2024, 2 years behind the year this assessment ran, which reads as a page left unattended and is the usual sign of a template copied from elsewhere
The evidence, taken from the page as served
The copyright line as served, and the year it claims
Page ยท opens in a new tabFoundThe text, as served, around the word
www.eclecticiq.com/book-a-demo?hsLang=en…ยฉ 2024…
AJ05warningno site-search control detected on this page
What we check
Whether a search box for the site is present in the page as it is served.
What good looks like
A search box is present in the served markup, so the site's own content can be queried directly.
Why it matters
With no search box on the page, its links are the only route from here into the rest of the site.
What we found on this page
no site-search control detected on this page
The evidence, taken from the page as served
The head of this page, as served

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

<head> <meta charset="utf-8"/> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, viewport-fit=cover"/> <meta name="referrer" content="origin-when-cross-origin"/> <title>Book a demo</title> <meta name="description" content=""/> <meta property="og:image" content="https://www.eclecticiq.com/hubfs/raw_assets/public/rebrand-2024/assets/img/og-eclecticiq.png"/> <script>loadjs=function(){var l=function(){},c={},f={},u={};function s(e,n){if(e){var t=u[e];if(f[e]=n,t)for(;t.length;)t[0](e,n),t.splice(0,1)}}function o(e,n){e.call&amp;&amp;(e={success:e}),n.length?(e.error||l)(n):(e.success||l)(e)}function h(t,r,i,c){var s,o,e=document,n=i.async,f=(i.numRetries||0)+1,u=i.before||l,a=t.replace(/^(css|img)!/,"");c=c||0,/(^css!|\.css$)/.test(t)?(s=!0,(o=e.createElement("link")).rel="stylesheet",o.href=a):/(^img!|\.(png|gif|jpg|svg)$)/.test(t)?(o=e.createElement("img")).src=a:((o=e.createElement("script")).src=t,o.async=void 0===n||n),!(o.onload=o.onerror=o.onbeforeload=function(e){var n=e.type[0];if(s&amp;&amp;"hideFocus"in o)try{o.sheet.cssText.length||(n="e")}catch(e){n="e"}if("e"==n&amp;&amp;(c+=1)&lt;f)return h(t,r,i,c);r(t,n,e.defaultโ€ฆ
MS10failthe page's first heading is not its top-level heading, so the structure starts part way down; the 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 page's first heading is not its top-level heading, so the structure starts part way down; 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)
H3 Products level jumped
H3 Use Cases
H3 Partners
H3 Resources
H3 Company
H1 See our Threat Intelligence Platform in action
H3 (no text) level jumped
H3 (no text)
MS13warning2 of 2 iframes untitled
What we check
Each embedded panel on the page carries a title saying what it contains.
What good looks like
Each embedded panel carries a title saying what it contains.
Why it matters
The embedded region stays unnamed, so what it holds is left unstated in the page around it.
What we found on this page
2 of 2 iframes untitled
The evidence, taken from the page as served
The iframes with no title attribute, as served
src=https://www.googletagmanager.com/ns.html?id=GTM-MC7MVC
<iframe src="https://www.googletagmanager.com/ns.html?id=GTM-MC7MVC" height="0" width="0" style="display:none;visibility:hidden"/>
src=https://www.googletagmanager.com/ns.html?id=GTM-MC7MVC
<iframe src="https://www.googletagmanager.com/ns.html?id=GTM-MC7MVC" height="0" width="0" style="display:none;visibility:hidden"/>
CT34failthe page's own words are thin: 266 of its 329 words are shared navigation and footer, so it reads as 82% 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: 266 of its 329 words are shared navigation and footer, so it reads as 82% identical to another page, which a machine can then take as a duplicate and pass over, missing the little content that is its own; the matching page is named in the view
The evidence, taken from the page as served
This page's own words, lost in shared navigation and footer
Page ยท opens in a new tabOwn wordsChromeReads as identical toShared
www.eclecticiq.com/book-a-demo?hsLang=en63 of 32981%www.eclecticiq.com/contact?hsLang=en82%
https://www.eclecticiq.com/library?hsLang=en 49.5% Likely 11 out of 41
CheckResultEvidence
DS17failthe page states no preferred address for itself, so duplicate copies compete to be the one cited
What we check
Each page names one preferred address for itself, its canonical link.
What good looks like
Each page names one preferred address for itself.
Why it matters
With no preferred address stated, duplicate copies compete and the version that ends up cited is arbitrary.
What we found on this page
the page states no preferred address for itself, so duplicate copies compete to be the one cited
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 naming the page's preferred address.

<head> <meta charset="utf-8"/> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, viewport-fit=cover"/> <meta name="referrer" content="origin-when-cross-origin"/> <title>Resources</title> <meta name="description" content="Resource Library"/> <meta property="og:image" content="https://www.eclecticiq.com/hubfs/raw_assets/public/rebrand-2024/assets/img/og-eclecticiq.png"/> <script>loadjs=function(){var l=function(){},c={},f={},u={};function s(e,n){if(e){var t=u[e];if(f[e]=n,t)for(;t.length;)t[0](e,n),t.splice(0,1)}}function o(e,n){e.call&amp;&amp;(e={success:e}),n.length?(e.error||l)(n):(e.success||l)(e)}function h(t,r,i,c){var s,o,e=document,n=i.async,f=(i.numRetries||0)+1,u=i.before||l,a=t.replace(/^(css|img)!/,"");c=c||0,/(^css!|\.css$)/.test(t)?(s=!0,(o=e.createElement("link")).rel="stylesheet",o.href=a):/(^img!|\.(png|gif|jpg|svg)$)/.test(t)?(o=e.createElement("img")).src=a:((o=e.createElement("script")).src=t,o.async=void 0===n||n),!(o.onload=o.onerror=o.onbeforeload=function(e){var n=e.type[0];if(s&amp;&amp;"hideFocus"in o)try{o.sheet.cssText.length||(n="e")}catch(e){n="e"}if("e"==n&amp;&amp;(c+=1)&lt;f)return h(t,r,i,c);rโ€ฆ
CT06warningtitle length 9 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 9 chars
The evidence, taken from the page as served
The page title, as served
9 characters
<title>Resources</title>
CT32warninglength 16
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 16
The evidence, taken from the page as served
The page's description, as served
16 characters
<meta name="description" content="Resource Library"/>
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)
H3 Products
H3 Use Cases
H3 Partners
H3 Resources
H3 Company
H1 Resource Library
H3 Intelligent Mapping of CTI to MITRE ATT&CK: Automating TTP Classification with A level jumped
H3 Advanced Static Analysis + Real-Time Threat Intelligence for Faster Triage
H3 Censys and EclecticIQ Intelligence Centerโ„ข
H3 Bluesky and EclecticIQ Intelligence Centerโ„ข
H3 The information age battlefield: Combining CTI & Information Operations Intellig
H3 Modat Integration with EclecticIQ Intelligence Centerโ„ข
H3 Twitter (X) and EclecticIQ Intelligence Centerโ„ข
H3 Telegram and EclecticIQ Intelligence Center
H3 ReversingLabs Spectra Analyze and Spectra Intelligence Integration with Eclectic
H3 VMRay UniqueSignal and EclecticIQ Intelligence Center
H3 Bitdefender Sandbox and EclecticIQ Intelligence Center
H3 The Weaponization of AI & Implications for Defenders
H3 An AI-driven threat intelligence program
H3 AI-Powered CTI Excellence: Transforming European Cybersecurity Operations
H3 A Stakeholder-centric Approach to Building a High-performing CTI Practice
H3 Beyond the IOC: Elevating Threat Intelligence with Tactics, Techniques, and Proc
H3 STIX 2.1 and Beyond: The Essential Role of STIX in CTI Operations
H3 Strategic Intelligence: Translating APAC Threats to Business Risk
H3 The Context Advantage: from Drowning in Data to Decisive Defense
H3 Strengthening Europeโ€™s cybersecurity future: A strategic imperative
H3 SilkSpecter exposed: Inside a global phishing operation
H3 Sandwormโ€™s Cyber Espionage: Russiaโ€™s GRU-Linked APT Uses Pirated Software in Ukr
H3 Needle-Sharp CTI: AI for Business-Aligned Threats
H3 Qualys and EclecticIQ Intelligence Center
H3 Silobreaker and EclecticIQ Intelligence Center
H3 Microsoft Sentinel and EclecticIQ Intelligence Center
H3 Group-IB and EclecticIQ Intelligence Center
H3 Intel 471 and EclecticIQ Intelligence Center
H3 Kaspersky and EclecticIQ Intelligence Center
H3 Enhancing Triage and Collaboration for Global Banking Security
H3 Recorded Future and EclecticIQ Intelligence Center
H3 Flashpoint and EclecticIQ Intelligence Center
H3 The Path to Pre-emptive CTI Operations
H3 Accelerate Incident Response with Threat Intelligence
H3 Augment Your SOC with Human-Led Threat Intelligence
H3 EclecticIQ Empowers a National CERTโ€™s Collaborative Threat Intelligence Sharing
H3 Splunk and EclecticIQ Intelligence Center
H3 IBM Security and EclecticIQ Intelligence Center
H3 Google Chronicle and EclecticIQ Intelligence Center
H3 Cortex XSOAR and EclecticIQ Intelligence Center
H3 Threat Intelligence Feeds
H3 Threat Intelligence Platform
H3 EclecticIQ Intelligence Platform Makes Threat Intelligence Actionable for Financ
H3 CTI Maturity-driven Threat Intelligence Platform Buyerโ€™s Guide
H3 Building a Strong CTI Foundation
H3 Threat Intelligence Browser Extension
H3 ServiceNow and EclecticIQ Intelligence Center
H3 (no text)
CT16warningthe page carries no structured data block stating what it is (not required; a hygiene signal)
What we check
The page carries structured data, the machine-readable summary of what it describes.
What good looks like
The page carries structured data summarising what it describes.
Why it matters
Vendors document this as optional rather than required, so its absence is a small forfeit and no more.
What we found on this page
the page carries no structured data block stating what it is (not required; a hygiene signal)
The evidence, taken from the page as served
The head of this page, as served

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

<head> <meta charset="utf-8"/> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, viewport-fit=cover"/> <meta name="referrer" content="origin-when-cross-origin"/> <title>Resources</title> <meta name="description" content="Resource Library"/> <meta property="og:image" content="https://www.eclecticiq.com/hubfs/raw_assets/public/rebrand-2024/assets/img/og-eclecticiq.png"/> <script>loadjs=function(){var l=function(){},c={},f={},u={};function s(e,n){if(e){var t=u[e];if(f[e]=n,t)for(;t.length;)t[0](e,n),t.splice(0,1)}}function o(e,n){e.call&amp;&amp;(e={success:e}),n.length?(e.error||l)(n):(e.success||l)(e)}function h(t,r,i,c){var s,o,e=document,n=i.async,f=(i.numRetries||0)+1,u=i.before||l,a=t.replace(/^(css|img)!/,"");c=c||0,/(^css!|\.css$)/.test(t)?(s=!0,(o=e.createElement("link")).rel="stylesheet",o.href=a):/(^img!|\.(png|gif|jpg|svg)$)/.test(t)?(o=e.createElement("img")).src=a:((o=e.createElement("script")).src=t,o.async=void 0===n||n),!(o.onload=o.onerror=o.onbeforeload=function(e){var n=e.type[0];if(s&amp;&amp;"hideFocus"in o)try{o.sheet.cssText.length||(n="e")}catch(e){n="e"}if("e"==n&amp;&amp;(c+=1)&lt;f)return h(t,r,i,c);rโ€ฆ
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 name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, viewport-fit=cover"/> <meta name="referrer" content="origin-when-cross-origin"/> <title>Resources</title> <meta name="description" content="Resource Library"/> <meta property="og:image" content="https://www.eclecticiq.com/hubfs/raw_assets/public/rebrand-2024/assets/img/og-eclecticiq.png"/> <script>loadjs=function(){var l=function(){},c={},f={},u={};function s(e,n){if(e){var t=u[e];if(f[e]=n,t)for(;t.length;)t[0](e,n),t.splice(0,1)}}function o(e,n){e.call&amp;&amp;(e={success:e}),n.length?(e.error||l)(n):(e.success||l)(e)}function h(t,r,i,c){var s,o,e=document,n=i.async,f=(i.numRetries||0)+1,u=i.before||l,a=t.replace(/^(css|img)!/,"");c=c||0,/(^css!|\.css$)/.test(t)?(s=!0,(o=e.createElement("link")).rel="stylesheet",o.href=a):/(^img!|\.(png|gif|jpg|svg)$)/.test(t)?(o=e.createElement("img")).src=a:((o=e.createElement("script")).src=t,o.async=void 0===n||n),!(o.onload=o.onerror=o.onbeforeload=function(e){var n=e.type[0];if(s&amp;&amp;"hideFocus"in o)try{o.sheet.cssText.length||(n="e")}catch(e){n="e"}if("e"==n&amp;&amp;(c+=1)&lt;f)return h(t,r,i,c);rโ€ฆ
CT35warningthe copyright line at the foot of this page states 2024, 2 years behind the year this assessment ran, which reads as a page left unattended and is the usual sign of a template copied from elsewhere
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 copyright line at the foot of this page states 2024, 2 years behind the year this assessment ran, which reads as a page left unattended and is the usual sign of a template copied from elsewhere
The evidence, taken from the page as served
The copyright line as served, and the year it claims
Page ยท opens in a new tabFoundThe text, as served, around the word
www.eclecticiq.com/library?hsLang=en…ยฉ 2024…
AJ05warningno site-search control detected on this page
What we check
Whether a search box for the site is present in the page as it is served.
What good looks like
A search box is present in the served markup, so the site's own content can be queried directly.
Why it matters
With no search box on the page, its links are the only route from here into the rest of the site.
What we found on this page
no site-search control detected on this page
The evidence, taken from the page as served
The head of this page, as served

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

<head> <meta charset="utf-8"/> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, viewport-fit=cover"/> <meta name="referrer" content="origin-when-cross-origin"/> <title>Resources</title> <meta name="description" content="Resource Library"/> <meta property="og:image" content="https://www.eclecticiq.com/hubfs/raw_assets/public/rebrand-2024/assets/img/og-eclecticiq.png"/> <script>loadjs=function(){var l=function(){},c={},f={},u={};function s(e,n){if(e){var t=u[e];if(f[e]=n,t)for(;t.length;)t[0](e,n),t.splice(0,1)}}function o(e,n){e.call&amp;&amp;(e={success:e}),n.length?(e.error||l)(n):(e.success||l)(e)}function h(t,r,i,c){var s,o,e=document,n=i.async,f=(i.numRetries||0)+1,u=i.before||l,a=t.replace(/^(css|img)!/,"");c=c||0,/(^css!|\.css$)/.test(t)?(s=!0,(o=e.createElement("link")).rel="stylesheet",o.href=a):/(^img!|\.(png|gif|jpg|svg)$)/.test(t)?(o=e.createElement("img")).src=a:((o=e.createElement("script")).src=t,o.async=void 0===n||n),!(o.onload=o.onerror=o.onbeforeload=function(e){var n=e.type[0];if(s&amp;&amp;"hideFocus"in o)try{o.sheet.cssText.length||(n="e")}catch(e){n="e"}if("e"==n&amp;&amp;(c+=1)&lt;f)return h(t,r,i,c);rโ€ฆ
MS08fail6 link wording(s) are used for more than one destination, so the same words point at different pages: โ€œbook a demoโ€, โ€œdownloadโ€, โ€œthreat intelligence browser extensionโ€ and 3 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
6 link wording(s) are used for more than one destination, so the same words point at different pages: โ€œbook a demoโ€, โ€œdownloadโ€, โ€œthreat intelligence browser extensionโ€ and 3 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
"Threat Intelligence Platform"
<a class="flex items-center gap-6 hover:text-red" href="https://www.eclecticiq.com/threat-intelligence-platform" target="_self"> <img class="w-8" src="https://www.eclecticiq.com/hubfs/raw_assets/public/rebrand-2024/assets/svg/platform.svg" alt=""/> <span>Threat Intelligence Platform</span> </a>
"Threat Intelligence Browser Extension"
<a class="flex items-center gap-6 hover:text-red" href="https://www.eclecticiq.com/threat-intelligence-browser-extension" target="_self"> <img class="w-8" src="https://www.eclecticiq.com/hubfs/raw_assets/public/rebrand-2024/assets/svg/browser.svg" alt=""/> <span>Threat Intelligence Browser Extension</span> </a>
"Threat Intelligence Feeds"
<a class="flex items-center gap-6 hover:text-red" href="https://www.eclecticiq.com/threat-intelligence-feeds" target="_self"> <img class="w-8" src="https://www.eclecticiq.com/hubfs/raw_assets/public/rebrand-2024/assets/svg/feeds.svg" alt=""/> <span>Threat Intelligence Feeds</span> </a>
"Book a demo"
<a href="https://www.eclecticiq.com/book-a-demo" target="_blank" class="relative group inline-flex items-center h-12 px-8 rounded-full font-bold bg-blue text-nav text-white leading-none tracking-wide hover:pr-12 transition-all duration-200"> <span class="flex-none">Book a demo</span> <img class="lazyload absolute -top-โ€ฆ
"Watch"
<a href="https://www.eclecticiq.com/library/intelligent-mapping-of-cti-to-mitre-attck-automating-ttp-classification-with-ai" class="group inline-flex items-center gap-2 lg:gap-3 max-w-full font-bold text-sm xl:text-base leading-tight tracking-wide font-semibold text-white mt-auto leading-tight"> <span class="sm:flex-noโ€ฆ
"Watch"
<a href="https://www.eclecticiq.com/library/advanced-static-analysis-real-time-threat-intelligence-for-faster-triage" class="group inline-flex items-center gap-2 lg:gap-3 max-w-full font-bold text-sm xl:text-base leading-tight tracking-wide font-semibold text-white mt-auto leading-tight"> <span class="sm:flex-none trunโ€ฆ
"Download"
<a href="https://www.eclecticiq.com/library/censys-and-eclecticiq-intelligence-center" class="group inline-flex items-center gap-2 lg:gap-3 max-w-full font-bold text-sm xl:text-base leading-tight tracking-wide font-semibold text-white mt-auto leading-tight"> <span class="sm:flex-none truncate">Download</span> <svg xmlnโ€ฆ
"Download"
<a href="https://www.eclecticiq.com/library/bluesky-and-eclecticiq-intelligence-center" class="group inline-flex items-center gap-2 lg:gap-3 max-w-full font-bold text-sm xl:text-base leading-tight tracking-wide font-semibold text-white mt-auto leading-tight"> <span class="sm:flex-none truncate">Download</span> <svg xmlโ€ฆ
"Download"
<a href="https://www.eclecticiq.com/library/the-information-age-battlefield" class="group inline-flex items-center gap-2 lg:gap-3 max-w-full font-bold text-sm xl:text-base leading-tight tracking-wide font-semibold text-white mt-auto leading-tight"> <span class="sm:flex-none truncate">Download</span> <svg xmlns="http://โ€ฆ
"Download"
<a href="https://www.eclecticiq.com/library/modat-integration-with-eclecticiq-intelligence-center" class="group inline-flex items-center gap-2 lg:gap-3 max-w-full font-bold text-sm xl:text-base leading-tight tracking-wide font-semibold text-white mt-auto leading-tight"> <span class="sm:flex-none truncate">Download</spaโ€ฆ
MS10failthe page's first heading is not its top-level heading, so the structure starts part way down; the 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 page's first heading is not its top-level heading, so the structure starts part way down; 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)
H3 Products level jumped
H3 Use Cases
H3 Partners
H3 Resources
H3 Company
H1 Resource Library
H3 Intelligent Mapping of CTI to MITRE ATT&CK: Automating TTP Classification with A level jumped
H3 Advanced Static Analysis + Real-Time Threat Intelligence for Faster Triage
H3 Censys and EclecticIQ Intelligence Centerโ„ข
H3 Bluesky and EclecticIQ Intelligence Centerโ„ข
H3 The information age battlefield: Combining CTI & Information Operations Intellig
H3 Modat Integration with EclecticIQ Intelligence Centerโ„ข
H3 Twitter (X) and EclecticIQ Intelligence Centerโ„ข
H3 Telegram and EclecticIQ Intelligence Center
H3 ReversingLabs Spectra Analyze and Spectra Intelligence Integration with Eclectic
H3 VMRay UniqueSignal and EclecticIQ Intelligence Center
H3 Bitdefender Sandbox and EclecticIQ Intelligence Center
H3 The Weaponization of AI & Implications for Defenders
H3 An AI-driven threat intelligence program
H3 AI-Powered CTI Excellence: Transforming European Cybersecurity Operations
H3 A Stakeholder-centric Approach to Building a High-performing CTI Practice
H3 Beyond the IOC: Elevating Threat Intelligence with Tactics, Techniques, and Proc
H3 STIX 2.1 and Beyond: The Essential Role of STIX in CTI Operations
H3 Strategic Intelligence: Translating APAC Threats to Business Risk
H3 The Context Advantage: from Drowning in Data to Decisive Defense
H3 Strengthening Europeโ€™s cybersecurity future: A strategic imperative
H3 SilkSpecter exposed: Inside a global phishing operation
H3 Sandwormโ€™s Cyber Espionage: Russiaโ€™s GRU-Linked APT Uses Pirated Software in Ukr
H3 Needle-Sharp CTI: AI for Business-Aligned Threats
H3 Qualys and EclecticIQ Intelligence Center
H3 Silobreaker and EclecticIQ Intelligence Center
H3 Microsoft Sentinel and EclecticIQ Intelligence Center
H3 Group-IB and EclecticIQ Intelligence Center
H3 Intel 471 and EclecticIQ Intelligence Center
H3 Kaspersky and EclecticIQ Intelligence Center
H3 Enhancing Triage and Collaboration for Global Banking Security
H3 Recorded Future and EclecticIQ Intelligence Center
H3 Flashpoint and EclecticIQ Intelligence Center
H3 The Path to Pre-emptive CTI Operations
H3 Accelerate Incident Response with Threat Intelligence
H3 Augment Your SOC with Human-Led Threat Intelligence
H3 EclecticIQ Empowers a National CERTโ€™s Collaborative Threat Intelligence Sharing
H3 Splunk and EclecticIQ Intelligence Center
H3 IBM Security and EclecticIQ Intelligence Center
H3 Google Chronicle and EclecticIQ Intelligence Center
H3 Cortex XSOAR and EclecticIQ Intelligence Center
H3 Threat Intelligence Feeds
H3 Threat Intelligence Platform
H3 EclecticIQ Intelligence Platform Makes Threat Intelligence Actionable for Financ
H3 CTI Maturity-driven Threat Intelligence Platform Buyerโ€™s Guide
H3 Building a Strong CTI Foundation
H3 Threat Intelligence Browser Extension
H3 ServiceNow and EclecticIQ Intelligence Center
H3 (no text)
MS13warning2 of 2 iframes untitled
What we check
Each embedded panel on the page carries a title saying what it contains.
What good looks like
Each embedded panel carries a title saying what it contains.
Why it matters
The embedded region stays unnamed, so what it holds is left unstated in the page around it.
What we found on this page
2 of 2 iframes untitled
The evidence, taken from the page as served
The iframes with no title attribute, as served
src=https://www.googletagmanager.com/ns.html?id=GTM-MC7MVC
<iframe src="https://www.googletagmanager.com/ns.html?id=GTM-MC7MVC" height="0" width="0" style="display:none;visibility:hidden"/>
src=https://www.googletagmanager.com/ns.html?id=GTM-MC7MVC
<iframe src="https://www.googletagmanager.com/ns.html?id=GTM-MC7MVC" height="0" width="0" style="display:none;visibility:hidden"/>
https://www.eclecticiq.com/contact?hsLang=en 29.9% Very likely 13 out of 43
CheckResultEvidence
CT06warningtitle length 7 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 7 chars
The evidence, taken from the page as served
The page title, as served
7 characters
<title>Contact</title>
CT32warninglength 44
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 44
The evidence, taken from the page as served
The page's description, as served
44 characters
<meta name="description" content="Contact EclecticIQ for non-sales inquiries. "/>
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)
H3 Products
H3 Use Cases
H3 Partners
H3 Resources
H3 Company
H1 Get in touch
H3 (no text) level jumped
H3 (no text)
CT16warningthe page carries no structured data block stating what it is (not required; a hygiene signal)
What we check
The page carries structured data, the machine-readable summary of what it describes.
What good looks like
The page carries structured data summarising what it describes.
Why it matters
Vendors document this as optional rather than required, so its absence is a small forfeit and no more.
What we found on this page
the page carries no structured data block stating what it is (not required; a hygiene signal)
The evidence, taken from the page as served
The head of this page, as served

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

<head> <meta charset="utf-8"/> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, viewport-fit=cover"/> <meta name="referrer" content="origin-when-cross-origin"/> <title>Contact</title> <meta name="description" content="Contact EclecticIQ for non-sales inquiries. "/> <meta property="og:image" content="https://www.eclecticiq.com/hubfs/raw_assets/public/rebrand-2024/assets/img/og-eclecticiq.png"/> <script>loadjs=function(){var l=function(){},c={},f={},u={};function s(e,n){if(e){var t=u[e];if(f[e]=n,t)for(;t.length;)t[0](e,n),t.splice(0,1)}}function o(e,n){e.call&amp;&amp;(e={success:e}),n.length?(e.error||l)(n):(e.success||l)(e)}function h(t,r,i,c){var s,o,e=document,n=i.async,f=(i.numRetries||0)+1,u=i.before||l,a=t.replace(/^(css|img)!/,"");c=c||0,/(^css!|\.css$)/.test(t)?(s=!0,(o=e.createElement("link")).rel="stylesheet",o.href=a):/(^img!|\.(png|gif|jpg|svg)$)/.test(t)?(o=e.createElement("img")).src=a:((o=e.createElement("script")).src=t,o.async=void 0===n||n),!(o.onload=o.onerror=o.onbeforeload=function(e){var n=e.type[0];if(s&amp;&amp;"hideFocus"in o)try{o.sheet.cssText.length||(n="e")}catch(e){n="e"}if("e"==n&amp;&amp;(c+=1โ€ฆ
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 name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, viewport-fit=cover"/> <meta name="referrer" content="origin-when-cross-origin"/> <title>Contact</title> <meta name="description" content="Contact EclecticIQ for non-sales inquiries. "/> <meta property="og:image" content="https://www.eclecticiq.com/hubfs/raw_assets/public/rebrand-2024/assets/img/og-eclecticiq.png"/> <script>loadjs=function(){var l=function(){},c={},f={},u={};function s(e,n){if(e){var t=u[e];if(f[e]=n,t)for(;t.length;)t[0](e,n),t.splice(0,1)}}function o(e,n){e.call&amp;&amp;(e={success:e}),n.length?(e.error||l)(n):(e.success||l)(e)}function h(t,r,i,c){var s,o,e=document,n=i.async,f=(i.numRetries||0)+1,u=i.before||l,a=t.replace(/^(css|img)!/,"");c=c||0,/(^css!|\.css$)/.test(t)?(s=!0,(o=e.createElement("link")).rel="stylesheet",o.href=a):/(^img!|\.(png|gif|jpg|svg)$)/.test(t)?(o=e.createElement("img")).src=a:((o=e.createElement("script")).src=t,o.async=void 0===n||n),!(o.onload=o.onerror=o.onbeforeload=function(e){var n=e.type[0];if(s&amp;&amp;"hideFocus"in o)try{o.sheet.cssText.length||(n="e")}catch(e){n="e"}if("e"==n&amp;&amp;(c+=1โ€ฆ
CT35warningthe copyright line at the foot of this page states 2024, 2 years behind the year this assessment ran, which reads as a page left unattended and is the usual sign of a template copied from elsewhere
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 copyright line at the foot of this page states 2024, 2 years behind the year this assessment ran, which reads as a page left unattended and is the usual sign of a template copied from elsewhere
The evidence, taken from the page as served
The copyright line as served, and the year it claims
Page ยท opens in a new tabFoundThe text, as served, around the word
www.eclecticiq.com/contact?hsLang=en…ยฉ 2024…
CT24warningthe page's own content runs to 376 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 376 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 content376 characters
All the text on the page1806 characters
The point we measure against400 characters
CT13warningmain content is 20% 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 20% 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 content376 characters
All the text on the page1806 characters
The page's own share of it20%
The point we measure against25%
AJ05warningno site-search control detected on this page
What we check
Whether a search box for the site is present in the page as it is served.
What good looks like
A search box is present in the served markup, so the site's own content can be queried directly.
Why it matters
With no search box on the page, its links are the only route from here into the rest of the site.
What we found on this page
no site-search control detected on this page
The evidence, taken from the page as served
The head of this page, as served

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

<head> <meta charset="utf-8"/> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, viewport-fit=cover"/> <meta name="referrer" content="origin-when-cross-origin"/> <title>Contact</title> <meta name="description" content="Contact EclecticIQ for non-sales inquiries. "/> <meta property="og:image" content="https://www.eclecticiq.com/hubfs/raw_assets/public/rebrand-2024/assets/img/og-eclecticiq.png"/> <script>loadjs=function(){var l=function(){},c={},f={},u={};function s(e,n){if(e){var t=u[e];if(f[e]=n,t)for(;t.length;)t[0](e,n),t.splice(0,1)}}function o(e,n){e.call&amp;&amp;(e={success:e}),n.length?(e.error||l)(n):(e.success||l)(e)}function h(t,r,i,c){var s,o,e=document,n=i.async,f=(i.numRetries||0)+1,u=i.before||l,a=t.replace(/^(css|img)!/,"");c=c||0,/(^css!|\.css$)/.test(t)?(s=!0,(o=e.createElement("link")).rel="stylesheet",o.href=a):/(^img!|\.(png|gif|jpg|svg)$)/.test(t)?(o=e.createElement("img")).src=a:((o=e.createElement("script")).src=t,o.async=void 0===n||n),!(o.onload=o.onerror=o.onbeforeload=function(e){var n=e.type[0];if(s&amp;&amp;"hideFocus"in o)try{o.sheet.cssText.length||(n="e")}catch(e){n="e"}if("e"==n&amp;&amp;(c+=1โ€ฆ
MS08fail1 link wording(s) are used for more than one destination, so the same words point at different pages: โ€œbook a demoโ€; 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: โ€œbook a demoโ€; 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
"Book a demo"
<a href="https://www.eclecticiq.com/book-a-demo?hsLang=en" target="_blank" class="relative group inline-flex items-center h-12 px-8 rounded-full font-bold bg-blue text-nav text-white leading-none tracking-wide hover:pr-12 transition-all duration-200"> <span class="flex-none">Book a demo</span> <img class="lazyload absoโ€ฆ
"Book a demo"
<a href="" class="relative flex xs:inline-flex justify-center items-center h-12 px-8 rounded-full font-bold bg-blue text-nav text-white leading-none tracking-wide"> <span class="flex-none">Book a demo</span> <img class="lazyload absolute -top-2 right-2 w-4 scale-110" src="https://www.eclecticiq.com/hubfs/raw_assets/pubโ€ฆ
MS10failthe page's first heading is not its top-level heading, so the structure starts part way down; the 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 page's first heading is not its top-level heading, so the structure starts part way down; 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)
H3 Products level jumped
H3 Use Cases
H3 Partners
H3 Resources
H3 Company
H1 Get in touch
H3 (no text) level jumped
H3 (no text)
MS13warning2 of 2 iframes untitled
What we check
Each embedded panel on the page carries a title saying what it contains.
What good looks like
Each embedded panel carries a title saying what it contains.
Why it matters
The embedded region stays unnamed, so what it holds is left unstated in the page around it.
What we found on this page
2 of 2 iframes untitled
The evidence, taken from the page as served
The iframes with no title attribute, as served
src=https://www.googletagmanager.com/ns.html?id=GTM-MC7MVC
<iframe src="https://www.googletagmanager.com/ns.html?id=GTM-MC7MVC" height="0" width="0" style="display:none;visibility:hidden"/>
src=https://www.googletagmanager.com/ns.html?id=GTM-MC7MVC
<iframe src="https://www.googletagmanager.com/ns.html?id=GTM-MC7MVC" height="0" width="0" style="display:none;visibility:hidden"/>
CT34failthe page's own words are thin: 266 of its 312 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: 266 of its 312 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
www.eclecticiq.com/contact?hsLang=en46 of 31285%www.eclecticiq.com/impressum?hsLang=en85%
https://www.eclecticiq.com/cookie-notice?hsLang=en 54.6% Likely 7 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 name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, viewport-fit=cover"/> <meta name="referrer" content="origin-when-cross-origin"/> <title>EclecticIQ Cookie Notice</title> <meta name="description" content="What types of cookies do we use? EclecticIQ uses different types of cookies. A list of types of cookies used by EclecticIQ can be found here."/> <meta property="og:image" content="https://www.eclecticiq.com/hubfs/raw_assets/public/rebrand-2024/assets/img/og-eclecticiq.png"/> <script>loadjs=function(){var l=function(){},c={},f={},u={};function s(e,n){if(e){var t=u[e];if(f[e]=n,t)for(;t.length;)t[0](e,n),t.splice(0,1)}}function o(e,n){e.call&amp;&amp;(e={success:e}),n.length?(e.error||l)(n):(e.success||l)(e)}function h(t,r,i,c){var s,o,e=document,n=i.async,f=(i.numRetries||0)+1,u=i.before||l,a=t.replace(/^(css|img)!/,"");c=c||0,/(^css!|\.css$)/.test(t)?(s=!0,(o=e.createElement("link")).rel="stylesheet",o.href=a):/(^img!|\.(png|gif|jpg|svg)$)/.test(t)?(o=e.createElement("img")).src=a:((o=e.createElement("script")).src=t,o.async=void 0===n||n),!(o.onload=o.onerror=o.onbeforeload=function(e){var n=eโ€ฆ
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 name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, viewport-fit=cover"/> <meta name="referrer" content="origin-when-cross-origin"/> <title>EclecticIQ Cookie Notice</title> <meta name="description" content="What types of cookies do we use? EclecticIQ uses different types of cookies. A list of types of cookies used by EclecticIQ can be found here."/> <meta property="og:image" content="https://www.eclecticiq.com/hubfs/raw_assets/public/rebrand-2024/assets/img/og-eclecticiq.png"/> <script>loadjs=function(){var l=function(){},c={},f={},u={};function s(e,n){if(e){var t=u[e];if(f[e]=n,t)for(;t.length;)t[0](e,n),t.splice(0,1)}}function o(e,n){e.call&amp;&amp;(e={success:e}),n.length?(e.error||l)(n):(e.success||l)(e)}function h(t,r,i,c){var s,o,e=document,n=i.async,f=(i.numRetries||0)+1,u=i.before||l,a=t.replace(/^(css|img)!/,"");c=c||0,/(^css!|\.css$)/.test(t)?(s=!0,(o=e.createElement("link")).rel="stylesheet",o.href=a):/(^img!|\.(png|gif|jpg|svg)$)/.test(t)?(o=e.createElement("img")).src=a:((o=e.createElement("script")).src=t,o.async=void 0===n||n),!(o.onload=o.onerror=o.onbeforeload=function(e){var n=eโ€ฆ
CT35warningthe copyright line at the foot of this page states 2024, 2 years behind the year this assessment ran, which reads as a page left unattended and is the usual sign of a template copied from elsewhere
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 copyright line at the foot of this page states 2024, 2 years behind the year this assessment ran, which reads as a page left unattended and is the usual sign of a template copied from elsewhere
The evidence, taken from the page as served
The copyright line as served, and the year it claims
Page ยท opens in a new tabFoundThe text, as served, around the word
www.eclecticiq.com/cookie-notice?hsLang=en…ยฉ 2024…
AJ05warningno site-search control detected on this page
What we check
Whether a search box for the site is present in the page as it is served.
What good looks like
A search box is present in the served markup, so the site's own content can be queried directly.
Why it matters
With no search box on the page, its links are the only route from here into the rest of the site.
What we found on this page
no site-search control detected on this page
The evidence, taken from the page as served
The head of this page, as served

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

<head> <meta charset="utf-8"/> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, viewport-fit=cover"/> <meta name="referrer" content="origin-when-cross-origin"/> <title>EclecticIQ Cookie Notice</title> <meta name="description" content="What types of cookies do we use? EclecticIQ uses different types of cookies. A list of types of cookies used by EclecticIQ can be found here."/> <meta property="og:image" content="https://www.eclecticiq.com/hubfs/raw_assets/public/rebrand-2024/assets/img/og-eclecticiq.png"/> <script>loadjs=function(){var l=function(){},c={},f={},u={};function s(e,n){if(e){var t=u[e];if(f[e]=n,t)for(;t.length;)t[0](e,n),t.splice(0,1)}}function o(e,n){e.call&amp;&amp;(e={success:e}),n.length?(e.error||l)(n):(e.success||l)(e)}function h(t,r,i,c){var s,o,e=document,n=i.async,f=(i.numRetries||0)+1,u=i.before||l,a=t.replace(/^(css|img)!/,"");c=c||0,/(^css!|\.css$)/.test(t)?(s=!0,(o=e.createElement("link")).rel="stylesheet",o.href=a):/(^img!|\.(png|gif|jpg|svg)$)/.test(t)?(o=e.createElement("img")).src=a:((o=e.createElement("script")).src=t,o.async=void 0===n||n),!(o.onload=o.onerror=o.onbeforeload=function(e){var n=eโ€ฆ
MS08fail1 link wording(s) are used for more than one destination, so the same words point at different pages: โ€œbook a demoโ€; 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: โ€œbook a demoโ€; 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
"Book a demo"
<a href="https://www.eclecticiq.com/book-a-demo?hsLang=en" target="_blank" class="relative group inline-flex items-center h-12 px-8 rounded-full font-bold bg-blue text-nav text-white leading-none tracking-wide hover:pr-12 transition-all duration-200"> <span class="flex-none">Book a demo</span> <img class="lazyload absoโ€ฆ
"Book a demo"
<a href="" class="relative flex xs:inline-flex justify-center items-center h-12 px-8 rounded-full font-bold bg-blue text-nav text-white leading-none tracking-wide"> <span class="flex-none">Book a demo</span> <img class="lazyload absolute -top-2 right-2 w-4 scale-110" src="https://www.eclecticiq.com/hubfs/raw_assets/pubโ€ฆ
MS10failthe page's first heading is not its top-level heading, so the structure starts part way down
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 page's first heading is not its top-level heading, so the structure starts part way down
The evidence, taken from the page as served
The page's heading outline, in document order (a jump in level is marked)
H3 Products level jumped
H3 Use Cases
H3 Partners
H3 Resources
H3 Company
H1 Cookie Notice
H2 What types of cookies do we use?
H3 (no text)
MS13warning2 of 2 iframes untitled
What we check
Each embedded panel on the page carries a title saying what it contains.
What good looks like
Each embedded panel carries a title saying what it contains.
Why it matters
The embedded region stays unnamed, so what it holds is left unstated in the page around it.
What we found on this page
2 of 2 iframes untitled
The evidence, taken from the page as served
The iframes with no title attribute, as served
src=https://www.googletagmanager.com/ns.html?id=GTM-MC7MVC
<iframe src="https://www.googletagmanager.com/ns.html?id=GTM-MC7MVC" height="0" width="0" style="display:none;visibility:hidden"/>
src=https://www.googletagmanager.com/ns.html?id=GTM-MC7MVC
<iframe src="https://www.googletagmanager.com/ns.html?id=GTM-MC7MVC" height="0" width="0" style="display:none;visibility:hidden"/>
https://www.eclecticiq.com/impressum?hsLang=en 29.5% Very likely 13 out of 43
CheckResultEvidence
CT06warningtitle length 9 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 9 chars
The evidence, taken from the page as served
The page title, as served
9 characters
<title>Impressum</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)
H3 Products
H3 Use Cases
H3 Partners
H3 Resources
H3 Company
H1 Impressum
H4 EclecticIQ B.V. level jumped
H4 Registered address
H4 Contact information
H3 (no text)
CT16warningthe page carries no structured data block stating what it is (not required; a hygiene signal)
What we check
The page carries structured data, the machine-readable summary of what it describes.
What good looks like
The page carries structured data summarising what it describes.
Why it matters
Vendors document this as optional rather than required, so its absence is a small forfeit and no more.
What we found on this page
the page carries no structured data block stating what it is (not required; a hygiene signal)
The evidence, taken from the page as served
The head of this page, as served

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

<head> <meta charset="utf-8"/> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, viewport-fit=cover"/> <meta name="referrer" content="origin-when-cross-origin"/> <title>Impressum</title> <meta name="description" content="Our Impressum show a statement of ownership, registered business address, business registration information, and VAT ID."/> <meta property="og:image" content="https://www.eclecticiq.com/hubfs/raw_assets/public/rebrand-2024/assets/img/og-eclecticiq.png"/> <script>loadjs=function(){var l=function(){},c={},f={},u={};function s(e,n){if(e){var t=u[e];if(f[e]=n,t)for(;t.length;)t[0](e,n),t.splice(0,1)}}function o(e,n){e.call&amp;&amp;(e={success:e}),n.length?(e.error||l)(n):(e.success||l)(e)}function h(t,r,i,c){var s,o,e=document,n=i.async,f=(i.numRetries||0)+1,u=i.before||l,a=t.replace(/^(css|img)!/,"");c=c||0,/(^css!|\.css$)/.test(t)?(s=!0,(o=e.createElement("link")).rel="stylesheet",o.href=a):/(^img!|\.(png|gif|jpg|svg)$)/.test(t)?(o=e.createElement("img")).src=a:((o=e.createElement("script")).src=t,o.async=void 0===n||n),!(o.onload=o.onerror=o.onbeforeload=function(e){var n=e.type[0];if(s&amp;&amp;"hideFocus"inโ€ฆ
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 name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, viewport-fit=cover"/> <meta name="referrer" content="origin-when-cross-origin"/> <title>Impressum</title> <meta name="description" content="Our Impressum show a statement of ownership, registered business address, business registration information, and VAT ID."/> <meta property="og:image" content="https://www.eclecticiq.com/hubfs/raw_assets/public/rebrand-2024/assets/img/og-eclecticiq.png"/> <script>loadjs=function(){var l=function(){},c={},f={},u={};function s(e,n){if(e){var t=u[e];if(f[e]=n,t)for(;t.length;)t[0](e,n),t.splice(0,1)}}function o(e,n){e.call&amp;&amp;(e={success:e}),n.length?(e.error||l)(n):(e.success||l)(e)}function h(t,r,i,c){var s,o,e=document,n=i.async,f=(i.numRetries||0)+1,u=i.before||l,a=t.replace(/^(css|img)!/,"");c=c||0,/(^css!|\.css$)/.test(t)?(s=!0,(o=e.createElement("link")).rel="stylesheet",o.href=a):/(^img!|\.(png|gif|jpg|svg)$)/.test(t)?(o=e.createElement("img")).src=a:((o=e.createElement("script")).src=t,o.async=void 0===n||n),!(o.onload=o.onerror=o.onbeforeload=function(e){var n=e.type[0];if(s&amp;&amp;"hideFocus"inโ€ฆ
AR13warningonly 255 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 255 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
255 characters
Impressum EclecticIQ B.V. Dutch Chamber of Commerce registration number (KvK nummer): 61333999VAT number: NL8543 010 82B01 Registered address De Boelelaan 71083 HJ AmsterdamThe Netherlands Contact information Tel: +31 20 737 1063Email: info@eclecticiq.com
CT35warningthe copyright line at the foot of this page states 2024, 2 years behind the year this assessment ran, which reads as a page left unattended and is the usual sign of a template copied from elsewhere
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 copyright line at the foot of this page states 2024, 2 years behind the year this assessment ran, which reads as a page left unattended and is the usual sign of a template copied from elsewhere
The evidence, taken from the page as served
The copyright line as served, and the year it claims
Page ยท opens in a new tabFoundThe text, as served, around the word
www.eclecticiq.com/impressum?hsLang=en…ยฉ 2024…
CT24warningthe page's own content runs to 255 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 255 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 content255 characters
All the text on the page1690 characters
The point we measure against400 characters
CT13warningmain content is 15% of the page's text; the shared furniture around it dominates what is read out
What we check
How much of the page's text sits in the main content region rather than in surrounding furniture.
What good looks like
Most of the page's text sits in its main content region rather than in the surrounding furniture.
Why it matters
When the main region is a small slice of the page, what is pulled out is mostly menus and boilerplate.
What we found on this page
main content is 15% of the page's text; the shared furniture around it dominates what is read out
The evidence, taken from the page as served
How much of this page is its own content

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

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

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

<head> <meta charset="utf-8"/> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, viewport-fit=cover"/> <meta name="referrer" content="origin-when-cross-origin"/> <title>Impressum</title> <meta name="description" content="Our Impressum show a statement of ownership, registered business address, business registration information, and VAT ID."/> <meta property="og:image" content="https://www.eclecticiq.com/hubfs/raw_assets/public/rebrand-2024/assets/img/og-eclecticiq.png"/> <script>loadjs=function(){var l=function(){},c={},f={},u={};function s(e,n){if(e){var t=u[e];if(f[e]=n,t)for(;t.length;)t[0](e,n),t.splice(0,1)}}function o(e,n){e.call&amp;&amp;(e={success:e}),n.length?(e.error||l)(n):(e.success||l)(e)}function h(t,r,i,c){var s,o,e=document,n=i.async,f=(i.numRetries||0)+1,u=i.before||l,a=t.replace(/^(css|img)!/,"");c=c||0,/(^css!|\.css$)/.test(t)?(s=!0,(o=e.createElement("link")).rel="stylesheet",o.href=a):/(^img!|\.(png|gif|jpg|svg)$)/.test(t)?(o=e.createElement("img")).src=a:((o=e.createElement("script")).src=t,o.async=void 0===n||n),!(o.onload=o.onerror=o.onbeforeload=function(e){var n=e.type[0];if(s&amp;&amp;"hideFocus"inโ€ฆ
MS08fail1 link wording(s) are used for more than one destination, so the same words point at different pages: โ€œbook a demoโ€; 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: โ€œbook a demoโ€; 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
"Book a demo"
<a href="https://www.eclecticiq.com/book-a-demo?hsLang=en" target="_blank" class="relative group inline-flex items-center h-12 px-8 rounded-full font-bold bg-blue text-nav text-white leading-none tracking-wide hover:pr-12 transition-all duration-200"> <span class="flex-none">Book a demo</span> <img class="lazyload absoโ€ฆ
"Book a demo"
<a href="" class="relative flex xs:inline-flex justify-center items-center h-12 px-8 rounded-full font-bold bg-blue text-nav text-white leading-none tracking-wide"> <span class="flex-none">Book a demo</span> <img class="lazyload absolute -top-2 right-2 w-4 scale-110" src="https://www.eclecticiq.com/hubfs/raw_assets/pubโ€ฆ
MS10failthe page's first heading is not its top-level heading, so the structure starts part way down; the 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 page's first heading is not its top-level heading, so the structure starts part way down; 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)
H3 Products level jumped
H3 Use Cases
H3 Partners
H3 Resources
H3 Company
H1 Impressum
H4 EclecticIQ B.V. level jumped
H4 Registered address
H4 Contact information
H3 (no text)
MS13warning2 of 2 iframes untitled
What we check
Each embedded panel on the page carries a title saying what it contains.
What good looks like
Each embedded panel carries a title saying what it contains.
Why it matters
The embedded region stays unnamed, so what it holds is left unstated in the page around it.
What we found on this page
2 of 2 iframes untitled
The evidence, taken from the page as served
The iframes with no title attribute, as served
src=https://www.googletagmanager.com/ns.html?id=GTM-MC7MVC
<iframe src="https://www.googletagmanager.com/ns.html?id=GTM-MC7MVC" height="0" width="0" style="display:none;visibility:hidden"/>
src=https://www.googletagmanager.com/ns.html?id=GTM-MC7MVC
<iframe src="https://www.googletagmanager.com/ns.html?id=GTM-MC7MVC" height="0" width="0" style="display:none;visibility:hidden"/>
CT34failthe page's own words are thin: 266 of its 292 words are shared navigation and footer, so it reads as 88% 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: 266 of its 292 words are shared navigation and footer, so it reads as 88% identical to another page, which a machine can then take as a duplicate and pass over, missing the little content that is its own; the matching page is named in the view
The evidence, taken from the page as served
This page's own words, lost in shared navigation and footer
Page ยท opens in a new tabOwn wordsChromeReads as identical toShared
www.eclecticiq.com/impressum?hsLang=en26 of 29291%www.eclecticiq.com/leadership?hsLang=en88%
https://www.eclecticiq.com/privacy?hsLang=en 54.3% Likely 8 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="Get familiar with EclecticIQ's Privacy Notice. We are committed to fulfilling the requirements under the General Data Protection Regulation (GDPR) and other data protection frameworks."/>
CT16warningthe page carries no structured data block stating what it is (not required; a hygiene signal)
What we check
The page carries structured data, the machine-readable summary of what it describes.
What good looks like
The page carries structured data summarising what it describes.
Why it matters
Vendors document this as optional rather than required, so its absence is a small forfeit and no more.
What we found on this page
the page carries no structured data block stating what it is (not required; a hygiene signal)
The evidence, taken from the page as served
The head of this page, as served

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

<head> <meta charset="utf-8"/> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, viewport-fit=cover"/> <meta name="referrer" content="origin-when-cross-origin"/> <title>Privacy Notice</title> <meta name="description" content="Get familiar with EclecticIQ's Privacy Notice. We are committed to fulfilling the requirements under the General Data Protection Regulation (GDPR) and other data protection frameworks."/> <meta property="og:image" content="https://www.eclecticiq.com/hubfs/raw_assets/public/rebrand-2024/assets/img/og-eclecticiq.png"/> <script>loadjs=function(){var l=function(){},c={},f={},u={};function s(e,n){if(e){var t=u[e];if(f[e]=n,t)for(;t.length;)t[0](e,n),t.splice(0,1)}}function o(e,n){e.call&amp;&amp;(e={success:e}),n.length?(e.error||l)(n):(e.success||l)(e)}function h(t,r,i,c){var s,o,e=document,n=i.async,f=(i.numRetries||0)+1,u=i.before||l,a=t.replace(/^(css|img)!/,"");c=c||0,/(^css!|\.css$)/.test(t)?(s=!0,(o=e.createElement("link")).rel="stylesheet",o.href=a):/(^img!|\.(png|gif|jpg|svg)$)/.test(t)?(o=e.createElement("img")).src=a:((o=e.createElement("script")).src=t,o.async=void 0===n||n),!(o.onload=o.onerror=oโ€ฆ
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 name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, viewport-fit=cover"/> <meta name="referrer" content="origin-when-cross-origin"/> <title>Privacy Notice</title> <meta name="description" content="Get familiar with EclecticIQ's Privacy Notice. We are committed to fulfilling the requirements under the General Data Protection Regulation (GDPR) and other data protection frameworks."/> <meta property="og:image" content="https://www.eclecticiq.com/hubfs/raw_assets/public/rebrand-2024/assets/img/og-eclecticiq.png"/> <script>loadjs=function(){var l=function(){},c={},f={},u={};function s(e,n){if(e){var t=u[e];if(f[e]=n,t)for(;t.length;)t[0](e,n),t.splice(0,1)}}function o(e,n){e.call&amp;&amp;(e={success:e}),n.length?(e.error||l)(n):(e.success||l)(e)}function h(t,r,i,c){var s,o,e=document,n=i.async,f=(i.numRetries||0)+1,u=i.before||l,a=t.replace(/^(css|img)!/,"");c=c||0,/(^css!|\.css$)/.test(t)?(s=!0,(o=e.createElement("link")).rel="stylesheet",o.href=a):/(^img!|\.(png|gif|jpg|svg)$)/.test(t)?(o=e.createElement("img")).src=a:((o=e.createElement("script")).src=t,o.async=void 0===n||n),!(o.onload=o.onerror=oโ€ฆ
CT35warningthe copyright line at the foot of this page states 2024, 2 years behind the year this assessment ran, which reads as a page left unattended and is the usual sign of a template copied from elsewhere
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 copyright line at the foot of this page states 2024, 2 years behind the year this assessment ran, which reads as a page left unattended and is the usual sign of a template copied from elsewhere
The evidence, taken from the page as served
The copyright line as served, and the year it claims
Page ยท opens in a new tabFoundThe text, as served, around the word
www.eclecticiq.com/privacy?hsLang=en…ยฉ 2024…
AJ05warningno site-search control detected on this page
What we check
Whether a search box for the site is present in the page as it is served.
What good looks like
A search box is present in the served markup, so the site's own content can be queried directly.
Why it matters
With no search box on the page, its links are the only route from here into the rest of the site.
What we found on this page
no site-search control detected on this page
The evidence, taken from the page as served
The head of this page, as served

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

<head> <meta charset="utf-8"/> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, viewport-fit=cover"/> <meta name="referrer" content="origin-when-cross-origin"/> <title>Privacy Notice</title> <meta name="description" content="Get familiar with EclecticIQ's Privacy Notice. We are committed to fulfilling the requirements under the General Data Protection Regulation (GDPR) and other data protection frameworks."/> <meta property="og:image" content="https://www.eclecticiq.com/hubfs/raw_assets/public/rebrand-2024/assets/img/og-eclecticiq.png"/> <script>loadjs=function(){var l=function(){},c={},f={},u={};function s(e,n){if(e){var t=u[e];if(f[e]=n,t)for(;t.length;)t[0](e,n),t.splice(0,1)}}function o(e,n){e.call&amp;&amp;(e={success:e}),n.length?(e.error||l)(n):(e.success||l)(e)}function h(t,r,i,c){var s,o,e=document,n=i.async,f=(i.numRetries||0)+1,u=i.before||l,a=t.replace(/^(css|img)!/,"");c=c||0,/(^css!|\.css$)/.test(t)?(s=!0,(o=e.createElement("link")).rel="stylesheet",o.href=a):/(^img!|\.(png|gif|jpg|svg)$)/.test(t)?(o=e.createElement("img")).src=a:((o=e.createElement("script")).src=t,o.async=void 0===n||n),!(o.onload=o.onerror=oโ€ฆ
MS08fail1 link wording(s) are used for more than one destination, so the same words point at different pages: โ€œbook a demoโ€; 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: โ€œbook a demoโ€; 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
"Book a demo"
<a href="https://www.eclecticiq.com/book-a-demo?hsLang=en" target="_blank" class="relative group inline-flex items-center h-12 px-8 rounded-full font-bold bg-blue text-nav text-white leading-none tracking-wide hover:pr-12 transition-all duration-200"> <span class="flex-none">Book a demo</span> <img class="lazyload absoโ€ฆ
"Book a demo"
<a href="" class="relative flex xs:inline-flex justify-center items-center h-12 px-8 rounded-full font-bold bg-blue text-nav text-white leading-none tracking-wide"> <span class="flex-none">Book a demo</span> <img class="lazyload absolute -top-2 right-2 w-4 scale-110" src="https://www.eclecticiq.com/hubfs/raw_assets/pubโ€ฆ
MS10failthe page's first heading is not its top-level heading, so the structure starts part way down
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 page's first heading is not its top-level heading, so the structure starts part way down
The evidence, taken from the page as served
The page's heading outline, in document order (a jump in level is marked)
H3 Products level jumped
H3 Use Cases
H3 Partners
H3 Resources
H3 Company
H1 Privacy Notice
H2 How we collect your data?
H2 Types of data collected
H2 Legal basis for processing
H2 Data retention
H2 Data sharing practices
H2 Data security and data transfers
H2 Marketing
H2 Your rights under the GDPR
H2 Cookies
H2 Updates to this Privacy Notice
H2 Contact information
H2 Personal Data of Children
H3 (no text)
MS13warning2 of 2 iframes untitled
What we check
Each embedded panel on the page carries a title saying what it contains.
What good looks like
Each embedded panel carries a title saying what it contains.
Why it matters
The embedded region stays unnamed, so what it holds is left unstated in the page around it.
What we found on this page
2 of 2 iframes untitled
The evidence, taken from the page as served
The iframes with no title attribute, as served
src=https://www.googletagmanager.com/ns.html?id=GTM-MC7MVC
<iframe src="https://www.googletagmanager.com/ns.html?id=GTM-MC7MVC" height="0" width="0" style="display:none;visibility:hidden"/>
src=https://www.googletagmanager.com/ns.html?id=GTM-MC7MVC
<iframe src="https://www.googletagmanager.com/ns.html?id=GTM-MC7MVC" height="0" width="0" style="display:none;visibility:hidden"/>
https://www.eclecticiq.com/library/threat-intelligence-platform-product-sheet?hsLang=en 55.4% Likely 7 out of 43
CheckResultEvidence
CT32warninglength 201
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 201
The evidence, taken from the page as served
The page's description, as served
201 characters
<meta name="description" content="Boost your security operations with EclecticIQ Threat Intelligence Platform. Leverage AI and contextual insights to prioritize critical threats, make faster decisions, and stay ahead of emerging risks."/>
CT35warningthe copyright line at the foot of this page states 2024, 2 years behind the year this assessment ran, which reads as a page left unattended and is the usual sign of a template copied from elsewhere
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 copyright line at the foot of this page states 2024, 2 years behind the year this assessment ran, which reads as a page left unattended and is the usual sign of a template copied from elsewhere
The evidence, taken from the page as served
The copyright line as served, and the year it claims
Page ยท opens in a new tabFoundThe text, as served, around the word
www.eclecticiq.com/library/threat-intelligence-platform-product-sheet?hsLang=en…ยฉ 2024…
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 content467 characters
All the text on the page1917 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 name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, viewport-fit=cover"/> <meta name="referrer" content="origin-when-cross-origin"/> <title>Threat Intelligence Platform</title> <meta name="description" content="Boost your security operations with EclecticIQ Threat Intelligence Platform. Leverage AI and contextual insights to prioritize critical threats, make faster decisions, and stay ahead of emerging risks."/> <meta property="og:image" content="https://www.eclecticiq.com/hubfs/raw_assets/public/rebrand-2024/assets/img/og-eclecticiq.png"/> <script>loadjs=function(){var l=function(){},c={},f={},u={};function s(e,n){if(e){var t=u[e];if(f[e]=n,t)for(;t.length;)t[0](e,n),t.splice(0,1)}}function o(e,n){e.call&amp;&amp;(e={success:e}),n.length?(e.error||l)(n):(e.success||l)(e)}function h(t,r,i,c){var s,o,e=document,n=i.async,f=(i.numRetries||0)+1,u=i.before||l,a=t.replace(/^(css|img)!/,"");c=c||0,/(^css!|\.css$)/.test(t)?(s=!0,(o=e.createElement("link")).rel="stylesheet",o.href=a):/(^img!|\.(png|gif|jpg|svg)$)/.test(t)?(o=e.createElement("img")).src=a:((o=e.createElement("script")).src=t,o.async=void 0โ€ฆ
MS08fail1 link wording(s) are used for more than one destination, so the same words point at different pages: โ€œbook a demoโ€; 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: โ€œbook a demoโ€; 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
"Book a demo"
<a href="https://www.eclecticiq.com/book-a-demo" target="_blank" class="relative group inline-flex items-center h-12 px-8 rounded-full font-bold bg-blue text-nav text-white leading-none tracking-wide hover:pr-12 transition-all duration-200"> <span class="flex-none">Book a demo</span> <img class="lazyload absolute -top-โ€ฆ
"Book a demo"
<a href="" class="relative flex xs:inline-flex justify-center items-center h-12 px-8 rounded-full font-bold bg-blue text-nav text-white leading-none tracking-wide"> <span class="flex-none">Book a demo</span> <img class="lazyload absolute -top-2 right-2 w-4 scale-110" src="https://www.eclecticiq.com/hubfs/raw_assets/pubโ€ฆ
MS10failthe page's first heading is not its top-level heading, so the structure starts part way down
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 page's first heading is not its top-level heading, so the structure starts part way down
The evidence, taken from the page as served
The page's heading outline, in document order (a jump in level is marked)
H3 Products level jumped
H3 Use Cases
H3 Partners
H3 Resources
H3 Company
H1 Threat Intelligence Platform
H2 Download Product Sheet
H3 (no text)
H3 (no text)
MS13warning2 of 2 iframes untitled
What we check
Each embedded panel on the page carries a title saying what it contains.
What good looks like
Each embedded panel carries a title saying what it contains.
Why it matters
The embedded region stays unnamed, so what it holds is left unstated in the page around it.
What we found on this page
2 of 2 iframes untitled
The evidence, taken from the page as served
The iframes with no title attribute, as served
src=https://www.googletagmanager.com/ns.html?id=GTM-MC7MVC
<iframe src="https://www.googletagmanager.com/ns.html?id=GTM-MC7MVC" height="0" width="0" style="display:none;visibility:hidden"/>
src=https://www.googletagmanager.com/ns.html?id=GTM-MC7MVC
<iframe src="https://www.googletagmanager.com/ns.html?id=GTM-MC7MVC" height="0" width="0" style="display:none;visibility:hidden"/>
https://www.eclecticiq.com/library/intelligent-mapping-of-cti-to-mitre-attck-automating-ttp-classification-with-ai?hsLang=en 55.4% Likely 7 out of 43
CheckResultEvidence
CT06warningtitle length 81 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 81 chars
The evidence, taken from the page as served
The page title, as served
81 characters
<title>Intelligent Mapping of CTI to MITRE ATT&amp;CK: Automating TTP Classification with AI</title>
CT32warninglength 338
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 338
The evidence, taken from the page as served
The page's description, as served
338 characters
<meta name="description" content="This webinar explores automating CTI to MITRE ATT&amp;CK mapping using transformer-based multi-label classification, embedding similarity methods, and LLMs, before diving into findings from the CTI-AI case study; examining how AI enhances SOC and CTI operations through faster analysis,โ€ฆ
CT35warningthe copyright line at the foot of this page states 2024, 2 years behind the year this assessment ran, which reads as a page left unattended and is the usual sign of a template copied from elsewhere
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 copyright line at the foot of this page states 2024, 2 years behind the year this assessment ran, which reads as a page left unattended and is the usual sign of a template copied from elsewhere
The evidence, taken from the page as served
The copyright line as served, and the year it claims
Page ยท opens in a new tabFoundThe text, as served, around the word
www.eclecticiq.com/library/intelligent-mapping-of-cti-to-mitre-attck-automating-ttp-classification-with-ai?hsLang=en…ยฉ 2024…
AJ05warningno site-search control detected on this page
What we check
Whether a search box for the site is present in the page as it is served.
What good looks like
A search box is present in the served markup, so the site's own content can be queried directly.
Why it matters
With no search box on the page, its links are the only route from here into the rest of the site.
What we found on this page
no site-search control detected on this page
The evidence, taken from the page as served
The head of this page, as served

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

<head> <meta charset="utf-8"/> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, viewport-fit=cover"/> <meta name="referrer" content="origin-when-cross-origin"/> <title>Intelligent Mapping of CTI to MITRE ATT&amp;CK: Automating TTP Classification with AI</title> <meta name="description" content="This webinar explores automating CTI to MITRE ATT&amp;CK mapping using transformer-based multi-label classification, embedding similarity methods, and LLMs, before diving into findings from the CTI-AI case study; examining how AI enhances SOC and CTI operations through faster analysis, improved threat modelling, and smarter decision-making."/> <script>loadjs=function(){var l=function(){},c={},f={},u={};function s(e,n){if(e){var t=u[e];if(f[e]=n,t)for(;t.length;)t[0](e,n),t.splice(0,1)}}function o(e,n){e.call&amp;&amp;(e={success:e}),n.length?(e.error||l)(n):(e.success||l)(e)}function h(t,r,i,c){var s,o,e=document,n=i.async,f=(i.numRetries||0)+1,u=i.before||l,a=t.replace(/^(css|img)!/,"");c=c||0,/(^css!|\.css$)/.test(t)?(s=!0,(o=e.createElement("link")).rel="stylesheet",o.href=a):/(^img!|\.(png|gif|jpg|svg)$)/.test(t)?(o=e.createElemenโ€ฆ
MS08fail1 link wording(s) are used for more than one destination, so the same words point at different pages: โ€œbook a demoโ€; 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: โ€œbook a demoโ€; 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
"Book a demo"
<a href="https://www.eclecticiq.com/book-a-demo" target="_blank" class="relative group inline-flex items-center h-12 px-8 rounded-full font-bold bg-blue text-nav text-white leading-none tracking-wide hover:pr-12 transition-all duration-200"> <span class="flex-none">Book a demo</span> <img class="lazyload absolute -top-โ€ฆ
"Book a demo"
<a href="" class="relative flex xs:inline-flex justify-center items-center h-12 px-8 rounded-full font-bold bg-blue text-nav text-white leading-none tracking-wide"> <span class="flex-none">Book a demo</span> <img class="lazyload absolute -top-2 right-2 w-4 scale-110" src="https://www.eclecticiq.com/hubfs/raw_assets/pubโ€ฆ
MS10failthe page's first heading is not its top-level heading, so the structure starts part way down
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 page's first heading is not its top-level heading, so the structure starts part way down
The evidence, taken from the page as served
The page's heading outline, in document order (a jump in level is marked)
H3 Products level jumped
H3 Use Cases
H3 Partners
H3 Resources
H3 Company
H1 Intelligent Mapping of CTI to MITRE ATT&CK: Automating TTP Classification with A
H2 View Webinar
H3 (no text)
H3 (no text)
MS13warning2 of 2 iframes untitled
What we check
Each embedded panel on the page carries a title saying what it contains.
What good looks like
Each embedded panel carries a title saying what it contains.
Why it matters
The embedded region stays unnamed, so what it holds is left unstated in the page around it.
What we found on this page
2 of 2 iframes untitled
The evidence, taken from the page as served
The iframes with no title attribute, as served
src=https://www.googletagmanager.com/ns.html?id=GTM-MC7MVC
<iframe src="https://www.googletagmanager.com/ns.html?id=GTM-MC7MVC" height="0" width="0" style="display:none;visibility:hidden"/>
src=https://www.googletagmanager.com/ns.html?id=GTM-MC7MVC
<iframe src="https://www.googletagmanager.com/ns.html?id=GTM-MC7MVC" height="0" width="0" style="display:none;visibility:hidden"/>
https://www.eclecticiq.com/library/advanced-static-analysis-real-time-threat-intelligence-for-faster-triage?hsLang=en 55.4% Likely 7 out of 43
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>Advanced Static Analysis + Real-Time Threat Intelligence for Faster Triage</title>
CT32warninglength 343
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 343
The evidence, taken from the page as served
The page's description, as served
343 characters
<meta name="description" content="Advanced Static Analysis + Real-Time Threat Intelligence for Faster Triage: Validating suspicious files &amp; improving SOC decisions in a unified workflow&#10;&#10;SOC teams are overwhelmed with suspicious files and URLs, but slow, fragmented analysis makes it difficult to determine wโ€ฆ
CT35warningthe copyright line at the foot of this page states 2024, 2 years behind the year this assessment ran, which reads as a page left unattended and is the usual sign of a template copied from elsewhere
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 copyright line at the foot of this page states 2024, 2 years behind the year this assessment ran, which reads as a page left unattended and is the usual sign of a template copied from elsewhere
The evidence, taken from the page as served
The copyright line as served, and the year it claims
Page ยท opens in a new tabFoundThe text, as served, around the word
www.eclecticiq.com/library/advanced-static-analysis-real-time-threat-intelligence-for-faster-triage?hsLang=en…ยฉ 2024…
AJ05warningno site-search control detected on this page
What we check
Whether a search box for the site is present in the page as it is served.
What good looks like
A search box is present in the served markup, so the site's own content can be queried directly.
Why it matters
With no search box on the page, its links are the only route from here into the rest of the site.
What we found on this page
no site-search control detected on this page
The evidence, taken from the page as served
The head of this page, as served

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

<head> <meta charset="utf-8"/> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, viewport-fit=cover"/> <meta name="referrer" content="origin-when-cross-origin"/> <title>Advanced Static Analysis + Real-Time Threat Intelligence for Faster Triage</title> <meta name="description" content="Advanced Static Analysis + Real-Time Threat Intelligence for Faster Triage: Validating suspicious files &amp; improving SOC decisions in a unified workflow&#10;&#10;SOC teams are overwhelmed with suspicious files and URLs, but slow, fragmented analysis makes it difficult to determine what is truly malicious, what is benign, and what requires escalation."/> <script>loadjs=function(){var l=function(){},c={},f={},u={};function s(e,n){if(e){var t=u[e];if(f[e]=n,t)for(;t.length;)t[0](e,n),t.splice(0,1)}}function o(e,n){e.call&amp;&amp;(e={success:e}),n.length?(e.error||l)(n):(e.success||l)(e)}function h(t,r,i,c){var s,o,e=document,n=i.async,f=(i.numRetries||0)+1,u=i.before||l,a=t.replace(/^(css|img)!/,"");c=c||0,/(^css!|\.css$)/.test(t)?(s=!0,(o=e.createElement("link")).rel="stylesheet",o.href=a):/(^img!|\.(png|gif|jpg|svg)$)/.test(t)?(o=e.createElemโ€ฆ
MS08fail1 link wording(s) are used for more than one destination, so the same words point at different pages: โ€œbook a demoโ€; 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: โ€œbook a demoโ€; 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
"Book a demo"
<a href="https://www.eclecticiq.com/book-a-demo" target="_blank" class="relative group inline-flex items-center h-12 px-8 rounded-full font-bold bg-blue text-nav text-white leading-none tracking-wide hover:pr-12 transition-all duration-200"> <span class="flex-none">Book a demo</span> <img class="lazyload absolute -top-โ€ฆ
"Book a demo"
<a href="" class="relative flex xs:inline-flex justify-center items-center h-12 px-8 rounded-full font-bold bg-blue text-nav text-white leading-none tracking-wide"> <span class="flex-none">Book a demo</span> <img class="lazyload absolute -top-2 right-2 w-4 scale-110" src="https://www.eclecticiq.com/hubfs/raw_assets/pubโ€ฆ
MS10failthe page's first heading is not its top-level heading, so the structure starts part way down
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 page's first heading is not its top-level heading, so the structure starts part way down
The evidence, taken from the page as served
The page's heading outline, in document order (a jump in level is marked)
H3 Products level jumped
H3 Use Cases
H3 Partners
H3 Resources
H3 Company
H1 Advanced Static Analysis + Real-Time Threat Intelligence for Faster Triage
H2 View Webinar
H3 (no text)
H3 (no text)
MS13warning2 of 2 iframes untitled
What we check
Each embedded panel on the page carries a title saying what it contains.
What good looks like
Each embedded panel carries a title saying what it contains.
Why it matters
The embedded region stays unnamed, so what it holds is left unstated in the page around it.
What we found on this page
2 of 2 iframes untitled
The evidence, taken from the page as served
The iframes with no title attribute, as served
src=https://www.googletagmanager.com/ns.html?id=GTM-MC7MVC
<iframe src="https://www.googletagmanager.com/ns.html?id=GTM-MC7MVC" height="0" width="0" style="display:none;visibility:hidden"/>
src=https://www.googletagmanager.com/ns.html?id=GTM-MC7MVC
<iframe src="https://www.googletagmanager.com/ns.html?id=GTM-MC7MVC" height="0" width="0" style="display:none;visibility:hidden"/>
https://www.eclecticiq.com/news-awards 51.0% Likely 11 out of 42
CheckResultEvidence
CT31warningthe page carries no description of itself in its head
What we check
The page provides a meta description, the short summary offered alongside its title.
What good looks like
The page provides a meta description.
Why it matters
Absent, the page gives up its one documented summary field, though Google rewrites these freely anyway.
What we found on this page
the page carries no description of itself in its head
The evidence, taken from the page as served
The head of this page, as served

The head of the page was read for a description tag.

<head> <meta charset="utf-8"/> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, viewport-fit=cover"/> <meta name="referrer" content="origin-when-cross-origin"/> <title>News &amp; Awards</title> <meta name="description" content=""/> <meta property="og:image" content="https://www.eclecticiq.com/hubfs/raw_assets/public/rebrand-2024/assets/img/og-eclecticiq.png"/> <script>loadjs=function(){var l=function(){},c={},f={},u={};function s(e,n){if(e){var t=u[e];if(f[e]=n,t)for(;t.length;)t[0](e,n),t.splice(0,1)}}function o(e,n){e.call&amp;&amp;(e={success:e}),n.length?(e.error||l)(n):(e.success||l)(e)}function h(t,r,i,c){var s,o,e=document,n=i.async,f=(i.numRetries||0)+1,u=i.before||l,a=t.replace(/^(css|img)!/,"");c=c||0,/(^css!|\.css$)/.test(t)?(s=!0,(o=e.createElement("link")).rel="stylesheet",o.href=a):/(^img!|\.(png|gif|jpg|svg)$)/.test(t)?(o=e.createElement("img")).src=a:((o=e.createElement("script")).src=t,o.async=void 0===n||n),!(o.onload=o.onerror=o.onbeforeload=function(e){var n=e.type[0];if(s&amp;&amp;"hideFocus"in o)try{o.sheet.cssText.length||(n="e")}catch(e){n="e"}if("e"==n&amp;&amp;(c+=1)&lt;f)return h(t,r,i,c);r(t,n,e.dโ€ฆ
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)
H3 Products
H3 Use Cases
H3 Partners
H3 Resources
H3 Company
H1 News & Awards
H3 New Black Friday Warningโ€”Do Not Shop On These Websites level jumped
H3 'SilkSpecter' hacking operation uses sophisticated ring of 4,700 spoofed storefr
H3 Watch out for fake online stores as Black Friday approaches
H3 Why Black Friday Is A Hotbed For AI Scamsโ€”And How To Spot Them
H3 Fake Discount Sites Exploit Black Friday to Hijack Shopper Information
H3 Fraud network uses 4,700 fake shopping sites to steal credit cards
H3 โ€˜SilkSpecterโ€™ Campaign Uses 4,000 Fake Domains Against Black Friday Shoppers
H3 Socially Savvy Scattered Spider Traps Cloud Admins in Web
H3 New Developer-as-a-Service on Hacking Forums Fuels Phishing and Cyberattacks
H3 Oyster Backdoor Spreading via Trojanized Popular Software Downloads
H3 'ONNX' MFA Bypass Targets Microsoft 365 Accounts
H3 ONNX phishing service targets Microsoft 365 accounts at financial firms
H3 Cyber espionage strikes Indiaโ€™s defence and energy sectors
H3 Massive Phishing Campaign Strikes Latin America: Venom RAT Targeting Multiple Se
H3 Cyberespionage Campaign Targets Government, Energy Entities in India
H3 Episode March 27, 2024
H3 Hackers Hit Indian Defense, Energy Sectors with Malware Posing as Air Force Invi
H3 India's government, energy sector breached in cyber-espionage campaign
H3 Chinese Hackers Attacking Semiconductor Industries Using Cobalt Strike Beacon
H3 Chinese Hackers Target Semiconductor Firms in East Asia with Cobalt Strike
H3 Chinese Hackers Target Semiconductor Firms in East Asia with Cobalt Strike
H3 Podcast Episode 43- Cody Barrow - Cybersecurity in the European Union Compared t
H3 Episode September 1, 2023
H3 Key Group Ransomware Foiled by New Decryptor
H3 Free Key Group ransomware decryptor helps victims recover data
H3 Good news for Key Group ransomware victims: Free decryptor out now
H3 PDF lures aimed at NATO countries contain a Russian clue
H3 Manually patch this Zimbra bug that's under attack
H3 The art of managing cyber risk
H3 Private equity 'presents cyber security risk' for asset managers
H3 [FIC 2023] : les gangs de ransomware sont-ils des entreprises comme les autres ?
H3 Cybersecurity misconceptions
H3 De toekomst van cybercrime
H3 LockBit crew cooks up half-baked Mac ransomware
H3 Dark Pink APT group linked to new KamiKakiBot attacks in Southeast Asia
H3 KamiKakaBot Malware Used in Latest Dark Pink APT Attacks on Southeast Asian Targ
H3 Logiciel malveillant KamiKakaBot utilisรฉ dans les derniรจres attaques APT rose fo
H3 DeFi Hack Recovers Stolen Funds; Blacklotus Bypasses Windows Secure Boot
H3 10 European defence tech startups to watch, according to investors
H3 PassW0rd
H3 2023 - Threat Intelligence Predictions
H3 NATO Innovation and Technology Issue #8
H3 Russian hackers targeting Dutch gas terminal: report
H3 'Russische hackers hebben het gemunt op Nederlandse gasinstallaties'
H3 Comprendre le fonctionnement des hackers pour une meilleure cyber sรฉcuritรฉ
H3 Collaboration is key to a stronger cyber resilience, says cybersecurity expert
H3 The Top of the Netherlands
H3 Soonicorn Club 2022: Top Tech Startups In Netherlands
H3 EclecticIQ, Protection Contre la Cybercriminalitรฉ
H3 Das Beste fรผr Daten? Sichere Kรคfighaltung!
H3 Van Huffelens overvolle agenda: van datacenters tot nepnieuws
H3 Six Innovative Cybersecurity Companies in the Netherlands
H3 The Other Scary Virus
H3 Delen van Dreigingsinformatie Als Interessante Business
H3 Article FD: Cyber Security Organisations Call for National Government to Take Co
H3 IT-beveiligers Pleiten voor Landelijke Regie in Strijd Tegen Cybercriminaliteit
H3 EU Invests Millions in Cybersecurity
H3 Europees Geld voor Expansie EclecticIQ
H3 Investment Plan for Europe Supports Development of Next-generation Cyber Securit
H3 Peeters biedt Dedonder Europees geld voor Belgische defensie aan
H3 EIB-geld Moet Wereldspeler Maken van Nederlands Cyberveiligheidsbedrijf Eclectic
H3 Biden: โ€œCyber breach of great consequenceโ€ may lead to โ€œreal shooting warโ€
H3 WeChat Suspends New User Registrations to Comply with Chinese laws
H3 IBM Contributes Kestrel Threat Hunting Tool to OASIS Open Cybersecurity Alliance
H3 SolarWinds Hackers Strike Again: Kremlin-backed Group Hits Microsoft Customers
H3 Risky Biz Soap Box: EclecticIQ's CEO Joep Gommers on Operationalising Threat Int
H3 EclecticIQ Platform Delivers Threat Intelligence, Hunting, and Response Capabili
H3 EclecticIQ platform: Intelligence at the Core
H3 ASM Tech spurts 5% after partnership with Netherlands-based EclecticIQ for new C
H3 Fake COVID contact tracers
H3 The evolution of ransomware threats in the energy sector
H3 CyberKnight, EclecticIQ Augment Threat Detection, Hunting And Response
H3 Z-CERT and EclecticIQ Cooperate to Bring Benefits of CTI to Dutch Healthcare Sec
H3 EclecticIQ - Samen investeren in een Europees cybersecurity ecosysteem
H3 EclecticIQ and PolyLogyx join forces to bring intelligence-led security products
H3 EclecticIQ Joins Forces with Endpoint Solution Provider PolyLogyx
H3 EclecticIQ: Building Next-Gen Intelligence-Powered Cybersecurity
H3 Typosquatting & duplication of pharmaceutical domain: Possibly used for phishing
H3 How diverse teams can help protect your business against cyber-attacks
H3 Hacking as a Service?
H3 EclecticIQโ€™s new browser extension helps analysts capture threat indicators auto
H3 EclecticIQ continues its global expansion, reaching significant milestones in 20
H3 Top Dutch startups to follow in 2020
H3 Kaspersky partners with EclecticIQ to empower businesses with first-hand threat-
H3 How will the UK tech sector be affected by Brexit?
H3 Data Privacy Day: Security industry highlights key issues
H3 Amsterdam Startups to Watch in 2020
H3 Going for gold: Security learnings for the Tokyo 2020 Olympics
H3 Threat Intelligence
H3 EclecticIQ hires Michel de Jong as Chief Operating Officer
H3 How fake news could ruin Britain's next election
H3 Cybersecurity giants join forces to combat cyberthreats under OASIS umbrella
H3 Threat intelligence and the role of automation in improving security
H3 Product Review - EclecticIQ Platform 2.4
H3 Maximizing the Use of Enterprise Cyber-Threat Intelligence Feeds
H3 Communication, communication, communication: the route to actionable cyber threa
H3 The path to actionable cyber threat intelligence
H3 Using OpSec to protect yourself at security industry events
H3 Avoiding cyber disaster
H3 Todayโ€™s cyber threat landscape and mitigating appropriately
H3 What's new in ransomware and how can businesses stay ahead of the threat?
H3 Disinformation effort targeted at EU Parliament Elections
H3 How security & intelligence can share the same language
H3 Free Boxing Streams are being hidden on the most popular video sites
H3 Understanding the modern ransomware landscape
H3 Cyber Threats: How to manage intelligence in a multi-risk environment
H3 Top 10 cybersecurity startups from Amsterdam that help you fight off hackers
H3 Lessons learned from Ukraine elections
H3 Spire Solutions and EclecticIQ ink Middle East partnership
H3 Psychological Warfare and Information Operations: The Real Threat to Western Dem
H3 Election Hacking
H3 German Politicians Personal Details Hacked
H3 Russia Or The Far-Right: Who Hacked German Politics?
H3 How not to get hacked in 2019
H3 Hackers leak details of German politicians
H3 Hackers leak details of German politicians
H3 5 Things We Know about the German Hack, from Porn to Mirrors
H3 Why We Should Focus on โ€˜How,โ€™ not โ€˜Who,โ€™ of Cyberattacks
H3 Spike in Brexit-themed phishing attacks expected once withdrawal agreement is fi
H3 Why is โ€˜Attributionโ€™ Still the Focus Following Cyber Attacks?
H3 EclecticIQ strengthens threat intelligence for infrastructures with new integrat
H3 UK foils more than 10 cyber attacks per week, says GCHQ
H3 EclecticIQ Platform 2.3 Brings Improved Collaboration and Data Management Featur
H3 EclecticIQ Platform 2.3 brings improved collaboration and data management featur
H3 Cyber security: Your boss doesn't care and that's not OK anymore
H3 European Threat Intelligence provider EclecticIQ Increases North American invest
H3 6 most talented online entrepreneurs in the Netherlands that deserve your attent
H3 The Vulnerability Disclosure Process Still Broken
H3 Batten down the ports: Linux networking bug SegmentSmack could remotely crash sy
H3 Inzicht in digitale dreigingen
H3 The digital โ€˜bank jobโ€™ โ€“ investigating the unprecedented rise in crypto threats
H3 Tour de France 2018 live stream sites that let cycling fans watch race online fo
H3 Adjusting to GDPR compliance challenges for threat intelligence analysts
H3 Typical 24: Joep Gommers, EclecticIQ
H3 EclecticIQ integrates with MITREโ€™s ATT&CK framework
H3 A Different Kind Of Heist: How Cryptocurrency Is Churning Profits For Criminals
H3 The evolution of the cyber threat landscape โ€“ whatโ€™s next?
H3 GDPRโ€™s Impact On Threat Intelligence Sharing
H3 Data Breach
H3 Ticketmaster security breach - the industry speaks
H3 World Cup streaming: Free live feeds online can endanger football fans who try t
H3 World Cup Russian hacking threat is real, security experts warn
H3 Why The North Korean Cyber Threat Shouldn't be Ignored
H3 Effectively Managing Mistrust for Optimal Cybersecurity
H3 Working with Competitors
H3 10 Dutch Startups to Watch in 2018
H3 10 amazing start-ups from Amsterdam to watch
H3 The World Cup in motion: the infrastructure behind the greatest show on earth
H3 Cybersecurity Managing Distrust: The Key To Cybersecurity
H3 Will Threat Intelligence Go Dark Under GDPR?
H3 The impact of GDPR on threat intelligence analysts
H3 The evolving threat landscape: nation state, third party attacks and cyber vanda
H3 Identifying can be a waste of time
H3 The great attribution debate: Why we should focus on HOW not WHO
H3 Going for gold in the Cyber Olympics: a look at cybersecurity in Pyeongchang
H3 Cyberattacks In An Evolving Landscape โ€“ Should Businesses Be Worried?
H3 ะะฒั‚ะพะผะฐั‚ะธะทะฐั†ะธั ะฟั€ะพั†ะตััะพะฒ ะบะธะฑะตั€ั€ะฐะทะฒะตะดะบะธ ะฝะฐ ะพัะฝะพะฒะต ั€ะตัˆะตะฝะธะน ะบะปะฐััะฐ Threat Intelligen
H3 The evolving threat landscape: nation state, third party attacks and cyber vanda
H3 How to protect against the evolving threat landscape
H3 Fortune Term Sheet
H3 14 miljoen voor Amsterdamse startup die bedrijven veilig houdt
H3 Amsterdam-based EclecticIQ secures โ‚ฌ14 million to further expand with its Cyber
H3 14 miljoen voor Amsterdamse startup die bedrijven veilig houdt
H3 Ben Verwaayen steekt miljoenen in Nederlandse beveiligings-start-up
H3 EclecticIQ launches Fusion Center Intelligence Essentials
H3 Cyber threat analysis training โ€“ why a robust platform is critical
H3 New infosec products of the weekโ€‹: October 6, 2017
H3 EclecticIQ baut deutsches Team aus
H3 The hottest startups in Amsterdam
H3 Drei Ebenen der IT-Sicherheit
H3 The UK's ยฃ1.9bn cyber-security spend โ€“ getting the priorities right
H3 Interview with Raymon van der Velde, VP Product & Co-founder EclecticIQ
H3 EclecticIQ partners with SenseCy to bring leading Cyber Threat Intelligence tech
H3 โ€œCyberdreigingsinformatie nieuw antwoord op cyberaanvallenโ€
H3 Minister-president Rutte brengt bezoekt aan The Hague Security Delta
H3 Plug Pulled on Soltra Edge Threat Info Sharing Platform
H3 NZITF deploys EclecticIQ to share cyber threat information
H3 WIRED Security 2016: Startup Stage
H3 Daar komen de whizzkids
H3 TechRound Cybersecurity40 2025
H3 Top 250 Scaleups 2022
H3 EclecticIQ Is Certified to ISO Standards
H3 Top 250 Fastest Growing Companies
H3 Infosec Awards
H3 Cybersecurity Excellence Award
H3 Cyber Defense Magazine 2019 Infosec Award
H3 Cybersecurity Excellence Award
H3 Next Unicorn Award 2018
H3 Cyber Defense 2018 Global Awards Winner
H3 MKB Innovatie Top 100 van 2018
H3 SC 2018 Awards Europe
H3 Top250 Scale-ups 2018
H3 Softshell Vendor Award 2018
H3 Softshell Vendor Award 2017
H3 SC Magazine Lab Approved 2017
H3 (no text)
CT16warningthe page carries no structured data block stating what it is (not required; a hygiene signal)
What we check
The page carries structured data, the machine-readable summary of what it describes.
What good looks like
The page carries structured data summarising what it describes.
Why it matters
Vendors document this as optional rather than required, so its absence is a small forfeit and no more.
What we found on this page
the page carries no structured data block stating what it is (not required; a hygiene signal)
The evidence, taken from the page as served
The head of this page, as served

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

<head> <meta charset="utf-8"/> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, viewport-fit=cover"/> <meta name="referrer" content="origin-when-cross-origin"/> <title>News &amp; Awards</title> <meta name="description" content=""/> <meta property="og:image" content="https://www.eclecticiq.com/hubfs/raw_assets/public/rebrand-2024/assets/img/og-eclecticiq.png"/> <script>loadjs=function(){var l=function(){},c={},f={},u={};function s(e,n){if(e){var t=u[e];if(f[e]=n,t)for(;t.length;)t[0](e,n),t.splice(0,1)}}function o(e,n){e.call&amp;&amp;(e={success:e}),n.length?(e.error||l)(n):(e.success||l)(e)}function h(t,r,i,c){var s,o,e=document,n=i.async,f=(i.numRetries||0)+1,u=i.before||l,a=t.replace(/^(css|img)!/,"");c=c||0,/(^css!|\.css$)/.test(t)?(s=!0,(o=e.createElement("link")).rel="stylesheet",o.href=a):/(^img!|\.(png|gif|jpg|svg)$)/.test(t)?(o=e.createElement("img")).src=a:((o=e.createElement("script")).src=t,o.async=void 0===n||n),!(o.onload=o.onerror=o.onbeforeload=function(e){var n=e.type[0];if(s&amp;&amp;"hideFocus"in o)try{o.sheet.cssText.length||(n="e")}catch(e){n="e"}if("e"==n&amp;&amp;(c+=1)&lt;f)return h(t,r,i,c);r(t,n,e.dโ€ฆ
CT04warningthe page shows the year 2025 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 2025 in its text, but nothing on the page states it as the date of the content
The evidence, taken from the page as served
The head of this page, as served

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

<head> <meta charset="utf-8"/> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, viewport-fit=cover"/> <meta name="referrer" content="origin-when-cross-origin"/> <title>News &amp; Awards</title> <meta name="description" content=""/> <meta property="og:image" content="https://www.eclecticiq.com/hubfs/raw_assets/public/rebrand-2024/assets/img/og-eclecticiq.png"/> <script>loadjs=function(){var l=function(){},c={},f={},u={};function s(e,n){if(e){var t=u[e];if(f[e]=n,t)for(;t.length;)t[0](e,n),t.splice(0,1)}}function o(e,n){e.call&amp;&amp;(e={success:e}),n.length?(e.error||l)(n):(e.success||l)(e)}function h(t,r,i,c){var s,o,e=document,n=i.async,f=(i.numRetries||0)+1,u=i.before||l,a=t.replace(/^(css|img)!/,"");c=c||0,/(^css!|\.css$)/.test(t)?(s=!0,(o=e.createElement("link")).rel="stylesheet",o.href=a):/(^img!|\.(png|gif|jpg|svg)$)/.test(t)?(o=e.createElement("img")).src=a:((o=e.createElement("script")).src=t,o.async=void 0===n||n),!(o.onload=o.onerror=o.onbeforeload=function(e){var n=e.type[0];if(s&amp;&amp;"hideFocus"in o)try{o.sheet.cssText.length||(n="e")}catch(e){n="e"}if("e"==n&amp;&amp;(c+=1)&lt;f)return h(t,r,i,c);r(t,n,e.dโ€ฆ
CT35warningthe copyright line at the foot of this page states 2024, 2 years behind the year this assessment ran, which reads as a page left unattended and is the usual sign of a template copied from elsewhere
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 copyright line at the foot of this page states 2024, 2 years behind the year this assessment ran, which reads as a page left unattended and is the usual sign of a template copied from elsewhere
The evidence, taken from the page as served
The copyright line as served, and the year it claims
Page ยท opens in a new tabFoundThe text, as served, around the word
www.eclecticiq.com/news-awards…ยฉ 2024…
AJ05warningno site-search control detected on this page
What we check
Whether a search box for the site is present in the page as it is served.
What good looks like
A search box is present in the served markup, so the site's own content can be queried directly.
Why it matters
With no search box on the page, its links are the only route from here into the rest of the site.
What we found on this page
no site-search control detected on this page
The evidence, taken from the page as served
The head of this page, as served

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

<head> <meta charset="utf-8"/> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, viewport-fit=cover"/> <meta name="referrer" content="origin-when-cross-origin"/> <title>News &amp; Awards</title> <meta name="description" content=""/> <meta property="og:image" content="https://www.eclecticiq.com/hubfs/raw_assets/public/rebrand-2024/assets/img/og-eclecticiq.png"/> <script>loadjs=function(){var l=function(){},c={},f={},u={};function s(e,n){if(e){var t=u[e];if(f[e]=n,t)for(;t.length;)t[0](e,n),t.splice(0,1)}}function o(e,n){e.call&amp;&amp;(e={success:e}),n.length?(e.error||l)(n):(e.success||l)(e)}function h(t,r,i,c){var s,o,e=document,n=i.async,f=(i.numRetries||0)+1,u=i.before||l,a=t.replace(/^(css|img)!/,"");c=c||0,/(^css!|\.css$)/.test(t)?(s=!0,(o=e.createElement("link")).rel="stylesheet",o.href=a):/(^img!|\.(png|gif|jpg|svg)$)/.test(t)?(o=e.createElement("img")).src=a:((o=e.createElement("script")).src=t,o.async=void 0===n||n),!(o.onload=o.onerror=o.onbeforeload=function(e){var n=e.type[0];if(s&amp;&amp;"hideFocus"in o)try{o.sheet.cssText.length||(n="e")}catch(e){n="e"}if("e"==n&amp;&amp;(c+=1)&lt;f)return h(t,r,i,c);r(t,n,e.dโ€ฆ
MS08fail3 link wording(s) are used for more than one destination, so the same words point at different pages: โ€œbook a demoโ€, โ€œread full articleโ€, โ€œread 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
3 link wording(s) are used for more than one destination, so the same words point at different pages: โ€œbook a demoโ€, โ€œread full articleโ€, โ€œread 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
"Book a demo"
<a href="https://www.eclecticiq.com/book-a-demo?hsLang=en" target="_blank" class="relative group inline-flex items-center h-12 px-8 rounded-full font-bold bg-blue text-nav text-white leading-none tracking-wide hover:pr-12 transition-all duration-200"> <span class="flex-none">Book a demo</span> <img class="lazyload absoโ€ฆ
"Read full article"
<a href="https://www.forbes.com/sites/zakdoffman/2024/11/20/new-chrome-safari-firefox-edge-warning-do-not-shop-on-these-websites/" class="group inline-flex items-center gap-2 lg:gap-3 max-w-full font-bold text-sm xl:text-base leading-tight tracking-wide font-semibold text-white mt-auto leading-tight" target="_blank" reโ€ฆ
"Read full article"
<a href="https://www.pcgamer.com/hardware/silkspecter-scam-ring-spoofs-big-brands-this-black-friday/" class="group inline-flex items-center gap-2 lg:gap-3 max-w-full font-bold text-sm xl:text-base leading-tight tracking-wide font-semibold text-white mt-auto leading-tight" target="_blank" rel="nofollow"> <span class="smโ€ฆ
"Read full article"
<a href="https://www.pcworld.com/article/2522574/watch-out-for-fake-online-stores-as-black-friday-approaches.html" class="group inline-flex items-center gap-2 lg:gap-3 max-w-full font-bold text-sm xl:text-base leading-tight tracking-wide font-semibold text-white mt-auto leading-tight" target="_blank" rel="nofollow"> <sโ€ฆ
"Read full article"
<a href="https://www.forbes.com/sites/lindseychoo/2024/11/20/black-friday-ai-scams-how-to-spot-them/" class="group inline-flex items-center gap-2 lg:gap-3 max-w-full font-bold text-sm xl:text-base leading-tight tracking-wide font-semibold text-white mt-auto leading-tight" target="_blank" rel="nofollow"> <span class="smโ€ฆ
"Read full article"
<a href="https://thehackernews.com/2024/11/fake-discount-sites-exploit-black.html" class="group inline-flex items-center gap-2 lg:gap-3 max-w-full font-bold text-sm xl:text-base leading-tight tracking-wide font-semibold text-white mt-auto leading-tight" target="_blank" rel="nofollow"> <span class="sm:flex-none truncateโ€ฆ
"Read full article"
<a href="https://www.bleepingcomputer.com/news/security/fraud-network-uses-4-700-fake-shopping-sites-to-steal-credit-cards/" class="group inline-flex items-center gap-2 lg:gap-3 max-w-full font-bold text-sm xl:text-base leading-tight tracking-wide font-semibold text-white mt-auto leading-tight" target="_blank" rel="nofโ€ฆ
"Read full article"
<a href="https://cyberinsider.com/silkspecter-campaign-uses-4000-fake-domains-against-black-friday-shoppers/" class="group inline-flex items-center gap-2 lg:gap-3 max-w-full font-bold text-sm xl:text-base leading-tight tracking-wide font-semibold text-white mt-auto leading-tight" target="_blank" rel="nofollow"> <span cโ€ฆ
"Read full article"
<a href="https://www.darkreading.com/cloud-security/socially-savvy-scattered-spider-traps-cloud-admins-in-web" class="group inline-flex items-center gap-2 lg:gap-3 max-w-full font-bold text-sm xl:text-base leading-tight tracking-wide font-semibold text-white mt-auto leading-tight" target="_blank" rel="nofollow"> <span โ€ฆ
"Read full article"
<a href="https://cyberpress.org/new-developer-as-a-service-on-hacking-forums/" class="group inline-flex items-center gap-2 lg:gap-3 max-w-full font-bold text-sm xl:text-base leading-tight tracking-wide font-semibold text-white mt-auto leading-tight" target="_blank" rel="nofollow"> <span class="sm:flex-none truncate">Reโ€ฆ
MS10failthe page's first heading is not its top-level heading, so the structure starts part way down; the 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 page's first heading is not its top-level heading, so the structure starts part way down; 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)
H3 Products level jumped
H3 Use Cases
H3 Partners
H3 Resources
H3 Company
H1 News & Awards
H3 New Black Friday Warningโ€”Do Not Shop On These Websites level jumped
H3 'SilkSpecter' hacking operation uses sophisticated ring of 4,700 spoofed storefr
H3 Watch out for fake online stores as Black Friday approaches
H3 Why Black Friday Is A Hotbed For AI Scamsโ€”And How To Spot Them
H3 Fake Discount Sites Exploit Black Friday to Hijack Shopper Information
H3 Fraud network uses 4,700 fake shopping sites to steal credit cards
H3 โ€˜SilkSpecterโ€™ Campaign Uses 4,000 Fake Domains Against Black Friday Shoppers
H3 Socially Savvy Scattered Spider Traps Cloud Admins in Web
H3 New Developer-as-a-Service on Hacking Forums Fuels Phishing and Cyberattacks
H3 Oyster Backdoor Spreading via Trojanized Popular Software Downloads
H3 'ONNX' MFA Bypass Targets Microsoft 365 Accounts
H3 ONNX phishing service targets Microsoft 365 accounts at financial firms
H3 Cyber espionage strikes Indiaโ€™s defence and energy sectors
H3 Massive Phishing Campaign Strikes Latin America: Venom RAT Targeting Multiple Se
H3 Cyberespionage Campaign Targets Government, Energy Entities in India
H3 Episode March 27, 2024
H3 Hackers Hit Indian Defense, Energy Sectors with Malware Posing as Air Force Invi
H3 India's government, energy sector breached in cyber-espionage campaign
H3 Chinese Hackers Attacking Semiconductor Industries Using Cobalt Strike Beacon
H3 Chinese Hackers Target Semiconductor Firms in East Asia with Cobalt Strike
H3 Chinese Hackers Target Semiconductor Firms in East Asia with Cobalt Strike
H3 Podcast Episode 43- Cody Barrow - Cybersecurity in the European Union Compared t
H3 Episode September 1, 2023
H3 Key Group Ransomware Foiled by New Decryptor
H3 Free Key Group ransomware decryptor helps victims recover data
H3 Good news for Key Group ransomware victims: Free decryptor out now
H3 PDF lures aimed at NATO countries contain a Russian clue
H3 Manually patch this Zimbra bug that's under attack
H3 The art of managing cyber risk
H3 Private equity 'presents cyber security risk' for asset managers
H3 [FIC 2023] : les gangs de ransomware sont-ils des entreprises comme les autres ?
H3 Cybersecurity misconceptions
H3 De toekomst van cybercrime
H3 LockBit crew cooks up half-baked Mac ransomware
H3 Dark Pink APT group linked to new KamiKakiBot attacks in Southeast Asia
H3 KamiKakaBot Malware Used in Latest Dark Pink APT Attacks on Southeast Asian Targ
H3 Logiciel malveillant KamiKakaBot utilisรฉ dans les derniรจres attaques APT rose fo
H3 DeFi Hack Recovers Stolen Funds; Blacklotus Bypasses Windows Secure Boot
H3 10 European defence tech startups to watch, according to investors
H3 PassW0rd
H3 2023 - Threat Intelligence Predictions
H3 NATO Innovation and Technology Issue #8
H3 Russian hackers targeting Dutch gas terminal: report
H3 'Russische hackers hebben het gemunt op Nederlandse gasinstallaties'
H3 Comprendre le fonctionnement des hackers pour une meilleure cyber sรฉcuritรฉ
H3 Collaboration is key to a stronger cyber resilience, says cybersecurity expert
H3 The Top of the Netherlands
H3 Soonicorn Club 2022: Top Tech Startups In Netherlands
H3 EclecticIQ, Protection Contre la Cybercriminalitรฉ
H3 Das Beste fรผr Daten? Sichere Kรคfighaltung!
H3 Van Huffelens overvolle agenda: van datacenters tot nepnieuws
H3 Six Innovative Cybersecurity Companies in the Netherlands
H3 The Other Scary Virus
H3 Delen van Dreigingsinformatie Als Interessante Business
H3 Article FD: Cyber Security Organisations Call for National Government to Take Co
H3 IT-beveiligers Pleiten voor Landelijke Regie in Strijd Tegen Cybercriminaliteit
H3 EU Invests Millions in Cybersecurity
H3 Europees Geld voor Expansie EclecticIQ
H3 Investment Plan for Europe Supports Development of Next-generation Cyber Securit
H3 Peeters biedt Dedonder Europees geld voor Belgische defensie aan
H3 EIB-geld Moet Wereldspeler Maken van Nederlands Cyberveiligheidsbedrijf Eclectic
H3 Biden: โ€œCyber breach of great consequenceโ€ may lead to โ€œreal shooting warโ€
H3 WeChat Suspends New User Registrations to Comply with Chinese laws
H3 IBM Contributes Kestrel Threat Hunting Tool to OASIS Open Cybersecurity Alliance
H3 SolarWinds Hackers Strike Again: Kremlin-backed Group Hits Microsoft Customers
H3 Risky Biz Soap Box: EclecticIQ's CEO Joep Gommers on Operationalising Threat Int
H3 EclecticIQ Platform Delivers Threat Intelligence, Hunting, and Response Capabili
H3 EclecticIQ platform: Intelligence at the Core
H3 ASM Tech spurts 5% after partnership with Netherlands-based EclecticIQ for new C
H3 Fake COVID contact tracers
H3 The evolution of ransomware threats in the energy sector
H3 CyberKnight, EclecticIQ Augment Threat Detection, Hunting And Response
H3 Z-CERT and EclecticIQ Cooperate to Bring Benefits of CTI to Dutch Healthcare Sec
H3 EclecticIQ - Samen investeren in een Europees cybersecurity ecosysteem
H3 EclecticIQ and PolyLogyx join forces to bring intelligence-led security products
H3 EclecticIQ Joins Forces with Endpoint Solution Provider PolyLogyx
H3 EclecticIQ: Building Next-Gen Intelligence-Powered Cybersecurity
H3 Typosquatting & duplication of pharmaceutical domain: Possibly used for phishing
H3 How diverse teams can help protect your business against cyber-attacks
H3 Hacking as a Service?
H3 EclecticIQโ€™s new browser extension helps analysts capture threat indicators auto
H3 EclecticIQ continues its global expansion, reaching significant milestones in 20
H3 Top Dutch startups to follow in 2020
H3 Kaspersky partners with EclecticIQ to empower businesses with first-hand threat-
H3 How will the UK tech sector be affected by Brexit?
H3 Data Privacy Day: Security industry highlights key issues
H3 Amsterdam Startups to Watch in 2020
H3 Going for gold: Security learnings for the Tokyo 2020 Olympics
H3 Threat Intelligence
H3 EclecticIQ hires Michel de Jong as Chief Operating Officer
H3 How fake news could ruin Britain's next election
H3 Cybersecurity giants join forces to combat cyberthreats under OASIS umbrella
H3 Threat intelligence and the role of automation in improving security
H3 Product Review - EclecticIQ Platform 2.4
H3 Maximizing the Use of Enterprise Cyber-Threat Intelligence Feeds
H3 Communication, communication, communication: the route to actionable cyber threa
H3 The path to actionable cyber threat intelligence
H3 Using OpSec to protect yourself at security industry events
H3 Avoiding cyber disaster
H3 Todayโ€™s cyber threat landscape and mitigating appropriately
H3 What's new in ransomware and how can businesses stay ahead of the threat?
H3 Disinformation effort targeted at EU Parliament Elections
H3 How security & intelligence can share the same language
H3 Free Boxing Streams are being hidden on the most popular video sites
H3 Understanding the modern ransomware landscape
H3 Cyber Threats: How to manage intelligence in a multi-risk environment
H3 Top 10 cybersecurity startups from Amsterdam that help you fight off hackers
H3 Lessons learned from Ukraine elections
H3 Spire Solutions and EclecticIQ ink Middle East partnership
H3 Psychological Warfare and Information Operations: The Real Threat to Western Dem
H3 Election Hacking
H3 German Politicians Personal Details Hacked
H3 Russia Or The Far-Right: Who Hacked German Politics?
H3 How not to get hacked in 2019
H3 Hackers leak details of German politicians
H3 Hackers leak details of German politicians
H3 5 Things We Know about the German Hack, from Porn to Mirrors
H3 Why We Should Focus on โ€˜How,โ€™ not โ€˜Who,โ€™ of Cyberattacks
H3 Spike in Brexit-themed phishing attacks expected once withdrawal agreement is fi
H3 Why is โ€˜Attributionโ€™ Still the Focus Following Cyber Attacks?
H3 EclecticIQ strengthens threat intelligence for infrastructures with new integrat
H3 UK foils more than 10 cyber attacks per week, says GCHQ
H3 EclecticIQ Platform 2.3 Brings Improved Collaboration and Data Management Featur
H3 EclecticIQ Platform 2.3 brings improved collaboration and data management featur
H3 Cyber security: Your boss doesn't care and that's not OK anymore
H3 European Threat Intelligence provider EclecticIQ Increases North American invest
H3 6 most talented online entrepreneurs in the Netherlands that deserve your attent
H3 The Vulnerability Disclosure Process Still Broken
H3 Batten down the ports: Linux networking bug SegmentSmack could remotely crash sy
H3 Inzicht in digitale dreigingen
H3 The digital โ€˜bank jobโ€™ โ€“ investigating the unprecedented rise in crypto threats
H3 Tour de France 2018 live stream sites that let cycling fans watch race online fo
H3 Adjusting to GDPR compliance challenges for threat intelligence analysts
H3 Typical 24: Joep Gommers, EclecticIQ
H3 EclecticIQ integrates with MITREโ€™s ATT&CK framework
H3 A Different Kind Of Heist: How Cryptocurrency Is Churning Profits For Criminals
H3 The evolution of the cyber threat landscape โ€“ whatโ€™s next?
H3 GDPRโ€™s Impact On Threat Intelligence Sharing
H3 Data Breach
H3 Ticketmaster security breach - the industry speaks
H3 World Cup streaming: Free live feeds online can endanger football fans who try t
H3 World Cup Russian hacking threat is real, security experts warn
H3 Why The North Korean Cyber Threat Shouldn't be Ignored
H3 Effectively Managing Mistrust for Optimal Cybersecurity
H3 Working with Competitors
H3 10 Dutch Startups to Watch in 2018
H3 10 amazing start-ups from Amsterdam to watch
H3 The World Cup in motion: the infrastructure behind the greatest show on earth
H3 Cybersecurity Managing Distrust: The Key To Cybersecurity
H3 Will Threat Intelligence Go Dark Under GDPR?
H3 The impact of GDPR on threat intelligence analysts
H3 The evolving threat landscape: nation state, third party attacks and cyber vanda
H3 Identifying can be a waste of time
H3 The great attribution debate: Why we should focus on HOW not WHO
H3 Going for gold in the Cyber Olympics: a look at cybersecurity in Pyeongchang
H3 Cyberattacks In An Evolving Landscape โ€“ Should Businesses Be Worried?
H3 ะะฒั‚ะพะผะฐั‚ะธะทะฐั†ะธั ะฟั€ะพั†ะตััะพะฒ ะบะธะฑะตั€ั€ะฐะทะฒะตะดะบะธ ะฝะฐ ะพัะฝะพะฒะต ั€ะตัˆะตะฝะธะน ะบะปะฐััะฐ Threat Intelligen
H3 The evolving threat landscape: nation state, third party attacks and cyber vanda
H3 How to protect against the evolving threat landscape
H3 Fortune Term Sheet
H3 14 miljoen voor Amsterdamse startup die bedrijven veilig houdt
H3 Amsterdam-based EclecticIQ secures โ‚ฌ14 million to further expand with its Cyber
H3 14 miljoen voor Amsterdamse startup die bedrijven veilig houdt
H3 Ben Verwaayen steekt miljoenen in Nederlandse beveiligings-start-up
H3 EclecticIQ launches Fusion Center Intelligence Essentials
H3 Cyber threat analysis training โ€“ why a robust platform is critical
H3 New infosec products of the weekโ€‹: October 6, 2017
H3 EclecticIQ baut deutsches Team aus
H3 The hottest startups in Amsterdam
H3 Drei Ebenen der IT-Sicherheit
H3 The UK's ยฃ1.9bn cyber-security spend โ€“ getting the priorities right
H3 Interview with Raymon van der Velde, VP Product & Co-founder EclecticIQ
H3 EclecticIQ partners with SenseCy to bring leading Cyber Threat Intelligence tech
H3 โ€œCyberdreigingsinformatie nieuw antwoord op cyberaanvallenโ€
H3 Minister-president Rutte brengt bezoekt aan The Hague Security Delta
H3 Plug Pulled on Soltra Edge Threat Info Sharing Platform
H3 NZITF deploys EclecticIQ to share cyber threat information
H3 WIRED Security 2016: Startup Stage
H3 Daar komen de whizzkids
H3 TechRound Cybersecurity40 2025
H3 Top 250 Scaleups 2022
H3 EclecticIQ Is Certified to ISO Standards
H3 Top 250 Fastest Growing Companies
H3 Infosec Awards
H3 Cybersecurity Excellence Award
H3 Cyber Defense Magazine 2019 Infosec Award
H3 Cybersecurity Excellence Award
H3 Next Unicorn Award 2018
H3 Cyber Defense 2018 Global Awards Winner
H3 MKB Innovatie Top 100 van 2018
H3 SC 2018 Awards Europe
H3 Top250 Scale-ups 2018
H3 Softshell Vendor Award 2018
H3 Softshell Vendor Award 2017
H3 SC Magazine Lab Approved 2017
H3 (no text)
MS09warninglink wording that does not say where it leads: โ€œread moreโ€
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: โ€œread moreโ€
The evidence, taken from the page as served
The links whose text names no destination, as served
"Read more"
<a href="https://techround.co.uk/cybersecurity/7-eclecticiq/" class="group inline-flex items-center gap-2 lg:gap-3 max-w-full font-bold text-sm xl:text-base leading-tight tracking-wide font-semibold text-blue-400 mt-auto leading-tight" target="_blank" rel="nofollow"> <span class="sm:flex-none truncate">Read more</span>โ€ฆ
"Read more"
<a href="https://ece.nl/top250scaleups2022/?utm_campaign=GLOB%20-%20Campaign%20-%20Corporate&amp;utm_content=210811680&amp;utm_medium=social&amp;utm_source=linkedin&amp;hss_channel=lcp-10226527" class="group inline-flex items-center gap-2 lg:gap-3 max-w-full font-bold text-sm xl:text-base leading-tight tracking-wide foโ€ฆ
"Read more"
<a href="https://www.eclecticiq.com/eclecticiq-is-certified-to-iso-standards?hsLang=en" class="group inline-flex items-center gap-2 lg:gap-3 max-w-full font-bold text-sm xl:text-base leading-tight tracking-wide font-semibold text-blue-400 mt-auto leading-tight" target="_blank" rel="nofollow"> <span class="sm:flex-none โ€ฆ
"Read more"
<a href="https://cyberdefenseawards.com/infosec-awards-for-2020-winners/" class="group inline-flex items-center gap-2 lg:gap-3 max-w-full font-bold text-sm xl:text-base leading-tight tracking-wide font-semibold text-blue-400 mt-auto leading-tight" target="_blank" rel="nofollow"> <span class="sm:flex-none truncate">Readโ€ฆ
"Read more"
<a href="https://cybersecurity-excellence-awards.com/candidates/eclecticiq-platform-3/" class="group inline-flex items-center gap-2 lg:gap-3 max-w-full font-bold text-sm xl:text-base leading-tight tracking-wide font-semibold text-blue-400 mt-auto leading-tight" target="_blank" rel="nofollow"> <span class="sm:flex-none โ€ฆ
"Read more"
<a href="https://cyberdefenseawards.com" class="group inline-flex items-center gap-2 lg:gap-3 max-w-full font-bold text-sm xl:text-base leading-tight tracking-wide font-semibold text-blue-400 mt-auto leading-tight" target="_blank" rel="nofollow"> <span class="sm:flex-none truncate">Read more</span> <svg xmlns="http://wโ€ฆ
"Read more"
<a href="https://cybersecurity-excellence-awards.com/2019-cybersecurity-product-awards-winners-and-finalists/" class="group inline-flex items-center gap-2 lg:gap-3 max-w-full font-bold text-sm xl:text-base leading-tight tracking-wide font-semibold text-blue-400 mt-auto leading-tight" target="_blank" rel="nofollow"> <spโ€ฆ
"Read more"
<a href="https://www.amsterdambusinessawards.nl/_cms/awards/" class="group inline-flex items-center gap-2 lg:gap-3 max-w-full font-bold text-sm xl:text-base leading-tight tracking-wide font-semibold text-blue-400 mt-auto leading-tight" target="_blank" rel="nofollow"> <span class="sm:flex-none truncate">Read more</span>โ€ฆ
"Read more"
<a href="https://www.cyberdefensemagazine.com/" class="group inline-flex items-center gap-2 lg:gap-3 max-w-full font-bold text-sm xl:text-base leading-tight tracking-wide font-semibold text-blue-400 mt-auto leading-tight" target="_blank" rel="nofollow"> <span class="sm:flex-none truncate">Read more</span> <svg xmlns="hโ€ฆ
"Read more"
<a href="https://www.kvkinnovatietop100.nl/site/top-100-2018" class="group inline-flex items-center gap-2 lg:gap-3 max-w-full font-bold text-sm xl:text-base leading-tight tracking-wide font-semibold text-blue-400 mt-auto leading-tight" target="_blank" rel="nofollow"> <span class="sm:flex-none truncate">Read more</span>โ€ฆ
MS13warning2 of 2 iframes untitled
What we check
Each embedded panel on the page carries a title saying what it contains.
What good looks like
Each embedded panel carries a title saying what it contains.
Why it matters
The embedded region stays unnamed, so what it holds is left unstated in the page around it.
What we found on this page
2 of 2 iframes untitled
The evidence, taken from the page as served
The iframes with no title attribute, as served
src=https://www.googletagmanager.com/ns.html?id=GTM-MC7MVC
<iframe src="https://www.googletagmanager.com/ns.html?id=GTM-MC7MVC" height="0" width="0" style="display:none;visibility:hidden"/>
src=https://www.googletagmanager.com/ns.html?id=GTM-MC7MVC
<iframe src="https://www.googletagmanager.com/ns.html?id=GTM-MC7MVC" height="0" width="0" style="display:none;visibility:hidden"/>
DS28failone link to sources on other sites was refused when it was checked. The page is still published, but the other site turns away requests that do not come from a person using a browser. It is listed in the view
What we check
For a single page, the share of its links to OTHER sites, sampled, that lead nowhere. The site's own links are assessed separately.
What good looks like
The page's references to other sites open for any reader. Where one refuses or has gone, the page carries the fact itself, shows the reference as plain text rather than as a link, or points to a source that answers.
Why it matters
The outside sources this page offers as support did not answer when they were asked for, so what the page claims is left resting on material that does not come back. In a regulated setting, where a link is carrying a figure or a required statement, that is the difference between a claim that is evidenced and one that is merely asserted.
What we found on this page
one link to sources on other sites was refused when it was checked. The page is still published, but the other site turns away requests that do not come from a person using a browser. It is listed in the view
The evidence, taken from the page as served
The external links checked on this page, with the status each returned

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

Link ยท opens in a new tabStatusResult
eclecticiq.bamboohr.com/careers200Reachable
www.forbes.com/sites/zakdoffman/2024/11/20/new-chrome-safari-firefox-edge-warning-do-not-shop-on-these-websites200Reachable
www.pcgamer.com/hardware/silkspecter-scam-ring-spoofs-big-brands-this-black-friday403Access-restricted
www.pcworld.com/article/2522574/watch-out-for-fake-online-stores-as-black-friday-approaches.html200Reachable
www.forbes.com/sites/lindseychoo/2024/11/20/black-friday-ai-scams-how-to-spot-them200Reachable
https://www.eclecticiq.com/threat-intelligence-platform 53.7% Likely 9 out of 43
CheckResultEvidence
CT32warninglength 172
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 172
The evidence, taken from the page as served
The page's description, as served
172 characters
<meta name="description" content="Empower your team with AI-embedded threat intelligence capabilities to prioritize critical threats, make faster security decisions, and strengthen defenses against threats."/>
CT16warningthe page carries no structured data block stating what it is (not required; a hygiene signal)
What we check
The page carries structured data, the machine-readable summary of what it describes.
What good looks like
The page carries structured data summarising what it describes.
Why it matters
Vendors document this as optional rather than required, so its absence is a small forfeit and no more.
What we found on this page
the page carries no structured data block stating what it is (not required; a hygiene signal)
The evidence, taken from the page as served
The head of this page, as served

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

<head> <meta charset="utf-8"/> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, viewport-fit=cover"/> <meta name="referrer" content="origin-when-cross-origin"/> <title>Threat Intelligence Platform</title> <meta name="description" content="Empower your team with AI-embedded threat intelligence capabilities to prioritize critical threats, make faster security decisions, and strengthen defenses against threats."/> <meta property="og:image" content="https://www.eclecticiq.com/hubfs/raw_assets/public/rebrand-2024/assets/img/og-eclecticiq.png"/> <script>loadjs=function(){var l=function(){},c={},f={},u={};function s(e,n){if(e){var t=u[e];if(f[e]=n,t)for(;t.length;)t[0](e,n),t.splice(0,1)}}function o(e,n){e.call&amp;&amp;(e={success:e}),n.length?(e.error||l)(n):(e.success||l)(e)}function h(t,r,i,c){var s,o,e=document,n=i.async,f=(i.numRetries||0)+1,u=i.before||l,a=t.replace(/^(css|img)!/,"");c=c||0,/(^css!|\.css$)/.test(t)?(s=!0,(o=e.createElement("link")).rel="stylesheet",o.href=a):/(^img!|\.(png|gif|jpg|svg)$)/.test(t)?(o=e.createElement("img")).src=a:((o=e.createElement("script")).src=t,o.async=void 0===n||n),!(o.onload=o.onerrorโ€ฆ
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 name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, viewport-fit=cover"/> <meta name="referrer" content="origin-when-cross-origin"/> <title>Threat Intelligence Platform</title> <meta name="description" content="Empower your team with AI-embedded threat intelligence capabilities to prioritize critical threats, make faster security decisions, and strengthen defenses against threats."/> <meta property="og:image" content="https://www.eclecticiq.com/hubfs/raw_assets/public/rebrand-2024/assets/img/og-eclecticiq.png"/> <script>loadjs=function(){var l=function(){},c={},f={},u={};function s(e,n){if(e){var t=u[e];if(f[e]=n,t)for(;t.length;)t[0](e,n),t.splice(0,1)}}function o(e,n){e.call&amp;&amp;(e={success:e}),n.length?(e.error||l)(n):(e.success||l)(e)}function h(t,r,i,c){var s,o,e=document,n=i.async,f=(i.numRetries||0)+1,u=i.before||l,a=t.replace(/^(css|img)!/,"");c=c||0,/(^css!|\.css$)/.test(t)?(s=!0,(o=e.createElement("link")).rel="stylesheet",o.href=a):/(^img!|\.(png|gif|jpg|svg)$)/.test(t)?(o=e.createElement("img")).src=a:((o=e.createElement("script")).src=t,o.async=void 0===n||n),!(o.onload=o.onerrorโ€ฆ
CT35warningthe copyright line at the foot of this page states 2024, 2 years behind the year this assessment ran, which reads as a page left unattended and is the usual sign of a template copied from elsewhere
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 copyright line at the foot of this page states 2024, 2 years behind the year this assessment ran, which reads as a page left unattended and is the usual sign of a template copied from elsewhere
The evidence, taken from the page as served
The copyright line as served, and the year it claims
Page ยท opens in a new tabFoundThe text, as served, around the word
www.eclecticiq.com/threat-intelligence-platform…ยฉ 2024…
AJ05warningno site-search control detected on this page
What we check
Whether a search box for the site is present in the page as it is served.
What good looks like
A search box is present in the served markup, so the site's own content can be queried directly.
Why it matters
With no search box on the page, its links are the only route from here into the rest of the site.
What we found on this page
no site-search control detected on this page
The evidence, taken from the page as served
The head of this page, as served

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

<head> <meta charset="utf-8"/> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, viewport-fit=cover"/> <meta name="referrer" content="origin-when-cross-origin"/> <title>Threat Intelligence Platform</title> <meta name="description" content="Empower your team with AI-embedded threat intelligence capabilities to prioritize critical threats, make faster security decisions, and strengthen defenses against threats."/> <meta property="og:image" content="https://www.eclecticiq.com/hubfs/raw_assets/public/rebrand-2024/assets/img/og-eclecticiq.png"/> <script>loadjs=function(){var l=function(){},c={},f={},u={};function s(e,n){if(e){var t=u[e];if(f[e]=n,t)for(;t.length;)t[0](e,n),t.splice(0,1)}}function o(e,n){e.call&amp;&amp;(e={success:e}),n.length?(e.error||l)(n):(e.success||l)(e)}function h(t,r,i,c){var s,o,e=document,n=i.async,f=(i.numRetries||0)+1,u=i.before||l,a=t.replace(/^(css|img)!/,"");c=c||0,/(^css!|\.css$)/.test(t)?(s=!0,(o=e.createElement("link")).rel="stylesheet",o.href=a):/(^img!|\.(png|gif|jpg|svg)$)/.test(t)?(o=e.createElement("img")).src=a:((o=e.createElement("script")).src=t,o.async=void 0===n||n),!(o.onload=o.onerrorโ€ฆ
MS08fail1 link wording(s) are used for more than one destination, so the same words point at different pages: โ€œbook a demoโ€; 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: โ€œbook a demoโ€; 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
"Book a demo"
<a href="https://www.eclecticiq.com/book-a-demo?hsLang=en" target="_blank" class="relative group inline-flex items-center h-12 px-8 rounded-full font-bold bg-blue text-nav text-white leading-none tracking-wide hover:pr-12 transition-all duration-200"> <span class="flex-none">Book a demo</span> <img class="lazyload absoโ€ฆ
"Book a demo"
<a href="" class="relative flex xs:inline-flex justify-center items-center h-12 px-8 rounded-full font-bold bg-blue text-nav text-white leading-none tracking-wide"> <span class="flex-none">Book a demo</span> <img class="lazyload absolute -top-2 right-2 w-4 scale-110" src="https://www.eclecticiq.com/hubfs/raw_assets/pubโ€ฆ
MS10failthe page's first heading is not its top-level heading, so the structure starts part way down
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 page's first heading is not its top-level heading, so the structure starts part way down
The evidence, taken from the page as served
The page's heading outline, in document order (a jump in level is marked)
H3 Products level jumped
H3 Use Cases
H3 Partners
H3 Resources
H3 Company
H1 Intelligence Center: The AI-embedded Threat Intelligence Platform
H2 What our Threat Intelligence Platform (TIP) can do
H3 1. Direction & planning
H4 1. Direction & planning
H3 2. Data collection
H4 2. Data collection
H3 3. Processing
H4 3. Processing
H3 4. Analysis
H4 4. Analysis
H3 5. Actioning & production
H4 5. Actioning & production
H3 6. Dissemination & feedback
H4 6. Dissemination & feedback
H2 How you can use our TIP
H2 How our TIP helps your team
H3 CTI Analysts
H3 SOC Analysts
H3 Cybersecurity Leaders and CISO
H3 MSSPs
H2 Learn more about Intelligence Center
H3 Download the Threat Intelligence Platform product sheet
H3 Read our latest blogs
H3 Get access to our latest reports
H2 Talk to one of our experts
H3 (no text)
MS09warninglink wording that does not say where it leads: โ€œlearn moreโ€
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: โ€œlearn moreโ€
The evidence, taken from the page as served
The links whose text names no destination, as served
"Learn more"
<a href="#" class="group inline-flex items-center gap-2 lg:gap-3 max-w-full font-bold text-sm xl:text-base leading-tight tracking-wide font-semibold text-white absolute bottom-5 right-8"> <span class="sm:flex-none truncate">Learn more</span> <svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 31 31" class="hidden xs:bโ€ฆ
"Learn more"
<a href="#" class="group inline-flex items-center gap-2 lg:gap-3 max-w-full font-bold text-sm xl:text-base leading-tight tracking-wide font-semibold text-white absolute bottom-5 right-8"> <span class="sm:flex-none truncate">Learn more</span> <svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 31 31" class="hidden xs:bโ€ฆ
"Learn more"
<a href="#" class="group inline-flex items-center gap-2 lg:gap-3 max-w-full font-bold text-sm xl:text-base leading-tight tracking-wide font-semibold text-white absolute bottom-5 right-8"> <span class="sm:flex-none truncate">Learn more</span> <svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 31 31" class="hidden xs:bโ€ฆ
"Learn more"
<a href="#" class="group inline-flex items-center gap-2 lg:gap-3 max-w-full font-bold text-sm xl:text-base leading-tight tracking-wide font-semibold text-white absolute bottom-5 right-8"> <span class="sm:flex-none truncate">Learn more</span> <svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 31 31" class="hidden xs:bโ€ฆ
"Learn more"
<a href="#" class="group inline-flex items-center gap-2 lg:gap-3 max-w-full font-bold text-sm xl:text-base leading-tight tracking-wide font-semibold text-white absolute bottom-5 right-8"> <span class="sm:flex-none truncate">Learn more</span> <svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 31 31" class="hidden xs:bโ€ฆ
"Learn more"
<a href="#" class="group inline-flex items-center gap-2 lg:gap-3 max-w-full font-bold text-sm xl:text-base leading-tight tracking-wide font-semibold text-white absolute bottom-5 right-8"> <span class="sm:flex-none truncate">Learn more</span> <svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 31 31" class="hidden xs:bโ€ฆ
"Learn more"
<a href="https://blog.eclecticiq.com?type=intelligence-research&amp;hsLang=en" class="group inline-flex items-center gap-2 lg:gap-3 max-w-full font-bold text-sm xl:text-base leading-tight tracking-wide font-semibold text-white mt-auto leading-tight"> <span class="sm:flex-none truncate">Learn more</span> <svg xmlns="httโ€ฆ
MS13warning2 of 2 iframes untitled
What we check
Each embedded panel on the page carries a title saying what it contains.
What good looks like
Each embedded panel carries a title saying what it contains.
Why it matters
The embedded region stays unnamed, so what it holds is left unstated in the page around it.
What we found on this page
2 of 2 iframes untitled
The evidence, taken from the page as served
The iframes with no title attribute, as served
src=https://www.googletagmanager.com/ns.html?id=GTM-MC7MVC
<iframe src="https://www.googletagmanager.com/ns.html?id=GTM-MC7MVC" height="0" width="0" style="display:none;visibility:hidden"/>
src=https://www.googletagmanager.com/ns.html?id=GTM-MC7MVC
<iframe src="https://www.googletagmanager.com/ns.html?id=GTM-MC7MVC" height="0" width="0" style="display:none;visibility:hidden"/>
PDF documents 1 documents

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

https://networkingplus.co.uk/Media/Default/archive/Net2003.pdf 0.0% Likely 1 out of 2
CheckResultEvidence
PD07failthe document could not be fetched: its address answers "not found" (404), so the link from the site is broken and there is nothing behind it to read
What we check
Whether each document the site links can actually be fetched and opened, before anything inside it is judged.
What good looks like
The document fetches and opens. A FAIL means it could not be fetched at all, a broken link (not found) or an address that does not deliver the file, so its readiness is measured at zero and the missing detail raises misinformation likelihood to the middle of the scale.
Why it matters
A linked document that cannot be fetched is detail out of reach: whatever it held cannot be read or checked by anyone, so answers that lean on it are built without it, and the broken link itself reads as a site not being kept.
What we found on this page
the document could not be fetched: its address answers "not found" (404), so the link from the site is broken and there is nothing behind it to read
The evidence, taken from the page as served
The document's address, as linked from the site
Page ยท opens in a new tabDetail
networkingplus.co.uk/Media/Default/archive/Net2003.pdfanswers 404 to our checker
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 1 PDF documents found were assessed separately. The industry in the header is classified from the site's own content. The traffic classification comes from a recognised top-sites list or a connected traffic provider; it reads NA when the domain is not connected to a traffic source.

Header identity signals. The regulated sector and listed company values are inferred from the same crawled content, and shown here so the header can stay to the answer alone. Regulated sector reads “None found”: no regulator statements, and the established sector carries no statutory regulator. Listed company reads “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, 85 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