Directory listing enabled
Folders the server lists the contents of instead of refusing. Everything ever uploaded there is browsable by anyone who guesses the path.
When a folder has no index file, many servers generate a page listing everything inside it — Apache with Options +Indexes, nginx with autoindex on. That turns an uploads or assets folder into a browsable catalogue: old exports, invoices, drafts and anything else ever placed there but never linked. Search engines can index such listings too, so the files may surface in search results.
How SiteScan checks
During the crawl, the scan notes a folder that the site's own images, scripts or stylesheets are served from (for example /wp-content/uploads/2024/05/ or /assets/) and requests that folder address directly. If the answer is a 200 whose page title begins with "Index of" or "Directory listing for" — the titles Apache, nginx and most built-in servers use — the row turns red and names the folder. A 403, a 404 or an ordinary page means the server declined, and the row reads "Nothing found". Only one folder is probed, so a clean result does not prove that every folder is closed.
How to fix it
Switch listings off globally: Options -Indexes in Apache or .htaccess, autoindex off; in nginx (its default). An empty index.html in the folder also works. Then review what was reachable and remove anything sensitive — see files left behind.
See this check on your own site
Run a free scan: the report shows this row for your domain along with the other checks of the site audit.
More in “Exposure”
What SiteScan checks
TLS certificate
- TLS certificate expiry
- Outdated TLS versions (TLS 1.0/1.1)
- TLS certificate chain
- TLS certificate issuer
- Certificate signature algorithm
Domain registration
- Domain registration expiry
- Registered domain name
- Domain registrar
- Domain registration date
- Domain last updated date
- Domain status codes (EPP)
- Domain transfer lock
- Registrar abuse contact
- RDAP and WHOIS data source
Indexing
- robots.txt file
- CSS and JS blocked in robots.txt
- XML sitemap
- Sitemap index file
- Off-domain URLs in the sitemap
- Sitemap lastmod dates
- Broken URLs in the sitemap
- RSS and Atom feed
Addresses & redirects
Security headers
- HTTP security headers and grade
- Strict-Transport-Security (HSTS) header
- Content-Security-Policy (CSP) header
- X-Content-Type-Options: nosniff
- X-Frame-Options and clickjacking
- Referrer-Policy header
- Permissions-Policy header
- HSTS preload list
- CORS and cross-origin reads
- HTTP TRACE method
Delivery & reputation
- Cache-Control header for HTML
- ETag and Last-Modified revalidation
- HTTP/3 and QUIC support
- Server version disclosure in headers
- DNS blocklist (DNSBL) check
Internal links
Exposure
- Exposed sensitive files (.env, .git, backups)
- Directory listing enabled
- Public JavaScript source maps
- Exposed WordPress endpoints
Well-known files
- security.txt file
- llms.txt for AI assistants
- llms-full.txt file
- ads.txt authorized sellers file
- humans.txt file
- Well-known change-password URL
DNS & email
- MX records (mail servers)
- SPF record
- DMARC record and policy
- DNSSEC signing
- CAA record
- Nameserver redundancy
- IPv6 support (AAAA record)
- MTA-STS policy
- TLS-RPT reporting record
- BIMI record (brand logo in email)
- Wildcard DNS record
- Dangling CNAME and subdomain takeover
Privacy & consent
- Analytics and tracking scripts
- Cookie consent banner
- Privacy policy link
- Terms of service link
- Imprint (Impressum)
- Accessibility statement
Core Web Vitals
- Lighthouse performance score
- Largest Contentful Paint (LCP)
- Cumulative Layout Shift (CLS)
- Interaction to Next Paint (INP)
- CrUX field data vs lab data