| Refresh type | What it does | Needs ETags? | Best for |
|---|---|---|---|
| Incremental Refresh | Refreshes only the links that have changed since the last run | Yes | Large sites where most pages rarely change |
| Full Refresh | Refreshes all links from scratch on every run | No | Small sites, or servers you can't configure |
ETag header in the response. You can also run curl -I https://your-site.com/page and look for an ETag: line.| Environment | Method | Notes |
|---|---|---|
| Apache | FileETag + Header | Use MTime and Size for consistency |
| Nginx | etag on or dynamic module | Gzip can interfere with ETags |
| Express (Node.js) | app.set('etag', 'strong') | Built-in support in Express |
| Spring Boot | ShallowEtagHeaderFilter | Adds ETags for REST responses |
| Cloudflare | Preserve origin ETags | Requires correct Cache-Control |