HTTP Headers Analyzer

Key Response Headers

WordPress Fingerprinting

Security & Privacy Score

What Are HTTP Response Headers & Why Do They Matter?

Every time a browser requests a webpage, the server responds with HTTP headers \u2014 invisible metadata that controls how your content is displayed, cached, and secured. Think of them as the “packing slip” that accompanies every package delivered to your visitors.

Most WordPress site owners never check their headers. This is a mistake. Poorly configured headers can:

  • Expose security vulnerabilities \u2014 Missing HSTS, CSP, or X-Frame-Options headers leave your site open to attacks like clickjacking, XSS, and man-in-the-middle interception.
  • Hurt page speed \u2014 Without proper Cache-Control or Expires headers, browsers re-download the same resources on every visit, wasting bandwidth and increasing load times.
  • Reveal sensitive information \u2014 Your server type (nginx/Apache), WordPress version number, and plugin details can leak through headers, giving attackers a roadmap.

This free HTTP Headers Analyzer is purpose-built for WordPress sites. Enter any URL above to instantly check 14+ critical response headers, detect WordPress fingerprinting risks, and receive an actionable security score \u2014 all in under 3 seconds.

What Does This HTTP Headers Checker Analyze?

Key Response Headers

Inspects 14+ critical headers including Server, Cache-Control, Security headers (HSTS, X-Frame-Options, CSP), and more.

WordPress Fingerprinting

Detects exposed WP version, REST API endpoints, XML-RPC, oEmbed, Emoji scripts, Google Fonts, Dashicons, RSS feeds, and more.

Security Score

Calculates an A-F grade based on header configuration. Shows passes, warnings, and actionable issues at a glance.

 

\u00a0

WordPress Security Headers: Complete Guide

Security response headers are your first line of defense against common web attacks. Here’s what each one does and how to configure it for WordPress.

Strict-Transport-Security (HSTS)

What it does: Forces browsers to use HTTPS exclusively for your domain, preventing protocol downgrade attacks and cookie hijacking.

Recommended value:

Strict-Transport-Security: max-age=31536000; includeSubDomains; preload

How to add in WordPress:

  • Use a plugin like Really Simple SSL or WP Rocket (both add it automatically with HTTPS enabled).
  • Add to your Nginx config: add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
  • Apache: add to .htaccess: Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains"

X-Frame-Options

What it does: Prevents your site from being embedded in iframes on other domains, protecting against clickjacking attacks.

Recommended values:

  • SAMEORIGIN \u2014 Allows framing by same-origin pages only (recommended for most sites)
  • DENY \u2014 Prevents all framing (most restrictive)

WordPress implementation:

// Add to functions.php or use a code snippets plugin
add_action( 'send_headers', function() {
    header( 'X-Frame-Options: SAMEORIGIN' );
} );

Pro tip: Use Perfmatters to toggle this with one click \u2014 no code needed.

X-Content-Type-Options: nosniff

What it does: Tells browsers not to “sniff” or guess the content type of a file beyond the declared MIME type. Prevents MIME-type sniffing attacks.

Recommended value: X-Content-Type-Options: nosniff

Nginx: add_header X-Content-Type-Options "nosniff" always;

.htaccess (Apache): Header set X-Content-Type-Options "nosniff"

Content-Security-Policy (CSP)

What it does: A powerful whitelist that controls which resources the browser is allowed to load. The single most effective header against Cross-Site Scripting (XSS) attacks.

Basic example for WordPress:

Content-Security-Policy:
  default-src 'self';
  script-src 'self' 'unsafe-inline' 'unsafe-eval' https://stats.wp.com;
  style-src 'self' 'unsafe-inline' https://fonts.googleapis.com;
  font-src 'self' https://fonts.gstatic.com;
  img-src 'self' data: https:;
  frame-src 'self' https://www.youtube.com;

Warning: A misconfigured CSP can break your site. Start with Content-Security-Policy-Report-Only mode to test before enforcing.

Referrer-Policy

What it does: Controls how much referrer information is sent when users click links leaving your site.

Recommended value: Referrer-Policy: strict-origin-when-cross-origin

Permissions-Policy

What it does: Controls which browser features (camera, microphone, geolocation) your site can access.

Recommended for most WordPress sites:

Permissions-Policy: camera=(), microphone=(), geolocation=(), payment=()

Cache-Control & Browser Caching: Speed Up Your WordPress Site

Proper caching headers are the #1 easiest way to improve your PageSpeed score and reduce server load.

Cache-Control vs Expires: Which Should You Use?

Aspect Cache-Control Expires
Type Relative (max-age in seconds) Absolute (specific date/time)
Standard HTTP/1.1 (modern) HTTP/1.0 (legacy)
Flexibility High \u2014 works with CDN Low \u2014 exact date calculation
Use Cache-Control as primary. Set both for maximum compatibility.

Recommended Cache-Control Values for WordPress

Resource Type Cache-Control Value Rationale
Static assets (CSS, JS, images) public, max-age=31536000, immutable Cache for 1 year
HTML pages public, max-age=3600, s-maxage=604800 Browser 1hr, CDN 1 week
API responses / JSON no-cache, must-revalidate Always validate freshness
Private content private, no-store Never cache

