troyhunt.com

troyhunt.com is SSL secured

Free website and domain report on troyhunt.com

Last Updated: 22nd April, 2022 Update Now
Overview

Snoop Summary for troyhunt.com

This is a free and comprehensive report about troyhunt.com. The domain troyhunt.com is currently hosted on a server located in United States with the IP address 172.67.221.245, where USD is the local currency and the local language is English. Troyhunt.com is expected to earn an estimated $17 USD per day from advertising revenue. The sale of troyhunt.com would possibly be worth $12,468 USD. This figure is based on the daily revenue potential of the website over a 24 month period. Troyhunt.com receives an estimated 5,988 unique visitors every day - a huge amount of traffic! This report was last updated 22nd April, 2022.

About troyhunt.com

Site Preview: troyhunt.com troyhunt.com
Title: Troy Hunt: Troy Hunt
Description: Hi, I'm Troy Hunt, I write this blog, run "Have I Been Pwned" and am a Microsoft Regional Director and MVP who travels the world speaking at events and training technology professionals
Keywords and Tags: business forums, information security, technical
Related Terms: andy hunt, daily hunt telugu, east troy heating contractor, hunt country vineyards, hunt shoot accessories, jb hunt 360, treasure hunt, troy boston, troy donahue, troy ohio
Fav Icon:
Age: Over 24 years old
Domain Created: 15th November, 1999
Domain Updated: 12th November, 2021
Domain Expires: 15th November, 2029
Review

Snoop Score

3/5 (Great!)

Valuation

$12,468 USD
Note: All valuation figures are estimates.

Popularity

High
Note: Popularity is estimated.

Rank, Reach and Authority

Alexa Rank: 86,467
Alexa Reach:
SEMrush Rank (US):
SEMrush Authority Score:
Moz Domain Authority: 0
Moz Page Authority: 0

Organic vs Paid (Google Ads)

Traffic

Visitors

Daily Visitors: 5,988
Monthly Visitors: 182,256
Yearly Visitors: 2,185,620
Note: All visitors figures are estimates.

Visitors By Country

Revenue

Revenue

Daily Revenue: $17 USD
Monthly Revenue: $519 USD
Yearly Revenue: $6,229 USD
Note: All revenue figures are estimates.

Revenue By Country

SEO

Backlinks Analysis (SEMrush)

Top New Follow Links

Top Ranking Keywords (US)

Domain Analysis

Value Length
Domain: troyhunt.com 12
Domain Name: troyhunt 8
Extension (TLD): com 3
Expiry Check:

Page Speed Analysis

Average Load Time: 1.50 seconds
Load Time Comparison: Faster than 62% of sites

PageSpeed Insights

Avg. (All Categories) 76
Performance 95
Accessibility 88
Best Practices 92
SEO 82
PWA 22
0–49 (Fail) 50–89 (Average) 90–100 (Pass)
URL: https://www.troyhunt.com/
Updated: 22nd April, 2022

0.75 seconds
First Contentful Paint (FCP)
97%
3%
0%

0.00 seconds
First Input Delay (FID)
100%
0%
0%

Simulate loading on desktop
95

Performance

Indicates how well the page is performing and highlights opportunities where performance may be improved for troyhunt.com. This includes details about optimizing page load times which can result in a better user experience.

Metrics

Time to Interactive — 1.1 s
The time taken for the page to become fully interactive.
Speed Index — 1.1 s
The time taken for the page contents to be visibly populated.
Total Blocking Time — 0 ms
The total blocking time is the sum of all time periods between First Contentful Paint and Time to Interactive (when task length exceeded 50ms).
Cumulative Layout Shift — 0.008
Cumulative Layout Shift is the measurement of visible elements collective movement within the viewport.
View Data

Audits

Max Potential First Input Delay — 20 ms
Users could experience a delay when interacting with the page.
Network Requests
Below is a list of network requests that were made during page load.
URL Protocol Start Time (Ms) End Time (Ms) Transfer Size (Bytes) Resource Size (Bytes) Status Code MIME Type Resource Type
http://troyhunt.com/
http/1.1
0
73.477000012645
738
0
301
text/plain
https://troyhunt.com/
http/1.1
73.812000002363
150.70399999968
900
0
301
text/plain
https://www.troyhunt.com/
h2
151.15700000024
249.97400000575
13880
36879
200
text/html
Document
https://www.troyhunt.com/assets/css/main.min.css?v=5fb5164c88
h2
264.06200000201
381.02400000207
8296
26709
200
text/css
Stylesheet
https://fonts.googleapis.com/css?family=Vollkorn:400,400italic,700,700italic
h2
264.28500001202
281.02000000945
1456
7364
200
text/css
Stylesheet
https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css
h2
264.46200000646
289.5850000059
6737
31000
200
text/css
Stylesheet
https://unpkg.com/@tryghost/portal@~1.20.0/umd/portal.min.js
http/1.1
379.76100000378
455.66700000199
672
0
302
text/plain
https://www.troyhunt.com/public/cards.min.js?v=5fb5164c88
h2
382.36600000528
419.05500000576
2805
7210
200
application/javascript
Script
https://www.troyhunt.com/public/cards.min.css?v=5fb5164c88
h2
265.18800000485
378.50900000194
5675
23781
200
text/css
Stylesheet
https://www.google-analytics.com/analytics.js
h2
385.46900000074
390.22600000317
20631
50205
200
text/javascript
Script
https://www.troyhunt.com/content/images/2017/01/1.jpg
h2
392.22700000391
452.35800000955
53886
52642
200
image/jpeg
Image
https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/fonts/fontawesome-webfont.woff2?v=4.7.0
h2
399.86600000702
436.3880000019
78270
77160
200
application/octet-stream
Font
https://fonts.gstatic.com/s/vollkorn/v19/0yb9GDoxxrvAnPhYGxkpaE0Urhg0.woff2
h2
400.11100000993
405.61300000991
44871
43956
200
font/woff2
Font
https://fonts.gstatic.com/s/vollkorn/v19/0yb7GDoxxrvAnPhYGxksWE8eqTo29Tc.woff2
h2
401.50100000028
405.95600000233
45635
44708
200
font/woff2
Font
https://bloghelpers.troyhunt.com/api/BlogData
h2
446.61300000735
540.57200001262
1367
823
200
application/json
XHR
https://unpkg.com/@tryghost/portal@1.20.2/umd/portal.min.js
h2
456.07800000289
508.84400001087
124676
483357
200
application/javascript
Script
https://www.google-analytics.com/j/collect?v=1&_v=j96&a=2113332917&t=pageview&_s=1&dl=https%3A%2F%2Fwww.troyhunt.com%2F&ul=en-us&de=UTF-8&dt=Troy%20Hunt%3A%20Troy%20Hunt&sd=24-bit&sr=800x600&vp=1350x940&je=0&_u=IEBAAEABAAAAAC~&jid=1086866694&gjid=110568055&cid=387029383.1650600187&tid=UA-10949399-1&_gid=806659797.1650600187&_r=1&_slc=1&z=800693120
h2
563.37500001246
568.53800000681
617
4
200
text/plain
XHR
https://stats.g.doubleclick.net/j/collect?t=dc&aip=1&_r=3&v=1&_v=j96&tid=UA-10949399-1&cid=387029383.1650600187&jid=1086866694&gjid=110568055&_gid=806659797.1650600187&_u=IEBAAEAAAAAAAC~&z=1350548012
h2
589.45400000084
594.27000000142
687
1
200
text/plain
XHR
https://www.troyhunt.com/members/api/site/
h2
687.36000001081
755.05600000906
1917
1284
200
application/json
Fetch
https://www.troyhunt.com/members/api/member/
h2
693.11900000321
882.34300000477
2763
0
204
Fetch
Network Round Trip Times — 0 ms
High Network RTT (Round Trip Times) can have a large impact on performance. Providing servers geographically closer to the user could improve performance.
Server Backend Latencies — 0 ms
High server latencies indicate the server is overloaded or has a poor backend performance.
Tasks
Below is a list of the top-level main thread tasks that executed during page load.
Start Time (Ms) End Time (Ms)
296.651
7.928
430.56
56.289
499.786
32.718
534.394
17.398
552.469
54.457
606.979
13.085
631.26
7.567
659.062
74.677
916.466
8.769
Diagnostics
Below is a collection of useful page vitals.
View Data
Metrics
Below is a collection of metrics.
View Data
Script Treemap Data
Provide as required, for treemap app.

Other

