Catalog / aprroofing.co.uk
65

SEO audit for aprroofing.co.uk

Roofers Knaresborough & Harrogate | APR Roofing & Building

other

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.

Screenshot of aprroofing.co.uk
50
pages crawled
47
indexable pages
0
errors
216
warnings
265
notices
0
orphan pages
0
broken links
Category breakdown
CategoryScoreErrorsWarningsNotices
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
Findings

Warnings (7 rules)

warning Duplicate <title> across pages

Rule duplicate.title · Duplicate · 16 occurrence(s)

warning Page is noindex

Rule index.noindex · Indexability · 3 occurrence(s)

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)

Notices (7 rules)

notice Page served uncached (no-store/private or CDN bypass)

Rule cache.not_cacheable · Cache · 50 occurrence(s)

notice Duplicate meta description across pages

Rule duplicate.meta_desc · Duplicate · 16 occurrence(s)

notice Meta description too long

Rule meta_desc.too_long · Meta Description · 2 occurrence(s)

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.
Pages (showing 50 of 50)
URLStatusIndexableWordsIn-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.

Scan your site →