Rank for the roof problem, not for the word roofer
Almost nobody types the head term first, and the head term is the most expensive thing on the page to chase.
An owner sees a brown ring on a hallway ceiling. Or granules washing out of a downspout after a storm. Or a run of shingles standing up along a ridge that was flat last week. What they type is a description of that, sometimes badly spelled, usually with a room name or a part of the house attached.
Those searches are cheaper to win than the head term and they arrive better qualified. Somebody typing about a stain has already decided something is wrong. Somebody typing the trade name plus the city name may be three months out, or may be a competitor, or may be a supplier.
Build one page per failure mode. Ceiling stain. Granule loss. Lifted or creased shingles after wind. Nail pops. Valley leaks. Flashing at a chimney or a wall. On each one, show real photos, explain what usually causes it, say plainly whether it is generally a repair or generally points toward replacement, and say what you would need to see on the roof before anyone could tell.
Hedge the parts that deserve hedging. You cannot diagnose a house from a paragraph, and saying so builds more trust than a confident guess. Write that the cause is worth confirming with an inspection, and that anything touching a claim is worth confirming with the insurer.
Those pages also feed everything else. They are what your paid landing pages should borrow from, and they are what an estimator can text to a hesitant homeowner at nine at night.