Grade your website's performance, security, SSL, and SEO on every deploy. Get an A+ to F score as a GitHub Actions step summary.
name: Grade Website
on: [push, pull_request]
jobs:
grade:
runs-on: ubuntu-latest
steps:
- name: Grade Website
uses: Stembel/website-grader-action@main
id: grade
with:
url: 'https://your-site.com'
fail-below: 70 # Optional: fail if score < 70
- name: Print Results
run: |
echo "Grade: ${{ steps.grade.outputs.grade }}"
echo "Score: ${{ steps.grade.outputs.score }}"| Category | Weight | What's measured |
|---|---|---|
| Performance | 20% | Response time, page load speed |
| Security | 25% | HSTS, CSP, X-Frame-Options, and 4 more security headers |
| SSL/HTTPS | 20% | Certificate validity, expiry, HTTPS redirect |
| SEO | 20% | Title, meta description, h1, canonical, viewport, OG tags |
| Availability | 15% | HTTP status code, uptime |
| Input | Required | Default | Description |
|---|---|---|---|
url |
Yes | - | URL to grade |
fail-below |
No | 0 |
Minimum passing score (0-100). Set to 70 for a quality gate. |
| Output | Description |
|---|---|
grade |
Letter grade (A+ to F) |
score |
Numeric score (0-100) |
performance |
Performance category score |
security |
Security headers score |
ssl |
SSL/HTTPS score |
seo |
SEO basics score |
The action adds a summary to your workflow run:
Category Score Performance 95 Security 71 SSL/HTTPS 100 SEO 86
- Add Content-Security-Policy header
- Add Permissions-Policy header
Powered by ZeroKit.dev Website Grader
Set fail-below to enforce a minimum website quality score:
- uses: Stembel/website-grader-action@main
with:
url: 'https://my-app.com'
fail-below: 80 # PR fails if website scores below 80MIT
Powered by ZeroKit.dev — 117 free developer tools.