Properly size images
Images can slow down the page's load time. Troyhunt.com should consider serving more appropriate-sized images.
Defer offscreen images
Time to Interactive can be slowed down by resources on the page. Troyhunt.com should consider lazy-loading offscreen and hidden images.
Minify CSS
Cascading Style Sheets (CSS) files can contribute to network payload sizes. Troyhunt.com should consider minifying CSS files.
Minify JavaScript
JavaScript (JS) files can contribute to network payload sizes and increase script parse times. Troyhunt.com should consider minifying JS files.
Reduce unused CSS
Dead and/or unused rules in Style Sheets (CSS) can contribute to network payload sizes. Troyhunt.com should consider removing dead rules from style sheets and deferring the loading of CSS not used for above-the-fold content.
Reduce unused JavaScript — Potential savings of 344 KiB
It is advised to remove unused JavaScript in order to reduce bytes consumed by network activity.
URL Transfer Size (Bytes) Potential Savings (Bytes)
https://unpkg.com/@tryghost/portal@~1.20.0/umd/portal.min.js
483357
352440
Efficiently encode images
Unoptimized images can consume more cellular data than what is necessary.
Serve images in next-gen formats — Potential savings of 21 KiB
Consider JPEG 2000, JPEG XR or WebP image formats which provide better compression than PNG and JPEG.
URL Resource Size (Bytes) Potential Savings (Bytes)
https://www.troyhunt.com/content/images/2017/01/1.jpg
52642
21189.55
Enable text compression
Text-based resources should be served with compression, such as gzip, deflate or brotli.
Preconnect to required origins
Resource hints, such as 'preconnect' or 'dns-prefetch', may assist in establishing early connections to important third-party origins.
Initial server response time was short — Root document took 100 ms
It is advised to keep the server response time short for the main document, because all other requests depend on it.
URL Time Spent (Ms)
https://www.troyhunt.com/
99.811
Preload key requests
Key requests can be preloaded by using '<link rel=preload>'. Troyhunt.com should consider using '<link rel=preload>' to prioritize fetching resources that are currently requested later in page load.
Use video formats for animated content
Large GIFs are inefficient for delivering animated content. It is recommended to use MPEG4/WebM videos for animations and PNG/WebP for static images instead of GIF.
Remove duplicate modules in JavaScript bundles
Ensure that no duplicate JavaScript modules from bundles exist to reduce bytes consumed by network activity.
Avoid serving legacy JavaScript to modern browsers — Potential savings of 0 KiB
Polyfills and transforms enable legacy browsers to use new JavaScript features. For bundled JavaScript it is recommended to adopt a modern script deployment strategy using module/nomodule feature detection. This will reduce the amount of code shipped to modern browsers.
URL Potential Savings (Bytes)
https://unpkg.com/@tryghost/portal@1.20.2/umd/portal.min.js
43
Preload Largest Contentful Paint image
It is recommended to preload images used by LCP elements, to improve LCP time.
URL Potential Savings (Ms)
https://www.troyhunt.com/content/images/2017/01/1.jpg
0
Avoids enormous network payloads — Total size was 407 KiB
Large network payloads can cost users money and are linked to long load times.
URL Transfer Size (Bytes)
https://unpkg.com/@tryghost/portal@1.20.2/umd/portal.min.js
124676
https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/fonts/fontawesome-webfont.woff2?v=4.7.0
78270
https://www.troyhunt.com/content/images/2017/01/1.jpg
53886
https://fonts.gstatic.com/s/vollkorn/v19/0yb7GDoxxrvAnPhYGxksWE8eqTo29Tc.woff2
45635
https://fonts.gstatic.com/s/vollkorn/v19/0yb9GDoxxrvAnPhYGxkpaE0Urhg0.woff2
44871
https://www.google-analytics.com/analytics.js
20631
https://www.troyhunt.com/
13880
https://www.troyhunt.com/assets/css/main.min.css?v=5fb5164c88
8296
https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css
6737
https://www.troyhunt.com/public/cards.min.css?v=5fb5164c88
5675
Uses efficient cache policy on static assets — 1 resource found
Troyhunt.com can speed up repeat visits by increasing the cache lifetime, which is essentially how long before a cached copy expires.
URL Cache TTL (Ms) Transfer Size (Bytes)
https://www.google-analytics.com/analytics.js
7200000
20631
Avoids an excessive DOM size — 320 elements
A large DOM (Document Object Model) will increase memory usage, cause longer system calculations as well as costly layout reflows.
Statistic Element Value
Total DOM Elements
320
Maximum DOM Depth
12
Maximum Child Elements
10
Avoid chaining critical requests — 5 chains found
Below is a list of Critical Request Chains, which shows which resources are loaded with a high priority. Troyhunt.com should consider reducing the length of chains, reducing the download size of resources, or deferring the download of unnecessary resources to improve page load.
User Timing marks and measures
Make use of the User Timing API to measure an app's real-world performance during key user experiences.
JavaScript execution time — 0.1 s
JavaScript (JS) execution time can be lowered by reducing the time required for parsing, compiling and executing JS. Delivering smaller JS payloads may help with this.
URL Total CPU Time (Ms) Script Evaluation (Ms) Script Parse (Ms)
https://www.troyhunt.com/
134.716
7.648
1.846
https://unpkg.com/@tryghost/portal@~1.20.0/umd/portal.min.js
68.44
56.965
11.213
https://www.google-analytics.com/analytics.js
58.385
40.885
1.42
Unattributable
57.794
12.439
0.281
Minimizes main-thread work — 0.3 s
Main-thread work timing can be lowered by reducing the time required for parsing, compiling and executing JS. Delivering smaller JS payloads may help with this.
Category Time Spent (Ms)
Script Evaluation
118.232
Style & Layout
92.018
Other
75.628
Rendering
23.715
Script Parsing & Compilation
15.01
Parse HTML & CSS
8.884
Keep request counts low and transfer sizes small — 20 requests • 407 KiB
It is advised to add a budgets.json file in order to set budgets for the quantity and size of page resources.
Resource Type Requests Transfer Size (Bytes)
Total
20
416479
Font
3
168776
Script
3
148112
Image
1
53886
Stylesheet
4
22164
Document
1
13880
Other
8
9661
Media
0
0
Third-party
10
324252
Minimize third-party usage — Third-party code blocked the main thread for 10 ms
It is advised to either limit, remove or delay the loading of redundant third-party code which may be significantly impacting load performance.
Third-Party Transfer Size (Bytes) Main-Thread Blocking Time (Ms)
125348
5.826
91962
0
85007
0
21248
0
687
0
Lazy load third-party resources with facades
Consider replacing third-party embeds with a facade until they are required (use lazy loading).
Largest Contentful Paint element — 1 element found
The element which was identified as the Largest Contentful Paint.
Element
Largest Contentful Paint image was not lazily loaded
Above-the-fold images that are lazily loaded render later in the page lifecycle, which can delay the largest contentful paint.
Element
Avoid large layout shifts — 5 elements found
Below is a list of all DOM elements that contribute to the CLS of the page.
Element CLS Contribution
0.0071716301476812
0.00037795508274232
5.4593511951668E-5
2.9272392960336E-5
1.3065113971339E-6
Uses passive listeners to improve scrolling performance
Improve the page's scroll performance by marking touch and wheel event listeners as 'passive'.
Avoids `document.write()`
Avoid or limit the use of external scripts that are dynamically injected via 'document.write()' as users on slow connections will be delayed by tens of seconds.
Avoid long main-thread tasks — 1 long task found
Below is a list of the longest tasks on the main thread, which is useful when identifying the worst input delay contributors.
URL Start Time (Ms) Duration (Ms)
https://www.troyhunt.com/public/cards.min.js?v=5fb5164c88
930
75
Avoid non-composited animations
It is recommended to avoid non-composited animations which are often janky and increase CLS.
Image elements have explicit `width` and `height`
Reduce layout shifts and improve CLS by setting explicit width and height properties on image elements.
Has a `<meta name="viewport">` tag with `width` or `initial-scale`
It is advised to use a '<meta name="viewport">' tag for the optimization of troyhunt.com on mobile screens.
Avoids `unload` event listeners
The 'unload' event does not fire reliably, causing issues with browser optimizations such as the Back-Forward Cache. It is recommended that 'pagehide' or 'visibilitychange' events are used instead.

Budgets

Performance budget
It is advised to keep the quantity and size of all network requests under the targets set by the provided performance budget.
Timing budget
It is advised to set a timing budget to monitor the performance of your site.

Metrics

First Contentful Paint — 1.1 s
The time taken for the first image or text on the page to be rendered.
Largest Contentful Paint — 1.2 s
The timing of the largest text or image that is painted.

Audits

First Meaningful Paint — 1.1 s
The time taken for the primary content of the page to be rendered.

Other

Eliminate render-blocking resources — Potential savings of 510 ms
Resources, such as JavaScript and style sheets, can block the first paint of the page. Troyhunt.com should consider delivering critical JavaScript/style sheets (JS/CSS) inline and deferring all non-critical JS/CSS.
URL Transfer Size (Bytes) Potential Savings (Ms)
https://fonts.googleapis.com/css?family=Vollkorn:400,400italic,700,700italic
1456
230
https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css
6737
230
Avoid multiple page redirects — Potential savings of 340 ms
Redirects can cause additional delays before the page can begin loading. Troyhunt.com should avoid multiple or unnecessary page redirects.
URL Time Spent (Ms)
http://troyhunt.com/
190
https://troyhunt.com/
150
https://www.troyhunt.com/
0

Other

Ensure text remains visible during webfont load
Make use of the font-display CSS feature, which will ensure text is user-visible while webfonts are loading.
URL Potential Savings (Ms)
https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/fonts/fontawesome-webfont.woff2?v=4.7.0
36.521999994875
https://fonts.gstatic.com/s/vollkorn/v19/0yb9GDoxxrvAnPhYGxkpaE0Urhg0.woff2
5.5019999999786
https://fonts.gstatic.com/s/vollkorn/v19/0yb7GDoxxrvAnPhYGxksWE8eqTo29Tc.woff2
4.4550000020536
88

Accessibility

Indicates how accessible the page is and highlights opportunities where the page can be made more accessible to users of troyhunt.com. This includes details about various page attributes that can be optimized.

Navigation

`[accesskey]` values are unique
Access keys assist users with focusing on different parts of the page. Each access key should be unique for proper navigation.
The page contains a heading, skip link, or landmark region
It is advised to provide ways to bypass repetitive content, allowing users to navigate the page efficiently.
`[id]` attributes on active, focusable elements are unique
Ensure all focusable elements have a unique id value to allow them to be visible to users of assistive technologies, like a screen reader.
No element has a `[tabindex]` value greater than 0
Although technically valid, a tabindex value greater than 0 often creates frustrating experiences for users who rely on assistive technologies.

ARIA

