indiehackers.com

indiehackers.com is SSL secured

Free website and domain report on indiehackers.com

Last Updated: 15th September, 2021 Update Now
Overview

Snoop Summary for indiehackers.com

This is a free and comprehensive report about indiehackers.com. The domain indiehackers.com is currently hosted on a server located in United States with the IP address 104.26.12.75, where the local currency is USD and English is the local language. Our records indicate that indiehackers.com is owned/operated by Cloudflare, Inc.. Indiehackers.com is expected to earn an estimated $32 USD per day from advertising revenue. The sale of indiehackers.com would possibly be worth $23,555 USD. This figure is based on the daily revenue potential of the website over a 24 month period. Indiehackers.com is very popular with an estimated 7,627 daily unique visitors. This report was last updated 15th September, 2021.

About indiehackers.com

Site Preview: indiehackers.com indiehackers.com
Title: Stripe
Description: Connect with developers who are sharing the strategies and revenue numbers behind their companies and side projects.
Keywords and Tags: business, popular
Related Terms: stripe, stripe account, stripe com, stripe connect, stripe dashboard, stripe login, what is stripe
Fav Icon:
Age: Over 9 years old
Domain Created: 2nd April, 2015
Domain Updated: 3rd April, 2021
Domain Expires: 2nd April, 2022
Review

Snoop Score

3/5 (Great!)

Valuation

$23,555 USD
Note: All valuation figures are estimates.

Popularity

High
Note: Popularity is estimated.

Rank, Reach and Authority

Alexa Rank: 48,694
Alexa Reach: 0.0017%
SEMrush Rank (US):
SEMrush Authority Score:
Moz Domain Authority: 0
Moz Page Authority: 0

Rank By Country

Country Alexa Rank
Argentina Flag Argentina 37,106
Australia Flag Australia 21,200
Brazil Flag Brazil 104,991
Canada Flag Canada 22,812
Germany Flag Germany 97,606
Spain Flag Spain 62,261
France Flag France 18,640
United Kingdom Flag United Kingdom 22,478
India Flag India 46,476
Korea Republic Of Flag Korea Republic Of 16,189
Malaysia Flag Malaysia 26,710
Netherlands Flag Netherlands 47,769
Poland Flag Poland 48,054
Taiwan, Province Of China Flag Taiwan, Province Of China 37,879
United States Flag United States 24,215

Organic vs Paid (Google Ads)

Traffic

Visitors

Daily Visitors: 7,627
Monthly Visitors: 232,142
Yearly Visitors: 2,783,855
Note: All visitors figures are estimates.

Visitors By Country

Country Visitors (Unique) Percentage
Argentina Flag Argentina Daily: 69
Monthly: 2,089
Yearly: 25,055
0.9%
Australia Flag Australia Daily: 236
Monthly: 7,196
Yearly: 86,300
3.1%
Brazil Flag Brazil Daily: 69
Monthly: 2,089
Yearly: 25,055
0.9%
Canada Flag Canada Daily: 297
Monthly: 9,054
Yearly: 108,570
3.9%
Germany Flag Germany Daily: 145
Monthly: 4,411
Yearly: 52,893
1.9%
Spain Flag Spain Daily: 122
Monthly: 3,714
Yearly: 44,542
1.6%
France Flag France Daily: 557
Monthly: 16,946
Yearly: 203,221
7.3%
United Kingdom Flag United Kingdom Daily: 633
Monthly: 19,268
Yearly: 231,060
8.3%
India Flag India Daily: 389
Monthly: 11,839
Yearly: 141,977
5.1%
Korea Republic Of Flag Korea Republic Of Daily: 473
Monthly: 14,393
Yearly: 172,599
6.2%
Malaysia Flag Malaysia Daily: 76
Monthly: 2,321
Yearly: 27,839
1%
Netherlands Flag Netherlands Daily: 107
Monthly: 3,250
Yearly: 38,974
1.4%
Other Daily: 930
Monthly: 28,321
Yearly: 339,630
12.2%
Poland Flag Poland Daily: 130
Monthly: 3,946
Yearly: 47,326
1.7%
Taiwan, Province Of China Flag Taiwan, Province Of China Daily: 84
Monthly: 2,554
Yearly: 30,622
1.1%
United States Flag United States Daily: 3,310
Monthly: 100,750
Yearly: 1,208,193
43.4%
Note: All visitors figures are estimates.
Revenue

Revenue

Daily Revenue: $32 USD
Monthly Revenue: $982 USD
Yearly Revenue: $11,773 USD
Note: All revenue figures are estimates.

Revenue By Country

Country Revenue Percentage
Argentina Flag Argentina Daily: $0 USD
Monthly: $0 USD
Yearly: $1 USD
<0.1%
Australia Flag Australia Daily: $0 USD
Monthly: $4 USD
Yearly: $43 USD
0.4%
Brazil Flag Brazil Daily: $0 USD
Monthly: $0 USD
Yearly: $5 USD
<0.1%
Canada Flag Canada Daily: $0 USD
Monthly: $7 USD
Yearly: $80 USD
0.7%
Germany Flag Germany Daily: $0 USD
Monthly: $5 USD
Yearly: $58 USD
0.5%
Spain Flag Spain Daily: $0 USD
Monthly: $1 USD
Yearly: $11 USD
0.1%
France Flag France Daily: $0 USD
Monthly: $10 USD
Yearly: $124 USD
1.1%
United Kingdom Flag United Kingdom Daily: $1 USD
Monthly: $26 USD
Yearly: $315 USD
2.7%
India Flag India Daily: $0 USD
Monthly: $15 USD
Yearly: $174 USD
1.5%
Korea Republic Of Flag Korea Republic Of Daily: $0 USD
Monthly: $5 USD
Yearly: $63 USD
0.5%
Malaysia Flag Malaysia Daily: $0 USD
Monthly: $0 USD
Yearly: $4 USD
<0.1%
Netherlands Flag Netherlands Daily: $0 USD
Monthly: $1 USD
Yearly: $14 USD
0.1%
Other Daily: $0 USD
Monthly: $0 USD
Yearly: $0 USD
<0.1%
Poland Flag Poland Daily: $0 USD
Monthly: $0 USD
Yearly: $4 USD
<0.1%
Taiwan, Province Of China Flag Taiwan, Province Of China Daily: $0 USD
Monthly: $0 USD
Yearly: $1 USD
<0.1%
United States Flag United States Daily: $30 USD
Monthly: $907 USD
Yearly: $10,875 USD
92.4%
Note: All revenue figures are estimates.
SEO

Backlinks Analysis (SEMrush)

Top New Follow Links

Top Ranking Keywords (US)

Domain Analysis

Value Length
Domain: indiehackers.com 16
Domain Name: indiehackers 12
Extension (TLD): com 3
Expiry Check:

Page Speed Analysis

Average Load Time: 2.45 seconds
Load Time Comparison: Faster than 30% of sites

PageSpeed Insights

Avg. (All Categories) 73
Performance 96
Accessibility 54
Best Practices 80
SEO 91
Progressive Web App 45
0–49 (Fail) 50–89 (Average) 90–100 (Pass)
URL: https://www.indiehackers.com/
Updated: 19th April, 2021

1.46 seconds
First Contentful Paint (FCP)
54%
41%
5%

0.00 seconds
First Input Delay (FID)
97%
2%
1%

Simulate loading on desktop
96

Performance

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

Metrics

First Contentful Paint — 0.9 s
The time taken for the first image or text on the page to be rendered.
Speed Index — 1.3 s
The time taken for the page contents to be visibly populated.
Largest Contentful Paint — 1.0 s
The timing of the largest text or image that is painted.
Time to Interactive — 0.9 s
The time taken for the page to become fully interactive.
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.017
Cumulative Layout Shift is the measurement of visible elements collective movement within the viewport.
View Data

Other

