SEO audit for aprroofing.co.uk
Roofers Knaresborough & Harrogate | APR Roofing & Building
Health 65/100 (fair) · 50 pages crawled · generated 2026-08-26
Download Markdown report (feed to ChatGPT / Claude / Cursor)Expert roofers in Knaresborough, Harrogate & Yorkshire. Roof repairs, new roofs, dormers, chimney work & building. 35+ yrs exp. FREE quotes → 01423 847785.
| Category | Score | Errors | Warnings | Notices |
|---|---|---|---|---|
| Headings | 70 | 0 | 50 | 0 |
| Rendering | 70 | 0 | 50 | 0 |
| Canonical | 72 | 0 | 47 | 0 |
| Content | 72 | 0 | 47 | 0 |
| Duplicate | 90 | 0 | 16 | 16 |
| Indexability | 98 | 0 | 3 | 0 |
| Sitemap | 98 | 0 | 3 | 0 |
| Cache | 100 | 0 | 0 | 50 |
| Meta Description | 100 | 0 | 0 | 2 |
| Performance | 100 | 0 | 0 | 100 |
| Security | 100 | 0 | 0 | 50 |
| Structured Data | 100 | 0 | 0 | 47 |
Warnings (7 rules)
warning Missing canonical tag
Rule canonical.missing · Canonical · 47 occurrence(s)
- https://aprroofing.co.uk/
- https://aprroofing.co.uk/about
- https://aprroofing.co.uk/areas
- https://aprroofing.co.uk/areas/knaresborough
- https://aprroofing.co.uk/areas/knaresborough/roofing
- https://aprroofing.co.uk/blog
- https://aprroofing.co.uk/blog/flat-roof-vs-pitched-roof-extension
- https://aprroofing.co.uk/blog/flat-roof-vs-pitched-roof-yorkshire
- https://aprroofing.co.uk/blog/how-long-dormer-conversion-takes
- https://aprroofing.co.uk/blog/new-roof-cost-2026-yorkshire-price-guide
- https://aprroofing.co.uk/blog/signs-you-need-roof-repair
- https://aprroofing.co.uk/blog/signs-your-roof-needs-replacing
- https://aprroofing.co.uk/contact
- https://aprroofing.co.uk/free-roofing-cost-guide
- https://aprroofing.co.uk/gallery
- https://aprroofing.co.uk/leave-a-review
- https://aprroofing.co.uk/repointing
- https://aprroofing.co.uk/review
- https://aprroofing.co.uk/reviews
- https://aprroofing.co.uk/roofers-harrogate-hg1
- https://aprroofing.co.uk/roofers-harrogate-hg2
- https://aprroofing.co.uk/roofers-harrogate-hg3
- https://aprroofing.co.uk/roofing-guide
- https://aprroofing.co.uk/services
- https://aprroofing.co.uk/services/roofing
warning Thin content (low word count)
Rule content.thin · Content · 47 occurrence(s)
- https://aprroofing.co.uk/ — 0 words
- https://aprroofing.co.uk/about — 0 words
- https://aprroofing.co.uk/areas — 0 words
- https://aprroofing.co.uk/areas/knaresborough — 0 words
- https://aprroofing.co.uk/areas/knaresborough/roofing — 0 words
- https://aprroofing.co.uk/blog — 0 words
- https://aprroofing.co.uk/blog/flat-roof-vs-pitched-roof-extension — 0 words
- https://aprroofing.co.uk/blog/flat-roof-vs-pitched-roof-yorkshire — 0 words
- https://aprroofing.co.uk/blog/how-long-dormer-conversion-takes — 0 words
- https://aprroofing.co.uk/blog/new-roof-cost-2026-yorkshire-price-guide — 0 words
- https://aprroofing.co.uk/blog/signs-you-need-roof-repair — 0 words
- https://aprroofing.co.uk/blog/signs-your-roof-needs-replacing — 0 words
- https://aprroofing.co.uk/contact — 0 words
- https://aprroofing.co.uk/free-roofing-cost-guide — 0 words
- https://aprroofing.co.uk/gallery — 0 words
- https://aprroofing.co.uk/leave-a-review — 0 words
- https://aprroofing.co.uk/repointing — 0 words
- https://aprroofing.co.uk/review — 0 words
- https://aprroofing.co.uk/reviews — 0 words
- https://aprroofing.co.uk/roofers-harrogate-hg1 — 0 words
- https://aprroofing.co.uk/roofers-harrogate-hg2 — 0 words
- https://aprroofing.co.uk/roofers-harrogate-hg3 — 0 words
- https://aprroofing.co.uk/roofing-guide — 0 words
- https://aprroofing.co.uk/services — 0 words
- https://aprroofing.co.uk/services/roofing — 0 words
warning Duplicate <title> across pages
Rule duplicate.title · Duplicate · 16 occurrence(s)
- https://aprroofing.co.uk/ — title shared by 16 pages: https://aprroofing.co.uk/review, https://aprroofing.co.uk/reviews, https://aprroofing.co.uk/leave-a-review
- https://aprroofing.co.uk/blog/chimney-repoint-vs-rebuild — title shared by 16 pages: https://aprroofing.co.uk/, https://aprroofing.co.uk/review, https://aprroofing.co.uk/reviews
- https://aprroofing.co.uk/blog/flat-roof-vs-pitched-roof-extension — title shared by 16 pages: https://aprroofing.co.uk/, https://aprroofing.co.uk/review, https://aprroofing.co.uk/reviews
- https://aprroofing.co.uk/blog/flat-roof-vs-pitched-roof-yorkshire — title shared by 16 pages: https://aprroofing.co.uk/, https://aprroofing.co.uk/review, https://aprroofing.co.uk/reviews
- https://aprroofing.co.uk/blog/how-long-dormer-conversion-takes — title shared by 16 pages: https://aprroofing.co.uk/, https://aprroofing.co.uk/review, https://aprroofing.co.uk/reviews
- https://aprroofing.co.uk/blog/how-much-does-a-new-roof-cost-harrogate — title shared by 16 pages: https://aprroofing.co.uk/, https://aprroofing.co.uk/review, https://aprroofing.co.uk/reviews
- https://aprroofing.co.uk/blog/new-roof-cost-2026-yorkshire-price-guide — title shared by 16 pages: https://aprroofing.co.uk/, https://aprroofing.co.uk/review, https://aprroofing.co.uk/reviews
- https://aprroofing.co.uk/blog/signs-you-need-roof-repair — title shared by 16 pages: https://aprroofing.co.uk/, https://aprroofing.co.uk/review, https://aprroofing.co.uk/reviews
- https://aprroofing.co.uk/blog/signs-your-roof-needs-replacing — title shared by 16 pages: https://aprroofing.co.uk/, https://aprroofing.co.uk/review, https://aprroofing.co.uk/reviews
- https://aprroofing.co.uk/leave-a-review — title shared by 16 pages: https://aprroofing.co.uk/, https://aprroofing.co.uk/review, https://aprroofing.co.uk/reviews
- https://aprroofing.co.uk/review — title shared by 16 pages: https://aprroofing.co.uk/, https://aprroofing.co.uk/reviews, https://aprroofing.co.uk/leave-a-review
- https://aprroofing.co.uk/reviews — title shared by 16 pages: https://aprroofing.co.uk/, https://aprroofing.co.uk/review, https://aprroofing.co.uk/leave-a-review
- https://aprroofing.co.uk/services/building — title shared by 16 pages: https://aprroofing.co.uk/, https://aprroofing.co.uk/review, https://aprroofing.co.uk/reviews
- https://aprroofing.co.uk/services/chimney — title shared by 16 pages: https://aprroofing.co.uk/, https://aprroofing.co.uk/review, https://aprroofing.co.uk/reviews
- https://aprroofing.co.uk/services/fascias — title shared by 16 pages: https://aprroofing.co.uk/, https://aprroofing.co.uk/review, https://aprroofing.co.uk/reviews
- https://aprroofing.co.uk/services/roofing — title shared by 16 pages: https://aprroofing.co.uk/, https://aprroofing.co.uk/review, https://aprroofing.co.uk/reviews
warning Missing <h1>
Rule h1.missing · Headings · 50 occurrence(s)
- https://aprroofing.co.uk/
- https://aprroofing.co.uk/about
- https://aprroofing.co.uk/areas
- https://aprroofing.co.uk/areas/knaresborough
- https://aprroofing.co.uk/areas/knaresborough/roofing
- https://aprroofing.co.uk/blog
- https://aprroofing.co.uk/blog/flat-roof-vs-pitched-roof-yorkshire
- https://aprroofing.co.uk/blog/new-roof-cost-2026-yorkshire-price-guide
- https://aprroofing.co.uk/blog/signs-your-roof-needs-replacing
- https://aprroofing.co.uk/contact
- https://aprroofing.co.uk/free-roofing-cost-guide
- https://aprroofing.co.uk/gallery
- https://aprroofing.co.uk/leave-a-review
- https://aprroofing.co.uk/privacy
- https://aprroofing.co.uk/repointing
- https://aprroofing.co.uk/review
- https://aprroofing.co.uk/reviews
- https://aprroofing.co.uk/roofers-harrogate-hg1
- https://aprroofing.co.uk/roofers-harrogate-hg2
- https://aprroofing.co.uk/roofers-harrogate-hg3
- https://aprroofing.co.uk/roofing-guide
- https://aprroofing.co.uk/services
- https://aprroofing.co.uk/services/roofing
- https://aprroofing.co.uk/sitemap
- https://aprroofing.co.uk/terms
warning Page is noindex
Rule index.noindex · Indexability · 3 occurrence(s)
- https://aprroofing.co.uk/privacy — meta/X-Robots: meta=noindex, follow
- https://aprroofing.co.uk/sitemap — meta/X-Robots: meta=noindex, follow
- https://aprroofing.co.uk/terms — meta/X-Robots: meta=noindex, follow
warning Content only rendered by JavaScript (invisible to non-JS crawlers & AI)
Rule rendering.js_shell · Rendering · 50 occurrence(s)
- https://aprroofing.co.uk/ — Raw HTML has 0 words and 0 links — this page is built by JavaScript in the browser. Googlebot renders JS but delays it, and most crawlers and AI assistants (ChatGPT, Perplexity, Claude) don't run JavaScript at all, so to them the page looks empty. Server-render or pre-render your main content and navigation.
- https://aprroofing.co.uk/about — Raw HTML has 0 words and 0 links — this page is built by JavaScript in the browser. Googlebot renders JS but delays it, and most crawlers and AI assistants (ChatGPT, Perplexity, Claude) don't run JavaScript at all, so to them the page looks empty. Server-render or pre-render your main content and navigation.
- https://aprroofing.co.uk/areas — Raw HTML has 0 words and 0 links — this page is built by JavaScript in the browser. Googlebot renders JS but delays it, and most crawlers and AI assistants (ChatGPT, Perplexity, Claude) don't run JavaScript at all, so to them the page looks empty. Server-render or pre-render your main content and navigation.
- https://aprroofing.co.uk/areas/knaresborough — Raw HTML has 0 words and 0 links — this page is built by JavaScript in the browser. Googlebot renders JS but delays it, and most crawlers and AI assistants (ChatGPT, Perplexity, Claude) don't run JavaScript at all, so to them the page looks empty. Server-render or pre-render your main content and navigation.
- https://aprroofing.co.uk/areas/knaresborough/roofing — Raw HTML has 0 words and 0 links — this page is built by JavaScript in the browser. Googlebot renders JS but delays it, and most crawlers and AI assistants (ChatGPT, Perplexity, Claude) don't run JavaScript at all, so to them the page looks empty. Server-render or pre-render your main content and navigation.
- https://aprroofing.co.uk/blog — Raw HTML has 0 words and 0 links — this page is built by JavaScript in the browser. Googlebot renders JS but delays it, and most crawlers and AI assistants (ChatGPT, Perplexity, Claude) don't run JavaScript at all, so to them the page looks empty. Server-render or pre-render your main content and navigation.
- https://aprroofing.co.uk/blog/flat-roof-vs-pitched-roof-yorkshire — Raw HTML has 0 words and 0 links — this page is built by JavaScript in the browser. Googlebot renders JS but delays it, and most crawlers and AI assistants (ChatGPT, Perplexity, Claude) don't run JavaScript at all, so to them the page looks empty. Server-render or pre-render your main content and navigation.
- https://aprroofing.co.uk/blog/new-roof-cost-2026-yorkshire-price-guide — Raw HTML has 0 words and 0 links — this page is built by JavaScript in the browser. Googlebot renders JS but delays it, and most crawlers and AI assistants (ChatGPT, Perplexity, Claude) don't run JavaScript at all, so to them the page looks empty. Server-render or pre-render your main content and navigation.
- https://aprroofing.co.uk/blog/signs-your-roof-needs-replacing — Raw HTML has 0 words and 0 links — this page is built by JavaScript in the browser. Googlebot renders JS but delays it, and most crawlers and AI assistants (ChatGPT, Perplexity, Claude) don't run JavaScript at all, so to them the page looks empty. Server-render or pre-render your main content and navigation.
- https://aprroofing.co.uk/contact — Raw HTML has 0 words and 0 links — this page is built by JavaScript in the browser. Googlebot renders JS but delays it, and most crawlers and AI assistants (ChatGPT, Perplexity, Claude) don't run JavaScript at all, so to them the page looks empty. Server-render or pre-render your main content and navigation.
- https://aprroofing.co.uk/free-roofing-cost-guide — Raw HTML has 0 words and 0 links — this page is built by JavaScript in the browser. Googlebot renders JS but delays it, and most crawlers and AI assistants (ChatGPT, Perplexity, Claude) don't run JavaScript at all, so to them the page looks empty. Server-render or pre-render your main content and navigation.
- https://aprroofing.co.uk/gallery — Raw HTML has 0 words and 0 links — this page is built by JavaScript in the browser. Googlebot renders JS but delays it, and most crawlers and AI assistants (ChatGPT, Perplexity, Claude) don't run JavaScript at all, so to them the page looks empty. Server-render or pre-render your main content and navigation.
- https://aprroofing.co.uk/leave-a-review — Raw HTML has 0 words and 0 links — this page is built by JavaScript in the browser. Googlebot renders JS but delays it, and most crawlers and AI assistants (ChatGPT, Perplexity, Claude) don't run JavaScript at all, so to them the page looks empty. Server-render or pre-render your main content and navigation.
- https://aprroofing.co.uk/privacy — Raw HTML has 0 words and 0 links — this page is built by JavaScript in the browser. Googlebot renders JS but delays it, and most crawlers and AI assistants (ChatGPT, Perplexity, Claude) don't run JavaScript at all, so to them the page looks empty. Server-render or pre-render your main content and navigation.
- https://aprroofing.co.uk/repointing — Raw HTML has 0 words and 0 links — this page is built by JavaScript in the browser. Googlebot renders JS but delays it, and most crawlers and AI assistants (ChatGPT, Perplexity, Claude) don't run JavaScript at all, so to them the page looks empty. Server-render or pre-render your main content and navigation.
- https://aprroofing.co.uk/review — Raw HTML has 0 words and 0 links — this page is built by JavaScript in the browser. Googlebot renders JS but delays it, and most crawlers and AI assistants (ChatGPT, Perplexity, Claude) don't run JavaScript at all, so to them the page looks empty. Server-render or pre-render your main content and navigation.
- https://aprroofing.co.uk/reviews — Raw HTML has 0 words and 0 links — this page is built by JavaScript in the browser. Googlebot renders JS but delays it, and most crawlers and AI assistants (ChatGPT, Perplexity, Claude) don't run JavaScript at all, so to them the page looks empty. Server-render or pre-render your main content and navigation.
- https://aprroofing.co.uk/roofers-harrogate-hg1 — Raw HTML has 0 words and 0 links — this page is built by JavaScript in the browser. Googlebot renders JS but delays it, and most crawlers and AI assistants (ChatGPT, Perplexity, Claude) don't run JavaScript at all, so to them the page looks empty. Server-render or pre-render your main content and navigation.
- https://aprroofing.co.uk/roofers-harrogate-hg2 — Raw HTML has 0 words and 0 links — this page is built by JavaScript in the browser. Googlebot renders JS but delays it, and most crawlers and AI assistants (ChatGPT, Perplexity, Claude) don't run JavaScript at all, so to them the page looks empty. Server-render or pre-render your main content and navigation.
- https://aprroofing.co.uk/roofers-harrogate-hg3 — Raw HTML has 0 words and 0 links — this page is built by JavaScript in the browser. Googlebot renders JS but delays it, and most crawlers and AI assistants (ChatGPT, Perplexity, Claude) don't run JavaScript at all, so to them the page looks empty. Server-render or pre-render your main content and navigation.
- https://aprroofing.co.uk/roofing-guide — Raw HTML has 0 words and 0 links — this page is built by JavaScript in the browser. Googlebot renders JS but delays it, and most crawlers and AI assistants (ChatGPT, Perplexity, Claude) don't run JavaScript at all, so to them the page looks empty. Server-render or pre-render your main content and navigation.
- https://aprroofing.co.uk/services — Raw HTML has 0 words and 0 links — this page is built by JavaScript in the browser. Googlebot renders JS but delays it, and most crawlers and AI assistants (ChatGPT, Perplexity, Claude) don't run JavaScript at all, so to them the page looks empty. Server-render or pre-render your main content and navigation.
- https://aprroofing.co.uk/services/roofing — Raw HTML has 0 words and 0 links — this page is built by JavaScript in the browser. Googlebot renders JS but delays it, and most crawlers and AI assistants (ChatGPT, Perplexity, Claude) don't run JavaScript at all, so to them the page looks empty. Server-render or pre-render your main content and navigation.
- https://aprroofing.co.uk/sitemap — Raw HTML has 0 words and 0 links — this page is built by JavaScript in the browser. Googlebot renders JS but delays it, and most crawlers and AI assistants (ChatGPT, Perplexity, Claude) don't run JavaScript at all, so to them the page looks empty. Server-render or pre-render your main content and navigation.
- https://aprroofing.co.uk/terms — Raw HTML has 0 words and 0 links — this page is built by JavaScript in the browser. Googlebot renders JS but delays it, and most crawlers and AI assistants (ChatGPT, Perplexity, Claude) don't run JavaScript at all, so to them the page looks empty. Server-render or pre-render your main content and navigation.
warning Non-indexable URL listed in sitemap
Rule sitemap.non_indexable · Sitemap · 3 occurrence(s)
- https://aprroofing.co.uk/privacy — listed in sitemap but noindex
- https://aprroofing.co.uk/sitemap — listed in sitemap but noindex
- https://aprroofing.co.uk/terms — listed in sitemap but noindex
Notices (7 rules)
notice Page served uncached (no-store/private or CDN bypass)
Rule cache.not_cacheable · Cache · 50 occurrence(s)
- https://aprroofing.co.uk/ — Cache-Control: no-cache, must-revalidate, max-age=0
- https://aprroofing.co.uk/about — Cache-Control: no-cache, must-revalidate, max-age=0
- https://aprroofing.co.uk/areas — Cache-Control: no-cache, must-revalidate, max-age=0
- https://aprroofing.co.uk/areas/knaresborough — Cache-Control: no-cache, must-revalidate, max-age=0
- https://aprroofing.co.uk/areas/knaresborough/roofing — Cache-Control: no-cache, must-revalidate, max-age=0
- https://aprroofing.co.uk/blog — Cache-Control: no-cache, must-revalidate, max-age=0
- https://aprroofing.co.uk/blog/flat-roof-vs-pitched-roof-yorkshire — Cache-Control: no-cache, must-revalidate, max-age=0
- https://aprroofing.co.uk/blog/new-roof-cost-2026-yorkshire-price-guide — Cache-Control: no-cache, must-revalidate, max-age=0
- https://aprroofing.co.uk/blog/signs-your-roof-needs-replacing — Cache-Control: no-cache, must-revalidate, max-age=0
- https://aprroofing.co.uk/contact — Cache-Control: no-cache, must-revalidate, max-age=0
- https://aprroofing.co.uk/free-roofing-cost-guide — Cache-Control: no-cache, must-revalidate, max-age=0
- https://aprroofing.co.uk/gallery — Cache-Control: no-cache, must-revalidate, max-age=0
- https://aprroofing.co.uk/leave-a-review — Cache-Control: no-cache, must-revalidate, max-age=0
- https://aprroofing.co.uk/privacy — Cache-Control: no-cache, must-revalidate, max-age=0
- https://aprroofing.co.uk/repointing — Cache-Control: no-cache, must-revalidate, max-age=0
- https://aprroofing.co.uk/review — Cache-Control: no-cache, must-revalidate, max-age=0
- https://aprroofing.co.uk/reviews — Cache-Control: no-cache, must-revalidate, max-age=0
- https://aprroofing.co.uk/roofers-harrogate-hg1 — Cache-Control: no-cache, must-revalidate, max-age=0
- https://aprroofing.co.uk/roofers-harrogate-hg2 — Cache-Control: no-cache, must-revalidate, max-age=0
- https://aprroofing.co.uk/roofers-harrogate-hg3 — Cache-Control: no-cache, must-revalidate, max-age=0
- https://aprroofing.co.uk/roofing-guide — Cache-Control: no-cache, must-revalidate, max-age=0
- https://aprroofing.co.uk/services — Cache-Control: no-cache, must-revalidate, max-age=0
- https://aprroofing.co.uk/services/roofing — Cache-Control: no-cache, must-revalidate, max-age=0
- https://aprroofing.co.uk/sitemap — Cache-Control: no-cache, must-revalidate, max-age=0
- https://aprroofing.co.uk/terms — Cache-Control: no-cache, must-revalidate, max-age=0
notice Duplicate meta description across pages
Rule duplicate.meta_desc · Duplicate · 16 occurrence(s)
- https://aprroofing.co.uk/ — meta description shared by 16 pages: https://aprroofing.co.uk/review, https://aprroofing.co.uk/reviews, https://aprroofing.co.uk/leave-a-review
- https://aprroofing.co.uk/blog/chimney-repoint-vs-rebuild — meta description shared by 16 pages: https://aprroofing.co.uk/, https://aprroofing.co.uk/review, https://aprroofing.co.uk/reviews
- https://aprroofing.co.uk/blog/flat-roof-vs-pitched-roof-extension — meta description shared by 16 pages: https://aprroofing.co.uk/, https://aprroofing.co.uk/review, https://aprroofing.co.uk/reviews
- https://aprroofing.co.uk/blog/flat-roof-vs-pitched-roof-yorkshire — meta description shared by 16 pages: https://aprroofing.co.uk/, https://aprroofing.co.uk/review, https://aprroofing.co.uk/reviews
- https://aprroofing.co.uk/blog/how-long-dormer-conversion-takes — meta description shared by 16 pages: https://aprroofing.co.uk/, https://aprroofing.co.uk/review, https://aprroofing.co.uk/reviews
- https://aprroofing.co.uk/blog/how-much-does-a-new-roof-cost-harrogate — meta description shared by 16 pages: https://aprroofing.co.uk/, https://aprroofing.co.uk/review, https://aprroofing.co.uk/reviews
- https://aprroofing.co.uk/blog/new-roof-cost-2026-yorkshire-price-guide — meta description shared by 16 pages: https://aprroofing.co.uk/, https://aprroofing.co.uk/review, https://aprroofing.co.uk/reviews
- https://aprroofing.co.uk/blog/signs-you-need-roof-repair — meta description shared by 16 pages: https://aprroofing.co.uk/, https://aprroofing.co.uk/review, https://aprroofing.co.uk/reviews
- https://aprroofing.co.uk/blog/signs-your-roof-needs-replacing — meta description shared by 16 pages: https://aprroofing.co.uk/, https://aprroofing.co.uk/review, https://aprroofing.co.uk/reviews
- https://aprroofing.co.uk/leave-a-review — meta description shared by 16 pages: https://aprroofing.co.uk/, https://aprroofing.co.uk/review, https://aprroofing.co.uk/reviews
- https://aprroofing.co.uk/review — meta description shared by 16 pages: https://aprroofing.co.uk/, https://aprroofing.co.uk/reviews, https://aprroofing.co.uk/leave-a-review
- https://aprroofing.co.uk/reviews — meta description shared by 16 pages: https://aprroofing.co.uk/, https://aprroofing.co.uk/review, https://aprroofing.co.uk/leave-a-review
- https://aprroofing.co.uk/services/building — meta description shared by 16 pages: https://aprroofing.co.uk/, https://aprroofing.co.uk/review, https://aprroofing.co.uk/reviews
- https://aprroofing.co.uk/services/chimney — meta description shared by 16 pages: https://aprroofing.co.uk/, https://aprroofing.co.uk/review, https://aprroofing.co.uk/reviews
- https://aprroofing.co.uk/services/fascias — meta description shared by 16 pages: https://aprroofing.co.uk/, https://aprroofing.co.uk/review, https://aprroofing.co.uk/reviews
- https://aprroofing.co.uk/services/roofing — meta description shared by 16 pages: https://aprroofing.co.uk/, https://aprroofing.co.uk/review, https://aprroofing.co.uk/reviews
notice Meta description too long
Rule meta_desc.too_long · Meta Description · 2 occurrence(s)
- https://aprroofing.co.uk/roofers-harrogate-hg1 — 168 chars
- https://aprroofing.co.uk/roofers-harrogate-hg2 — 164 chars
notice No ETag header (no conditional GET for unchanged pages)
Rule perf.no_etag · Performance · 50 occurrence(s)
- https://aprroofing.co.uk/ — the response carries no ETag header — without an ETag (or Last-Modified) there is no cache-revalidation mechanism, so crawlers re-download the full body every visit. Emit an ETag (a content hash) to enable conditional If-None-Match requests.
- https://aprroofing.co.uk/about — the response carries no ETag header — without an ETag (or Last-Modified) there is no cache-revalidation mechanism, so crawlers re-download the full body every visit. Emit an ETag (a content hash) to enable conditional If-None-Match requests.
- https://aprroofing.co.uk/areas — the response carries no ETag header — without an ETag (or Last-Modified) there is no cache-revalidation mechanism, so crawlers re-download the full body every visit. Emit an ETag (a content hash) to enable conditional If-None-Match requests.
- https://aprroofing.co.uk/areas/knaresborough — the response carries no ETag header — without an ETag (or Last-Modified) there is no cache-revalidation mechanism, so crawlers re-download the full body every visit. Emit an ETag (a content hash) to enable conditional If-None-Match requests.
- https://aprroofing.co.uk/areas/knaresborough/roofing — the response carries no ETag header — without an ETag (or Last-Modified) there is no cache-revalidation mechanism, so crawlers re-download the full body every visit. Emit an ETag (a content hash) to enable conditional If-None-Match requests.
- https://aprroofing.co.uk/blog — the response carries no ETag header — without an ETag (or Last-Modified) there is no cache-revalidation mechanism, so crawlers re-download the full body every visit. Emit an ETag (a content hash) to enable conditional If-None-Match requests.
- https://aprroofing.co.uk/blog/flat-roof-vs-pitched-roof-yorkshire — the response carries no ETag header — without an ETag (or Last-Modified) there is no cache-revalidation mechanism, so crawlers re-download the full body every visit. Emit an ETag (a content hash) to enable conditional If-None-Match requests.
- https://aprroofing.co.uk/blog/new-roof-cost-2026-yorkshire-price-guide — the response carries no ETag header — without an ETag (or Last-Modified) there is no cache-revalidation mechanism, so crawlers re-download the full body every visit. Emit an ETag (a content hash) to enable conditional If-None-Match requests.
- https://aprroofing.co.uk/blog/signs-your-roof-needs-replacing — the response carries no ETag header — without an ETag (or Last-Modified) there is no cache-revalidation mechanism, so crawlers re-download the full body every visit. Emit an ETag (a content hash) to enable conditional If-None-Match requests.
- https://aprroofing.co.uk/contact — the response carries no ETag header — without an ETag (or Last-Modified) there is no cache-revalidation mechanism, so crawlers re-download the full body every visit. Emit an ETag (a content hash) to enable conditional If-None-Match requests.
- https://aprroofing.co.uk/free-roofing-cost-guide — the response carries no ETag header — without an ETag (or Last-Modified) there is no cache-revalidation mechanism, so crawlers re-download the full body every visit. Emit an ETag (a content hash) to enable conditional If-None-Match requests.
- https://aprroofing.co.uk/gallery — the response carries no ETag header — without an ETag (or Last-Modified) there is no cache-revalidation mechanism, so crawlers re-download the full body every visit. Emit an ETag (a content hash) to enable conditional If-None-Match requests.
- https://aprroofing.co.uk/leave-a-review — the response carries no ETag header — without an ETag (or Last-Modified) there is no cache-revalidation mechanism, so crawlers re-download the full body every visit. Emit an ETag (a content hash) to enable conditional If-None-Match requests.
- https://aprroofing.co.uk/privacy — the response carries no ETag header — without an ETag (or Last-Modified) there is no cache-revalidation mechanism, so crawlers re-download the full body every visit. Emit an ETag (a content hash) to enable conditional If-None-Match requests.
- https://aprroofing.co.uk/repointing — the response carries no ETag header — without an ETag (or Last-Modified) there is no cache-revalidation mechanism, so crawlers re-download the full body every visit. Emit an ETag (a content hash) to enable conditional If-None-Match requests.
- https://aprroofing.co.uk/review — the response carries no ETag header — without an ETag (or Last-Modified) there is no cache-revalidation mechanism, so crawlers re-download the full body every visit. Emit an ETag (a content hash) to enable conditional If-None-Match requests.
- https://aprroofing.co.uk/reviews — the response carries no ETag header — without an ETag (or Last-Modified) there is no cache-revalidation mechanism, so crawlers re-download the full body every visit. Emit an ETag (a content hash) to enable conditional If-None-Match requests.
- https://aprroofing.co.uk/roofers-harrogate-hg1 — the response carries no ETag header — without an ETag (or Last-Modified) there is no cache-revalidation mechanism, so crawlers re-download the full body every visit. Emit an ETag (a content hash) to enable conditional If-None-Match requests.
- https://aprroofing.co.uk/roofers-harrogate-hg2 — the response carries no ETag header — without an ETag (or Last-Modified) there is no cache-revalidation mechanism, so crawlers re-download the full body every visit. Emit an ETag (a content hash) to enable conditional If-None-Match requests.
- https://aprroofing.co.uk/roofers-harrogate-hg3 — the response carries no ETag header — without an ETag (or Last-Modified) there is no cache-revalidation mechanism, so crawlers re-download the full body every visit. Emit an ETag (a content hash) to enable conditional If-None-Match requests.
- https://aprroofing.co.uk/roofing-guide — the response carries no ETag header — without an ETag (or Last-Modified) there is no cache-revalidation mechanism, so crawlers re-download the full body every visit. Emit an ETag (a content hash) to enable conditional If-None-Match requests.
- https://aprroofing.co.uk/services — the response carries no ETag header — without an ETag (or Last-Modified) there is no cache-revalidation mechanism, so crawlers re-download the full body every visit. Emit an ETag (a content hash) to enable conditional If-None-Match requests.
- https://aprroofing.co.uk/services/roofing — the response carries no ETag header — without an ETag (or Last-Modified) there is no cache-revalidation mechanism, so crawlers re-download the full body every visit. Emit an ETag (a content hash) to enable conditional If-None-Match requests.
- https://aprroofing.co.uk/sitemap — the response carries no ETag header — without an ETag (or Last-Modified) there is no cache-revalidation mechanism, so crawlers re-download the full body every visit. Emit an ETag (a content hash) to enable conditional If-None-Match requests.
- https://aprroofing.co.uk/terms — the response carries no ETag header — without an ETag (or Last-Modified) there is no cache-revalidation mechanism, so crawlers re-download the full body every visit. Emit an ETag (a content hash) to enable conditional If-None-Match requests.
notice No Last-Modified header (no conditional GET for unchanged pages)
Rule perf.no_last_modified · Performance · 50 occurrence(s)
- https://aprroofing.co.uk/ — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
- https://aprroofing.co.uk/about — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
- https://aprroofing.co.uk/areas — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
- https://aprroofing.co.uk/areas/knaresborough — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
- https://aprroofing.co.uk/areas/knaresborough/roofing — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
- https://aprroofing.co.uk/blog — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
- https://aprroofing.co.uk/blog/flat-roof-vs-pitched-roof-yorkshire — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
- https://aprroofing.co.uk/blog/new-roof-cost-2026-yorkshire-price-guide — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
- https://aprroofing.co.uk/blog/signs-your-roof-needs-replacing — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
- https://aprroofing.co.uk/contact — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
- https://aprroofing.co.uk/free-roofing-cost-guide — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
- https://aprroofing.co.uk/gallery — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
- https://aprroofing.co.uk/leave-a-review — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
- https://aprroofing.co.uk/privacy — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
- https://aprroofing.co.uk/repointing — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
- https://aprroofing.co.uk/review — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
- https://aprroofing.co.uk/reviews — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
- https://aprroofing.co.uk/roofers-harrogate-hg1 — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
- https://aprroofing.co.uk/roofers-harrogate-hg2 — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
- https://aprroofing.co.uk/roofers-harrogate-hg3 — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
- https://aprroofing.co.uk/roofing-guide — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
- https://aprroofing.co.uk/services — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
- https://aprroofing.co.uk/services/roofing — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
- https://aprroofing.co.uk/sitemap — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
- https://aprroofing.co.uk/terms — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
notice No structured data detected
Rule schema.none · Structured Data · 47 occurrence(s)
- https://aprroofing.co.uk/
- https://aprroofing.co.uk/about
- https://aprroofing.co.uk/areas
- https://aprroofing.co.uk/areas/knaresborough
- https://aprroofing.co.uk/areas/knaresborough/roofing
- https://aprroofing.co.uk/blog
- https://aprroofing.co.uk/blog/flat-roof-vs-pitched-roof-extension
- https://aprroofing.co.uk/blog/flat-roof-vs-pitched-roof-yorkshire
- https://aprroofing.co.uk/blog/how-long-dormer-conversion-takes
- https://aprroofing.co.uk/blog/new-roof-cost-2026-yorkshire-price-guide
- https://aprroofing.co.uk/blog/signs-you-need-roof-repair
- https://aprroofing.co.uk/blog/signs-your-roof-needs-replacing
- https://aprroofing.co.uk/contact
- https://aprroofing.co.uk/free-roofing-cost-guide
- https://aprroofing.co.uk/gallery
- https://aprroofing.co.uk/leave-a-review
- https://aprroofing.co.uk/repointing
- https://aprroofing.co.uk/review
- https://aprroofing.co.uk/reviews
- https://aprroofing.co.uk/roofers-harrogate-hg1
- https://aprroofing.co.uk/roofers-harrogate-hg2
- https://aprroofing.co.uk/roofers-harrogate-hg3
- https://aprroofing.co.uk/roofing-guide
- https://aprroofing.co.uk/services
- https://aprroofing.co.uk/services/roofing
notice Missing recommended security headers
Rule security.missing_headers · Security · 50 occurrence(s)
- https://aprroofing.co.uk/ — CSP
- https://aprroofing.co.uk/about — CSP
- https://aprroofing.co.uk/areas — CSP
- https://aprroofing.co.uk/areas/knaresborough — CSP
- https://aprroofing.co.uk/areas/knaresborough/roofing — CSP
- https://aprroofing.co.uk/blog — CSP
- https://aprroofing.co.uk/blog/flat-roof-vs-pitched-roof-yorkshire — CSP
- https://aprroofing.co.uk/blog/new-roof-cost-2026-yorkshire-price-guide — CSP
- https://aprroofing.co.uk/blog/signs-your-roof-needs-replacing — CSP
- https://aprroofing.co.uk/contact — CSP
- https://aprroofing.co.uk/free-roofing-cost-guide — CSP
- https://aprroofing.co.uk/gallery — CSP
- https://aprroofing.co.uk/leave-a-review — CSP
- https://aprroofing.co.uk/privacy — CSP
- https://aprroofing.co.uk/repointing — CSP
- https://aprroofing.co.uk/review — CSP
- https://aprroofing.co.uk/reviews — CSP
- https://aprroofing.co.uk/roofers-harrogate-hg1 — CSP
- https://aprroofing.co.uk/roofers-harrogate-hg2 — CSP
- https://aprroofing.co.uk/roofers-harrogate-hg3 — CSP
- https://aprroofing.co.uk/roofing-guide — CSP
- https://aprroofing.co.uk/services — CSP
- https://aprroofing.co.uk/services/roofing — CSP
- https://aprroofing.co.uk/sitemap — CSP
- https://aprroofing.co.uk/terms — CSP
| URL | Status | Indexable | Words | In-links |
|---|---|---|---|---|
| https://aprroofing.co.uk/ Roofers Knaresborough & Harrogate | APR Roofing & Building |
200 | yes | 0 | 0 |
| https://aprroofing.co.uk/about About APR Roofing | 35+ Years Experience | Yorkshire |
200 | yes | 0 | 0 |
| https://aprroofing.co.uk/areas Areas We Cover | Roofers Across Yorkshire | APR |
200 | yes | 0 | 0 |
| https://aprroofing.co.uk/areas/grimsby Roofers Grimsby | Roofing Company North East Lincolnshire… |
200 | yes | 0 | 0 |
| https://aprroofing.co.uk/areas/harrogate Roofers Harrogate HG1 | #1 Local Roofing Company | APR |
200 | yes | 0 | 0 |
| https://aprroofing.co.uk/areas/hull Roofers Hull | Roofing Company East Yorkshire | APR |
200 | yes | 0 | 0 |
| https://aprroofing.co.uk/areas/knaresborough Roofers Knaresborough | Roofing Company North Yorkshire |… |
200 | yes | 0 | 0 |
| https://aprroofing.co.uk/areas/knaresborough/roofing Roofers Knaresborough | Roof Repairs & New Roofs | APR |
200 | yes | 0 | 0 |
| https://aprroofing.co.uk/areas/leeds Roofers Leeds | Roofing Company West Yorkshire | APR |
200 | yes | 0 | 0 |
| https://aprroofing.co.uk/areas/otley Roofers Otley | Roofing Company West Yorkshire | APR |
200 | yes | 0 | 0 |
| https://aprroofing.co.uk/areas/ripon Roofers Ripon | Roofing Company North Yorkshire | APR |
200 | yes | 0 | 0 |
| https://aprroofing.co.uk/areas/skipton Roofers Skipton | Roofing Company North Yorkshire | APR |
200 | yes | 0 | 0 |
| https://aprroofing.co.uk/areas/wetherby Roofers Wetherby | Roofing Company West Yorkshire | APR |
200 | yes | 0 | 0 |
| https://aprroofing.co.uk/areas/york Roofers York | Roofing Company North Yorkshire | APR |
200 | yes | 0 | 0 |
| https://aprroofing.co.uk/blog Roofing Blog & Advice | APR Roofing Yorkshire |
200 | yes | 0 | 0 |
| https://aprroofing.co.uk/blog/chimney-repoint-vs-rebuild Roofers Knaresborough & Harrogate | APR Roofing & Building |
200 | yes | 0 | 0 |
| https://aprroofing.co.uk/blog/flat-roof-vs-pitched-roof-extension Roofers Knaresborough & Harrogate | APR Roofing & Building |
200 | yes | 0 | 0 |
| https://aprroofing.co.uk/blog/flat-roof-vs-pitched-roof-yorkshire Roofers Knaresborough & Harrogate | APR Roofing & Building |
200 | yes | 0 | 0 |
| https://aprroofing.co.uk/blog/how-long-dormer-conversion-takes Roofers Knaresborough & Harrogate | APR Roofing & Building |
200 | yes | 0 | 0 |
| https://aprroofing.co.uk/blog/how-much-does-a-new-roof-cost-harrogate Roofers Knaresborough & Harrogate | APR Roofing & Building |
200 | yes | 0 | 0 |
| https://aprroofing.co.uk/blog/new-roof-cost-2026-yorkshire-price-guide Roofers Knaresborough & Harrogate | APR Roofing & Building |
200 | yes | 0 | 0 |
| https://aprroofing.co.uk/blog/signs-you-need-roof-repair Roofers Knaresborough & Harrogate | APR Roofing & Building |
200 | yes | 0 | 0 |
| https://aprroofing.co.uk/blog/signs-your-roof-needs-replacing Roofers Knaresborough & Harrogate | APR Roofing & Building |
200 | yes | 0 | 0 |
| https://aprroofing.co.uk/contact Contact APR Roofing | FREE Quotes | 01423 847785 |
200 | yes | 0 | 0 |
| https://aprroofing.co.uk/free-roofing-cost-guide Free Roofing Cost Guide 2026 | APR Roofing UK |
200 | yes | 0 | 0 |
| https://aprroofing.co.uk/gallery Project Gallery | APR Roofing & Building Yorkshire |
200 | yes | 0 | 0 |
| https://aprroofing.co.uk/leave-a-review Roofers Knaresborough & Harrogate | APR Roofing & Building |
200 | yes | 0 | 0 |
| https://aprroofing.co.uk/privacy Privacy Policy | APR Roofing & Building Solutions |
200 | no | 0 | 0 |
| https://aprroofing.co.uk/repointing Brick Repointing Yorkshire | Chimney & Wall | APR |
200 | yes | 0 | 0 |
| https://aprroofing.co.uk/review Roofers Knaresborough & Harrogate | APR Roofing & Building |
200 | yes | 0 | 0 |
| https://aprroofing.co.uk/reviews Roofers Knaresborough & Harrogate | APR Roofing & Building |
200 | yes | 0 | 0 |
| https://aprroofing.co.uk/roofers-harrogate-hg1 Roofers HG1 | Roof Repairs HG1 Harrogate | APR |
200 | yes | 0 | 0 |
| https://aprroofing.co.uk/roofers-harrogate-hg2 Roofers HG2 | Roof Repairs HG2 Harrogate | APR |
200 | yes | 0 | 0 |
| https://aprroofing.co.uk/roofers-harrogate-hg3 Roofers HG3 | Roof Repairs HG3 Harrogate | APR |
200 | yes | 0 | 0 |
| https://aprroofing.co.uk/roofing-guide Free Roofing Guide | Costs, Tips & Advice | APR |
200 | yes | 0 | 0 |
| https://aprroofing.co.uk/services Roofing & Building Services | APR Roofing Yorkshire |
200 | yes | 0 | 0 |
| https://aprroofing.co.uk/services/building Roofers Knaresborough & Harrogate | APR Roofing & Building |
200 | yes | 0 | 0 |
| https://aprroofing.co.uk/services/chimney Roofers Knaresborough & Harrogate | APR Roofing & Building |
200 | yes | 0 | 0 |
| https://aprroofing.co.uk/services/commercial-roofing Commercial Roofing Harrogate | APR Roofing |
200 | yes | 0 | 0 |
| https://aprroofing.co.uk/services/dormers Dormer Conversions Harrogate | APR Roofing |
200 | yes | 0 | 0 |
| https://aprroofing.co.uk/services/emergency-repair Emergency Roof Repair Harrogate | APR Roofing |
200 | yes | 0 | 0 |
| https://aprroofing.co.uk/services/fascias Roofers Knaresborough & Harrogate | APR Roofing & Building |
200 | yes | 0 | 0 |
| https://aprroofing.co.uk/services/leadwork Leadwork & Flashing Harrogate | APR Roofing |
200 | yes | 0 | 0 |
| https://aprroofing.co.uk/services/moss-removal Roof Moss Removal Harrogate | APR Roofing |
200 | yes | 0 | 0 |
| https://aprroofing.co.uk/services/porches Porches Harrogate | APR Roofing |
200 | yes | 0 | 0 |
| https://aprroofing.co.uk/services/roofing Roofers Knaresborough & Harrogate | APR Roofing & Building |
200 | yes | 0 | 0 |
| https://aprroofing.co.uk/services/storm-damage Storm Damage Repair Harrogate | APR Roofing |
200 | yes | 0 | 0 |
| https://aprroofing.co.uk/services/velux Velux Window Installation Harrogate | APR Roofing |
200 | yes | 0 | 0 |
| https://aprroofing.co.uk/sitemap Sitemap | APR Roofing & Building Solutions |
200 | no | 0 | 0 |
| https://aprroofing.co.uk/terms Terms of Service | APR Roofing & Building Solutions |
200 | no | 0 | 0 |
Audit your own site — free
157 checks, internal PageRank, render-diff. No signup, results in ~30s.