Skip to content
GPLWP Guides

How to monitor SSL certificate expiration for WordPress sites

Security Time About 20 minutes for one site, or 45 minutes for several sites 6 steps Updated 1 Nov 2026

SECURITY
The short answer

WordPress does not normally monitor SSL expiry from its own settings. Check the certificate served by each public domain, verify that your host or Certbot renews it automatically, and add alerts before expiry; for several sites, use a central monitoring dashboard.

The route
  1. 01List every HTTPS endpoint
  2. 02Check the current expiry date
  3. 03Use the manual route for few sites
  4. 04Confirm automatic renewal
  5. 05Test the whole HTTPS path
  6. 06Use a central dashboard

What you need

  • A WordPress site using HTTPS
  • Access to the hosting or CDN control panel
  • The domain names and subdomains that need checking
  • An email address for expiry alerts

List every HTTPS endpoint

Write down the exact hostnames visitors use, including example.com, www.example.com, staging domains, shop subdomains, and any separate mail or API hostnames. A certificate can be valid for one hostname while missing another.

Check the public endpoint, not only the certificate file stored on the server. If HTTPS ends at a CDN, load balancer, or hosting proxy, that service may be the one serving the certificate. Conflicting SSL or redirect settings between WordPress, the host, a CDN, DNS proxy, Nginx, or Apache are common causes of failure.

Check the current expiry date

Open each HTTPS address in a browser, select the padlock or connection information, and view the certificate details. Record the expiration date, issuer, subject, and the hostnames covered by the certificate.

For a server-side check, use OpenSSL from a terminal: openssl s_client -connect example.com:443 -servername example.com /dev/null | openssl x509 -noout -dates -issuer -subject. The -servername option matters when several sites share one server, and OpenSSL can display the certificate start and expiry dates.

Use the manual route for few sites

For one or two sites, a spreadsheet and a recurring calendar reminder can be enough. Record each hostname, expiry date, renewal method, responsible person, and a reminder at least 30 days before expiry. Also keep a second reminder several days before the certificate expires.

This route is cheap and does not require a WordPress plugin, but it depends on someone checking the calendar. It is easy to miss a newly added subdomain, a certificate replaced by the host, or a renewal that succeeded on the server but was never deployed to the public endpoint.

Confirm automatic renewal

In your hosting panel, check that automatic SSL renewal is enabled and that the domain still passes its validation checks. On a server using Certbot, certbot certificates lists managed certificates, while certbot renew --dry-run tests whether a future renewal can complete without saving a live certificate. Certbot renewals normally reuse the existing configuration and may need a scheduled task or systemd timer.

Do not treat automatic renewal as proof that monitoring is working. After renewal, confirm that the certificate presented at the public hostname has the new expiry date. Pay particular attention after changing DNS, moving hosts, changing web servers, or putting a CDN in front of the site.

Test the whole HTTPS path

Visit the homepage, the WordPress login page, and important forms over HTTPS. Confirm that HTTP redirects to HTTPS, the certificate matches the hostname, and browsers show no certificate warning.

Check the browser console or page source for HTTP assets. Mixed content means a page served over HTTPS is requesting resources over HTTP; it can remove the secure indicator even when the certificate itself is valid. Fix the source URL, CDN setting, or WordPress content rather than assuming the certificate is at fault.

Use a central dashboard

If you manage several WordPress sites, the fast route is a central SSL monitor that checks the certificates served by each connected site and emails you before a chosen threshold. This avoids maintaining separate calendar reminders and gives you one list to review after hosting or DNS changes.

If you already use MainWP, the MainWP SSL Monitor Extension is a suitable option. In the MainWP Dashboard, install and activate it from MainWP > Extensions, then open its SSL Monitor settings, set the notification threshold, and enable automated checks. You can check all connected sites, inspect individual certificate details, and override the global settings for a particular site.

The fast route

Let MainWP SSL Monitor Extension do it

Centralized SSL expiry alerts for multiple WordPress sites, ideal when you manage certificates through a MainWP dashboard.

Get MainWP SSL Monitor Extension

Sources

  1. developer.wordpress.org /advanced-administration/security/logging-in/?utm_source=ope…
  2. docs.openssl.org /master/man1/openssl-x509/?utm_source=openai
  3. eff-certbot.readthedocs.io /en/stable/man/certbot.html?utm_source=openai
  4. developers.cloudflare.com /ssl/troubleshooting/mixed-content-errors/?utm_source=openai
  5. mainwp.com /kb/mainwp-ssl-monitor-extension?utm_source=openai
  6. letsencrypt.org /2026/02/24/rate-limits-45-day-certs?utm_source=openai

Questions

Does WordPress monitor SSL certificate expiry by itself?
No. WordPress uses HTTPS but does not normally provide a built-in dashboard for checking the expiry date of the certificate served by your domain. The certificate is usually managed by your host, web server, CDN, or load balancer. You can monitor a small number of sites manually, but several sites need a scheduled external or centralised check.
Is automatic SSL renewal enough?
No. Automatic renewal reduces manual work but does not prove that the renewed certificate was installed or that the public site is serving it. Test the renewal process, then check the certificate at the live hostname. DNS changes, CDN settings, validation failures, and web-server reload problems can leave an old certificate in service.
How far before expiry should I set an alert?
Set the first alert at least 30 days before expiry, with a second alert around seven days before expiry. Thirty days gives you time to fix DNS, validation, billing, or hosting problems. Short-lived certificates make automation important; Let’s Encrypt has also moved away from relying on expiry notification emails, so use your own monitoring.
What should I check when a certificate appears expired after renewal?
First check the public hostname in a browser or with OpenSSL, because the server may still be presenting an old certificate. Then check whether DNS points to the expected server, whether a CDN or proxy has its own certificate, and whether the web server was reloaded after renewal. Also confirm that the certificate includes the exact hostname visitors use.
Do I need a plugin to monitor several WordPress sites?
You do not need a WordPress plugin if you already have a separate SSL monitoring service or a reliable hosting platform that checks every hostname. A plugin is useful when you want the results inside an existing WordPress management dashboard. MainWP SSL Monitor is suited to MainWP users because it supports centralised checks, expiry thresholds, automated checks, and email notifications.