First CPU Idle — 0.9 s
The time taken for the page's main thread to be quiet enough to handle input.
Max Potential First Input Delay — 40 ms
Users could experience a delay when interacting with the page.
First Meaningful Paint — 0.9 s
The time taken for the primary content of the page to be rendered.
Estimated Input Latency — 10 ms
The time taken for the page to respond to user input (during the busiest 5 second window of page load). Users are likely to perceive indiehackers.com as laggy when the latency is higher than 0.05 seconds.
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://indiehackers.com/
http/1.1
0
195.13300003018
805
0
301
text/html
https://indiehackers.com/
http/1.1
195.70999999996
771.92299999297
746
0
301
text/html
https://www.indiehackers.com/
h2
772.50399999321
988.64200001117
21331
146187
200
text/html
Document
https://fonts.googleapis.com/css2?family=Fira+Mono:wght@400;700&family=Source+Sans+Pro:ital,wght@0,400;0,600;0,700;1,400;1,600;1,700&display=swap
h2
1001.2560000177
1014.1310000326
1826
18196
200
text/css
Stylesheet
https://www.google-analytics.com/analytics.js
h2
1004.0139999473
1009.1330000432
20093
48759
200
text/javascript
Script
https://www.indiehackers.com/scripts/autotrack-ab5a20ef6fd2f24659990a7a460b1a.js
h2
1009.8800000269
1211.1629999708
6482
17791
200
application/javascript
Script
https://www.indiehackers.com/assets/home-ab5a20ef6fd2f24659990a7a460b1a.css
h2
1004.2929999763
1220.5860000104
16081
187900
200
text/css
Stylesheet
https://www.indiehackers.com/images/logos/indie-hackers-logo__glyph--light.svg
h2
1010.0569999777
1087.8729999531
960
466
200
image/svg+xml
Image
https://www.indiehackers.com/images/logos/indie-hackers-logo__type--light.svg
h2
1010.2089999709
1466.9060000451
2302
3349
200
image/svg+xml
Image
https://i.ibb.co/SBn1Tk3/image.png
h2
1010.6570000062
1039.4910000032
894028
893688
200
image/png
Image
https://images.axios.com/ldIJSPaVQZfbf9SAf_AuNeHM1Kc=/0x0:1365x768/1920x1080/2021/03/24/1616553090439.jpg
h2
1010.8250000048
1166.5839999914
181383
180706
200
image/webp
Image
https://i.ibb.co/bmhdKfJ/image.png
h2
1010.968000046
1640.9389999462
844420
844080
200
image/png
Image
https://image.freepik.com/free-vector/book-illustrations-pack_23-2147500415.jpg
h2
1011.0949999653
1485.8999999706
62154
61906
200
image/jpeg
Image
https://i.ibb.co/3f61VNW/image.png
h2
1011.2570000347
1504.1369999526
214964
214624
200
image/png
Image
https://storage.googleapis.com/indie-hackers.appspot.com/product-avatars/highscore-domains/52x52_highscore-domains.webp
h2
1011.4280000562
1362.8399999579
3505
2612
200
image/webp
Image
https://storage.googleapis.com/indie-hackers.appspot.com/product-avatars/poddq/52x52_poddq.webp
h2
1011.5879999939
1160.520000034
2181
1288
200
image/webp
Image
https://storage.googleapis.com/indie-hackers.appspot.com/product-avatars/keypup/52x52_keypup.webp
h2
1011.7750000209
1061.5580000449
2244
1358
200
image/webp
Image
https://storage.googleapis.com/indie-hackers.appspot.com/product-avatars/vestimonials/52x52_vestimonials.webp
h2
1011.9369999738
1166.8589999899
1489
598
200
image/webp
Image
https://storage.googleapis.com/indie-hackers.appspot.com/product-avatars/karmabot/52x52_karmabot.webp
h2
1012.1029999573
1149.9449999537
2563
1670
200
image/webp
Image
https://storage.googleapis.com/indie-hackers.appspot.com/avatars/52x52_AcqEI9jUN0TYkbUU2w0TgvLjPFG2.webp
h2
1012.2599999886
1084.7470000153
5524
4638
200
image/webp
Image
https://storage.googleapis.com/indie-hackers.appspot.com/group-icons/growth/28x28_growth.webp
h2
1012.4040000373
1093.7540000305
2153
1260
200
image/webp
Image
https://storage.googleapis.com/indie-hackers.appspot.com/avatars/52x52_mHinmo48CFOeHyFqT6UWS7zhs3v1.webp
h2
1012.5410000328
1228.3060000045
2873
1980
200
image/webp
Image
https://storage.googleapis.com/indie-hackers.appspot.com/series-icons/-MWU1EkZMJcTkjR222DV/mHinmo48CFOeHyFqT6UWS7zhs3v1/e752c979c4/28x28.webp
h2
1012.7070000162
1040.9119999968
2019
1118
200
image/webp
Image
https://storage.googleapis.com/indie-hackers.appspot.com/avatars/52x52_MKvc3IWXCkedfOqwPv8hdAompZB2.webp
h2
1012.8430000041
1130.2589999977
4571
3686
200
image/webp
Image
https://storage.googleapis.com/indie-hackers.appspot.com/group-icons/privacy/28x28_privacy.webp
h2
1013.0000000354
1137.1290000388
2308
1422
200
image/webp
Image
https://storage.googleapis.com/indie-hackers.appspot.com/avatars/52x52_CF0gUbVur1TDW1KPTqogS1YcfJe2.webp
h2
1013.1909999764
1105.9179999866
3763
2878
200
image/webp
Image
https://storage.googleapis.com/indie-hackers.appspot.com/avatars/52x52_CQDPtGr1gyfB63az9DNxk9wpxR93.webp
h2
1013.329999987
1033.3069999469
4810
3916
200
image/webp
Image
https://cdn.amplitude.com/libs/amplitude-4.5.2-min.gz.js
h2
1013.4809999727
1037.8410000121
26318
77542
200
application/javascript
Script
https://storage.googleapis.com/indie-hackers.appspot.com/series-icons/-MLUOYHTsxUuMPbHUuDX/PWairgiOpneHvkGJri7RVbtORKI2/803abee014/28x28.webp
h2
1019.1140000243
1111.877999967
2180
1294
200
image/webp
Image
https://storage.googleapis.com/indie-hackers.appspot.com/avatars/52x52_sTIxFFxLtSgKAkEfqomdjgslMVH2.webp
h2
1019.4159999955
1135.0320000201
5775
4882
200
image/webp
Image
https://storage.googleapis.com/indie-hackers.appspot.com/group-icons/landing-page-feedback/28x28_landing-page-feedback.webp
h2
1019.7069999995
1073.9700000267
1938
1044
200
image/webp
Image
https://storage.googleapis.com/indie-hackers.appspot.com/avatars/52x52_PWairgiOpneHvkGJri7RVbtORKI2.webp
h2
1019.9560000328
1041.968000005
6041
5148
200
image/webp
Image
https://storage.googleapis.com/indie-hackers.appspot.com/group-icons/news/28x28_news.webp
h2
1020.232000039
1041.2289999658
2134
1240
200
image/webp
Image
https://storage.googleapis.com/indie-hackers.appspot.com/avatars/52x52_ovnH9i1xfiTglFPvdjo61Eelf4n2.webp
h2
1020.4600000288
1112.5509999692
3672
2786
200
image/webp
Image
https://storage.googleapis.com/indie-hackers.appspot.com/avatars/52x52_sIxxrCLGKCPSajFpMTYDenKAbXs1.webp
h2
1020.7749999827
1127.8549999697
4722
3836
200
image/webp
Image
https://storage.googleapis.com/indie-hackers.appspot.com/group-icons/developers/28x28_developers.webp
h2
1020.9689999465
1080.9840000002
2025
1132
200
image/webp
Image
https://storage.googleapis.com/indie-hackers.appspot.com/avatars/52x52_zy1H20mJ26fOB9AL5sEosL2PPh93.webp
h2
1021.1709999712
1070.1760000084
3864
2964
200
image/webp
Image
https://storage.googleapis.com/indie-hackers.appspot.com/group-icons/design-and-ux/28x28_design-and-ux.webp
h2
1021.3330000406
1101.8280000426
1906
1020
200
image/webp
Image
https://storage.googleapis.com/indie-hackers.appspot.com/avatars/52x52_doczYrPiANMeGU2W8K3HTXZL1S73.webp
h2
1021.5839999728
1050.5940000294
6814
5920
200
image/webp
Image
https://storage.googleapis.com/indie-hackers.appspot.com/group-icons/productivity/28x28_productivity.webp
h2
1021.7620000476
1080.6599999778
1618
726
200
image/webp
Image
https://storage.googleapis.com/indie-hackers.appspot.com/avatars/52x52_xTGTfQWn77cAqh8Q05GNbFztExT2.webp
h2
1022.9060000274
1064.4420000026
1317
426
200
image/webp
Image
https://storage.googleapis.com/indie-hackers.appspot.com/group-icons/building-in-public/28x28_building-in-public.webp
h2
1023.218999966
1080.2070000209
1724
832
200
image/webp
Image
https://storage.googleapis.com/indie-hackers.appspot.com/avatars/52x52_ZYSs41ltnSOQHTFzEEBCQSVp0pS2.webp
h2
1023.4309999505
1045.5800000345
5870
4976
200
image/webp
Image
https://storage.googleapis.com/indie-hackers.appspot.com/avatars/52x52_1QFpowgZnBMVP7heEthQBDAEIaB2.webp
h2
1023.5940000275
1065.2309999568
4892
4000
200
image/webp
Image
https://storage.googleapis.com/indie-hackers.appspot.com/avatars/52x52_sMDBUQCDjLSBuQLJhtsyjqLzJjq2.webp
h2
1023.7950000446
1047.6649999619
5226
4332
200
image/webp
Image
https://storage.googleapis.com/indie-hackers.appspot.com/group-icons/no-code/28x28_no-code.webp
h2
1023.9969999529
1074.8570000287
2400
1506
200
image/webp
Image
https://storage.googleapis.com/indie-hackers.appspot.com/group-icons/lifetime-deals/72x72_lifetime-deals.webp
h2
1024.2360000266
1127.0490000024
4773
3880
200
image/webp
Image
https://storage.googleapis.com/indie-hackers.appspot.com/group-icons/growth/72x72_growth.webp
h2
1024.4320000056
1076.728999964
5348
4454
200
image/webp
Image
https://storage.googleapis.com/indie-hackers.appspot.com/group-icons/mentors/72x72_mentors.webp
h2
1024.6739999857
1079.5429999707
2867
1966
200
image/webp
Image
https://storage.googleapis.com/indie-hackers.appspot.com/group-icons/ideas-and-validation/72x72_ideas-and-validation.webp
h2
1024.8879999854
1170.7719999831
3047
2154
200
image/webp
Image
https://storage.googleapis.com/indie-hackers.appspot.com/group-icons/amazon-web-services/72x72_amazon-web-services.webp
h2
1025.0920000253
1104.0529999882
3867
2982
200
image/webp
Image
https://storage.googleapis.com/indie-hackers.appspot.com/group-icons/developers/72x72_developers.webp
h2
1025.5630000029
1106.9290000014
5119
4226
200
image/webp
Image
https://storage.googleapis.com/indie-hackers.appspot.com/group-icons/branding/72x72_branding.webp
h2
1025.7370000472
1115.1339999633
2951
2058
200
image/webp
Image
https://storage.googleapis.com/indie-hackers.appspot.com/group-icons/landing-page-feedback/72x72_landing-page-feedback.webp
h2
1025.9300000034
1081.4869999886
4099
3206
200
image/webp
Image
https://storage.googleapis.com/indie-hackers.appspot.com/group-icons/nft-non-fungible-token/72x72_nft-non-fungible-token.webp
h2
1026.0870000347
1108.4780000383
7309
6416
200
image/webp
Image
https://storage.googleapis.com/indie-hackers.appspot.com/group-icons/building-in-public/72x72_building-in-public.webp
h2
1026.21000004
1099.3180000223
3245
2352
200
image/webp
Image
https://storage.googleapis.com/indie-hackers.appspot.com/group-icons/product-market-fit/72x72_product-market-fit.webp
h2
1026.4119999483
1074.3850000435
3649
2756
200
image/webp
Image
https://storage.googleapis.com/indie-hackers.appspot.com/group-icons/looking-to-partner-up/72x72_looking-to-partner-up.webp
h2
1026.5790000558
1074.6329999529
6480
5594
200
image/webp
Image
https://storage.googleapis.com/indie-hackers.appspot.com/group-icons/movie-club/72x72_movie-club.webp
h2
1026.7780000577
1133.9989999542
6143
5258
200
image/webp
Image
https://storage.googleapis.com/indie-hackers.appspot.com/group-icons/no-code/72x72_no-code.webp
h2
1027.0040000323
1148.863999988
5070
4184
200
image/webp
Image
https://storage.googleapis.com/indie-hackers.appspot.com/group-icons/lessons-learned/72x72_lessons-learned.webp
h2
1027.8420000104
1093.2699999539
2859
1966
200
image/webp
Image
https://www.indiehackers.com/scripts/home-ab5a20ef6fd2f24659990a7a460b1a.js
h2
1041.7910000542
1928.8660000311
3278
5436
200
application/javascript
Script
https://www.google-analytics.com/j/collect?v=1&_v=j89&a=2079194640&t=pageview&_s=1&dl=https%3A%2F%2Fwww.indiehackers.com%2F&ul=en-us&de=UTF-8&dt=Indie%20Hackers%3A%20Work%20Together%20to%20Build%20Profitable%20Online%20Businesses&sd=24-bit&sr=800x600&vp=1350x940&je=0&_u=aGBAAEADAAAAAC~&jid=1610298754&gjid=1982955214&cid=153891506.1618848243&tid=UA-81418423-2&_gid=2053904261.1618848243&_r=1&_av=2.4.1&_au=1f1&cd3=0&cd2=pageload&did=i5iSjo&cd1=(not%20set)&z=999217023
h2
1249.6139999712
1528.0059999786
623
1
200
text/plain
XHR
https://fonts.gstatic.com/s/sourcesanspro/v14/6xK3dSBYKcSV-LCoeQqfX1RYOo3qOK7lujVj9w.woff2
h2
1284.2690000543
1722.4230000284
13888
13324
200
font/woff2
Font
https://fonts.gstatic.com/s/sourcesanspro/v14/6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwlxdu3cOWxw.woff2
h2
1303.0880000442
1500.8189999498
13672
13108
200
font/woff2
Font
https://api.amplitude.com/
h2
1935.7699999819
2086.4770000335
234
7
200
text/html
XHR
https://api.amplitude.com/
h2
2091.9340000255
2447.2819999792
234
7
200
text/html
XHR
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)
1017.828
8.038
1029.875
13.834
1043.778
10.431
1058.334
7.45
1070.55
72.956
1165.163
27.053
1239.157
37.449
1278.117
6.593
1284.912
130.574
1417.742
49.721
1470.823
19.893
1507.379
6.62
1535.229
33.303
1751.74
28.776
1956.869
11.233
Diagnostics
Below is a collection of useful page vitals.
View Data
Metrics
Below is a collection of metrics.
View Data