`[aria-*]` attributes match their roles
Avoid mismatching 'aria-*' attributes and their 'role' value, as it invalidates the attribute.
`button`, `link`, and `menuitem` elements have accessible names
Without accessible names on elements, screen readers will default to announcing a generic name, which means your content will be less accessible to users who rely on screen readers.
`[aria-hidden="true"]` is not present on the document `<body>`
If aria-hidden=true is set on the document body, assistive technologies, like a screen reader will work inconsistently.
`[aria-hidden="true"]` elements do not contain focusable descendents
Interactive elements within an aria-hidden=true element are unavailable to users of assistive technologies, like a screen reader.
ARIA input fields have accessible names
Generic names are announced to users of assistive technologies, like a screen reader, when an input field does not have an accessible name specified.
ARIA `meter` elements have accessible names
Without accessible names on elements, screen readers will default to announcing a generic name, which means your content will be less accessible to users who rely on screen readers.
ARIA `progressbar` elements have accessible names
Without accessible names on elements, screen readers will default to announcing a generic name, which means your content will be less accessible to users who rely on screen readers.
`[role]`s have all required `[aria-*]` attributes
Some ARIA roles have required 'aria-*' attributes, which provide essential information about state and functionality.
Elements with an ARIA `[role]` that require children to contain a specific `[role]` have all required children.
Some ARIA parent roles cannot perform their intended functions if specific child roles are not used.
`[role]`s are contained by their required parent element
Some ARIA child roles cannot perform their intended functions if specific parent roles are not used.
`[role]` values are valid
All ARIA roles require valid values to perform their intended functions.
ARIA toggle fields have accessible names
Generic names are announced to users of assistive technologies, like a screen reader, when a toggle field does not have an accessible name specified.
ARIA `tooltip` elements have accessible names
Without accessible names on elements, screen readers will default to announcing a generic name, which means your content will be less accessible to users who rely on screen readers.
ARIA `treeitem` elements have accessible names
Without accessible names on elements, screen readers will default to announcing a generic name, which means your content will be less accessible to users who rely on screen readers.
`[aria-*]` attributes have valid values
ARIA attributes cannot be interpreted with invalid values when used by screen readers and other assistive technologies.
`[aria-*]` attributes are valid and not misspelled
ARIA attributes cannot be interpreted with invalid names when used by screen readers and other assistive technologies.
ARIA IDs are unique
Ensure all ARIA ID values are unique to prevent elements from being overlooked by assistive technologies, like a screen reader.

Names and labels

Buttons have an accessible name
Buttons become unusable as they are announced simply as "button" when the button does not have an accessible name, when used by screen readers and other assistive technologies.
Document has a `<title>` element
Search engines, screen reader users and other assistive technology users rely on the title to provide an overview of the page and to help determine if the page is relevant to their search.
No form fields have multiple labels
Having multiple labels for form fields can be confusing to assistive technologies, like a screen reader.
`<frame>` or `<iframe>` elements have a title
Screen reader users and other assistive technology users rely on frame titles to describe the contents of frames.
Image elements have `[alt]` attributes
Provide short and descriptive alternative text where possible on informative elements.
`<input type="image">` elements have `[alt]` text
Input buttons with alternative text assist screen readers and other assistive technology users to understand its purpose.
Form elements have associated labels
Screen readers and other assistive technologies rely on labels to properly announce form controls.
`<object>` elements have alternate text
It is advised that alt text is used on '<object>' elements in order to provide meaning to screen reader and other assistive technology users, as these technologies are unable to translate non-text content.

Tables and lists

`<dl>`'s contain only properly-ordered `<dt>` and `<dd>` groups, `<script>`, `<template>` or `<div>` elements.
Screen readers and other assistive technologies may produce poor and inaccurate output when definition lists are not properly marked up.
Definition list items are wrapped in `<dl>` elements
In order for screen readers and other assistive technologies to properly announce definition list items ('<dt>' and '<dd>'), they must be wrapped in parent a '<dl>' element.
List items (`<li>`) are contained within `<ul>` or `<ol>` parent elements
In order for screen readers to announce list items, ensure that list items ('<li>') are contained within parent '<ul>' or '<ol>' tags.
Cells in a `<table>` element that use the `[headers]` attribute refer to table cells within the same table.
Screen readers and other assistive technologies have features to make navigating tables easier. Ensure that '<td>' cells using the headers attribute only refer to other cells in the same table, to improve screen reader user experience.
`<th>` elements and elements with `[role="columnheader"/"rowheader"]` have data cells they describe.
Screen readers and other assistive technologies have features to make navigating tables easier. Ensure that table headers refer to some set of cells, to improve screen reader user experience.

Internationalization and localization

`<html>` element has a `[lang]` attribute
It is advised to provide a lang attribute so that screen readers and other assistive technologies are guaranteed to announce the page's text correctly. When not provided, the user's default language setting will be used which may cause inaccuracies.
`<html>` element has a valid value for its `[lang]` attribute
Specify a valid BCP 47 language in order to help screen readers and other assistive technologies announce text properly.
`[lang]` attributes have a valid value
Specify a valid BCP 47 language on elements in order to help screen readers and other assistive technologies announce text properly.

Best practices

The document does not use `<meta http-equiv="refresh">`
Pages that refresh automatically cause a poor user experience as focus is directed back to the top of the page unexpectedly.
`[user-scalable="no"]` is not used in the `<meta name="viewport">` element and the `[maximum-scale]` attribute is not less than 5.
For users with low vision who rely on screen magnification, ensure that zooming is not disabled.

Audio and video

`<video>` elements contain a `<track>` element with `[kind="captions"]`
Troyhunt.com may provide assistance to deaf or hearing-impaired users with captions on videos.

Contrast

Navigation

Heading elements are not in a sequentially-descending order
Properly order all headers and do not skip heading levels to better the navigation and readability for users of assistive technologies, like a screen reader.
Failing Elements

Names and labels

Links do not have a discernible name
In order to improve the navigation for screen reader and other assistive technology users, use link text that is unique, focusable and discernible.

Tables and lists

Lists do not contain only `<li>` elements and script supporting elements (`<script>` and `<template>`).
Use proper list structure to aid screen readers and other assistive technologies.
Failing Elements

Manual Checks

The page has a logical tab order
The visual layout should be logical in its tab order and users cannot focus elements that are offscreen.
Interactive controls are keyboard focusable
Ensure that custom interactive controls are keyboard focusable and that a focus indicator is displayed.
Interactive elements indicate their purpose and state
Ensure that interactive elements (such as links and buttons) are distinguishable from non-interactive elements and that they indicate their state.
The user's focus is directed to new content added to the page
When new content (such as a dialogue) is added to the page, the user's focus should be directed to it.
User focus is not accidentally trapped in a region
Avoid focus being accidentally trapped when a user tabs in and out of controls or regions on page.
Custom controls have associated labels
Ensure that custom interactive controls have associated labels, which are provided by aria-label and aria-labelledby attributes.
Custom controls have ARIA roles
Ensure that all custom interactive controls have appropriate ARIA roles.
Visual order on the page follows DOM order
Ensure that the DOM order matches with the page's visual order, in order to improve navigation for screen readers and other assistive technologies.
Offscreen content is hidden from assistive technology
Ensure that offscreen content is hidden through the use of "display:none" styling or the aria-hidden attribute.
HTML5 landmark elements are used to improve navigation
Elements such as <main> and <nav> are recommended as they are used by screen readers and other assistive technologies to improve keyboard navigation.
92

Best Practices

Indicates the recommended, best practices currently in place on the page and highlights the best practices that troyhunt.com should incorporate. This includes practices such as protecting pages with HTTPS.

Audits

Avoids requesting the geolocation permission on page load
When requesting a user's location, provide context or consider tying the request to a user action to avoid confusion and mistrust from users.
Avoids requesting the notification permission on page load
When requesting permission to send notifications, provide context or consider tying the request to a user action to avoid confusion and mistrust from users.
Avoids front-end JavaScript libraries with known security vulnerabilities
Ensure that the use of third-party scripts is minimal and that only trusted third-party scripts are used as some may contain known security vulnerabilities which may be exploited by attackers.
Ensure CSP is effective against XSS attacks
Significantly reduce the risk of cross-site scripting attacks (XSS) by ensuring you have a strong Content Security Policy (CSP).
Description Directive Severity
Host allowlists can frequently be bypassed. Consider using CSP nonces or hashes instead, along with 'strict-dynamic' if necessary.
script-src
High
Consider adding 'unsafe-inline' (ignored by browsers supporting nonces/hashes) to be backward compatible with older browsers.
script-src
Medium

Audits

Allows users to paste into password fields
Ensure that password inputs may be pasted into to aid in the user's ability to use password managers and improve security.
Displays images with correct aspect ratio
Ensure that image display dimensions match their natural aspect ratio.
Serves images with appropriate resolution
For maximum image clarity, ensure images have natural dimensions and are proportional to the display size and pixel ratio.
Fonts with `font-display: optional` are preloaded
It is recommended that optional fonts are preloaded.

Audits

Page has the HTML doctype
Ensure a doctype is specified to prevent the browser from switching to quirks-mode.
Properly defines charset
It is advised to declare a character encoding, optionally via a <meta> tag in the first 1024 bytes of the HTML or in the Content-Type HTTP response header.

Audits

Detected JavaScript libraries
Below is a list of all front-end JavaScript libraries that were detected on the page.
Name Version
React
Avoids deprecated APIs
Avoid deprecated APIs which will eventually be removed the browser.
No browser errors logged to the console
Below is a list of all errors logged to the console, which indicate unresolved problems on the site.
Page has valid source maps
Consider deploying source maps for added benefits such as the ability to debug while in production.
URL Map URL
https://unpkg.com/@tryghost/portal@~1.20.0/umd/portal.min.js
https://unpkg.com/@tryghost/portal@~1.20.0/umd/portal.min.js.map
No issues in the `Issues` panel in Chrome Devtools
There may be unresolved issues logged to Chrome Devtools.

Audits

Does not use HTTPS — 1 insecure request found
Ensure that all pages are protected with HTTPS (including those that do not handle sensitive data) as HTTPS prevents tampering and passive listening on communications between the app and its users. Additionally, HTTPS is a prerequisite for HTTP/2 and many new web platform APIs.
Insecure URL Request Resolution
http://troyhunt.com/
Allowed
82

SEO

Indicates how well the page is optimized for ranking in search engines and highlights Search Engine Optimization (SEO) opportunities for troyhunt.com. This includes optimizations such as providing meta data.

