GUIDE · SITE HEALTH

Monitor Your Website from GitHub Actions:
Free Uptime, SSL & Compliance in One Cron Job

Skip the $10–15/month monitoring SaaS. One scheduled workflow checks that your site is up, the SSL certificate is valid, security headers are intact and your privacy policy still exists — using four free, open-source GitHub Actions.

Updated August 2026 · Reading time: 6 minutes

Why a cron job beats a monitoring dashboard

Most uptime monitors want a monthly subscription, an account, and another inbox of alert emails. If you already ship your site through GitHub, you have a scheduler, a runner and a notification channel (failed workflow runs email the repo owner by default) sitting there unused.

This setup runs on public repositories for free, needs no secrets, and every check is a plain YAML step you can read in seconds. It catches the failures that actually happen to small sites: expired certificates, a redesign that dropped the cookie banner, a redirect rule that broke after a deploy.

The complete workflow

Save as .github/workflows/site-health.yml:

name: Site health
on:
  schedule:
    - cron: '0 6 * * *'   # daily at 06:00 UTC
  workflow_dispatch:      # also runnable manually from the Actions tab

jobs:
  health:
    runs-on: ubuntu-latest
    steps:
      - name: Uptime + SSL certificate expiry
        uses: mahope/deskuptime@v1
        with:
          url: https://your-site.com

      - name: EU compliance intact (privacy policy, headers, meta)
        uses: mahope/compliance-site-check@v2
        with:
          url: https://your-site.com

Replace your-site.com with your domain. Both actions pin floating major tags, so bug fixes arrive automatically without breaking changes.

What each action checks

deskuptime@v1

Fetches the URL and fails if the page does not respond correctly, warns when the SSL certificate is close to expiry, and can detect unwanted content changes. Zero dependencies — no npm install, no config files.

compliance-site-check@v2

Nine GDPR/EAA-oriented checks against the live page: privacy-policy reachability, cookie-consent signals, security headers (CSP, HSTS, XFO), SEO meta tags and language declaration. A silent regression turns red before your users or a regulator notice.

Two more steps for teams that publish content

The same workflow can carry two optional jobs:

Scheduling tips

What it replaces

Uptime-monitoring SaaS typically starts around $10–15/month per site ($120–180/year per site), and a manual compliance review starts in the thousands. This stack costs nothing on public repos and fits in one file you own. For sub-minute paging during incidents, dedicated monitoring still has a place — but for "did my site silently break?", a daily cron job catches it within 24 hours at zero cost.

Try the compliance half right now

No repo needed to see what the scanner finds on your live site — free, no signup, results in about a minute.

Scan your site free →