Opportunities

Eliminate render-blocking resources
Resources, such as JavaScript and style sheets, can block the first paint of the page. Indiehackers.com should consider delivering critical JavaScript/style sheets (JS/CSS) inline and deferring all non-critical JS/CSS.
Defer offscreen images
Time to Interactive can be slowed down by resources on the page. Indiehackers.com should consider lazy-loading offscreen and hidden images.
Minify CSS
Cascading Style Sheets (CSS) files can contribute to network payload sizes. Indiehackers.com should consider minifying CSS files.
Minify JavaScript
JavaScript (JS) files can contribute to network payload sizes and increase script parse times. Indiehackers.com should consider minifying JS files.
Remove unused CSS — Potential savings of 13 KiB
Dead and/or unused rules in Style Sheets (CSS) can contribute to network payload sizes. Indiehackers.com should consider removing dead rules from style sheets and deferring the loading of CSS not used for above-the-fold content.
URL Transfer Size (Bytes) Potential Savings (Bytes)
https://www.indiehackers.com/assets/home-ab5a20ef6fd2f24659990a7a460b1a.css
16081
13176
Remove unused JavaScript
It is advised to remove unused JavaScript in order to reduce bytes consumed by network activity.
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 220 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.indiehackers.com/
217.135
Preload key requests
Key requests can be preloaded by using '<link rel=preload>'. Indiehackers.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
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.
Preload Largest Contentful Paint image
It is recommended to preload images used by LCP elements, to improve LCP time.

Diagnostics

Avoids enormous network payloads — Total size was 2,438 KiB
Large network payloads can cost users money and are linked to long load times.
URL Transfer Size (Bytes)
https://i.ibb.co/SBn1Tk3/image.png
894028
https://i.ibb.co/bmhdKfJ/image.png
844420
https://i.ibb.co/3f61VNW/image.png
214964
https://images.axios.com/ldIJSPaVQZfbf9SAf_AuNeHM1Kc=/0x0:1365x768/1920x1080/2021/03/24/1616553090439.jpg
181383
https://image.freepik.com/free-vector/book-illustrations-pack_23-2147500415.jpg
62154
https://cdn.amplitude.com/libs/amplitude-4.5.2-min.gz.js
26318
https://www.indiehackers.com/
21331
https://www.google-analytics.com/analytics.js
20093
https://www.indiehackers.com/assets/home-ab5a20ef6fd2f24659990a7a460b1a.css
16081
https://fonts.gstatic.com/s/sourcesanspro/v14/6xK3dSBYKcSV-LCoeQqfX1RYOo3qOK7lujVj9w.woff2
13888
Avoid chaining critical requests — 2 chains found
Below is a list of Critical Request Chains, which shows which resources are loaded with a high priority. Indiehackers.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.0 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.indiehackers.com/
319.26
9.947
1.693
Unattributable
75.086
1.081
0.126
https://www.google-analytics.com/analytics.js
74.071
13.489
1.422
Minimizes main-thread work — 0.6 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
205.897
Other
135.373
Script Evaluation
93.126
Rendering
83.576
Parse HTML & CSS
26.754
Script Parsing & Compilation
6.772
All text remains visible during webfont loads
Make use of the font-display CSS feature, which will ensure text is user-visible while webfonts are loading.
Keep request counts low and transfer sizes small — 67 requests • 2,438 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
67
2496769
Image
53
2371158
Script
4
56171
Font
2
27560
Document
1
21331
Stylesheet
2
17907
Other
5
2642
Media
0
0
Third-party
59
2444784
Minimize third-party usage — Third-party code blocked the main thread for 0 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)
170947
0
29386
0
26786
0
20716
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
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.indiehackers.com/
634
65
Avoid non-composited animations — 78 animated elements found
It is recommended to avoid non-composited animations which are often janky and increase CLS.
Element
svg
3
2
4
1
1
svg
13
20
5
6
9
8
7
3
3
3
8
7
4
10
11
svg
FAQ
svg
svg
svg
svg
svg
svg

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.

Opportunities

Avoid multiple page redirects — Potential savings of 340 ms
Redirects can cause additional delays before the page can begin loading. Indiehackers.com should avoid multiple or unnecessary page redirects.
URL Time Spent (Ms)
http://indiehackers.com/
190
https://indiehackers.com/
150
https://www.indiehackers.com/
0

Diagnostics

Avoid an excessive DOM size — 1,188 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
1188
Maximum DOM Depth
13
Maximum Child Elements
16

Opportunities

Properly size images — Potential savings of 2,148 KiB
Images can slow down the page's load time. Indiehackers.com should consider serving more appropriate-sized images.
URL Resource Size (Bytes) Potential Savings (Bytes)
https://i.ibb.co/SBn1Tk3/image.png
893688
887440
https://i.ibb.co/bmhdKfJ/image.png
844080
841855
https://i.ibb.co/3f61VNW/image.png
214624
213454
https://images.axios.com/ldIJSPaVQZfbf9SAf_AuNeHM1Kc=/0x0:1365x768/1920x1080/2021/03/24/1616553090439.jpg
180706
180488
https://image.freepik.com/free-vector/book-illustrations-pack_23-2147500415.jpg
61906
61511
https://storage.googleapis.com/indie-hackers.appspot.com/group-icons/nft-non-fungible-token/72x72_nft-non-fungible-token.webp
6416
5446
https://storage.googleapis.com/indie-hackers.appspot.com/group-icons/looking-to-partner-up/72x72_looking-to-partner-up.webp
5594
4748
https://storage.googleapis.com/indie-hackers.appspot.com/group-icons/movie-club/72x72_movie-club.webp
5258
4463
Serve images in next-gen formats — Potential savings of 1,838 KiB
Image formats like PNG and JPEG have poor compression when compared to other next-gen formats, such as JPEG 200, JPEG XR and WebP.
URL Resource Size (Bytes) Potential Savings (Bytes)
https://i.ibb.co/SBn1Tk3/image.png
893688
859098
https://i.ibb.co/bmhdKfJ/image.png
844080
791190
https://i.ibb.co/3f61VNW/image.png
214624
195272
https://image.freepik.com/free-vector/book-illustrations-pack_23-2147500415.jpg
61906
36314

Diagnostics