Mobile Friendly

Has a `<meta name="viewport">` tag with `width` or `initial-scale`
It is advised to use a '<meta name="viewport">' tag for the optimization of troyhunt.com on mobile screens.
Document uses legible font sizes
Font sizes of 12px or less are too small to most mobile users without user gestures and further action. Aim for more than 60% of page text to use font sizes greater than 12px.
Tap targets are sized appropriately
Interactive elements (such as buttons and links) should be appropriately spaced, sized and easy enough to select or tap with regard to their surrounding elements.

Content Best Practices

Document has a `<title>` element
Search engines, screen reader users and other assistive technology users rely on the title to provide an overview of the page and to help determine if the page is relevant to their search.
Links have descriptive text
Make use of descriptive link text to assist search engines in understanding the content.
Image elements have `[alt]` attributes
Provide short and descriptive alternative text where possible on informative elements.
Document has a valid `hreflang`
Search engines can be instructed to list specific versions of a page for a given language or region through the use of hreflang links.
Document has a valid `rel=canonical`
Search engines can be suggested which URL should be shown in search results through the use of canonical links.
Document avoids plugins
The content of plugins cannot be indexed by search engines and many devices either restrict or do not support them.

Crawling and Indexing

Page has successful HTTP status code
Avoid pages with unsuccessful HTTP status codes as they may not be indexed by search engines.
Page isn’t blocked from indexing
Pages that cannot be crawled by search engines cannot be indexed or included in their search results. Ensure that search engines have permission to crawl all pages that should be indexed.
robots.txt is valid
Malformed robots.txt files prevent crawlers from understanding how a site wants to be crawled or indexed, which can be devastating to SEO.

Content Best Practices

Document does not have a meta description
Meta descriptions may be used by search engines when displaying a link to the page and should concisely summarize the page's content.

Crawling and Indexing

Links are not crawlable
Ensure that the 'href' attribute of anchor elements links to the appropriate destination. This allows for more pages of the site to be discovered by search engines.

Manual Checks

Structured data is valid
Structured data can be validated through the use of the Structured Data Testing Tool and the Structured Data Linter.
22

PWA

Indicates how valid the aspects of a Progressive Web App (PWA) are for the page and highlights opportunities to enable/improve the PWA of troyhunt.com. This includes details about web app manifests.

PWA Optimized

Content is sized correctly for the viewport
Ensure that the width of the app's content matches the width of the viewport, otherwise the app might not be optimized for mobile screens.
Has a `<meta name="viewport">` tag with `width` or `initial-scale`
It is advised to use a '<meta name="viewport">' tag for the optimization of troyhunt.com on mobile screens.

Installable

Web app manifest or service worker do not meet the installability requirements — 1 reason
User engagement may be increased by leveraging the browsers ability to proactively prompt users to add the app to their homescreen.
Failure reason
No manifest was fetched

PWA Optimized

Does not register a service worker that controls page and `start_url`
A service worker is used to provide Progressive Web Apps the use of features such as working offline, the ability for the app to be added to the homescreen as well as push notifications.
Is not configured for a custom splash screen
Themed splash screens ensure a high-quality user experience at launch for app users.
View Data
Does not set a theme color for the address bar.
A theme may be applied to the browser address bar, which ideally can be made to match the site.
View Data
Does not provide a valid `apple-touch-icon`
iOS users of Progressive Web Apps will benefit from an apple touch icon, which can be defined with 'apple-touch-icon', which must point to a non-transparent 192px (or 180px) square PNG.
Manifest doesn't have a maskable icon
Maskable icons are great to ensure that images fill the entire shape when installing the app on a device.

Manual Checks

Site works cross-browser
Ensure that the Progressive Web App works correctly across every major browser.
Page transitions don't feel like they block on the network
Users perceive apps with responsive, snappy transitions as higher peforming and ensures a great user experience, even on a slow network.
Each page has a URL
Ensure that all pages are deep linkable via URL. They should also be unique for the purpose of shareability on social media.
Avg. (All Categories) 72
Performance 74
Accessibility 79
Best Practices 92
SEO 85
PWA 30
0–49 (Fail) 50–89 (Average) 90–100 (Pass)
URL: https://www.troyhunt.com/
Updated: 22nd April, 2022

1.03 seconds
First Contentful Paint (FCP)
95%
4%
1%

0.01 seconds
First Input Delay (FID)
99%
0%
1%

Simulate loading on mobile
74

Performance

Indicates how well the page is performing and highlights opportunities where performance may be improved for troyhunt.com. This includes details about optimizing page load times which can result in a better user experience.

Metrics

Total Blocking Time — 40 ms
The total blocking time is the sum of all time periods between First Contentful Paint and Time to Interactive (when task length exceeded 50ms).
Cumulative Layout Shift — 0
Cumulative Layout Shift is the measurement of visible elements collective movement within the viewport.
View Data

Audits

Max Potential First Input Delay — 130 ms
Users could experience a delay when interacting with the page.
Network Requests
Below is a list of network requests that were made during page load.
URL Protocol Start Time (Ms) End Time (Ms) Transfer Size (Bytes) Resource Size (Bytes) Status Code MIME Type Resource Type
http://troyhunt.com/
http/1.1
0
89.014000026509
757
0
301
text/plain
https://troyhunt.com/
http/1.1
89.288000017405
153.36199989542
906
0
301
text/plain
https://www.troyhunt.com/
h2
153.61599996686
224.72000005655
13880
36879
200
text/html
Document
https://www.troyhunt.com/assets/css/main.min.css?v=5fb5164c88
h2
235.97899987362
274.88299994729
8290
26709
200
text/css
Stylesheet
https://fonts.googleapis.com/css?family=Vollkorn:400,400italic,700,700italic
h2
236.1329998821
247.22600006498
1456
7364
200
text/css
Stylesheet
https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css
h2
236.37299984694
260.98300004378
6735
31000
200
text/css
Stylesheet
https://unpkg.com/@tryghost/portal@~1.20.0/umd/portal.min.js
http/1.1
275.89499996975
334.25999991596
672
0
302
text/plain
https://www.troyhunt.com/public/cards.min.js?v=5fb5164c88
h2
281.55900002457
315.38000004366
2813
7210
200
application/javascript
Script
https://www.troyhunt.com/public/cards.min.css?v=5fb5164c88
h2
237.05299990252
280.62299988233
5671
23781
200
text/css
Stylesheet
https://www.google-analytics.com/analytics.js
h2
283.38699997403
287.70300000906
20631
50205
200
text/javascript
Script
https://www.troyhunt.com/content/images/2017/01/1.jpg
h2
289.16399995796
331.6160000395
53880
52642
200
image/jpeg
Image
https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/fonts/fontawesome-webfont.woff2?v=4.7.0
h2
294.45799998939
317.07299989648
78258
77160
200
application/octet-stream
Font
https://fonts.gstatic.com/s/vollkorn/v19/0yb9GDoxxrvAnPhYGxkpaE0Urhg0.woff2
h2
294.7259999346
299.39100006595
44884
43956
200
font/woff2
Font
https://fonts.gstatic.com/s/vollkorn/v19/0yb7GDoxxrvAnPhYGxksWE8eqTo29Tc.woff2
h2
295.87899986655
299.78000000119
45636
44708
200
font/woff2
Font
https://bloghelpers.troyhunt.com/api/BlogData
h2
327.36800005659
770.14099992812
1345
823
200
application/json
XHR
https://unpkg.com/@tryghost/portal@1.20.2/umd/portal.min.js
h2
334.5210000407
397.78999984264
124676
483357
200
application/javascript
Script
https://www.google-analytics.com/j/collect?v=1&_v=j96&a=1872657684&t=pageview&_s=1&dl=https%3A%2F%2Fwww.troyhunt.com%2F&ul=en-us&de=UTF-8&dt=Troy%20Hunt%3A%20Troy%20Hunt&sd=24-bit&sr=360x640&vp=360x640&je=0&_u=IEBAAEABAAAAAC~&jid=259441107&gjid=661332111&cid=1750419958.1650600201&tid=UA-10949399-1&_gid=226831078.1650600201&_r=1&_slc=1&z=213136309
h2
398.54199998081
401.76200005226
617
4
200
text/plain
XHR
https://stats.g.doubleclick.net/j/collect?t=dc&aip=1&_r=3&v=1&_v=j96&tid=UA-10949399-1&cid=1750419958.1650600201&jid=259441107&gjid=661332111&_gid=226831078.1650600201&_u=IEBAAEAAAAAAAC~&z=51683158
h2
403.91299990006
407.59800001979
687
1
200
text/plain
XHR
https://www.troyhunt.com/members/api/site/
h2
443.53699986823
490.25100003928
1933
1284
200
application/json
Fetch
https://www.troyhunt.com/members/api/member/
h2
444.72300005145
600.24299984798
2763
0
204
Fetch
Network Round Trip Times — 0 ms
High Network RTT (Round Trip Times) can have a large impact on performance. Providing servers geographically closer to the user could improve performance.
Server Backend Latencies — 0 ms
High server latencies indicate the server is overloaded or has a poor backend performance.
Tasks
Below is a list of the top-level main thread tasks that executed during page load.
Start Time (Ms) End Time (Ms)
266.029
6.588
322.818
40.275
373.508
26.58
401.192
5.719
407.333
13.816
421.178
15.364
452.515
31.21
632.205
6.096
Diagnostics
Below is a collection of useful page vitals.
View Data
Metrics
Below is a collection of metrics.
View Data
Script Treemap Data
Provide as required, for treemap app.

Other

