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
- GitHub Pages outages: GitHub Pages has periodic incidents (check githubstatus.com)
- DNS misconfiguration: Custom domain breaks after domain renewal or transfer
- SSL certificate issues: Let's Encrypt doesn't renew, HTTPS breaks
- Jekyll build failures: A bad commit breaks the build, serving 404s
- CDN edge failures: Netlify or GitHub's CDN has a regional problem
-
Force push / branch deletion: Someone overwrites
gh-pagesbranch 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)
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
Feed Monitor
If users or services subscribe to your RSS/Atom feed:
https://yoursite.com/feed.xml
https://yoursite.com/atom.xml
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" }}"}
Now https://yoursite.com/health returns:
{"status":"ok","site":"My Blog","version":"1.0"}
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
Setting Up Jekyll Monitoring on GitHub Pages
GitHub Pages has specific monitoring considerations:
-
Monitor the custom domain, not just the
github.ioURL -
Monitor the GitHub API status separately (optional):
https://api.github.com/ -
Check for 404s: If
404.htmlhas 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" }} -->
Or better, use a version.html page:
---
layout: null
permalink: /version
---
{"buildTime":"{{ site.time | date_to_xmlschema }}","title":"{{ site.title }}"}
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
Sign up at vigilmon.online — free, no credit card
-
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
- URL:
-
Create Monitor 2: Health Check
- URL:
https://yoursite.com/health - Method: GET
- Keyword:
"ok" - Interval: 1 minute
- URL:
-
Create Monitor 3: Key Content
- URL:
https://yoursite.com/blog/(or your most important page) - Keyword: Something unique to that page
- URL:
Configure Email Alerts
Monitoring Jekyll on Netlify
Netlify offers branch previews and deploy previews. Monitor:
-
Production deploy:
https://yoursite.com -
Netlify subdomain:
https://yoursite.netlify.app - 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:
-
Docs root:
https://docs.yourproject.io/ - Key doc pages: Getting started, API reference, installation
-
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)
For a documentation or business site:
Alert after: 2 consecutive failures
Email + Slack
Interval: 1 minute
For a critical open source project page:
Alert after: 1 failure
Email + Slack + PagerDuty
Interval: 1 minute
Regions: US + EU + Asia (multi-region)
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)