Serve static assets with an efficient cache policy — 54 resources found
Indiehackers.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://image.freepik.com/free-vector/book-illustrations-pack_23-2147500415.jpg
0
62154
https://storage.googleapis.com/indie-hackers.appspot.com/avatars/52x52_PWairgiOpneHvkGJri7RVbtORKI2.webp
3600000
6041
https://storage.googleapis.com/indie-hackers.appspot.com/avatars/52x52_1QFpowgZnBMVP7heEthQBDAEIaB2.webp
3600000
4892
https://storage.googleapis.com/indie-hackers.appspot.com/avatars/52x52_MKvc3IWXCkedfOqwPv8hdAompZB2.webp
3600000
4571
https://storage.googleapis.com/indie-hackers.appspot.com/avatars/52x52_zy1H20mJ26fOB9AL5sEosL2PPh93.webp
3600000
3864
https://storage.googleapis.com/indie-hackers.appspot.com/avatars/52x52_CF0gUbVur1TDW1KPTqogS1YcfJe2.webp
3600000
3763
https://www.google-analytics.com/analytics.js
7200000
20093
https://www.indiehackers.com/assets/home-ab5a20ef6fd2f24659990a7a460b1a.css
86400000
16081
https://storage.googleapis.com/indie-hackers.appspot.com/group-icons/nft-non-fungible-token/72x72_nft-non-fungible-token.webp
86400000
7309
https://storage.googleapis.com/indie-hackers.appspot.com/avatars/52x52_doczYrPiANMeGU2W8K3HTXZL1S73.webp
86400000
6814
https://www.indiehackers.com/scripts/autotrack-ab5a20ef6fd2f24659990a7a460b1a.js
86400000
6482
https://storage.googleapis.com/indie-hackers.appspot.com/group-icons/looking-to-partner-up/72x72_looking-to-partner-up.webp
86400000
6480
https://storage.googleapis.com/indie-hackers.appspot.com/group-icons/movie-club/72x72_movie-club.webp
86400000
6143
https://storage.googleapis.com/indie-hackers.appspot.com/avatars/52x52_ZYSs41ltnSOQHTFzEEBCQSVp0pS2.webp
86400000
5870
https://storage.googleapis.com/indie-hackers.appspot.com/avatars/52x52_sTIxFFxLtSgKAkEfqomdjgslMVH2.webp
86400000
5775
https://storage.googleapis.com/indie-hackers.appspot.com/avatars/52x52_AcqEI9jUN0TYkbUU2w0TgvLjPFG2.webp
86400000
5524
https://storage.googleapis.com/indie-hackers.appspot.com/group-icons/growth/72x72_growth.webp
86400000
5348
https://storage.googleapis.com/indie-hackers.appspot.com/avatars/52x52_sMDBUQCDjLSBuQLJhtsyjqLzJjq2.webp
86400000
5226
https://storage.googleapis.com/indie-hackers.appspot.com/group-icons/developers/72x72_developers.webp
86400000
5119
https://storage.googleapis.com/indie-hackers.appspot.com/group-icons/no-code/72x72_no-code.webp
86400000
5070
https://storage.googleapis.com/indie-hackers.appspot.com/avatars/52x52_CQDPtGr1gyfB63az9DNxk9wpxR93.webp
86400000
4810
https://storage.googleapis.com/indie-hackers.appspot.com/group-icons/lifetime-deals/72x72_lifetime-deals.webp
86400000
4773
https://storage.googleapis.com/indie-hackers.appspot.com/avatars/52x52_sIxxrCLGKCPSajFpMTYDenKAbXs1.webp
86400000
4722
https://storage.googleapis.com/indie-hackers.appspot.com/group-icons/landing-page-feedback/72x72_landing-page-feedback.webp
86400000
4099
https://storage.googleapis.com/indie-hackers.appspot.com/group-icons/amazon-web-services/72x72_amazon-web-services.webp
86400000
3867
https://storage.googleapis.com/indie-hackers.appspot.com/avatars/52x52_ovnH9i1xfiTglFPvdjo61Eelf4n2.webp
86400000
3672
https://storage.googleapis.com/indie-hackers.appspot.com/group-icons/product-market-fit/72x72_product-market-fit.webp
86400000
3649
https://storage.googleapis.com/indie-hackers.appspot.com/product-avatars/highscore-domains/52x52_highscore-domains.webp
86400000
3505
https://www.indiehackers.com/scripts/home-ab5a20ef6fd2f24659990a7a460b1a.js
86400000
3278
https://storage.googleapis.com/indie-hackers.appspot.com/group-icons/building-in-public/72x72_building-in-public.webp
86400000
3245
https://storage.googleapis.com/indie-hackers.appspot.com/group-icons/ideas-and-validation/72x72_ideas-and-validation.webp
86400000
3047
https://storage.googleapis.com/indie-hackers.appspot.com/group-icons/branding/72x72_branding.webp
86400000
2951
https://storage.googleapis.com/indie-hackers.appspot.com/avatars/52x52_mHinmo48CFOeHyFqT6UWS7zhs3v1.webp
86400000
2873
https://storage.googleapis.com/indie-hackers.appspot.com/group-icons/mentors/72x72_mentors.webp
86400000
2867
https://storage.googleapis.com/indie-hackers.appspot.com/group-icons/lessons-learned/72x72_lessons-learned.webp
86400000
2859
https://storage.googleapis.com/indie-hackers.appspot.com/product-avatars/karmabot/52x52_karmabot.webp
86400000
2563
https://storage.googleapis.com/indie-hackers.appspot.com/group-icons/no-code/28x28_no-code.webp
86400000
2400
https://storage.googleapis.com/indie-hackers.appspot.com/group-icons/privacy/28x28_privacy.webp
86400000
2308
https://www.indiehackers.com/images/logos/indie-hackers-logo__type--light.svg
86400000
2302
https://storage.googleapis.com/indie-hackers.appspot.com/product-avatars/keypup/52x52_keypup.webp
86400000
2244
https://storage.googleapis.com/indie-hackers.appspot.com/product-avatars/poddq/52x52_poddq.webp
86400000
2181
https://storage.googleapis.com/indie-hackers.appspot.com/series-icons/-MLUOYHTsxUuMPbHUuDX/PWairgiOpneHvkGJri7RVbtORKI2/803abee014/28x28.webp
86400000
2180
https://storage.googleapis.com/indie-hackers.appspot.com/group-icons/growth/28x28_growth.webp
86400000
2153
https://storage.googleapis.com/indie-hackers.appspot.com/group-icons/news/28x28_news.webp
86400000
2134
https://storage.googleapis.com/indie-hackers.appspot.com/group-icons/developers/28x28_developers.webp
86400000
2025
https://storage.googleapis.com/indie-hackers.appspot.com/series-icons/-MWU1EkZMJcTkjR222DV/mHinmo48CFOeHyFqT6UWS7zhs3v1/e752c979c4/28x28.webp
86400000
2019
https://storage.googleapis.com/indie-hackers.appspot.com/group-icons/landing-page-feedback/28x28_landing-page-feedback.webp
86400000
1938
https://storage.googleapis.com/indie-hackers.appspot.com/group-icons/design-and-ux/28x28_design-and-ux.webp
86400000
1906
https://storage.googleapis.com/indie-hackers.appspot.com/group-icons/building-in-public/28x28_building-in-public.webp
86400000
1724
https://storage.googleapis.com/indie-hackers.appspot.com/group-icons/productivity/28x28_productivity.webp
86400000
1618
https://storage.googleapis.com/indie-hackers.appspot.com/product-avatars/vestimonials/52x52_vestimonials.webp
86400000
1489
https://storage.googleapis.com/indie-hackers.appspot.com/avatars/52x52_xTGTfQWn77cAqh8Q05GNbFztExT2.webp
86400000
1317
https://www.indiehackers.com/images/logos/indie-hackers-logo__glyph--light.svg
86400000
960
https://images.axios.com/ldIJSPaVQZfbf9SAf_AuNeHM1Kc=/0x0:1365x768/1920x1080/2021/03/24/1616553090439.jpg
345600000
181383
Image elements do not have explicit `width` and `height`
Reduce layout shifts and improve CLS by setting explicit width and height properties on image elements.
URL Failing Elements
https://www.indiehackers.com/images/logos/indie-hackers-logo__type--light.svg
img
54

Accessibility