Properly size images
Images can slow down the page's load time. Troyhunt.com should consider serving more appropriate-sized images.
Defer offscreen images
Time to Interactive can be slowed down by resources on the page. Troyhunt.com should consider lazy-loading offscreen and hidden images.
Minify CSS
Cascading Style Sheets (CSS) files can contribute to network payload sizes. Troyhunt.com should consider minifying CSS files.
Minify JavaScript
JavaScript (JS) files can contribute to network payload sizes and increase script parse times. Troyhunt.com should consider minifying JS files.
Reduce unused CSS
Dead and/or unused rules in Style Sheets (CSS) can contribute to network payload sizes. Troyhunt.com should consider removing dead rules from style sheets and deferring the loading of CSS not used for above-the-fold content.
Reduce unused JavaScript — Potential savings of 344 KiB
It is advised to remove unused JavaScript in order to reduce bytes consumed by network activity.
URL Transfer Size (Bytes) Potential Savings (Bytes)
https://unpkg.com/@tryghost/portal@~1.20.0/umd/portal.min.js
483357
352440
Efficiently encode images
Unoptimized images can consume more cellular data than what is necessary.
Enable text compression
Text-based resources should be served with compression, such as gzip, deflate or brotli.
Preconnect to required origins
Resource hints, such as 'preconnect' or 'dns-prefetch', may assist in establishing early connections to important third-party origins.
Initial server response time was short — Root document took 70 ms
It is advised to keep the server response time short for the main document, because all other requests depend on it.
URL Time Spent (Ms)
https://www.troyhunt.com/
72.098
Preload key requests
Key requests can be preloaded by using '<link rel=preload>'. Troyhunt.com should consider using '<link rel=preload>' to prioritize fetching resources that are currently requested later in page load.
Use video formats for animated content
Large GIFs are inefficient for delivering animated content. It is recommended to use MPEG4/WebM videos for animations and PNG/WebP for static images instead of GIF.
Remove duplicate modules in JavaScript bundles
Ensure that no duplicate JavaScript modules from bundles exist to reduce bytes consumed by network activity.
Avoid serving legacy JavaScript to modern browsers — Potential savings of 0 KiB
Polyfills and transforms enable legacy browsers to use new JavaScript features. For bundled JavaScript it is recommended to adopt a modern script deployment strategy using module/nomodule feature detection. This will reduce the amount of code shipped to modern browsers.
URL Potential Savings (Bytes)
https://unpkg.com/@tryghost/portal@1.20.2/umd/portal.min.js
43
Preload Largest Contentful Paint image
It is recommended to preload images used by LCP elements, to improve LCP time.
URL Potential Savings (Ms)
https://www.troyhunt.com/content/images/2017/01/1.jpg
0
Avoids enormous network payloads — Total size was 407 KiB
Large network payloads can cost users money and are linked to long load times.
URL Transfer Size (Bytes)
https://unpkg.com/@tryghost/portal@1.20.2/umd/portal.min.js
124676
https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/fonts/fontawesome-webfont.woff2?v=4.7.0
78258
https://www.troyhunt.com/content/images/2017/01/1.jpg
53880
https://fonts.gstatic.com/s/vollkorn/v19/0yb7GDoxxrvAnPhYGxksWE8eqTo29Tc.woff2
45636
https://fonts.gstatic.com/s/vollkorn/v19/0yb9GDoxxrvAnPhYGxkpaE0Urhg0.woff2
44884
https://www.google-analytics.com/analytics.js
20631
https://www.troyhunt.com/
13880
https://www.troyhunt.com/assets/css/main.min.css?v=5fb5164c88
8290
https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css
6735
https://www.troyhunt.com/public/cards.min.css?v=5fb5164c88
5671
Uses efficient cache policy on static assets — 1 resource found
Troyhunt.com can speed up repeat visits by increasing the cache lifetime, which is essentially how long before a cached copy expires.
URL Cache TTL (Ms) Transfer Size (Bytes)
https://www.google-analytics.com/analytics.js
7200000
20631
Avoids an excessive DOM size — 320 elements
A large DOM (Document Object Model) will increase memory usage, cause longer system calculations as well as costly layout reflows.
Statistic Element Value
Total DOM Elements
320
Maximum DOM Depth
12
Maximum Child Elements
10
Avoid chaining critical requests — 5 chains found
Below is a list of Critical Request Chains, which shows which resources are loaded with a high priority. Troyhunt.com should consider reducing the length of chains, reducing the download size of resources, or deferring the download of unnecessary resources to improve page load.
User Timing marks and measures
Make use of the User Timing API to measure an app's real-world performance during key user experiences.
JavaScript execution time — 0.2 s
JavaScript (JS) execution time can be lowered by reducing the time required for parsing, compiling and executing JS. Delivering smaller JS payloads may help with this.
URL Total CPU Time (Ms) Script Evaluation (Ms) Script Parse (Ms)
https://www.troyhunt.com/
401.92
20.904
6.488
Unattributable
137.324
31.528
0.448
https://unpkg.com/@tryghost/portal@~1.20.0/umd/portal.min.js
114.768
99.96
14.296
https://www.google-analytics.com/analytics.js
71.472
60.684
2.696
Minimizes main-thread work — 0.8 s
Main-thread work timing can be lowered by reducing the time required for parsing, compiling and executing JS. Delivering smaller JS payloads may help with this.
Category Time Spent (Ms)
Style & Layout
273.824
Script Evaluation
213.804
Other
179.152
Rendering
42.632
Parse HTML & CSS
25.476
Script Parsing & Compilation
24.508
Keep request counts low and transfer sizes small — 20 requests • 407 KiB
It is advised to add a budgets.json file in order to set budgets for the quantity and size of page resources.
Resource Type Requests Transfer Size (Bytes)
Total
20
416490
Font
3
168778
Script
3
148120
Image
1
53880
Stylesheet
4
22152
Document
1
13880
Other
8
9680
Media
0
0
Third-party
10
324252
Minimize third-party usage — Third-party code blocked the main thread for 50 ms
It is advised to either limit, remove or delay the loading of redundant third-party code which may be significantly impacting load performance.
Third-Party Transfer Size (Bytes) Main-Thread Blocking Time (Ms)
125348
47.5
21248
5.268
91976
0
84993
0
687
0
Lazy load third-party resources with facades
Consider replacing third-party embeds with a facade until they are required (use lazy loading).
Largest Contentful Paint element — 1 element found
The element which was identified as the Largest Contentful Paint.
Element
Largest Contentful Paint image was not lazily loaded
Above-the-fold images that are lazily loaded render later in the page lifecycle, which can delay the largest contentful paint.
Element
Avoid large layout shifts — 1 element found
Below is a list of all DOM elements that contribute to the CLS of the page.
Element CLS Contribution
0.00035223388671875
Uses passive listeners to improve scrolling performance
Improve the page's scroll performance by marking touch and wheel event listeners as 'passive'.
Avoids `document.write()`
Avoid or limit the use of external scripts that are dynamically injected via 'document.write()' as users on slow connections will be delayed by tens of seconds.
Avoid long main-thread tasks — 4 long tasks found
Below is a list of the longest tasks on the main thread, which is useful when identifying the worst input delay contributors.
URL Start Time (Ms) Duration (Ms)
https://www.troyhunt.com/public/cards.min.js?v=5fb5164c88
4140
125
https://www.troyhunt.com/
1890
81
https://www.google-analytics.com/analytics.js
3270
61
https://www.troyhunt.com/
1971
53
Avoid non-composited animations
It is recommended to avoid non-composited animations which are often janky and increase CLS.
Image elements have explicit `width` and `height`
Reduce layout shifts and improve CLS by setting explicit width and height properties on image elements.
Has a `<meta name="viewport">` tag with `width` or `initial-scale`
It is advised to use a '<meta name="viewport">' tag for the optimization of troyhunt.com on mobile screens.
Avoids `unload` event listeners
The 'unload' event does not fire reliably, causing issues with browser optimizations such as the Back-Forward Cache. It is recommended that 'pagehide' or 'visibilitychange' events are used instead.

Budgets

Performance budget
It is advised to keep the quantity and size of all network requests under the targets set by the provided performance budget.
Timing budget
It is advised to set a timing budget to monitor the performance of your site.

Metrics

Time to Interactive — 4.2 s
The time taken for the page to become fully interactive.
Speed Index — 4.1 s
The time taken for the page contents to be visibly populated.

Other

Serve images in next-gen formats — Potential savings of 21 KiB
Consider JPEG 2000, JPEG XR or WebP image formats which provide better compression than PNG and JPEG.
URL Resource Size (Bytes) Potential Savings (Bytes)
https://www.troyhunt.com/content/images/2017/01/1.jpg
52642
21189.55

Metrics

First Contentful Paint — 4.1 s
The time taken for the first image or text on the page to be rendered.
Largest Contentful Paint — 4.4 s
The timing of the largest text or image that is painted.

Audits

First Meaningful Paint — 4.1 s
The time taken for the primary content of the page to be rendered.

Other

Eliminate render-blocking resources — Potential savings of 2,080 ms
Resources, such as JavaScript and style sheets, can block the first paint of the page. Troyhunt.com should consider delivering critical JavaScript/style sheets (JS/CSS) inline and deferring all non-critical JS/CSS.
URL Transfer Size (Bytes) Potential Savings (Ms)
https://www.troyhunt.com/assets/css/main.min.css?v=5fb5164c88
8290
300
https://fonts.googleapis.com/css?family=Vollkorn:400,400italic,700,700italic
1456
780
https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css
6735
780
Avoid multiple page redirects — Potential savings of 1,110 ms
Redirects can cause additional delays before the page can begin loading. Troyhunt.com should avoid multiple or unnecessary page redirects.
URL Time Spent (Ms)
http://troyhunt.com/
630
https://troyhunt.com/
480
https://www.troyhunt.com/
0
Ensure text remains visible during webfont load
Make use of the font-display CSS feature, which will ensure text is user-visible while webfonts are loading.
URL Potential Savings (Ms)
https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/fonts/fontawesome-webfont.woff2?v=4.7.0
22.614999907091
https://fonts.gstatic.com/s/vollkorn/v19/0yb9GDoxxrvAnPhYGxkpaE0Urhg0.woff2
4.6650001313537
https://fonts.gstatic.com/s/vollkorn/v19/0yb7GDoxxrvAnPhYGxksWE8eqTo29Tc.woff2
3.9010001346469
First Contentful Paint (3G) — 7950 ms
The time taken for the first image or text on the page to be rendered while on a 3G network.
79

