Infrastructure
· 9 checks — DNS, redirects, IPv6, crawlability, URL variants, and domain intelligence rolled into one auditable list.CCrawlabilityActionrobots.txt present, sitemap with 0 URLsREVIEW
Search engines may not be able to parse the sitemap. Fix XML validation errors.
An unparseable sitemap is silently ignored by Google — the URLs it advertises are never queued for crawl.
Learn more ▾ ▴
Google's sitemap parser is strict about XML validity. A single unescaped `&` or unclosed tag invalidates the whole file. Run your sitemap through a validator (Search Console's Sitemaps report flags it) and fix the offending entry. Most generators escape correctly; mistakes usually come from manually-written entries.
Source: sitemaps.org / Google Search Central
An empty sitemap provides no value. Add <url> entries for your pages.
An empty sitemap signals 'no content to index' to Google — actively harmful versus having no sitemap at all.
Learn more ▾ ▴
Google compares URLs in the sitemap against URLs it has crawled. An empty sitemap on a site with thousands of pages signals abandonment. Either populate it correctly (most CMSes auto-generate) or delete the file and let Google crawl normally.
Source: Google Search Central / sitemaps.org
Add a 'Sitemap:' directive to robots.txt so search engines can discover your sitemap.
robots.txt omits Sitemap: directive — crawlers must fetch /sitemap.xml by convention; reliable but missing the explicit hint.
Source: sitemaps.org
<!DOCTYPE html><html lang="en-US" data-country-code="nl"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><title>Finally, AI for the entire software lifecycle.</title><link rel="preconnect" href="https://cdn.cookielaw.org"><link rel="preconnect" href="https://geolocation.onetrust.com"><script src="https://client-registry.mutinycdn.com/personalize/client/c18972324098ea25.js" async type="text/plain" class="optanon-category-C0004"></script><script hid="gtagConsent" defer>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
const defaultConsents = window.dataLayer.filter(item => item.length && Array.from(item).indexOf('default') >= 0);
if(defaultConsents.length <= 2) {
gtag('consent', 'default', {
'analytics_storage': 'granted',
'ad_storage': 'granted',
'ad_user_data': 'granted',
'functionality_storage': 'granted',
'ad_personalization': 'granted',
'wait_for_update': 500
});
gtag('consent', 'default', {
'analytics_storage': 'denied',
'ad_storage': 'denied',
'ad_user_data': 'denied',
'functionality_storage': 'denied',
'ad_personalization': 'denied',
'region': [
'AT','BE','BG','HR','CY','CZ','DK','EE','FI','FR','DE','GR','HU','IE','IT','LV','LT','LU','MT','NL','PL','PT','RO','SK','SI','ES','SE','IS','LI','NO','RU','GB','PE','CO','KR','CA-QC'
],
'wait_for_update': 500
});
}
window.geofeed = (options) => {
dataLayer.push({
'event': 'OneTrustCountryLoad',
'oneTrustCountryId': options.country.toString(),
'oneTrustStateId': options.state?.toString()
});
}
</script><script id="oneTrustAutoBlocking" src="https://cdn.cookielaw.org/consent/7f944245-c5cd-4eed-a90e-dd955adfdd08/OtAutoBlock.js" type="text/javascript"></script><script id="oneTrustSDK" src="https://cdn.cookielaw.org/scripttemplates/otSDKStub.js" type="text/javascript" data-domain-script="7f944245-c5cd-4eed-a90e-dd955adfdd08"></script><script id="oneTrustGeolocation" src="https://geolocation.onetrust.com/cookieconsentpub/v1/geo/location/geofeed" type="text/javascript"></script><script id="mutiny" defer>
(function () {
var a = (window.mutiny = window.mutiny || {});
if (!window.mutiny.client) {
a.client = { _queue: {} };
var b = ['identify', 'trackConversion'];
var c = [].concat(b, ['defaultOptOut', 'optOut', 'optIn']);
var d = function factory(c) {
return function () {
for (var d = arguments.length, e = new Array(d), f = 0; f < d; f++) {
e[f] = arguments[f];
}
a.client._queue[c] = a.client._queue[c] || [];
if (b.includes(c)) {
return new Promise(function (b, d) {
a.client._queue[c].push({ args: e, resolve: b, reject: d });
});
} else {
a.client._queue[c].push({ args: e });
}
};
};
c.forEach(function (b) {
a.client[b] = d(b);
});
}
})();
</script><script src="https://cdn.optimizely.com/js/5113954737848320.js" type="text/plain" class="optanon-category-C0002"></script><script id="onetrust-initialization">
function OptanonWrapper() {
try {
setupConsentObservers();
} catch (e) {
console.error("OneTrust consent observer failed to setup", e);
}
}
function setupConsentObservers() {
// Check if onetrust and mutiny is active and opt in if right group is active
if (OnetrustActiveGroups && window.mutiny) {
if (OnetrustActiveGroups.includes('C0002') || OnetrustActiveGroups.includes('C0004')) {
window.mutiny.client.optIn();
}
}
if (OneTrust) {
OneTrust.OnConsentChanged((consentEvent) => {
const mutinyEnabled = consentEvent.detail.includes('C0002') || consentEvent.detail.includes('C0004');
if (mutinyEnabled && window.mutiny) {
window.mutiny.client.optIn();
} else if (!mutinyEnabled) {
window.mutiny.client.optOut();
}
});
}
}
</script><style>.grid-wrapper[data-v-e141c307]{display:flex;flex-direction:column;overflow-x:clip}.grid-wrapper[data-v-e141c307]>*{max-width:100%;min-width:0}.banner[data-v-e141c307]{order:0}@media screen and (min-width:768px){.banner[data-v-e141c307]{order:-1}}</style><style>@media(max-width:1025px){:lang(en) .be-nav-navigation-mobile[data-v-b39ff675]{display:block}}@media(min-width:1026px){:lang(en) .be-nav-navigation-desktop[data-v-b39ff675]{display:block}}@media(max-width:1200px){:not(:lang(en)) .be-nav-navigation-mobile[data-v-b39ff675]{display:block}}@media(min-width:1201px){:not(:lang(en)) .be-nav-navigation-desktop[data-v-b39ff675]{display:block}}#navigation[data-v-b39ff675]{background:#fff;left:0;min-height:84px;position:sticky;right:0;top:0;z-index:1025}@media(min-width:576px)and (max-width:1024px){#navigation[data-v-b39ff675]{min-height:80px}}.be-nav-navigation-mobile[data-v-b39ff675]{border:none;display:none}.be-nav-navigation-mobile[data-v-b39ff675] *,.be-nav-navigation-mobile[data-v-b39ff675] :after,.be-nav-navigation-mobile[data-v-b39ff675] :before{box-sizing:border-box}.be-nav-navigation-desktop[data-v-b39ff675]{display:none}.be-nav-navigation-desktop[data-v-b39ff675] *,.be-nav-navigation-desktop[data-v-b39ff675] :after,.be-nav-navigation-desktop[data-v-b39ff675] :before{box-sizing:border-box}</style><style>.be-nav-navigation[data-v-4759e43c]{backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);background-color:#fff;padding:4px 24px 16px}.be-nav-navigation[data-v-4759e43c] *,.be-nav-navigation[data-v-4759e43c] :after,.be-nav-navigation[data-v-4759e43c] :before{box-sizing:border-box}.be-nav-navigation-desktop[data-v-4759e43c]{overflow-x:clip}@media screen and (min-width:1025px)and (max-width:1200px){.be-nav-navigation[data-v-4759e43c]{display:flex;justify-content:center;padding:4px 24px 16px}}.be-nav-navigation__login-popover[data-v-4759e43c]{display:flex;flex-direction:column;min-width:240px;padding:0 24px}.be-nav-navigation__link[data-v-4759e43c]{color:#7759c2}.be-nav-navigation__link[data-v-4759e43c]:hover{text-decoration:underline}.be-nav-navigation__link[data-v-4759e43c]:last-of-type{padding-bottom:0}@media screen and (min-width:1025px)and (max-width:1200px){.be-nav-navigation__search[data-v-4759e43c]{margin-right:0}}.be-nav-navigation__search svg[data-v-4759e43c]{color:#74717a;transition:color .3s ease-in-out}.be-nav-navigation__search svg[data-v-4759e43c]:hover{color:#45424d}.be-nav-navigation-bottom[data-v-4759e43c]{align-items:center;display:flex;justify-content:space-between;padding-top:16px;width:100%}.be-nav-navigation-bottom.centered[data-v-4759e43c]{justify-content:center}.be-nav-navigation-bottom__cta--accent[data-v-4759e43c]{background-color:#e24329!important;border-color:#e24329!important;color:#fff!important}.be-nav-navigation-bottom__cta--accent[data-v-4759e43c]:hover{background-color:#fff!important;color:#e24329!important}.be-nav-navigation-bottom__cta--steel[data-v-4759e43c]{background:linear-gradient(93.83deg,#000 7.27% 105.33%)!important;overflow:hidden;position:relative}.be-nav-navigation-bottom__cta--steel[data-v-4759e43c]:after{background-image:linear-gradient(90deg,transparent,hsla(0,0%,100%,.5),transparent);content:"";height:100%;left:-200%;position:absolute;top:0;transform:skew(-20deg);width:200%}.be-nav-navigation-bottom__cta--steel[data-v-4759e43c]:hover{background-color:#fff!important;color:#fff!important}.be-nav-navigation-bottom__cta--steel[data-v-4759e43c]:hover:after{animation:shine-4759e43c .8s ease-in-out}.be-nav-navigation-bottom .navigation-bottom-left[data-v-4759e43c]{align-items:center;color:#74717a!important;display:flex}.be-nav-navigation-bottom .navigation-bottom-left ul[data-v-4759e43c]{white-space:nowrap}.be-nav-navigation-bottom .navigation-bottom-left--no-search[data-v-4759e43c]{margin-right:40px}.be-nav-navigation-bottom .navigation-item[data-v-4759e43c]{display:inline-block}.be-nav-navigation-bottom .navigation-item[data-v-4759e43c]:not(:last-child){margin-right:16px}@media screen and (min-width:1025px)and (max-width:1200px){.be-nav-navigation-bottom .navigation-item[data-v-4759e43c]:not(:last-child){margin-right:8px}}.be-nav-navigation-bottom .navigation-bottom-right[data-v-4759e43c]{align-items:center;display:flex}@media screen and (min-width:1025px)and (max-width:1200px){.be-nav-navigation-bottom .navigation-bottom-right .slp-btn[data-v-4759e43c]:not(:first-child){margin-right:8px}}.v-popper__arrow-container[data-v-4759e43c]{display:none!important}.v-popper__popper[data-v-4759e43c]{outline:none!important}@keyframes shine-4759e43c{to{left:200%}}</style><style>.navigation-dropdown[data-v-96fa6d1a]{display:inline-block;margin-bottom:-16px;padding-bottom:16px;position:relative}.navigation-dropdown:hover .navigation-dropdown__popover[data-v-96fa6d1a]{opacity:1;visibility:visible}.navigation-dropdown:hover .navigation-dropdown__button[data-v-96fa6d1a]{color:#171321}.navigation-dropdown:hover .navigation-dropdown__button svg[data-v-96fa6d1a]{display:block}.navigation-dropdown__button[data-v-96fa6d1a]{color:#74717a;position:relative;transition:color .3s ease-in-out}.navigation-dropdown__button[data-v-96fa6d1a]:hover{color:#171321}.navigation-dropdown__button:hover svg[data-v-96fa6d1a]{display:block}.navigation-dropdown__button svg[data-v-96fa6d1a]{bottom:-4px;display:none;left:calc(50% - 8px);position:absolute}.navigation-dropdown__popover[data-v-96fa6d1a]{background-color:#fff;border:1px solid #d1d0d3;border-radius:4px;box-shadow:0 8px 50px -16px #d1d0d280;display:flex;flex-wrap:wrap;min-width:170px;position:absolute;top:50px;transition:visibility 0s,opacity .15s ease-in-out;z-index:1}.navigat
BTLS Certificate Expiry & Recommendations75 days until leaf cert expires — 3 issues to addressREVIEW
Certificate validity
Recommended actions
- Enable HSTS: Strict-Transport-Security: max-age=31536000; includeSubDomains
- Enable DNSSEC on your domain for DNS spoofing protection
- Enable OCSP stapling on your TLS server to remove a CA roundtrip and protect user privacy
BCDN & DeliveryCloudflareREVIEW
A+DNS Records2 A records, 5 ms lookupPASS
| A | 188.114.97.0, 188.114.96.0 |
| AAAA | 2a06:98c1:3120::, 2a06:98c1:3121:: |
| CNAME | — |
| NS | maxim.ns.cloudflare.com, nia.ns.cloudflare.com |
| MX | 10 mxa.mailgun.org 10 mxb.mailgun.org |
| TXT | _globalsign-domain-verification=4azHJ7gL04Dr8r2VR0txu7OrWg7uZpU6v7LOHVP1b3 _globalsign-domain-verification=pZoAzSCaowUllt7Bx5ug4ZHpnHBzvETtlWKa0AousJ |
| CAA | Lookup not available with standard resolver |
CAA record lookup requires a specialized DNS resolver. This check will be available in a future update.
Informational: CAA (Certification Authority Authorization) records weren't checked in this scan.
SPF helps prevent email spoofing. Add a TXT record starting with 'v=spf1'.
Without SPF, receiving servers can't validate sending IPs — your domain is easier to spoof in phishing.
Learn more ▾ ▴
SPF complements DMARC. Both should be published. SPF records list authorized sending IPs (e.g., `v=spf1 include:_spf.google.com ~all` for Google Workspace). After publishing, verify in Google Postmaster Tools or mxtoolbox.
Source: RFC 7208 (SPF)
ARedirect Chain1 redirect(s), 93 ms totalPASS
https://gitlab.io
19 ms · HTTP/1.1
https://about.gitlab.com/
74 ms · HTTP/1.1 FINAL
| # | URL | Status | Time | Protocol | Server |
|---|---|---|---|---|---|
| 1 | https://gitlab.io | 301 | 19 ms | HTTP/1.1 | cloudflare |
| 2 | https://about.gitlab.com/ | 200 | 74 ms | HTTP/1.1 | cloudflare |
See the visual redirect chain in the HTTP Probe tab →
A+IPv6 ReadinessIPv6 reachable (1 ms)PASS
A+URL Variantswww/non-www, trailing slash, HTTP→HTTPSPASS
www / non-www
Preferred variant: non-www
HTTP → HTTPS
Consistent
A+Domain Intelligencegitlab.io — via Gandi SAS, 13 years, 10 months oldPASS
68 days
August 22, 2026
75 days
Issued by Google Trust Services
13 years, 10 months
Registered August 22, 2012
Status unknown
Protects against DNS spoofing
Unknown
2a06:98c1:3121::
Gandi SAS
Expiry timeline
Recommended actions
- Renew the domain or enable auto-renewal to prevent accidental expiry
Domain cannot be transferred without explicit unlock from the registrar. This protects against unauthorized transfers.
Registrar lock (clientTransferProhibited et al.) prevents unauthorized domain transfers — strongest defense against domain hijacking.
Source: ICANN / domain-security best practice