Indicates how accessible the page is and highlights opportunities where the page can be made more accessible to users of indiehackers.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.
Heading elements appear 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.
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.
Lists contain only `<li>` elements and script supporting elements (`<script>` and `<template>`).
Use proper list structure to aid screen readers and other assistive technologies.
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.
`<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 `[alt]` 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.

Audio and video

`<video>` elements contain a `<track>` element with `[kind="captions"]`
Indiehackers.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
Image elements do not have `[alt]` attributes
Provide short and descriptive alternative text where possible on informative elements.
Failing Elements
img
img
img
img
img
img
img
img
img
img
img
img
img
img
img
img
img
img
img
img
img
img
img
img
img
img
img
img
img
img
img
img
img
img
img
img
img
img
img
img
img
img
img
img
img
img
img
img
img
img
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.

Contrast

Best practices

`[user-scalable="no"]` is used in the `<meta name="viewport">` element or the `[maximum-scale]` attribute is less than 5.
For users with low vision who rely on screen magnification, ensure that zooming is not disabled.
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.
80

Best Practices

Indicates the recommended, best practices currently in place on the page and highlights the best practices that indiehackers.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.

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

Avoids Application Cache
Application cache is deprecated and is no longer recommended.
Detected JavaScript libraries
Below is a list of all front-end JavaScript libraries that were detected on the page.
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.
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://indiehackers.com/
Allowed

Audits

Registers an `unload` listener
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.
Source
91

SEO

Indicates how well the page is optimized for ranking in search engines and highlights Search Engine Optimization (SEO) opportunities for indiehackers.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 indiehackers.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.
Document has 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.
Links have descriptive text
Make use of descriptive link text to assist search engines in understanding the content.
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.
Links are 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.
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

Image elements do not have `[alt]` attributes
Provide short and descriptive alternative text where possible on informative elements.
Failing Elements
img
img
img
img
img
img
img
img
img
img
img
img
img
img
img
img
img
img
img
img
img
img
img
img
img
img
img
img
img
img
img
img
img
img
img
img
img
img
img
img
img
img
img
img
img
img
img
img
img
img

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.
45

Progressive Web App

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

PWA Optimized

Redirects HTTP traffic to HTTPS
It is advised to redirect all HTTP traffic to HTTPS, in order to enable secure web features for all users.
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 indiehackers.com on mobile screens.
Provides 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.

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
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) 67
Performance 62
Accessibility 54
Best Practices 80
SEO 89
Progressive Web App 50
0–49 (Fail) 50–89 (Average) 90–100 (Pass)
URL: https://www.indiehackers.com/
Updated: 19th April, 2021

2.07 seconds
First Contentful Paint (FCP)
38%
51%
11%

0.04 seconds
First Input Delay (FID)
91%
7%
2%

Simulate loading on mobile
62

Performance

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

Metrics

Total Blocking Time — 140 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.025
Cumulative Layout Shift is the measurement of visible elements collective movement within the viewport.
View Data

Other

Estimated Input Latency — 40 ms
The time taken for the page to respond to user input (during the busiest 5 second window of page load). Users are likely to perceive indiehackers.com as laggy when the latency is higher than 0.05 seconds.
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://indiehackers.com/
http/1.1
0
118.38200001512
782
0
301
text/html
https://indiehackers.com/
http/1.1
119.16799994651
755.93400001526
742
0
301
text/html
https://www.indiehackers.com/
h2
756.50399993174
1347.3099999828
21243
146187
200
text/html
Document
https://fonts.googleapis.com/css2?family=Fira+Mono:wght@400;700&family=Source+Sans+Pro:ital,wght@0,400;0,600;0,700;1,400;1,600;1,700&display=swap
h2
1368.3589999564
1385.1159999613
1826
18196
200
text/css
Stylesheet
https://www.google-analytics.com/analytics.js
h2
1371.9079999719
1377.908000024
20092
48759
200
text/javascript
Script
https://www.indiehackers.com/scripts/autotrack-ab5a20ef6fd2f24659990a7a460b1a.js
h2
1379.8309999984
1629.060999956
6486
17791
200
application/javascript
Script
https://www.indiehackers.com/assets/home-ab5a20ef6fd2f24659990a7a460b1a.css
h2
1372.3979999777
1491.6830000002
16076
187900
200
text/css
Stylesheet
https://www.indiehackers.com/images/logos/indie-hackers-logo__glyph--light.svg
h2
1380.2039999282
1511.3589999964
956
466
200
image/svg+xml
Image
https://www.indiehackers.com/images/logos/indie-hackers-logo__type--light.svg
h2
1380.526999943
1521.3740000036
2300
3349
200
image/svg+xml
Image
https://i.ibb.co/SBn1Tk3/image.png
h2
1381.4909999492
1457.2120000375
894028
893688
200
image/png
Image
https://images.axios.com/ldIJSPaVQZfbf9SAf_AuNeHM1Kc=/0x0:1365x768/1920x1080/2021/03/24/1616553090439.jpg
h2
1381.8810000084
1498.8779999549
181383
180706
200
image/webp
Image
https://i.ibb.co/bmhdKfJ/image.png
h2
1382.0070000365
1485.0769999903
844420
844080
200
image/png
Image
https://image.freepik.com/free-vector/book-illustrations-pack_23-2147500415.jpg
h2
1382.1159999352
1518.2329999516
62154
61906
200
image/jpeg
Image
https://i.ibb.co/3f61VNW/image.png
h2
1382.230999996
2030.4760000436
214964
214624
200
image/png
Image
https://storage.googleapis.com/indie-hackers.appspot.com/product-avatars/highscore-domains/52x52_highscore-domains.webp
h2
1382.8679999569
1415.0120000122
3506
2612
200
image/webp
Image
https://storage.googleapis.com/indie-hackers.appspot.com/product-avatars/poddq/52x52_poddq.webp
h2
1383.0099999905
1437.7549999626
2182
1288
200
image/webp
Image
https://storage.googleapis.com/indie-hackers.appspot.com/product-avatars/keypup/52x52_keypup.webp
h2
1383.3370000357
1450.458999956
2244
1358
200
image/webp
Image
https://storage.googleapis.com/indie-hackers.appspot.com/product-avatars/vestimonials/52x52_vestimonials.webp
h2
1383.5640000179
1431.5690000076
1489
598
200
image/webp
Image
https://storage.googleapis.com/indie-hackers.appspot.com/product-avatars/karmabot/52x52_karmabot.webp
h2
1383.8080000132
1440.8190000104
2564
1670
200
image/webp
Image
https://storage.googleapis.com/indie-hackers.appspot.com/avatars/52x52_AcqEI9jUN0TYkbUU2w0TgvLjPFG2.webp
h2
1384.0060000075
1424.8920000391
5524
4638
200
image/webp
Image
https://storage.googleapis.com/indie-hackers.appspot.com/group-icons/growth/28x28_growth.webp
h2
1384.1729999986
1469.4199999794
2146
1260
200
image/webp
Image
https://storage.googleapis.com/indie-hackers.appspot.com/avatars/52x52_mHinmo48CFOeHyFqT6UWS7zhs3v1.webp
h2
1384.3399999896
1405.0290000159
2874
1980
200
image/webp
Image
https://storage.googleapis.com/indie-hackers.appspot.com/series-icons/-MWU1EkZMJcTkjR222DV/mHinmo48CFOeHyFqT6UWS7zhs3v1/e752c979c4/28x28.webp
h2
1384.5720000099
1409.7019999754
2019
1118
200
image/webp
Image
https://storage.googleapis.com/indie-hackers.appspot.com/avatars/52x52_MKvc3IWXCkedfOqwPv8hdAompZB2.webp
h2
1384.8749999888
1492.4239999382
4571
3686
200
image/webp
Image
https://storage.googleapis.com/indie-hackers.appspot.com/group-icons/privacy/28x28_privacy.webp
h2
1384.9959999789
1495.5550000304
2308
1422
200
image/webp
Image
https://storage.googleapis.com/indie-hackers.appspot.com/avatars/52x52_CF0gUbVur1TDW1KPTqogS1YcfJe2.webp
h2
1385.6959999539
1460.4340000078
3770
2878
200
image/webp
Image
https://storage.googleapis.com/indie-hackers.appspot.com/avatars/52x52_CQDPtGr1gyfB63az9DNxk9wpxR93.webp
h2
1385.9409999568
1422.0750000095
4801
3916
200
image/webp
Image
https://cdn.amplitude.com/libs/amplitude-4.5.2-min.gz.js
h2
1386.0540000023
1430.9549999889
26318
77542
200
application/javascript
Script
https://storage.googleapis.com/indie-hackers.appspot.com/series-icons/-MLUOYHTsxUuMPbHUuDX/PWairgiOpneHvkGJri7RVbtORKI2/803abee014/28x28.webp
h2
1393.591
1505.4170000367
2180
1294
200
image/webp
Image
https://storage.googleapis.com/indie-hackers.appspot.com/avatars/52x52_sTIxFFxLtSgKAkEfqomdjgslMVH2.webp
h2
1393.933000043
1405.9569999808
5783
4882
200
image/webp
Image
https://storage.googleapis.com/indie-hackers.appspot.com/group-icons/landing-page-feedback/28x28_landing-page-feedback.webp
h2
1394.3089999957
1493.094000034
1930
1044
200
image/webp
Image
https://storage.googleapis.com/indie-hackers.appspot.com/avatars/52x52_PWairgiOpneHvkGJri7RVbtORKI2.webp
h2
1394.5079999976
1425.7359999465
6048
5148
200
image/webp
Image
https://storage.googleapis.com/indie-hackers.appspot.com/group-icons/news/28x28_news.webp
h2
1394.7230000049
1487.1879999992
2126
1240
200
image/webp
Image
https://storage.googleapis.com/indie-hackers.appspot.com/avatars/52x52_ovnH9i1xfiTglFPvdjo61Eelf4n2.webp
h2
1394.8969999328
1418.8439999707
3687
2786
200
image/webp
Image
https://storage.googleapis.com/indie-hackers.appspot.com/avatars/52x52_sIxxrCLGKCPSajFpMTYDenKAbXs1.webp
h2
1395.5510000233
1454.2300000321
4722
3836
200
image/webp
Image
https://storage.googleapis.com/indie-hackers.appspot.com/group-icons/developers/28x28_developers.webp
h2
1396.0380000062
1448.5130000394
2033
1132
200
image/webp
Image
https://storage.googleapis.com/indie-hackers.appspot.com/avatars/52x52_zy1H20mJ26fOB9AL5sEosL2PPh93.webp
h2
1396.3130000047
1471.3690000353
3856
2964
200
image/webp
Image
https://storage.googleapis.com/indie-hackers.appspot.com/group-icons/design-and-ux/28x28_design-and-ux.webp
h2
1396.660999977
1506.303000031
1906
1020
200
image/webp
Image
https://storage.googleapis.com/indie-hackers.appspot.com/avatars/52x52_doczYrPiANMeGU2W8K3HTXZL1S73.webp
h2
1396.9319999451
1435.4100000346
6813
5920
200
image/webp
Image
https://storage.googleapis.com/indie-hackers.appspot.com/group-icons/productivity/28x28_productivity.webp
h2
1397.4509999389
1510.0979999406
1617
726
200
image/webp
Image
https://storage.googleapis.com/indie-hackers.appspot.com/avatars/52x52_xTGTfQWn77cAqh8Q05GNbFztExT2.webp
h2
1398.5689999536
1492.7669999888
1310
426
200
image/webp
Image
https://storage.googleapis.com/indie-hackers.appspot.com/group-icons/building-in-public/28x28_building-in-public.webp
h2
1398.7490000436
1421.1590000195
1731
832
200
image/webp
Image
https://storage.googleapis.com/indie-hackers.appspot.com/avatars/52x52_ZYSs41ltnSOQHTFzEEBCQSVp0pS2.webp
h2
1399.0080000367
1436.9739999529
5869
4976
200
image/webp
Image
https://storage.googleapis.com/indie-hackers.appspot.com/avatars/52x52_1QFpowgZnBMVP7heEthQBDAEIaB2.webp
h2
1399.5260000229
1467.7120000124
4892
4000
200
image/webp
Image
https://storage.googleapis.com/indie-hackers.appspot.com/avatars/52x52_sMDBUQCDjLSBuQLJhtsyjqLzJjq2.webp
h2
1399.7439999366
1472.381999949
5218
4332
200
image/webp
Image
https://storage.googleapis.com/indie-hackers.appspot.com/group-icons/no-code/28x28_no-code.webp
h2
1400.5650000181
1424.4130000006
2400
1506
200
image/webp
Image
https://storage.googleapis.com/indie-hackers.appspot.com/group-icons/lifetime-deals/72x72_lifetime-deals.webp
h2
1400.9129999904
1420.8050000016
4774
3880
200
image/webp
Image
https://storage.googleapis.com/indie-hackers.appspot.com/group-icons/growth/72x72_growth.webp
h2
1401.1109999847
1444.3129999563
5340
4454
200
image/webp
Image
https://storage.googleapis.com/indie-hackers.appspot.com/group-icons/mentors/72x72_mentors.webp
h2
1401.251000003
1499.1509999381
2859
1966
200
image/webp
Image
https://storage.googleapis.com/indie-hackers.appspot.com/group-icons/ideas-and-validation/72x72_ideas-and-validation.webp
h2
1401.5849999851
1415.5460000038
3055
2154
200
image/webp
Image
https://storage.googleapis.com/indie-hackers.appspot.com/group-icons/amazon-web-services/72x72_amazon-web-services.webp
h2
1402.0960000344
1459.189999965
3875
2982
200
image/webp
Image
https://storage.googleapis.com/indie-hackers.appspot.com/group-icons/developers/72x72_developers.webp
h2
1402.866999968
1522.032000008
5112
4226
200
image/webp
Image
https://storage.googleapis.com/indie-hackers.appspot.com/group-icons/branding/72x72_branding.webp
h2
1403.2009999501
1447.5170000223
2951
2058
200
image/webp
Image
https://storage.googleapis.com/indie-hackers.appspot.com/group-icons/landing-page-feedback/72x72_landing-page-feedback.webp
h2
1403.4149999497
1506.8759999704
4092
3206
200
image/webp
Image
https://storage.googleapis.com/indie-hackers.appspot.com/group-icons/nft-non-fungible-token/72x72_nft-non-fungible-token.webp
h2
1403.6530000158
1423.3389999717
7310
6416
200
image/webp
Image
https://storage.googleapis.com/indie-hackers.appspot.com/group-icons/building-in-public/72x72_building-in-public.webp
h2
1404.2520000366
1468.663000036
3253
2352
200
image/webp
Image
https://storage.googleapis.com/indie-hackers.appspot.com/group-icons/product-market-fit/72x72_product-market-fit.webp
h2
1404.4470000081
1459.7539999522
3642
2756
200
image/webp
Image
https://storage.googleapis.com/indie-hackers.appspot.com/group-icons/looking-to-partner-up/72x72_looking-to-partner-up.webp
h2
1404.859000002
1419.9380000355
6488
5594
200
image/webp
Image
https://storage.googleapis.com/indie-hackers.appspot.com/group-icons/movie-club/72x72_movie-club.webp
h2
1405.5200000294
1464.7259999765
6151
5258
200
image/webp
Image
https://storage.googleapis.com/indie-hackers.appspot.com/group-icons/no-code/72x72_no-code.webp
h2
1407.0300000021
1495.1059999876
5070
4184
200
image/webp
Image
https://storage.googleapis.com/indie-hackers.appspot.com/group-icons/lessons-learned/72x72_lessons-learned.webp
h2
1409.1949999565
1438.3839999791
2867
1966
200
image/webp
Image
https://www.indiehackers.com/scripts/home-ab5a20ef6fd2f24659990a7a460b1a.js
h2
1425.506999949
1558.9080000063
3274
5436
200
application/javascript
Script
https://fonts.gstatic.com/s/sourcesanspro/v14/6xK3dSBYKcSV-LCoeQqfX1RYOo3qOK7lujVj9w.woff2
h2
1617.6810000325
1623.1899999548
13888
13324
200
font/woff2
Font
https://fonts.gstatic.com/s/sourcesanspro/v14/6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwlxdu3cOWxw.woff2
h2
1644.9779999675
1648.4560000245
13671
13108
200
font/woff2
Font
https://api.amplitude.com/
h2
1793.2420000434
2139.113000012
234
7
200
text/html
XHR
https://www.google-analytics.com/j/collect?v=1&_v=j89&a=253804181&t=pageview&_s=1&dl=https%3A%2F%2Fwww.indiehackers.com%2F&ul=en-us&de=UTF-8&dt=Indie%20Hackers%3A%20Work%20Together%20to%20Build%20Profitable%20Online%20Businesses&sd=24-bit&sr=360x640&vp=360x640&je=0&_u=aGBAAEADAAAAAC~&jid=711494087&gjid=1545946089&cid=1434367059.1618848269&tid=UA-81418423-2&_gid=281964844.1618848269&_r=1&_av=2.4.1&_au=1f1&cd3=0&cd2=pageload&did=i5iSjo&cd1=(not%20set)&z=93920166
h2
1909.8539999686
1913.9929999365
623
1
200
text/plain
XHR
https://api.amplitude.com/
h2
2145.1019999804
2248.0799999321
234
7
200
text/html
XHR
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)
1392.15
12.148
1410.483
20.335
1430.919
14.787
1451.885
8.903
1477.486
110.15
1623.244
8.436
1633.063
156.134
1789.965
34.11
1824.569
26.66
1857.834
43.636
1907.247
42.865
1964.928
17.731
2179.412
5.217
Diagnostics
Below is a collection of useful page vitals.
View Data
Metrics
Below is a collection of metrics.
View Data

Opportunities

Eliminate render-blocking resources
Resources, such as JavaScript and style sheets, can block the first paint of the page. Indiehackers.com should consider delivering critical JavaScript/style sheets (JS/CSS) inline and deferring all non-critical JS/CSS.
Defer offscreen images — Potential savings of 5 KiB
Time to Interactive can be slowed down by resources on the page. Indiehackers.com should consider lazy-loading offscreen and hidden images.
URL Resource Size (Bytes) Potential Savings (Bytes)
https://storage.googleapis.com/indie-hackers.appspot.com/product-avatars/highscore-domains/52x52_highscore-domains.webp
2612
2612
https://www.indiehackers.com/images/logos/indie-hackers-logo__type--light.svg
2300
2300
Minify CSS
Cascading Style Sheets (CSS) files can contribute to network payload sizes. Indiehackers.com should consider minifying CSS files.
Minify JavaScript
JavaScript (JS) files can contribute to network payload sizes and increase script parse times. Indiehackers.com should consider minifying JS files.
Remove unused CSS — Potential savings of 12 KiB
Dead and/or unused rules in Style Sheets (CSS) can contribute to network payload sizes. Indiehackers.com should consider removing dead rules from style sheets and deferring the loading of CSS not used for above-the-fold content.
URL Transfer Size (Bytes) Potential Savings (Bytes)
https://www.indiehackers.com/assets/home-ab5a20ef6fd2f24659990a7a460b1a.css
16076
12696
Remove unused JavaScript
It is advised to remove unused JavaScript in order to reduce bytes consumed by network activity.
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 590 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.indiehackers.com/
591.798
Preload key requests
Key requests can be preloaded by using '<link rel=preload>'. Indiehackers.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
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.
Preload Largest Contentful Paint image
It is recommended to preload images used by LCP elements, to improve LCP time.

Diagnostics

Avoids enormous network payloads — Total size was 2,438 KiB
Large network payloads can cost users money and are linked to long load times.
URL Transfer Size (Bytes)
https://i.ibb.co/SBn1Tk3/image.png
894028
https://i.ibb.co/bmhdKfJ/image.png
844420
https://i.ibb.co/3f61VNW/image.png
214964
https://images.axios.com/ldIJSPaVQZfbf9SAf_AuNeHM1Kc=/0x0:1365x768/1920x1080/2021/03/24/1616553090439.jpg
181383
https://image.freepik.com/free-vector/book-illustrations-pack_23-2147500415.jpg
62154
https://cdn.amplitude.com/libs/amplitude-4.5.2-min.gz.js
26318
https://www.indiehackers.com/
21243
https://www.google-analytics.com/analytics.js
20092
https://www.indiehackers.com/assets/home-ab5a20ef6fd2f24659990a7a460b1a.css
16076
https://fonts.gstatic.com/s/sourcesanspro/v14/6xK3dSBYKcSV-LCoeQqfX1RYOo3qOK7lujVj9w.woff2
13888
Avoid chaining critical requests — 2 chains found
Below is a list of Critical Request Chains, which shows which resources are loaded with a high priority. Indiehackers.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.6 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.indiehackers.com/
1167.72
54.664
10.768
https://www.google-analytics.com/analytics.js
446.148
151.944
9.848
Unattributable
412.012
8.16
1.504
https://www.indiehackers.com/scripts/autotrack-ab5a20ef6fd2f24659990a7a460b1a.js
177.396
163.352
8.992
https://cdn.amplitude.com/libs/amplitude-4.5.2-min.gz.js
131.64
113.608
6.032
https://www.indiehackers.com/scripts/home-ab5a20ef6fd2f24659990a7a460b1a.js
51.044
47.176
2.528
All text remains visible during webfont loads
Make use of the font-display CSS feature, which will ensure text is user-visible while webfonts are loading.
Keep request counts low and transfer sizes small — 67 requests • 2,438 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
67
2496652
Image
53
2371163
Script
4
56170
Font
2
27559
Document
1
21243
Stylesheet
2
17902
Other
5
2615
Media
0
0
Third-party
59
2444793
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
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.0097234837923822
0.0067105733215032
0.0065736228455542
0.0010119118500679
0.00091072066506115
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 — 9 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.indiehackers.com/
2229
312
https://www.google-analytics.com/analytics.js
3550
220
https://www.indiehackers.com/scripts/autotrack-ab5a20ef6fd2f24659990a7a460b1a.js
3770
171
https://cdn.amplitude.com/libs/amplitude-4.5.2-min.gz.js
3941
136
https://www.indiehackers.com/scripts/home-ab5a20ef6fd2f24659990a7a460b1a.js
4077
107
https://www.indiehackers.com/
2541
87
https://www.indiehackers.com/
2089
81
https://www.indiehackers.com/
2628
71
Unattributable
2170
59
Image elements have explicit `width` and `height`
Reduce layout shifts and improve CLS by setting explicit width and height properties on image elements.

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 — 3.8 s
The time taken for the first image or text on the page to be rendered.
Speed Index — 4.7 s
The time taken for the page contents to be visibly populated.
Time to Interactive — 4.0 s
The time taken for the page to become fully interactive.

Other

First CPU Idle — 3.8 s
The time taken for the page's main thread to be quiet enough to handle input.
Max Potential First Input Delay — 220 ms
Users could experience a delay when interacting with the page.
First Meaningful Paint — 3.8 s
The time taken for the primary content of the page to be rendered.

Diagnostics

Avoid an excessive DOM size — 1,188 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
1188
Maximum DOM Depth
13
Maximum Child Elements
16
Minimize main-thread work — 2.4 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
892.688
Other
595.108
Script Evaluation
538.904
Rendering
219.788
Parse HTML & CSS
140.972
Script Parsing & Compilation
39.672

Metrics

Largest Contentful Paint — 13.2 s
The timing of the largest text or image that is painted.

Opportunities

Properly size images — Potential savings of 1,873 KiB
Images can slow down the page's load time. Indiehackers.com should consider serving more appropriate-sized images.
URL Resource Size (Bytes) Potential Savings (Bytes)
https://i.ibb.co/SBn1Tk3/image.png
893688
850637
https://i.ibb.co/bmhdKfJ/image.png
844080
828747
https://images.axios.com/ldIJSPaVQZfbf9SAf_AuNeHM1Kc=/0x0:1365x768/1920x1080/2021/03/24/1616553090439.jpg
180706
179205
https://image.freepik.com/free-vector/book-illustrations-pack_23-2147500415.jpg
61906
59185
Serve images in next-gen formats — Potential savings of 1,838 KiB
Image formats like PNG and JPEG have poor compression when compared to other next-gen formats, such as JPEG 200, JPEG XR and WebP.
URL Resource Size (Bytes) Potential Savings (Bytes)
https://i.ibb.co/SBn1Tk3/image.png
893688
859098
https://i.ibb.co/bmhdKfJ/image.png
844080
791190
https://i.ibb.co/3f61VNW/image.png
214624
195272
https://image.freepik.com/free-vector/book-illustrations-pack_23-2147500415.jpg
61906
36314
Avoid multiple page redirects — Potential savings of 1,110 ms
Redirects can cause additional delays before the page can begin loading. Indiehackers.com should avoid multiple or unnecessary page redirects.
URL Time Spent (Ms)
http://indiehackers.com/
630
https://indiehackers.com/
480
https://www.indiehackers.com/
0

Diagnostics

Serve static assets with an efficient cache policy — 54 resources found
Indiehackers.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://image.freepik.com/free-vector/book-illustrations-pack_23-2147500415.jpg
0
62154
https://storage.googleapis.com/indie-hackers.appspot.com/avatars/52x52_PWairgiOpneHvkGJri7RVbtORKI2.webp
3600000
6048
https://storage.googleapis.com/indie-hackers.appspot.com/avatars/52x52_1QFpowgZnBMVP7heEthQBDAEIaB2.webp
3600000
4892
https://storage.googleapis.com/indie-hackers.appspot.com/avatars/52x52_MKvc3IWXCkedfOqwPv8hdAompZB2.webp
3600000
4571
https://storage.googleapis.com/indie-hackers.appspot.com/avatars/52x52_zy1H20mJ26fOB9AL5sEosL2PPh93.webp
3600000
3856
https://storage.googleapis.com/indie-hackers.appspot.com/avatars/52x52_CF0gUbVur1TDW1KPTqogS1YcfJe2.webp
3600000
3770
https://www.google-analytics.com/analytics.js
7200000
20092
https://www.indiehackers.com/assets/home-ab5a20ef6fd2f24659990a7a460b1a.css
86400000
16076
https://storage.googleapis.com/indie-hackers.appspot.com/group-icons/nft-non-fungible-token/72x72_nft-non-fungible-token.webp
86400000
7310
https://storage.googleapis.com/indie-hackers.appspot.com/avatars/52x52_doczYrPiANMeGU2W8K3HTXZL1S73.webp
86400000
6813
https://storage.googleapis.com/indie-hackers.appspot.com/group-icons/looking-to-partner-up/72x72_looking-to-partner-up.webp
86400000
6488
https://www.indiehackers.com/scripts/autotrack-ab5a20ef6fd2f24659990a7a460b1a.js
86400000
6486
https://storage.googleapis.com/indie-hackers.appspot.com/group-icons/movie-club/72x72_movie-club.webp
86400000
6151
https://storage.googleapis.com/indie-hackers.appspot.com/avatars/52x52_ZYSs41ltnSOQHTFzEEBCQSVp0pS2.webp
86400000
5869
https://storage.googleapis.com/indie-hackers.appspot.com/avatars/52x52_sTIxFFxLtSgKAkEfqomdjgslMVH2.webp
86400000
5783
https://storage.googleapis.com/indie-hackers.appspot.com/avatars/52x52_AcqEI9jUN0TYkbUU2w0TgvLjPFG2.webp
86400000
5524
https://storage.googleapis.com/indie-hackers.appspot.com/group-icons/growth/72x72_growth.webp
86400000
5340
https://storage.googleapis.com/indie-hackers.appspot.com/avatars/52x52_sMDBUQCDjLSBuQLJhtsyjqLzJjq2.webp
86400000
5218
https://storage.googleapis.com/indie-hackers.appspot.com/group-icons/developers/72x72_developers.webp
86400000
5112
https://storage.googleapis.com/indie-hackers.appspot.com/group-icons/no-code/72x72_no-code.webp
86400000
5070
https://storage.googleapis.com/indie-hackers.appspot.com/avatars/52x52_CQDPtGr1gyfB63az9DNxk9wpxR93.webp
86400000
4801
https://storage.googleapis.com/indie-hackers.appspot.com/group-icons/lifetime-deals/72x72_lifetime-deals.webp
86400000
4774
https://storage.googleapis.com/indie-hackers.appspot.com/avatars/52x52_sIxxrCLGKCPSajFpMTYDenKAbXs1.webp
86400000
4722
https://storage.googleapis.com/indie-hackers.appspot.com/group-icons/landing-page-feedback/72x72_landing-page-feedback.webp
86400000
4092
https://storage.googleapis.com/indie-hackers.appspot.com/group-icons/amazon-web-services/72x72_amazon-web-services.webp
86400000
3875
https://storage.googleapis.com/indie-hackers.appspot.com/avatars/52x52_ovnH9i1xfiTglFPvdjo61Eelf4n2.webp
86400000
3687
https://storage.googleapis.com/indie-hackers.appspot.com/group-icons/product-market-fit/72x72_product-market-fit.webp
86400000
3642
https://storage.googleapis.com/indie-hackers.appspot.com/product-avatars/highscore-domains/52x52_highscore-domains.webp
86400000
3506
https://www.indiehackers.com/scripts/home-ab5a20ef6fd2f24659990a7a460b1a.js
86400000
3274
https://storage.googleapis.com/indie-hackers.appspot.com/group-icons/building-in-public/72x72_building-in-public.webp
86400000
3253
https://storage.googleapis.com/indie-hackers.appspot.com/group-icons/ideas-and-validation/72x72_ideas-and-validation.webp
86400000
3055
https://storage.googleapis.com/indie-hackers.appspot.com/group-icons/branding/72x72_branding.webp
86400000
2951
https://storage.googleapis.com/indie-hackers.appspot.com/avatars/52x52_mHinmo48CFOeHyFqT6UWS7zhs3v1.webp
86400000
2874
https://storage.googleapis.com/indie-hackers.appspot.com/group-icons/lessons-learned/72x72_lessons-learned.webp
86400000
2867
https://storage.googleapis.com/indie-hackers.appspot.com/group-icons/mentors/72x72_mentors.webp
86400000
2859
https://storage.googleapis.com/indie-hackers.appspot.com/product-avatars/karmabot/52x52_karmabot.webp
86400000
2564
https://storage.googleapis.com/indie-hackers.appspot.com/group-icons/no-code/28x28_no-code.webp
86400000
2400
https://storage.googleapis.com/indie-hackers.appspot.com/group-icons/privacy/28x28_privacy.webp
86400000
2308
https://www.indiehackers.com/images/logos/indie-hackers-logo__type--light.svg
86400000
2300
https://storage.googleapis.com/indie-hackers.appspot.com/product-avatars/keypup/52x52_keypup.webp
86400000
2244
https://storage.googleapis.com/indie-hackers.appspot.com/product-avatars/poddq/52x52_poddq.webp
86400000
2182
https://storage.googleapis.com/indie-hackers.appspot.com/series-icons/-MLUOYHTsxUuMPbHUuDX/PWairgiOpneHvkGJri7RVbtORKI2/803abee014/28x28.webp
86400000
2180
https://storage.googleapis.com/indie-hackers.appspot.com/group-icons/growth/28x28_growth.webp
86400000
2146
https://storage.googleapis.com/indie-hackers.appspot.com/group-icons/news/28x28_news.webp
86400000
2126
https://storage.googleapis.com/indie-hackers.appspot.com/group-icons/developers/28x28_developers.webp
86400000
2033
https://storage.googleapis.com/indie-hackers.appspot.com/series-icons/-MWU1EkZMJcTkjR222DV/mHinmo48CFOeHyFqT6UWS7zhs3v1/e752c979c4/28x28.webp
86400000
2019
https://storage.googleapis.com/indie-hackers.appspot.com/group-icons/landing-page-feedback/28x28_landing-page-feedback.webp
86400000
1930
https://storage.googleapis.com/indie-hackers.appspot.com/group-icons/design-and-ux/28x28_design-and-ux.webp
86400000
1906
https://storage.googleapis.com/indie-hackers.appspot.com/group-icons/building-in-public/28x28_building-in-public.webp
86400000
1731
https://storage.googleapis.com/indie-hackers.appspot.com/group-icons/productivity/28x28_productivity.webp
86400000
1617
https://storage.googleapis.com/indie-hackers.appspot.com/product-avatars/vestimonials/52x52_vestimonials.webp
86400000
1489
https://storage.googleapis.com/indie-hackers.appspot.com/avatars/52x52_xTGTfQWn77cAqh8Q05GNbFztExT2.webp
86400000
1310
https://www.indiehackers.com/images/logos/indie-hackers-logo__glyph--light.svg
86400000
956
https://images.axios.com/ldIJSPaVQZfbf9SAf_AuNeHM1Kc=/0x0:1365x768/1920x1080/2021/03/24/1616553090439.jpg
345600000
181383
Reduce the impact of third-party code — Third-party code blocked the main thread for 320 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)
20715
276.48
26786
45.228
170958
0
29385
0

Other

First Contentful Paint (3G) — 7350 ms
The time taken for the first image or text on the page to be rendered while on a 3G network.
54

Accessibility

Indicates how accessible the page is and highlights opportunities where the page can be made more accessible to users of indiehackers.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.
Heading elements appear 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.
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.
Lists contain only `<li>` elements and script supporting elements (`<script>` and `<template>`).
Use proper list structure to aid screen readers and other assistive technologies.
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.
`<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 `[alt]` 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.