Accessibility

Indicates how accessible the page is and highlights opportunities where the page can be made more accessible to users of troyhunt.com. This includes details about various page attributes that can be optimized.

Navigation

`[accesskey]` values are unique
Access keys assist users with focusing on different parts of the page. Each access key should be unique for proper navigation.
The page contains a heading, skip link, or landmark region
It is advised to provide ways to bypass repetitive content, allowing users to navigate the page efficiently.
`[id]` attributes on active, focusable elements are unique
Ensure all focusable elements have a unique id value to allow them to be visible to users of assistive technologies, like a screen reader.
No element has a `[tabindex]` value greater than 0
Although technically valid, a tabindex value greater than 0 often creates frustrating experiences for users who rely on assistive technologies.

ARIA

`[aria-*]` attributes match their roles
Avoid mismatching 'aria-*' attributes and their 'role' value, as it invalidates the attribute.
`button`, `link`, and `menuitem` elements have accessible names
Without accessible names on elements, screen readers will default to announcing a generic name, which means your content will be less accessible to users who rely on screen readers.
`[aria-hidden="true"]` is not present on the document `<body>`
If aria-hidden=true is set on the document body, assistive technologies, like a screen reader will work inconsistently.
`[aria-hidden="true"]` elements do not contain focusable descendents
Interactive elements within an aria-hidden=true element are unavailable to users of assistive technologies, like a screen reader.
ARIA input fields have accessible names
Generic names are announced to users of assistive technologies, like a screen reader, when an input field does not have an accessible name specified.
ARIA `meter` elements have accessible names
Without accessible names on elements, screen readers will default to announcing a generic name, which means your content will be less accessible to users who rely on screen readers.
ARIA `progressbar` elements have accessible names
Without accessible names on elements, screen readers will default to announcing a generic name, which means your content will be less accessible to users who rely on screen readers.
`[role]`s have all required `[aria-*]` attributes
Some ARIA roles have required 'aria-*' attributes, which provide essential information about state and functionality.
Elements with an ARIA `[role]` that require children to contain a specific `[role]` have all required children.
Some ARIA parent roles cannot perform their intended functions if specific child roles are not used.
`[role]`s are contained by their required parent element
Some ARIA child roles cannot perform their intended functions if specific parent roles are not used.
`[role]` values are valid
All ARIA roles require valid values to perform their intended functions.
ARIA toggle fields have accessible names
Generic names are announced to users of assistive technologies, like a screen reader, when a toggle field does not have an accessible name specified.
ARIA `tooltip` elements have accessible names
Without accessible names on elements, screen readers will default to announcing a generic name, which means your content will be less accessible to users who rely on screen readers.
ARIA `treeitem` elements have accessible names
Without accessible names on elements, screen readers will default to announcing a generic name, which means your content will be less accessible to users who rely on screen readers.
`[aria-*]` attributes have valid values
ARIA attributes cannot be interpreted with invalid values when used by screen readers and other assistive technologies.
`[aria-*]` attributes are valid and not misspelled
ARIA attributes cannot be interpreted with invalid names when used by screen readers and other assistive technologies.
ARIA IDs are unique
Ensure all ARIA ID values are unique to prevent elements from being overlooked by assistive technologies, like a screen reader.

Tables and lists

`<dl>`'s contain only properly-ordered `<dt>` and `<dd>` groups, `<script>`, `<template>` or `<div>` elements.
Screen readers and other assistive technologies may produce poor and inaccurate output when definition lists are not properly marked up.
Definition list items are wrapped in `<dl>` elements
In order for screen readers and other assistive technologies to properly announce definition list items ('<dt>' and '<dd>'), they must be wrapped in parent a '<dl>' element.
List items (`<li>`) are contained within `<ul>` or `<ol>` parent elements
In order for screen readers to announce list items, ensure that list items ('<li>') are contained within parent '<ul>' or '<ol>' tags.
Cells in a `<table>` element that use the `[headers]` attribute refer to table cells within the same table.
Screen readers and other assistive technologies have features to make navigating tables easier. Ensure that '<td>' cells using the headers attribute only refer to other cells in the same table, to improve screen reader user experience.
`<th>` elements and elements with `[role="columnheader"/"rowheader"]` have data cells they describe.
Screen readers and other assistive technologies have features to make navigating tables easier. Ensure that table headers refer to some set of cells, to improve screen reader user experience.

Names and labels

Document has a `<title>` element
Search engines, screen reader users and other assistive technology users rely on the title to provide an overview of the page and to help determine if the page is relevant to their search.
No form fields have multiple labels
Having multiple labels for form fields can be confusing to assistive technologies, like a screen reader.
`<frame>` or `<iframe>` elements have a title
Screen reader users and other assistive technology users rely on frame titles to describe the contents of frames.
Image elements have `[alt]` attributes
Provide short and descriptive alternative text where possible on informative elements.
`<input type="image">` elements have `[alt]` text
Input buttons with alternative text assist screen readers and other assistive technology users to understand its purpose.
Form elements have associated labels
Screen readers and other assistive technologies rely on labels to properly announce form controls.
`<object>` elements have alternate text
It is advised that alt text is used on '<object>' elements in order to provide meaning to screen reader and other assistive technology users, as these technologies are unable to translate non-text content.

Internationalization and localization

`<html>` element has a `[lang]` attribute
It is advised to provide a lang attribute so that screen readers and other assistive technologies are guaranteed to announce the page's text correctly. When not provided, the user's default language setting will be used which may cause inaccuracies.
`<html>` element has a valid value for its `[lang]` attribute
Specify a valid BCP 47 language in order to help screen readers and other assistive technologies announce text properly.
`[lang]` attributes have a valid value
Specify a valid BCP 47 language on elements in order to help screen readers and other assistive technologies announce text properly.

Best practices

The document does not use `<meta http-equiv="refresh">`
Pages that refresh automatically cause a poor user experience as focus is directed back to the top of the page unexpectedly.
`[user-scalable="no"]` is not used in the `<meta name="viewport">` element and the `[maximum-scale]` attribute is not less than 5.
For users with low vision who rely on screen magnification, ensure that zooming is not disabled.

Audio and video

`<video>` elements contain a `<track>` element with `[kind="captions"]`
Troyhunt.com may provide assistance to deaf or hearing-impaired users with captions on videos.

Names and labels

Buttons do not have an accessible name
Buttons become unusable as they are announced simply as "button" when the button does not have an accessible name, when used by screen readers and other assistive technologies.
Failing Elements

Contrast

Background and foreground colors do not have a sufficient contrast ratio.
Many (if not most) users find low-contrast text difficult or impossible to read.
Failing Elements

Navigation

Heading elements are not in a sequentially-descending order
Properly order all headers and do not skip heading levels to better the navigation and readability for users of assistive technologies, like a screen reader.
Failing Elements

Tables and lists

Lists do not contain only `<li>` elements and script supporting elements (`<script>` and `<template>`).
Use proper list structure to aid screen readers and other assistive technologies.
Failing Elements

Manual Checks

The page has a logical tab order
The visual layout should be logical in its tab order and users cannot focus elements that are offscreen.
Interactive controls are keyboard focusable
Ensure that custom interactive controls are keyboard focusable and that a focus indicator is displayed.
Interactive elements indicate their purpose and state
Ensure that interactive elements (such as links and buttons) are distinguishable from non-interactive elements and that they indicate their state.
The user's focus is directed to new content added to the page
When new content (such as a dialogue) is added to the page, the user's focus should be directed to it.
User focus is not accidentally trapped in a region
Avoid focus being accidentally trapped when a user tabs in and out of controls or regions on page.
Custom controls have associated labels
Ensure that custom interactive controls have associated labels, which are provided by aria-label and aria-labelledby attributes.
Custom controls have ARIA roles
Ensure that all custom interactive controls have appropriate ARIA roles.
Visual order on the page follows DOM order
Ensure that the DOM order matches with the page's visual order, in order to improve navigation for screen readers and other assistive technologies.
Offscreen content is hidden from assistive technology
Ensure that offscreen content is hidden through the use of "display:none" styling or the aria-hidden attribute.
HTML5 landmark elements are used to improve navigation
Elements such as <main> and <nav> are recommended as they are used by screen readers and other assistive technologies to improve keyboard navigation.
92

Best Practices

Indicates the recommended, best practices currently in place on the page and highlights the best practices that troyhunt.com should incorporate. This includes practices such as protecting pages with HTTPS.

Audits

Avoids requesting the geolocation permission on page load
When requesting a user's location, provide context or consider tying the request to a user action to avoid confusion and mistrust from users.
Avoids requesting the notification permission on page load
When requesting permission to send notifications, provide context or consider tying the request to a user action to avoid confusion and mistrust from users.
Avoids front-end JavaScript libraries with known security vulnerabilities
Ensure that the use of third-party scripts is minimal and that only trusted third-party scripts are used as some may contain known security vulnerabilities which may be exploited by attackers.
Ensure CSP is effective against XSS attacks
Significantly reduce the risk of cross-site scripting attacks (XSS) by ensuring you have a strong Content Security Policy (CSP).
Description Directive Severity
Host allowlists can frequently be bypassed. Consider using CSP nonces or hashes instead, along with 'strict-dynamic' if necessary.
script-src
High
Consider adding 'unsafe-inline' (ignored by browsers supporting nonces/hashes) to be backward compatible with older browsers.
script-src
Medium

Audits

Allows users to paste into password fields
Ensure that password inputs may be pasted into to aid in the user's ability to use password managers and improve security.
Displays images with correct aspect ratio
Ensure that image display dimensions match their natural aspect ratio.
Serves images with appropriate resolution
For maximum image clarity, ensure images have natural dimensions and are proportional to the display size and pixel ratio.
Fonts with `font-display: optional` are preloaded
It is recommended that optional fonts are preloaded.

