How to monitor SSL certificate expiration for WordPress sites
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.
- 01List every HTTPS endpoint
- 02Check the current expiry date
- 03Use the manual route for few sites
- 04Confirm automatic renewal
- 05Test the whole HTTPS path
- 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.
Let MainWP SSL Monitor Extension do it
Centralized SSL expiry alerts for multiple WordPress sites, ideal when you manage certificates through a MainWP dashboard.
Sources
- developer.wordpress.org /advanced-administration/security/logging-in/?utm_source=ope…
- docs.openssl.org /master/man1/openssl-x509/?utm_source=openai
- eff-certbot.readthedocs.io /en/stable/man/certbot.html?utm_source=openai
- developers.cloudflare.com /ssl/troubleshooting/mixed-content-errors/?utm_source=openai
- mainwp.com /kb/mainwp-ssl-monitor-extension?utm_source=openai
- 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.