Audio and video

`<video>` elements contain a `<track>` element with `[kind="captions"]`
Indiehackers.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
Image elements do not have `[alt]` attributes
Provide short and descriptive alternative text where possible on informative elements.
Failing Elements
img
img
img
img
img
img
img
img
img
img
img
img
img
img
img
img
img
img
img
img
img
img
img
img
img
img
img
img
img
img
img
img
img
img
img
img
img
img
img
img
img
img
img
img
img
img
img
img
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.

Contrast

Best practices

`[user-scalable="no"]` is used in the `<meta name="viewport">` element or the `[maximum-scale]` attribute is less than 5.
For users with low vision who rely on screen magnification, ensure that zooming is not disabled.
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.
80

Best Practices

Indicates the recommended, best practices currently in place on the page and highlights the best practices that indiehackers.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.

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

Avoids Application Cache
Application cache is deprecated and is no longer recommended.
Detected JavaScript libraries
Below is a list of all front-end JavaScript libraries that were detected on the page.
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.
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://indiehackers.com/
Allowed

Audits

Registers an `unload` listener
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.
Source
89

SEO

Indicates how well the page is optimized for ranking in search engines and highlights Search Engine Optimization (SEO) opportunities for indiehackers.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 indiehackers.com on mobile screens.
Document uses legible font sizes — 99.65% 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
abbr, address, article, aside, audio, b, blockquote, body, canvas, caption, cite, code, dd, del, details, dfn, div, dl, dt, em, fieldset, figcaption, figure, footer, form, h1, h2, h3, h4, h5, h6, header, hgroup, html, i, iframe, img, ins, kbd, label, legend, li, mark, menu, nav, object, ol, p, pre, q, samp, section, small, span, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, time, tr, ul, var, video
0.35%
11px
99.65%
≥ 12px

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.
Document has 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.
Links have descriptive text
Make use of descriptive link text to assist search engines in understanding the content.
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.
Links are 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.
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.