Nginx Configuration for WordPress Caching

location ~* .(css|js|png|jpg|jpeg|gif|ico|svg|woff|woff2|ttf|eot)$ {
    expires 365d;
    add_header Cache-Control "public, immutable";
}

location ~ .php$ {
    add_header Cache-Control "no-cache, must-revalidate";
}

Hide Your WordPress Fingerprint: Complete Checklist

WordPress leaves traces everywhere \u2014 version numbers, API endpoints, generator tags, emoji scripts. Attackers use these to target known vulnerabilities. Here’s how to clean up your digital footprint.

1. Remove WordPress Version Number

Risk: High \u2014 reveals exact WP version for exploit targeting

remove_action( 'wp_head', 'wp_generator' );
add_filter( 'the_generator', '__return_empty_string' );

Easier way: Perfmatters disables this with a single toggle.

2. Disable WordPress Emoji Scripts

Performance cost: ~10KB + 1 DNS lookup + 1 HTTP request per page

remove_action( 'wp_head', 'print_emoji_detection_script', 7 );
remove_action( 'wp_print_styles', 'print_emoji_styles' );

3. Disable oEmbed Discovery

Adds 4 extra HTTP requests on every page

remove_action( 'wp_head', 'wp_oembed_add_discovery_links' );
remove_action( 'wp_head', 'wp_oembed_add_host_js' );

4. Restrict REST API Access

Risk: Medium \u2014 exposes /wp-json/ endpoint with user data

add_filter( 'rest_authentication_errors', function( $result ) {
    if ( ! is_user_logged_in() && null === $result ) {
        return new WP_Error( 'rest_unauthorized', 'REST API restricted.', array( 'status' => 401 ) );
    }
    return $result;
} );

5. Disable XML-RPC & RSD Link

Risk: High \u2014 XML-RPC is the #1 vector for WordPress brute-force DDoS attacks

remove_action( 'wp_head', 'rsd_link' );
add_filter( 'xmlrpc_enabled', '__return_false' );

6. Remove WLW Manifest & Shortlink

Low risk, easy wins

remove_action( 'wp_head', 'wlwmanifest_link' );
remove_action( 'wp_head', 'wp_shortlink_wp_head' );

7. Disable Dashicons on Frontend

Saves ~30KB CSS on frontend

add_action( 'wp_enqueue_scripts', function() {
    if ( ! is_admin_bar_showing() ) {
        wp_deregister_style( 'dashicons' );
    }
} );

8. Host Google Fonts & Analytics Locally

Third-party DNS lookups block rendering; GDPR compliance issues in EU

Solutions: Perfmatters (built-in local hosting), WP Rocket (font hosting), or OMGF plugin.

Pro Tip: Don’t Edit functions.php Directly. Pasting code into your theme’s functions.php gets wiped out on theme updates. Use the Code Snippets plugin, Perfmatters Code Snippet Manager, or Must-Use (MU) plugins instead.

Frequently Asked Questions

What do PASS, WARN, and RISK mean in the results?

  • PASS (green) \u2014 The header is properly configured and follows best practices.
  • WARN (yellow) \u2014 The header exists but could be stronger, or a non-critical header is missing.
  • RISK (red) \u2014 A critical security header is missing, or a dangerous practice was detected.
  • INFO (blue) \u2014 Informational only. No action needed.

How is the Security & Privacy Score calculated?

The score (0\u2013100) is based on weighted analysis: Security Headers (60%), Information Leakage (25%), Performance Wastage (15%).

Grade scale: A (\u226590), B (\u226575), C (\u226560), D (\u226540), F (<40).

How is this different from running curl -I?

Generic HTTP header tools only show raw header values. Our analyzer provides WordPress-specific analysis, actionable scoring, fingerprint detection, and requires no CLI.

Does checking my headers here log or store my data?

No. Our tool performs a real-time HEAD request and analyzes the response immediately. Results are not stored in any database.

Can I fix failing headers without coding knowledge?

Absolutely! You can fix most header issues using plugins: Perfmatters (security headers + WP cleanup), WP Rocket (caching headers), or Really Simple SSL (HSTS).

Recommended Tools to Improve Your Scores

Editor’s Pick

Perfmatters

Lightweight WordPress performance plugin. One-click toggles to disable emojis, hide WP version, remove REST API exposure, set security headers, local-host Google Fonts/GA, and 50+ more optimizations. Zero front-end overhead.

Learn More \u2192

Best for Caching

WP Rocket

The most user-friendly caching plugin for WordPress. Automatically sets Cache-Control headers, enables browser caching, integrates with CDNs, lazy-loads images/videos, minifies CSS/JS, and handles database optimization.

Learn More \u2192

Best Theme

GeneratePress

The fastest, lightest-weight WordPress theme available. Clean semantic markup, no bloat, perfect Core Web Vitals scores out of the box. Used by RocketWP and trusted by 600,000+ websites worldwide.

Learn More \u2192

Read Our Posts