DEV Community

Vigilmon
Vigilmon

Posted on

How to Monitor Your Jekyll Site with Vigilmon (GitHub Pages, Netlify, Static Hosting)

Jekyll powers millions of static sites—from personal blogs to documentation sites to open source project pages. GitHub Pages even uses Jekyll natively. But just because it's static doesn't mean it never goes down. CDN issues, DNS problems, and deployment errors can take your Jekyll site offline without warning.

This guide shows you how to monitor your Jekyll site with Vigilmon, a free uptime monitoring service.

Common Ways Jekyll Sites Go Down

  1. GitHub Pages outages: GitHub Pages has periodic incidents (check githubstatus.com)
  2. DNS misconfiguration: Custom domain breaks after domain renewal or transfer
  3. SSL certificate issues: Let's Encrypt doesn't renew, HTTPS breaks
  4. Jekyll build failures: A bad commit breaks the build, serving 404s
  5. CDN edge failures: Netlify or GitHub's CDN has a regional problem
  6. Force push / branch deletion: Someone overwrites gh-pages branch accidentally

What to Monitor on a Jekyll Site

Primary Monitors

https://yoursite.com              # Custom domain (most important)
https://yourusername.github.io    # GitHub Pages fallback (if applicable)
https://yoursite.netlify.app      # Netlify fallback (if using Netlify)
Enter fullscreen mode Exit fullscreen mode

Content Monitors

For documentation sites or blogs, monitor key content paths:

https://yoursite.com/docs/        # Documentation root
https://yoursite.com/blog/        # Blog index
https://yoursite.com/CHANGELOG/   # Critical for open source projects
Enter fullscreen mode Exit fullscreen mode

Feed Monitor

If users or services subscribe to your RSS/Atom feed:

https://yoursite.com/feed.xml
https://yoursite.com/atom.xml
Enter fullscreen mode Exit fullscreen mode

Monitor for status 200 and a keyword like <channel> or <feed.

Adding a Health Page to Jekyll

Create health.html in your Jekyll root:

---
layout: null
permalink: /health
---
{"status":"ok","site":"{{ site.title }}","version":"{{ site.version | default: "1.0" }}"}
Enter fullscreen mode Exit fullscreen mode

Now https://yoursite.com/health returns:

{"status":"ok","site":"My Blog","version":"1.0"}
Enter fullscreen mode Exit fullscreen mode

Add it to Vigilmon with keyword "ok" to verify content is being served correctly.

Excluding the Health Page from Sitemap

Add to your _config.yml to exclude health from sitemap:

defaults:
  - scope:
      path: "health.html"
    values:
      sitemap: false
Enter fullscreen mode Exit fullscreen mode

Setting Up Jekyll Monitoring on GitHub Pages

GitHub Pages has specific monitoring considerations:

  1. Monitor the custom domain, not just the github.io URL
  2. Monitor the GitHub API status separately (optional): https://api.github.com/
  3. Check for 404s: If 404.html has a unique keyword, use negative keyword monitoring

Detecting Build Failures

When a Jekyll build fails, GitHub Pages may serve the old version—or show an error. To detect this, use a keyword check with a build timestamp.

Add to your _layouts/default.html:

<!-- BUILD: {{ site.time | date: "%Y%m%d%H%M" }} -->
Enter fullscreen mode Exit fullscreen mode

Or better, use a version.html page:

---
layout: null
permalink: /version
---
{"buildTime":"{{ site.time | date_to_xmlschema }}","title":"{{ site.title }}"}
Enter fullscreen mode Exit fullscreen mode

After each build, the timestamp changes. If Vigilmon sees an old timestamp, it means the build failed. (This requires manual threshold checking, but the keyword change alert helps.)

Setting Up Vigilmon for Jekyll

  1. Sign up at vigilmon.online — free, no credit card

  2. Create Monitor 1: Homepage

    • URL: https://yoursite.com
    • Method: GET
    • Expected status: 200
    • Keyword: Your site name or tagline
    • Interval: 1 minute
    • Regions: US, Europe, Asia
  3. Create Monitor 2: Health Check

    • URL: https://yoursite.com/health
    • Method: GET
    • Keyword: "ok"
    • Interval: 1 minute
  4. Create Monitor 3: Key Content

    • URL: https://yoursite.com/blog/ (or your most important page)
    • Keyword: Something unique to that page
  5. Configure Email Alerts

Monitoring Jekyll on Netlify

Netlify offers branch previews and deploy previews. Monitor:

  1. Production deploy: https://yoursite.com
  2. Netlify subdomain: https://yoursite.netlify.app
  3. Deploy preview (optional): Netlify automatically creates these for PRs

Netlify-specific tips:

  • Check Netlify's status at https://www.netlifystatus.com/
  • Netlify runs Jekyll builds—build failures result in the old version being served
  • Netlify has great uptime but CDN edge nodes can occasionally have regional issues

Monitoring Jekyll Documentation Sites

For open source projects using Jekyll for docs, monitoring is especially important:

  1. Docs root: https://docs.yourproject.io/
  2. Key doc pages: Getting started, API reference, installation
  3. Versioned docs: /v1/, /v2/, /latest/

Set up a status page with Vigilmon so contributors and users can check site status: yourproject.statuspage.vigilmon.online

Response Time Monitoring for Jekyll

Jekyll static sites should respond very fast (under 200ms typically) because content is pre-built. If response time increases significantly:

  • CDN isn't caching (serving from origin)
  • GitHub Pages is under load
  • Large page size is hurting TTFB

Vigilmon tracks response times over time, so you can spot performance degradation trends.

Alert Configuration for Jekyll Sites

For a personal blog or portfolio:

Alert after: 3 consecutive failures (avoid transient false positives)
Email: your@email.com
Interval: 5 minutes (lower urgency)
Enter fullscreen mode Exit fullscreen mode

For a documentation or business site:

Alert after: 2 consecutive failures
Email + Slack
Interval: 1 minute
Enter fullscreen mode Exit fullscreen mode

For a critical open source project page:

Alert after: 1 failure
Email + Slack + PagerDuty
Interval: 1 minute
Regions: US + EU + Asia (multi-region)
Enter fullscreen mode Exit fullscreen mode

Get Started Free

Vigilmon is free for Jekyll sites:

  • 5 monitors on free tier
  • 1-minute checks
  • Multi-region monitoring (US, EU, Asia Pacific)
  • Email alerts
  • SSL certificate monitoring
  • Public status page

Setup takes 3 minutes. No Jekyll configuration changes needed—just add your URL and keyword.

Top comments (0)