Mobile Friendly

Tap targets are not sized appropriately — 68% 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.
Tap Target Size Overlapping Target
30x20
20
34x20
28
34x20
5
27x20
9
27x20
8
27x20
7
27x20
3
27x20
3
27x20
8
27x20
7
27x20
13
34x20
11
34x20
6
27x20
3
27x20
4
27x20
68x20
a
15x16
a
a
15x16
a
10
34x20
75x20
63x20
272x20
62x20
107x20
158x20
50x20
86x20
105x20
93x20
125x20
71x20
85x20
50x20
58x20
70x20
98x20
81x20
112x20
88x20
68x20
69x20
61x20

Content Best Practices

Image elements do not have `[alt]` attributes
Provide short and descriptive alternative text where possible on informative elements.
Failing Elements
img
img
img
img
img
img
img
img
img
img
img
img
img
img
img
img
img
img
img
img
img
img
img
img
img
img
img
img
img
img
img
img
img
img
img
img
img
img
img
img
img
img
img
img
img
img
img
img

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.
50

Progressive Web App

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

PWA Optimized

Redirects HTTP traffic to HTTPS
It is advised to redirect all HTTP traffic to HTTPS, in order to enable secure web features for all users.
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 indiehackers.com on mobile screens.
Provides 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.

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
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: 104.26.12.75
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: Cloudflare, Inc.
Country: UK
City: wafangdian
State: District of Columbia
Post Code:
Email:
Phone:
Note: Registration information is derived from various sources and may be inaccurate.

