*,*::before,*::after{box-sizing:border-box;margin:0;padding:0} :root{--slate:#0f1923;--slate2:#1a2635;--amber:#e8a020;--amber2:#f5b940;--cream:#f5f0e8;--grey:#8a9bb0;--light:#dde4ec;--white:#ffffff;--danger:#c0392b} html{scroll-behavior:smooth;overflow-x:hidden} body{font-family:'Lato',sans-serif;background:var(--cream);color:var(--slate);line-height:1.6;overflow-x:hidden;width:100%;padding-top:98px} header{position:fixed;top:0;left:0;right:0;z-index:100;background:var(--slate);width:100%} .emergency-banner{background:var(--danger);color:var(--white);text-align:center;padding:.5rem 5%;font-size:.78rem;font-weight:700;letter-spacing:1px;text-transform:uppercase} .emergency-banner a{color:var(--white);text-decoration:underline} .header-nav{display:flex;align-items:center;justify-content:space-between;padding:0 5%;height:64px;border-bottom:3px solid var(--amber)} .logo{font-family:'Bebas Neue',sans-serif;font-size:1.7rem;color:var(--white);letter-spacing:2px;text-decoration:none} .logo span{color:var(--amber)} nav a{color:var(--light);text-decoration:none;font-size:.85rem;font-weight:700;letter-spacing:1px;text-transform:uppercase;margin-left:2rem;transition:color .2s} nav a:hover{color:var(--amber)} .nav-cta{background:var(--amber);color:var(--slate)!important;padding:.5rem 1.2rem;border-radius:2px} .breadcrumb{background:var(--slate2);padding:.7rem 5%;border-bottom:1px solid rgba(232,160,32,.15)} .breadcrumb ol{list-style:none;display:flex;flex-wrap:wrap;gap:.4rem;align-items:center} .breadcrumb li{font-size:.78rem;color:var(--grey)} .breadcrumb li a{color:var(--grey);text-decoration:none;transition:color .2s} .breadcrumb li a:hover{color:var(--amber)} .breadcrumb li+li::before{content:'›';margin-right:.4rem;color:rgba(138,155,176,.5)} .breadcrumb li:last-child{color:var(--amber);font-weight:700} .snav{background:var(--slate2);padding:1rem 5%;border-bottom:1px solid rgba(232,160,32,.15)} .snav-inner{display:flex;gap:.5rem;flex-wrap:wrap} .snav a{color:var(--grey);text-decoration:none;font-size:.78rem;font-weight:700;letter-spacing:1px;text-transform:uppercase;padding:.4rem .9rem;border:1px solid rgba(138,155,176,.25);border-radius:2px;transition:all .2s} .snav a:hover,.snav a.active{color:var(--amber);border-color:var(--amber);background:rgba(232,160,32,.08)} .hero{background:var(--slate);display:flex;align-items:center;padding:4rem 5%;position:relative;overflow:hidden;width:100%;box-sizing:border-box} .hero-bg{position:absolute;inset:0;background:linear-gradient(135deg,#1a2635 0%,#0f1923 50%,#1a2a1a 100%);z-index:0} .hero-bg::after{content:'';position:absolute;inset:0;background-image:repeating-linear-gradient(45deg,transparent,transparent 40px,rgba(232,160,32,.03) 40px,rgba(232,160,32,.03) 80px)} .hero::before{content:'';position:absolute;bottom:0;left:0;right:0;height:4px;background:linear-gradient(90deg,var(--amber),var(--amber2),var(--amber));z-index:2} .hero-content{position:relative;z-index:1;max-width:700px;width:100%;display:flex;flex-direction:column;align-items:flex-start} .hero-badge{display:inline-flex;align-items:center;gap:.5rem;background:rgba(232,160,32,.15);border:1px solid var(--amber);color:var(--amber);font-size:.72rem;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;padding:.4rem 1rem;border-radius:2px;margin-bottom:1.5rem;animation:fadeUp .6s ease both} .hero h1{font-family:'Bebas Neue',sans-serif;font-size:clamp(3rem,8vw,6rem);line-height:.95;color:var(--white);letter-spacing:2px;margin-bottom:1.5rem;animation:fadeUp .6s ease .1s both} .hero h1 span{color:var(--amber);display:block} .hero p{font-size:1.05rem;color:var(--light);font-weight:300;width:100%;max-width:100%;margin-bottom:2rem;animation:fadeUp .6s ease .2s both} .hero-actions{display:flex;gap:1rem;flex-wrap:wrap;animation:fadeUp .6s ease .3s both} .btn-primary{background:var(--amber);color:var(--slate);font-weight:700;font-size:1rem;letter-spacing:1px;text-transform:uppercase;padding:1rem 2.5rem;border-radius:2px;text-decoration:none;transition:all .2s;border:2px solid var(--amber)} .btn-primary:hover{background:var(--amber2);transform:translateY(-2px);box-shadow:0 8px 24px rgba(232,160,32,.4)} .btn-outline{background:transparent;color:var(--white);font-weight:700;font-size:1rem;letter-spacing:1px;text-transform:uppercase;padding:1rem 2.5rem;border-radius:2px;text-decoration:none;border:2px solid rgba(255,255,255,.4);transition:all .2s} .btn-outline:hover{border-color:var(--white);background:rgba(255,255,255,.08)} .hero-stats{display:flex;flex-wrap:wrap;gap:1.5rem 2.5rem;margin-top:2.5rem;width:100%;animation:fadeUp .6s ease .4s both} .stat{text-align:center;min-width:80px} .stat-num{font-family:'Bebas Neue',sans-serif;font-size:2.5rem;color:var(--amber);line-height:1} .stat-label{font-size:.7rem;color:var(--grey);text-transform:uppercase;letter-spacing:1px} .trust-bar{background:var(--slate2);padding:1.2rem 5%;display:flex;justify-content:center;gap:3rem;flex-wrap:wrap;border-bottom:1px solid rgba(232,160,32,.2)} .trust-item{display:flex;align-items:center;gap:.6rem;color:var(--light);font-size:.85rem;font-weight:700;letter-spacing:.5px} .trust-icon{color:var(--amber);font-size:1.1rem} section{padding:5rem 5%} .section-label{font-size:.75rem;font-weight:700;letter-spacing:3px;text-transform:uppercase;color:var(--amber);margin-bottom:.8rem} h2{font-family:'Bebas Neue',sans-serif;font-size:clamp(2.2rem,4vw,3.5rem);line-height:1;letter-spacing:1px;margin-bottom:1.2rem;color:var(--slate)} .section-intro{font-size:1.05rem;color:#4a5568;max-width:600px;margin-bottom:3rem} .services-section{background:var(--white)} .services-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.5px;background:var(--light);border:1.5px solid var(--light)} .service-card{background:var(--white);padding:2.5rem 2rem;transition:all .25s;position:relative;overflow:hidden} .service-card::before{content:'';position:absolute;bottom:0;left:0;width:0;height:3px;background:var(--amber);transition:width .3s} .service-card:hover::before{width:100%} .service-card:hover{background:#fafbff} .service-icon{font-size:2rem;margin-bottom:1rem} .service-card h3{font-family:'Bebas Neue',sans-serif;font-size:1.5rem;letter-spacing:1px;margin-bottom:.6rem;color:var(--slate)} .service-card p{font-size:.92rem;color:#4a5568;line-height:1.7} .service-link{display:inline-flex;align-items:center;gap:.4rem;margin-top:1rem;font-size:.82rem;font-weight:700;letter-spacing:1px;text-transform:uppercase;color:var(--amber);text-decoration:none} .why-section{background:var(--slate);color:var(--white)} .why-section h2{color:var(--white)} .why-section .section-label{color:var(--amber)} .why-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:2rem;margin-top:3rem} .why-item{border-left:3px solid var(--amber);padding-left:1.5rem} .why-num{font-family:'Bebas Neue',sans-serif;font-size:3rem;color:rgba(232,160,32,.2);line-height:1} .why-item h3{font-family:'Bebas Neue',sans-serif;font-size:1.3rem;letter-spacing:1px;color:var(--amber);margin-bottom:.5rem} .why-item p{font-size:.9rem;color:var(--grey);line-height:1.7} .areas-section{background:var(--cream)} .areas-grid{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:2rem} .area-tag{background:var(--white);border:1.5px solid var(--light);color:var(--slate);padding:.5rem 1.2rem;border-radius:2px;font-size:.85rem;font-weight:700;text-decoration:none;transition:all .2s;letter-spacing:.5px} .area-tag:hover{border-color:var(--amber);color:var(--amber)} .area-tag.primary{background:var(--amber);color:var(--slate);border-color:var(--amber)} .reviews-section{background:var(--white)} .reviews-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:1.5rem;margin-top:3rem} .review-card{background:var(--cream);padding:2rem;border-radius:2px;border-top:3px solid var(--amber)} .review-stars{color:var(--amber);font-size:1rem;margin-bottom:.8rem;letter-spacing:2px} .review-text{font-size:.95rem;color:#4a5568;line-height:1.7;font-style:italic;margin-bottom:1rem} .reviewer{font-weight:700;font-size:.85rem;color:var(--slate)} .reviewer span{font-weight:400;color:var(--grey);margin-left:.5rem} .faq-section{background:var(--cream)} .faq-list{max-width:800px;margin-top:2.5rem} .faq-item{border-bottom:1px solid var(--light)} .faq-question{width:100%;background:none;border:none;text-align:left;padding:1.4rem 0;font-family:'Lato',sans-serif;font-size:1rem;font-weight:700;color:var(--slate);cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:1rem} .faq-question::after{content:'+';font-size:1.4rem;color:var(--amber);flex-shrink:0;transition:transform .2s} .faq-item.open .faq-question::after{transform:rotate(45deg)} .faq-answer{max-height:0;overflow:hidden;transition:max-height .3s ease} .faq-item.open .faq-answer{max-height:300px} .faq-answer p{padding-bottom:1.4rem;font-size:.95rem;color:#4a5568;line-height:1.7} .content-section{background:var(--white)} .two-col{display:grid;grid-template-columns:2fr 1fr;gap:4rem;align-items:start} .two-col-equal{display:grid;grid-template-columns:1fr 1fr;gap:4rem;align-items:start} .prose p{font-size:.95rem;color:#4a5568;line-height:1.8;margin-bottom:1.2rem} .prose h3{font-family:'Bebas Neue',sans-serif;font-size:1.5rem;letter-spacing:1px;margin:2rem 0 .8rem;color:var(--slate)} .prose ul{margin:0 0 1.2rem 1.2rem} .prose ul li{font-size:.95rem;color:#4a5568;line-height:1.9} .pricing-section{background:var(--cream)} .pricing-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1.5rem;margin-top:2.5rem} .pricing-card{background:var(--white);padding:2rem;border-radius:2px;border-top:3px solid var(--amber)} .pricing-card h3{font-family:'Bebas Neue',sans-serif;font-size:1.3rem;letter-spacing:1px;color:var(--slate);margin-bottom:.5rem} .pricing-price{font-family:'Bebas Neue',sans-serif;font-size:2rem;color:var(--amber);margin-bottom:.5rem} .pricing-card p{font-size:.88rem;color:#4a5568;line-height:1.7} .callout-box{background:var(--slate2);padding:2rem;border-radius:2px;border-left:4px solid var(--amber)} .callout-box h4{font-family:'Bebas Neue',sans-serif;font-size:1.2rem;letter-spacing:1px;color:var(--amber);margin-bottom:1rem} .callout-box p{font-size:.88rem;color:var(--light);line-height:1.7;margin-bottom:.8rem} .callout-phone{display:block;font-family:'Bebas Neue',sans-serif;font-size:1.6rem;color:var(--amber);letter-spacing:2px;text-decoration:none;margin-top:1rem} .info-box{margin-top:1.5rem;background:var(--cream);padding:1.5rem;border-radius:2px} .info-box strong{font-family:'Bebas Neue',sans-serif;letter-spacing:1px;font-size:1.1rem} .info-box span{font-size:.85rem;color:#4a5568;line-height:2;display:block;margin-top:.5rem} .local-section{background:var(--white)} .map-placeholder{background:var(--slate2);border-radius:2px;height:280px;display:flex;align-items:center;justify-content:center;color:var(--grey);font-size:.85rem;letter-spacing:1px;text-transform:uppercase;border:2px dashed rgba(232,160,32,.3);flex-direction:column;gap:1rem} .cta-section{background:var(--slate);color:var(--white);text-align:center;padding:5rem 5%;position:relative;overflow:hidden} .cta-section::before{content:'PORTSMOUTH';position:absolute;font-family:'Bebas Neue',sans-serif;font-size:18vw;color:rgba(255,255,255,.03);top:50%;left:50%;transform:translate(-50%,-50%);pointer-events:none;white-space:nowrap} .cta-section .section-label{color:var(--amber)} .cta-section h2{color:var(--white);margin-bottom:1rem} .cta-section p{color:var(--grey);max-width:500px;margin:0 auto 2.5rem} .cta-phone{display:block;font-family:'Bebas Neue',sans-serif;font-size:clamp(2.5rem,6vw,4rem);color:var(--amber);letter-spacing:3px;text-decoration:none;margin-bottom:2rem;transition:color .2s} .cta-phone:hover{color:var(--amber2)} footer{background:#080f17;color:var(--grey);padding:3rem 5%;display:grid;grid-template-columns:2fr 1fr 1fr;gap:3rem} .footer-brand .logo{font-size:1.4rem} .footer-brand p{font-size:.85rem;margin-top:1rem;line-height:1.7;max-width:280px} footer h4{font-family:'Bebas Neue',sans-serif;font-size:1rem;letter-spacing:2px;color:var(--white);margin-bottom:1rem} footer ul{list-style:none} footer ul li{margin-bottom:.5rem} footer ul li a{color:var(--grey);text-decoration:none;font-size:.85rem;transition:color .2s} footer ul li a:hover{color:var(--amber)} .footer-bottom{background:#080f17;border-top:1px solid rgba(255,255,255,.06);padding:1.2rem 5%;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:.5rem} .footer-bottom p{font-size:.78rem;color:rgba(138,155,176,.6)} .sticky-call{display:none;position:fixed;bottom:0;left:0;right:0;z-index:200;background:var(--amber);color:var(--slate);text-align:center;padding:1rem;font-weight:700;font-size:1rem;letter-spacing:1px;text-transform:uppercase;text-decoration:none} @keyframes fadeUp{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}} .reveal{opacity:1;transform:none;transition:opacity .6s ease,transform .6s ease} .reveal.will-animate{opacity:0;transform:translateY(30px)} .reveal.visible{opacity:1;transform:none} @media(max-width:768px){ nav{display:none} .hero{padding:4rem 5% 5rem} .hero-actions{flex-direction:column} .btn-primary,.btn-outline{text-align:center;width:100%} .two-col,.two-col-equal{grid-template-columns:1fr} footer{grid-template-columns:1fr;gap:2rem} .sticky-call{display:block} body{padding-bottom:60px} .trust-bar{gap:1.2rem;justify-content:flex-start} }
Emergency roof repairs 24/7 — Call now: 0239 307 1334

When to Replace Your Portsmouth Roof

The honest criteria we use when assessing whether a Portsmouth roof needs replacing or can be repaired. Nail sickness, tile erosion and post-war estate issues explained.

NFRC Registered
Fully Insured
10-Year Guarantee
Free Quotes
No Hidden Costs

Replace a Portsmouth roof when repairs become repetitive, nail sickness affects multiple slopes, or the covering reaches end of life — 80-plus years for slate, 35 to 50 for concrete tile. Coastal salt shortens these intervals. If tiles are sound but nails have failed, re-fixing is a cheaper alternative to full replacement.

Deciding whether to repair or replace your Portsmouth roof is one of the most significant home maintenance decisions you will make. The wrong call in either direction is expensive. This guide sets out the honest criteria we use when advising Portsmouth homeowners — the same assessment we carry out on every survey.

Repair vs Replace: The Decision Framework

SituationRecommendationReasoning
Single localised fault, otherwise sound roofRepairNo value in replacing a sound roof
Nail sickness on one slope only, tiles soundTargeted re-fixAddress the failing fixings specifically
Nail sickness across multiple slopesReplaceCumulative cost of repeated repairs exceeds re-roof
Tiles at 50+ years with surface erosionReplaceEnd of design life — repair is temporary
Active leak with multiple failure pointsSurvey firstMay be repair or replace depending on extent
Batten or rafter deterioration foundReplaceStructural repairs require full strip

BS 5534 recommends full re-fixing where systemic nail fatigue is present across a roof slope.

Source: British Standard BS 5534

Portsmouth-Specific Factors That Affect the Decision

Nail Sickness on Post-War Estates

Portsmouth has a significant stock of post-war council and private estate housing — Paulsgrove, Leigh Park, Bridgemary, Rowner, Catisfield. These properties were built between 1945 and 1975 with galvanised fixings in a coastal-adjacent environment. The galvanised coating in salt-influenced air has a substantially reduced life compared to inland conditions. Many of these properties are now past the point where targeted repair is economically sensible — the cost of sequential repairs over 5 years typically exceeds the cost of a full re-roof with marine-grade stainless fixings that will last 40+ years.

Surface Erosion on 1930s Concrete Tiles

Cosham, Drayton and Portchester North have large concentrations of 1930s semis with original concrete plain tiles. These tiles are now 85–90 years old and showing advanced surface aggregate shedding. As the surface erodes, the tiles become progressively more porous, heavier when wet, and less stable on the battens. At this stage of erosion, repair is not viable — the tiles themselves are the problem, and full replacement is the only lasting solution.

Not Sure — Repair or Replace?

We'll survey your Portsmouth roof and give you an honest recommendation with no obligation to proceed. Call 0239 307 1334 for a free assessment.

Call 0239 307 1334

What a Portsmouth Re-Roof Costs

Re-roof costs in Portsmouth 2025 based on current material and labour prices:

All prices include scaffold, strip of existing covering, breathable membrane, pressure-treated battens, marine-grade stainless fixings, and disposal. Heritage tile matching for conservation area properties is quoted separately depending on reclaimed tile availability.

The Survey — What We Assess Before Advising

We will not advise replacement without a roof survey that assesses: tile condition and remaining design life; fixing condition (nail sickness extent and severity); batten condition (rot, splitting, spacing); rafter condition visible from the loft; any deck issues on flat sections; and chimney and flashing condition. A repair recommendation without this assessment is guesswork — and a replacement recommendation without it is potentially unnecessary expenditure.

Getting Quotes — What to Watch For

Red flags in Portsmouth roofing quotes: no survey before quoting; price given per tile rather than for the full job; no mention of batten condition; scaffold "extra" or not mentioned; no written guarantee. A legitimate re-roof quote should be written, itemised, and cover all elements of the job. Verbal quotes on major works should be refused.

0239 307 1334 0239 307 1334

Last reviewed: 20 July 2026 by Portsmouth Roofing Experts.

FAQ

Frequently Asked Questions

Key indicators: nail sickness across multiple slopes, tiles over 50 years with surface erosion, active leaks at multiple points, or structural timber deterioration found on survey. A free survey from Portsmouth Roofing Experts will give you an honest assessment.

From £5,500 for a 2-bed terrace to £16,000 for a 4-bed detached. All prices include scaffold, strip, membrane, battens, marine-grade fixings and disposal. Call for a free itemised quote.

Not always — a single-slope nail sickness problem can be addressed with targeted re-fixing. Widespread nail sickness across multiple slopes typically makes a full re-roof with marine-grade stainless fixings more economical than sequential targeted repairs.

At 85–90 years old with surface aggregate shedding, these tiles are at end of design life. Repair is not viable at this stage — full replacement with the correct modern equivalent is the lasting solution.

3-bed semi: 4–6 days. Victorian terrace: 5–7 days including chimney work. 4-bed detached: 5–8 days. Realistic timelines are given in the written quote.

We do not offer in-house finance. We recommend contacting your home insurer if storm damage is involved, and can provide full documentation for insurance claims. Call 0239 307 1334 for guidance.

10-year written workmanship guarantee on all re-roof projects. Backed by our public liability insurance and NFRC registration.

Get In Touch

Get Your Free Roofing Quote

No call-out fees. No obligation. Local Portsmouth roofers.

0239 307 1334