Audits

Page has the HTML doctype
Ensure a doctype is specified to prevent the browser from switching to quirks-mode.
Properly defines charset
It is advised to declare a character encoding, optionally via a <meta> tag in the first 1024 bytes of the HTML or in the Content-Type HTTP response header.

Audits

Detected JavaScript libraries
Below is a list of all front-end JavaScript libraries that were detected on the page.
Name Version
React
Avoids deprecated APIs
Avoid deprecated APIs which will eventually be removed the browser.
No browser errors logged to the console
Below is a list of all errors logged to the console, which indicate unresolved problems on the site.
Page has valid source maps
Consider deploying source maps for added benefits such as the ability to debug while in production.
URL Map URL
https://unpkg.com/@tryghost/portal@~1.20.0/umd/portal.min.js
https://unpkg.com/@tryghost/portal@~1.20.0/umd/portal.min.js.map
No issues in the `Issues` panel in Chrome Devtools
There may be unresolved issues logged to Chrome Devtools.

Audits

Does not use HTTPS — 1 insecure request found
Ensure that all pages are protected with HTTPS (including those that do not handle sensitive data) as HTTPS prevents tampering and passive listening on communications between the app and its users. Additionally, HTTPS is a prerequisite for HTTP/2 and many new web platform APIs.
Insecure URL Request Resolution
http://troyhunt.com/
Allowed
85

SEO

Indicates how well the page is optimized for ranking in search engines and highlights Search Engine Optimization (SEO) opportunities for troyhunt.com. This includes optimizations such as providing meta data.

Mobile Friendly

Has a `<meta name="viewport">` tag with `width` or `initial-scale`
It is advised to use a '<meta name="viewport">' tag for the optimization of troyhunt.com on mobile screens.
Document uses legible font sizes — 99.86% legible text
Font sizes of 12px or less are too small to most mobile users without user gestures and further action. Aim for more than 60% of page text to use font sizes greater than 12px.
Source Selector % of Page Text Font Size
.tag
0.14%
11.999px
.fa
0.00%
11.7px
99.86%
≥ 12px
Tap targets are sized appropriately — 100% appropriately sized tap targets
Interactive elements (such as buttons and links) should be appropriately spaced, sized and easy enough to select or tap with regard to their surrounding elements.

Content Best Practices

Document has a `<title>` element
Search engines, screen reader users and other assistive technology users rely on the title to provide an overview of the page and to help determine if the page is relevant to their search.
Links have descriptive text
Make use of descriptive link text to assist search engines in understanding the content.
Image elements have `[alt]` attributes
Provide short and descriptive alternative text where possible on informative elements.
Document has a valid `hreflang`
Search engines can be instructed to list specific versions of a page for a given language or region through the use of hreflang links.
Document has a valid `rel=canonical`
Search engines can be suggested which URL should be shown in search results through the use of canonical links.
Document avoids plugins
The content of plugins cannot be indexed by search engines and many devices either restrict or do not support them.

Crawling and Indexing

Page has successful HTTP status code
Avoid pages with unsuccessful HTTP status codes as they may not be indexed by search engines.
Page isn’t blocked from indexing
Pages that cannot be crawled by search engines cannot be indexed or included in their search results. Ensure that search engines have permission to crawl all pages that should be indexed.
robots.txt is valid
Malformed robots.txt files prevent crawlers from understanding how a site wants to be crawled or indexed, which can be devastating to SEO.

Content Best Practices

Document does not have a meta description
Meta descriptions may be used by search engines when displaying a link to the page and should concisely summarize the page's content.

Crawling and Indexing

Links are not crawlable
Ensure that the 'href' attribute of anchor elements links to the appropriate destination. This allows for more pages of the site to be discovered by search engines.

Manual Checks

Structured data is valid
Structured data can be validated through the use of the Structured Data Testing Tool and the Structured Data Linter.
30

PWA

Indicates how valid the aspects of a Progressive Web App (PWA) are for the page and highlights opportunities to enable/improve the PWA of troyhunt.com. This includes details about web app manifests.

PWA Optimized

Content is sized correctly for the viewport
Ensure that the width of the app's content matches the width of the viewport, otherwise the app might not be optimized for mobile screens.
Has a `<meta name="viewport">` tag with `width` or `initial-scale`
It is advised to use a '<meta name="viewport">' tag for the optimization of troyhunt.com on mobile screens.

Installable

Web app manifest or service worker do not meet the installability requirements — 1 reason
User engagement may be increased by leveraging the browsers ability to proactively prompt users to add the app to their homescreen.
Failure reason
No manifest was fetched

PWA Optimized

Does not register a service worker that controls page and `start_url`
A service worker is used to provide Progressive Web Apps the use of features such as working offline, the ability for the app to be added to the homescreen as well as push notifications.
Is not configured for a custom splash screen
Themed splash screens ensure a high-quality user experience at launch for app users.
View Data
Does not set a theme color for the address bar.
A theme may be applied to the browser address bar, which ideally can be made to match the site.
View Data
Does not provide a valid `apple-touch-icon`
iOS users of Progressive Web Apps will benefit from an apple touch icon, which can be defined with 'apple-touch-icon', which must point to a non-transparent 192px (or 180px) square PNG.
Manifest doesn't have a maskable icon
Maskable icons are great to ensure that images fill the entire shape when installing the app on a device.

Manual Checks

Site works cross-browser
Ensure that the Progressive Web App works correctly across every major browser.
Page transitions don't feel like they block on the network
Users perceive apps with responsive, snappy transitions as higher peforming and ensures a great user experience, even on a slow network.
Each page has a URL
Ensure that all pages are deep linkable via URL. They should also be unique for the purpose of shareability on social media.
Hosting

Server Location

Server IP Address: 172.67.221.245
Continent: North America
Country: United States
United States Flag
Region:
City:
Longitude: -97.822
Latitude: 37.751
Currencies: USD
USN
USS
Languages: English

Web Hosting Provider

Name IP Address
Cloudflare, Inc.
Registration

Domain Registrant

Private Registration: No
Name:
Organization:
Country:
City:
State:
Post Code:
Email:
Phone:
Note: Registration information is derived from various sources and may be inaccurate.

Domain Registrar

Name IP Address
1API GmbH 172.67.27.156
Security

Visitor Safety

Mature Content: Not Likely
McAfee WebAdvisor Rating: Safe
WOT Rating:
WOT Trustworthiness: 91/100
WOT Child Safety: 91/100
Note: Safety information is not guaranteed.

SSL/TLS Certificate

Issued To: sni.cloudflaressl.com
Issued By: Cloudflare Inc ECC CA-3
Valid From: 4th July, 2021
Valid To: 3rd July, 2022
Subject: CN = sni.cloudflaressl.com
O = Cloudflare, Inc.
L = San Francisco
S = US
Hash: c959965e
Issuer: CN = Cloudflare Inc ECC CA-3
O = Cloudflare, Inc.
S = US
Version: 2
Serial Number: 20997471461342570078772304720786474389
Serial Number (Hex): 0FCBF74582721074A50AC4AC8B8DC595
Valid From: 4th July, 2024
Valid To: 3rd July, 2024
Signature Algorithm (Short Name): ecdsa-with-SHA256
Signature Algorithm (Long Name): ecdsa-with-SHA256
Authority Key Identifier: keyid:A5:CE:37:EA:EB:B0:75:0E:94:67:88:B4:45:FA:D9:24:10:87:96:1F
Extended Key Usage: TLS Web Server Authentication, TLS Web Client Authentication
CRL Distribution Points:
Full Name:
URI:http://crl3.digicert.com/CloudflareIncECCCA-3.crl

Full Name:
URI:http://crl4.digicert.com/CloudflareIncECCCA-3.crl

Certificate Policies: Policy: 2.23.140.1.2.2
CPS: http://www.digicert.com/CPS

Authority Information Access: OCSP - URI:http://ocsp.digicert.com
CA Issuers - URI:http://cacerts.digicert.com/CloudflareIncECCCA-3.crt

SCT List: Signed Certificate Timestamp:
Version : v1 (0x0)
Log ID : 29:79:BE:F0:9E:39:39:21:F0:56:73:9F:63:A5:77:E5:
BE:57:7D:9C:60:0A:F8:F9:4D:5D:26:5C:25:5D:C7:84
Timestamp : Jul 4 14:09:24.793 2021 GMT
Extensions: none
Signature : ecdsa-with-SHA256
30:46:02:21:00:8A:82:91:30:69:2F:B2:79:2F:DD:08:
FD:B4:28:FE:5E:CB:27:7F:48:D3:2E:90:62:3A:E2:65:
89:CA:46:F3:4B:02:21:00:88:FE:13:5C:16:77:8E:18:
75:B1:D0:5B:63:3E:3C:50:78:C5:AE:7A:E9:38:90:F3:
E3:5F:EA:68:65:30:8B:AF
Signed Certificate Timestamp:
Version : v1 (0x0)
Log ID : 41:C8:CA:B1:DF:22:46:4A:10:C6:A1:3A:09:42:87:5E:
4E:31:8B:1B:03:EB:EB:4B:C7:68:F0:90:62:96:06:F6
Timestamp : Jul 4 14:09:24.867 2021 GMT
Extensions: none
Signature : ecdsa-with-SHA256
30:46:02:21:00:AA:46:C5:20:36:4F:57:48:36:A8:38:
6F:6B:B7:3B:9C:92:88:80:EB:D0:52:A5:1E:83:FF:77:
AE:E1:A0:86:42:02:21:00:8E:8C:C7:CF:E5:27:6B:43:
CB:8D:83:9A:03:78:51:4A:6E:EA:9F:3A:C0:E0:8D:62:
70:4D:AA:09:E5:1E:F6:56
Signed Certificate Timestamp:
Version : v1 (0x0)
Log ID : DF:A5:5E:AB:68:82:4F:1F:6C:AD:EE:B8:5F:4E:3E:5A:
EA:CD:A2:12:A4:6A:5E:8E:3B:12:C0:20:44:5C:2A:73
Timestamp : Jul 4 14:09:24.889 2021 GMT
Extensions: none
Signature : ecdsa-with-SHA256
30:44:02:20:48:13:55:71:87:9A:7F:EA:33:EC:A4:1F:
7F:DB:83:58:62:30:62:A0:C8:2C:94:E5:2E:10:35:9A:
11:C0:2F:25:02:20:51:97:36:2D:A1:14:B2:7C:23:AB:
5D:8B:AD:A1:A7:29:AA:CD:28:75:A6:D7:30:D8:E5:48:
9E:CD:9F:A7:79:D7
Key Usage: Digital Signature
Basic Constraints: CA:FALSE
Subject Alternative Name: DNS:*.troyhunt.com
DNS:sni.cloudflaressl.com
DNS:troyhunt.com
Technical