Domain Registrar

Name IP Address
GoDaddy.com, LLC 184.25.36.36
Security

Visitor Safety

Mature Content: Not Likely
McAfee WebAdvisor Rating: Safe
WOT Rating: 3.4/5 (0 reviews)
WOT Trustworthiness: 68/100
WOT Child Safety: 100/100
Note: Safety information is not guaranteed.

SSL/TLS Certificate

Issued To: sni.cloudflaressl.com
Issued By: Cloudflare Inc ECC CA-3
Valid From: 9th July, 2020
Valid To: 9th July, 2021
Subject: CN = sni.cloudflaressl.com
O = Cloudflare, Inc.
L = San Francisco
S = US
Hash: 4d04c09a
Issuer: CN = Cloudflare Inc ECC CA-3
O = Cloudflare, Inc.
S = US
Version: 2
Serial Number: 7889122463581858728387899554624774361
Serial Number (Hex): 05EF63C49BBB7E1F7B08F6E99F9120D9
Valid From: 9th July, 2024
Valid To: 9th 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.16.840.1.114412.1.1
CPS: https://www.digicert.com/CPS
Policy: 2.23.140.1.2.2

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 : F6:5C:94:2F:D1:77:30:22:14:54:18:08:30:94:56:8E:
E3:4D:13:19:33:BF:DF:0C:2F:20:0B:CC:4E:F1:64:E3
Timestamp : Jul 9 05:54:44.233 2020 GMT
Extensions: none
Signature : ecdsa-with-SHA256
30:45:02:20:4B:E0:1B:8D:2D:DB:05:EA:F2:65:78:18:
91:A4:65:A7:7E:B1:15:A0:8C:CD:9E:CB:4A:61:79:3C:
43:94:6D:A8:02:21:00:8D:46:26:5C:98:07:FD:48:E6:
D3:B9:AB:14:AB:6E:C0:DF:07:59:BE:45:4D:32:00:B3:
0F:45:2A:2B:A9:56:B7
Signed Certificate Timestamp:
Version : v1 (0x0)
Log ID : 5C:DC:43:92:FE:E6:AB:45:44:B1:5E:9A:D4:56:E6:10:
37:FB:D5:FA:47:DC:A1:73:94:B2:5E:E6:F6:C7:0E:CA
Timestamp : Jul 9 05:54:44.282 2020 GMT
Extensions: none
Signature : ecdsa-with-SHA256
30:44:02:20:32:51:C1:88:D9:0F:E8:28:3E:AA:DB:24:
1B:BE:E9:69:A8:82:A9:9D:D9:90:95:42:06:B4:75:CE:
F3:A7:F7:9B:02:20:33:16:20:67:BA:68:D1:DE:F1:B0:
B9:C9:DC:16:CD:62:77:EC:BC:F1:1E:2C:46:A2:D6:50:
AA:DC:64:22:74:89
Key Usage: Digital Signature
Basic Constraints: CA:FALSE
Subject Alternative Name: DNS:*.indiehackers.com
DNS:indiehackers.com
DNS:sni.cloudflaressl.com
Technical

DNS Lookup

HTTP Response Headers

HTTP-Code: HTTP/1.1 200 OK
Date: 19th April, 2021
Content-Type: text/html; charset=UTF-8
Cache-Control: public, max-age=0
Server: cloudflare
Connection: keep-alive
Set-Cookie: *
Last-Modified: 19th April, 2021
Vary: Accept-Encoding
X-Powered-By: Express
CF-Cache-Status: DYNAMIC
cf-request-id: 098c78dc0800005b4ce3282000000001
Expect-CT: max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
Report-To: {"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report?s=y91dYErolyMU1AkG7ErP7HkIEimc0UnqwHE1%2BNrVJ5O02u3PREvxsL6utqHrUFdfNyLWXncBub4iepCh%2FpSRJayA%2FFiLE9%2F4qWhuc5Z9lvHvirawrw%3D%3D"}],"max_age":604800,"group":"cf-nel"}
NEL: {"report_to":"cf-nel","max_age":604800}
CF-RAY: 64275da66f3d5b4c-IAD

Whois Lookup

Created: 2nd April, 2015
Changed: 3rd April, 2021
Expires: 2nd April, 2022
Registrar: GoDaddy.com, LLC
Status: clientTransferProhibited
clientUpdateProhibited
clientRenewProhibited
clientDeleteProhibited
Nameservers: adi.ns.cloudflare.com
nitin.ns.cloudflare.com
Owner State: CA
Owner Country: US
Owner Email: Select Contact Domain Holder link at https://www.godaddy.com/whois/results.aspx?domain=indiehackers.com
Admin Email: Select Contact Domain Holder link at https://www.godaddy.com/whois/results.aspx?domain=indiehackers.com
Tech Email: Select Contact Domain Holder link at https://www.godaddy.com/whois/results.aspx?domain=indiehackers.com
Full Whois: Domain Name: indiehackers.com
Registry Domain ID: 1916054638_DOMAIN_COM-VRSN
Registrar WHOIS Server: whois.godaddy.com
Registrar URL: http://www.godaddy.com
Updated Date: 2021-04-03T09:52:27Z
Creation Date: 2015-04-02T14:42:44Z
Registrar Registration Expiration Date: 2022-04-02T14:42:44Z
Registrar: GoDaddy.com, LLC
Registrar IANA ID: 146
Registrar Abuse Contact Email: abuse@godaddy.com
Registrar Abuse Contact Phone: +1.4806242505
Domain Status: clientTransferProhibited http://www.icann.org/epp#clientTransferProhibited
Domain Status: clientUpdateProhibited http://www.icann.org/epp#clientUpdateProhibited
Domain Status: clientRenewProhibited http://www.icann.org/epp#clientRenewProhibited
Domain Status: clientDeleteProhibited http://www.icann.org/epp#clientDeleteProhibited
Registrant Organization:
Registrant State/Province: CA
Registrant Country: US
Registrant Email: Select Contact Domain Holder link at https://www.godaddy.com/whois/results.aspx?domain=indiehackers.com
Tech Email: Select Contact Domain Holder link at https://www.godaddy.com/whois/results.aspx?domain=indiehackers.com
Admin Email: Select Contact Domain Holder link at https://www.godaddy.com/whois/results.aspx?domain=indiehackers.com
Name Server: ADI.NS.CLOUDFLARE.COM
Name Server: NITIN.NS.CLOUDFLARE.COM
DNSSEC: unsigned
URL of the ICANN WHOIS Data Problem Reporting System: http://wdprs.internic.net/
>>> Last update of WHOIS database: 2021-04-19T16:03:59Z <<<

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

TERMS OF USE: The data contained in this registrar's Whois database, while believed by the
registrar to be reliable, is provided "as is" with no guarantee or warranties regarding its
accuracy. This information is provided for the sole purpose of assisting you in obtaining
information about domain name registration records. Any use of this data for any other purpose
is expressly forbidden without the prior written permission of this registrar. By submitting
an inquiry, you agree to these terms and limitations of warranty. In particular, you agree not
to use this data to allow, enable, or otherwise support the dissemination or collection of this
data, in part or in its entirety, for any purpose, such as transmission by e-mail, telephone,
postal mail, facsimile or other means of mass unsolicited, commercial advertising or solicitations
of any kind, including spam. You further agree not to use this data to enable high volume, automated
or robotic electronic processes designed to collect or compile this data for any purpose, including
mining this data for your own personal or commercial purposes. Failure to comply with these terms
may result in termination of access to the Whois database. These terms may be subject to modification
at any time without notice.

Nameservers

Name IP Address
adi.ns.cloudflare.com 108.162.192.56
nitin.ns.cloudflare.com 172.64.33.215
Related

Subdomains

Similar Sites

Organic Search (US) Competitors

Backlink Competitors

Sites with the same domain name

Sites hosted on the same IP address

Domain Valuation Snoop Score
$2,494 USD 2/5
$996 USD 2/5