--- name: ssl-https description: > HTTPS implementation and SSL/TLS auditing: certificate types, mixed content detection and fixing, HTTPS redirect chains, HSTS configuration, and security headers. Use when a site has mixed content warnings, HTTP URLs, certificate issues, or when migrating from HTTP to HTTPS. --- # SSL/HTTPS — Technical SEO > HTTPS is a confirmed Google ranking signal since 2014. More importantly, > mixed content blocks resource loading and can cause LCP failures. --- ## Certificate types | Type | Validation | Issuance time | When to use | |------|-----------|--------------|-------------| | DV (Domain Validation) | Domain control only | Minutes | Blogs, informational sites | | OV (Organization Validation) | Domain + organization | 1-3 days | Business sites | | EV (Extended Validation) | Full legal verification | 1-7 days | Banks, e-commerce (less relevant today) | | Wildcard (`*.domain.com`) | Covers all subdomains | Minutes–days | Sites with multiple subdomains | | SAN (Subject Alternative Names) | Multiple domains in one cert | Minutes–days | Multi-domain hosting | **Let's Encrypt:** Free DV certificate, auto-renewing, supported by most hosting panels (cPanel, Plesk, Hostinger hPanel). Sufficient for most SEO client sites. ### Certificate expiration An expired certificate causes: - Browser security warnings that block all users - Googlebot may stop crawling the site - All Google rankings at risk of rapid drop due to inaccessibility **Prevention:** Enable auto-renewal in the hosting panel. Most hosts renew Let's Encrypt automatically. Verify auto-renewal is active, not just installed. **Monitoring:** Set a calendar reminder 30 days before expiry, or use uptime monitoring tools that alert on certificate expiry (UptimeRobot, Better Uptime). --- ## HTTPS redirect — correct configuration A site migrated to HTTPS must redirect all HTTP traffic to HTTPS with 301s. ### Correct redirect chain ``` http://domain.com/page/ → 301 → https://domain.com/page/ ✓ http://www.domain.com/page/ → 301 → https://domain.com/page/ ✓ (if non-www is canonical) https://www.domain.com/page/ → 301 → https://domain.com/page/ ✓ ``` ### Redirect chain problems **Too many redirects:** ``` http://domain.com/ → 301 → https://domain.com/ → 301 → https://www.domain.com/ ``` Every redirect in the chain adds latency and dilutes link equity (historically). Reduce to a single redirect hop. **Redirect loop:** ``` http://domain.com/ → 301 → https://domain.com/ → 301 → http://domain.com/ ``` Often caused by a server that redirects to HTTPS but an application that redirects back to HTTP. Check WordPress `siteurl` setting and `.htaccess`. ### WordPress — enforce HTTPS ```apache # .htaccess — redirect all HTTP to HTTPS RewriteEngine On RewriteCond %{HTTPS} off RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L] ``` Also verify in WordPress > Settings > General: - WordPress Address (URL): `https://domain.com` - Site Address (URL): `https://domain.com` After changing to HTTPS in WordPress settings, regenerate the sitemap and flush all caches. ### Nginx — enforce HTTPS ```nginx server { listen 80; server_name domain.com www.domain.com; return 301 https://domain.com$request_uri; } ``` --- ## Mixed content Mixed content occurs when an HTTPS page loads resources (images, scripts, CSS, fonts, iframes) over HTTP. This is one of the most common post-migration issues. ### Types of mixed content **Active mixed content (blocked by browsers):** - HTTP scripts (`