DNS Lookup

HTTP Response Headers

HTTP-Code: HTTP/1.1 200 OK
Date: 22nd April, 2022
Content-Type: text/html; charset=utf-8
Cache-Control: public, max-age=14400
Server: cloudflare
Connection: keep-alive
CF-Ray: 6ffb77a4da898cc3-EWR
Strict-Transport-Security: max-age=31536000; includeSubDomains; preload
Vary: Accept-Encoding, Cookie
Via: 1.1 varnish, 1.1 varnish
CF-Cache-Status: REVALIDATED
Content-Security-Policy: default-src 'none'; connect-src 'self' api.passwordpurgatory.com bloghelpers.troyhunt.com links.services.disqus.com www.google-analytics.com stats.g.doubleclick.net syndication.twitter.com; font-src 'self' cdnjs.cloudflare.com fonts.gstatic.com; frame-src disqus.com c.disquscdn.com www.google.com www.youtube.com player.vimeo.com twitter.com platform.twitter.com syndication.twitter.com omny.fm pastebin.com; img-src 'self' c.disquscdn.com referrer.disqus.com stats.g.doubleclick.net www.google-analytics.com www.gstatic.com syndication.twitter.com platform.twitter.com www.gravatar.com *.twimg.com data:; script-src 'self' passwordpurgatory.com c.disquscdn.com disqus.com troyhunt.disqus.com www.google.com www.google-analytics.com www.gstatic.com cdnjs.cloudflare.com platform.twitter.com cdn.syndication.twimg.com syndication.twitter.com gist.github.com/troyhunt/ 'sha256-dblwN9MUF0KZKfqYU7U9hiLjNSW2nX1koQRMVTelpsA=' 'sha256-4JqPqO/eQLWuWw1AE7dCvI9hPwiBcw0gy7uoLqS0ncg=' unpkg.com/@tryghost/; style-src 'self' 'unsafe-inline' c.disquscdn.com cdnjs.cloudflare.com fonts.googleapis.com platform.twitter.com ton.twimg.com assets-cdn.github.com github.githubassets.com; form-action *.twitter.com; media-src 'self'; prefetch-src 'self' c.disquscdn.com disqus.com; frame-ancestors 'self' troyhunt.ghost.io; upgrade-insecure-requests; report-uri https://troyhunt.report-uri.com/r/d/csp/enforce
Expect-CT: max-age=0, report-uri=https://troyhunt.report-uri.com/r/d/ct/reportOnly
feature-policy: accelerometer 'none'; camera 'none'; geolocation 'none'; gyroscope 'none'; magnetometer 'none'; microphone 'none'; payment 'none'; usb 'none'
ghost-age: 0
ghost-cache: MISS
ghost-fastly: true
nel: {"report_to":"default","max_age":10886400}
Referrer-Policy: no-referrer-when-downgrade
report-to: {"group":"default","max_age":10886400,"endpoints":[{"url":"https://troyhunt.report-uri.com/a/d/g"}],"include_subdomains":true}
status: 200 OK
x-cache: HIT, HIT
x-cache-hits: 1, 1
X-Content-Type-Options: nosniff
x-request-id: ecc802239bc94013d3b5ca41c32e314e
x-served-by: cache-ams12743-AMS, cache-ewr18123-EWR
x-timer: S1650279978.263004,VS0,VE1
X-Xss-Protection: 1; mode=block; report=https://troyhunt.report-uri.com/r/d/xss/enforce
alt-svc: h3=":443"; ma=86400, h3-29=":443"; ma=86400

Whois Lookup

Created: 15th November, 1999
Changed: 12th November, 2021
Expires: 15th November, 2029
Registrar: 1API GmbH
Status: clientTransferProhibited
Nameservers: leah.ns.cloudflare.com
rob.ns.cloudflare.com
Owner Name: REDACTED FOR PRIVACY
Owner Organization: REDACTED FOR PRIVACY
Owner Street: REDACTED FOR PRIVACY
Owner Post Code: REDACTED FOR PRIVACY
Owner City: REDACTED FOR PRIVACY
Owner State: QLD
Owner Country: AU
Owner Phone: REDACTED FOR PRIVACY
Owner Email: contact via https://www.1api.net/send-message/troyhunt.com/registrant
Admin Name: REDACTED FOR PRIVACY
Admin Organization: REDACTED FOR PRIVACY
Admin Street: REDACTED FOR PRIVACY
Admin Post Code: REDACTED FOR PRIVACY
Admin City: REDACTED FOR PRIVACY
Admin State: REDACTED FOR PRIVACY
Admin Country: REDACTED FOR PRIVACY
Admin Phone: REDACTED FOR PRIVACY
Admin Email: contact via https://www.1api.net/send-message/troyhunt.com/admin
Tech Name: REDACTED FOR PRIVACY
Tech Organization: REDACTED FOR PRIVACY
Tech Street: REDACTED FOR PRIVACY
Tech Post Code: REDACTED FOR PRIVACY
Tech City: REDACTED FOR PRIVACY
Tech State: REDACTED FOR PRIVACY
Tech Country: REDACTED FOR PRIVACY
Tech Phone: REDACTED FOR PRIVACY
Tech Email: contact via https://www.1api.net/send-message/troyhunt.com/tech
Full Whois:
Domain Name: TROYHUNT.COM
Registry Domain ID: 13201270_DOMAIN_COM-VRSN
Registrar WHOIS Server: whois.1api.net
Registrar URL: http://www.1api.net
Updated Date: 2021-11-12T05:45:15Z
Creation Date: 1999-11-15T18:28:12Z
Registrar Registration Expiration Date: 2029-11-15T18:28:12Z
Registrar: 1API GmbH
Registrar IANA ID: 1387
Registrar Abuse Contact Email: abuse@1api.net
Registrar Abuse Contact Phone: +49.68949396x850
Domain Status: clientTransferProhibited - http://www.icann.org/epp#clientTransferProhibited
Registry Registrant ID:
Registrant Name: REDACTED FOR PRIVACY
Registrant Organization: REDACTED FOR PRIVACY
Registrant Street: REDACTED FOR PRIVACY
Registrant City: REDACTED FOR PRIVACY
Registrant State/Province: QLD
Registrant Postal Code: REDACTED FOR PRIVACY
Registrant Country: AU
Registrant Phone: REDACTED FOR PRIVACY
Registrant Phone Ext:
Registrant Fax:
Registrant Fax Ext:
Registrant Email: contact via https://www.1api.net/send-message/troyhunt.com/registrant
Registry Admin ID:
Admin Name: REDACTED FOR PRIVACY
Admin Organization: REDACTED FOR PRIVACY
Admin Street: REDACTED FOR PRIVACY
Admin City: REDACTED FOR PRIVACY
Admin State/Province: REDACTED FOR PRIVACY
Admin Postal Code: REDACTED FOR PRIVACY
Admin Country: REDACTED FOR PRIVACY
Admin Phone: REDACTED FOR PRIVACY
Admin Phone Ext:
Admin Fax:
Admin Fax Ext:
Admin Email: contact via https://www.1api.net/send-message/troyhunt.com/admin
Registry Tech ID:
Tech Name: REDACTED FOR PRIVACY
Tech Organization: REDACTED FOR PRIVACY
Tech Street: REDACTED FOR PRIVACY
Tech City: REDACTED FOR PRIVACY
Tech State/Province: REDACTED FOR PRIVACY
Tech Postal Code: REDACTED FOR PRIVACY
Tech Country: REDACTED FOR PRIVACY
Tech Phone: REDACTED FOR PRIVACY
Tech Phone Ext:
Tech Fax:
Tech Fax Ext:
Tech Email: contact via https://www.1api.net/send-message/troyhunt.com/tech
Name Server: rob.ns.cloudflare.com
Name Server: leah.ns.cloudflare.com
DNSSEC: signedDelegation
URL of the ICANN WHOIS Data Problem Reporting System:
http://wdprs.internic.net/
>>> Last update of WHOIS database: 2022-04-22T04:03:04Z <<<

For more information on Whois status codes, please visit https://www.icann.org/resources/pages/epp-status-codes-2014-06-16-en.

; This data is provided for information purposes, and to assist persons
; obtaining information about or related to domain name registration
; records. We do not guarantee its accuracy.
; By submitting a WHOIS query, you agree that you will use this data
; only for lawful purposes and that, under no circumstances, you will
; use this data to
; 1) allow, enable, or otherwise support the transmission of mass
; unsolicited, commercial advertising or solicitations via E-mail
; (spam); or
; 2) enable high volume, automated, electronic processes that apply
; to this WHOIS server.
; These terms may be changed without prior notice.
; By submitting this query, you agree to abide by this policy.


Nameservers

Name IP Address
leah.ns.cloudflare.com 108.162.192.129
rob.ns.cloudflare.com 172.64.33.140
Related

Subdomains

Domain Subdomain
hackyourselffirst

Similar Sites

Organic Search (US) Competitors

Backlink Competitors

Sites with the same domain name

Sites hosted on the same IP address