What Happens When an SSL Certificate Expires (And Why It Happens to Agencies)

When an SSL certificate expires, the browser does not quietly fail. It stops the visitor in their tracks. Chrome displays "Your connection is not private" with a red warning triangle. The URL bar loses the padlock and shows a broken icon. The underlying error code — ERR_CERT_DATE_INVALID — is displayed prominently. Firefox shows "Warning: Potential Security Risk Ahead." Safari displays "This Connection Is Not Private."

Most users stop there. They do not click the advanced option to proceed anyway. They close the tab. The site is, for all practical purposes, offline.

Over time, the consequences compound. Search engines continue to crawl and index sites with expired certificates but will not rank pages behind security warnings. If the expiry persists long enough, deindexing follows. For e-commerce clients, the damage to conversion is immediate.

Every one of these consequences was avoidable. The certificate had an expiry date on it from the moment it was issued.


The Timeline of an Expiry Incident

Understanding the timeline makes clear where the failure actually occurs.

T-60 days. The certificate is still valid. There are no visible symptoms anywhere on the site. This is when an automated alert should fire — enough lead time to contact the client, confirm renewal responsibility, and act without urgency.

T-30 days. Still valid, still working. A second alert threshold. At this point, if the first alert was missed or not actioned, there is still time. But the window is narrowing.

T-0. The certificate expires. HTTPS connections now return a certificate error. Browsers block access. Visitors cannot reach the site. The agency's monitoring, if it is only checking uptime (HTTP 200), may not trigger — because the site may still return a 200 if the monitoring check bypasses the certificate error, or because some CDN configurations continue to serve cached content temporarily.

T+hours. The client calls. Or emails. Or posts in the project Slack channel. This is how most agencies discover a certificate has expired — reactively, from the client, often outside business hours.

T+hours to T+day. The agency locates the hosting credentials, logs in to the hosting control panel or DNS provider, renews the certificate, waits for propagation, and verifies the fix. The total incident response time is typically four to six hours — longer if it spans a weekend, longer still if the certificate is managed in an account the agency does not directly control.

The incident is resolved. But the damage to client trust, and the unbilled hours of emergency work, remain.


Why This Keeps Happening to Agencies

SSL certificate expiry is not a new problem and it is not a difficult one to solve technically. It keeps happening in agency environments for structural reasons, not technical ones.

Monitoring on personal email that gets buried. The expiry warning from the hosting provider is sent to whoever set up the hosting account — often a developer who has since left, or a personal email address that is checked infrequently. The warning arrives, gets buried under other email, and is never actioned.

Certificates spread across multiple hosting environments. A mid-size agency portfolio typically spans shared hosting accounts, managed WordPress platforms (WP Engine, Kinsta, Flywheel), Cloudflare SSL configurations, CDN SSL termination, and the occasional server managed directly by the client's internal IT team. Each of these environments has a different certificate management interface, a different renewal workflow, and a different alert mechanism. There is no single view of all of them.

Let's Encrypt auto-renewal that silently fails on shared hosting. Let's Encrypt certificates expire every 90 days and rely on automated renewal via ACME challenges. On shared hosting environments — GoDaddy, Bluehost, HostGator — the cron job that triggers renewal can fail silently: resource limits hit, the challenge path blocked by a plugin, the hosting account suspended for an unrelated billing issue. The renewal appears scheduled. The renewal does not run. The certificate expires.

Client domains that moved hosts without transferring the monitoring configuration. A client migrates from their old hosting provider to a new one. DNS is updated. The site is live on the new host. But the SSL monitoring was configured at the old provider, pointed at the old infrastructure. The monitoring continues to show a healthy certificate — on a host the site no longer uses. The actual certificate on the new host is unmonitored.


The Hidden Cost

The direct cost of an SSL expiry incident is the time spent responding to it. Four to six hours of unplanned work, typically at a rate that exceeds whatever hourly rate is on the retainer, effectively delivering emergency support for free.

But the indirect costs are more significant:

Client trust. A client whose site goes down due to an expired certificate experienced something the agency told them they would prevent. "Your connection is not private" is not a subtle failure — it is a bright red warning on their homepage. That conversation is difficult regardless of whose fault the expiry technically was.

SEO impact. Search engines do not immediately deindex a site for an expired certificate, but they log the event. If the expiry persists — over a weekend, over a holiday period — the SEO consequences become real. For clients who budget for organic search, downtime of any kind is a cost.

Revenue loss for e-commerce clients. A client running an online shop with an expired certificate loses every visitor who encounters the warning. That is not a recoverable loss — those visitors do not come back because the certificate was fixed later. The revenue window is closed.


What Agencies Should Have in Place

The fix is not complicated. It requires consistent process, not technical sophistication.

Per-client SSL monitoring with 60/30/7-day alert thresholds. Not a single alert at 30 days, which may not leave enough time if the first action is to contact the client and wait for a response. A tiered alert schedule gives account managers time to move through the normal client communication workflow without urgency at first, and escalating urgency if the first alerts are not actioned.

Monitoring of the full subdomain surface, not just www. The primary domain is the obvious one to monitor. Staging environments, admin subdomains, API subdomains, and campaign microsites all carry certificates that expire independently. Clients discover expired staging certificates. It is not a good look.

Auto-renewal verification — confirm the renewal ran, not just that it is scheduled. The hosting platform showing "auto-renewal: enabled" is not the same as verifying the certificate has actually renewed. The verification step is checking the certificate's current expiry date after the expected renewal window — confirming the date advanced, not just that the setting is toggled on.

Ownership clarity per client. For each client domain, someone on the account should know the answer to: who controls the hosting account this certificate lives in? Is it the agency, the client, or a third party? Without that, the incident response starts with finding the answer to a question that should have been answered at onboarding.


Merlonix surfaces SSL certificate expiry dates per client with configurable alert thresholds and routes alerts to the account manager responsible for each client — so the right person is notified with the right context, before the client is.


→ Related: SSL Certificate Monitoring for Agencies → Related: How to Set Up SSL Monitoring for All Your Client Domains in 30 Minutes → Related: SSL Monitoring Buyer's Guide for Agencies