A roofing company can have a site that looks professional, loads fast, and ranks solidly on Google for branded searches, and still get zero citations from AI engines. These are not the same problem. AI invisibility is not about visual design or page speed. It is about whether the site is structured to answer the questions homeowners are asking.
When we audit roofing contractor sites, the same issues appear repeatedly. None of them are exotic technical failures. They are predictable gaps in content and structure that are straightforward to fix once you know what to look for.
No answer pages
This is the single most common and most significant gap. Most roofing contractor sites have a homepage, a services page, an about page, a gallery, and a contact form. None of those pages answer a homeowner's question.
AI engines generate recommendations by finding pages that directly address the query someone asked. "How much does roof replacement cost in Charlotte" matches to a page that answers that question. It does not match to a services page that says "we offer roof replacement in the Charlotte area." The AI cannot extract a recommendation from promotional copy. It can from a direct answer page.
A site with no answer pages has no citation targets. It does not matter how good the homepage looks or how many five-star reviews are quoted there. The AI has nothing to cite it for.
Schema markup is missing or wrong
The second most common gap is schema markup: the structured data blocks in your page code that tell AI engines what your business is, where it operates, and what it does. Most roofing sites have no schema at all. Some have schema that was added by a web developer and has never been updated. A few have schema that was copied from a template and contains placeholder data or the previous agency's business name.
Missing schema means the AI is inferring your service area from your homepage copy. Incorrect schema means the AI might be citing your old phone number, your old address, or the wrong service area entirely. Neither outcome helps the homeowner who asked the question, so neither outcome produces a citation for you.
LocalBusiness schema with a fully populated areaServed field, Service schema for your specific roofing work types, and FAQPage schema on any answer pages you do publish: these are the minimum technical requirements for reliable AI citation. Without them, the AI is working from incomplete information and will default to a source that has the data properly structured.
Robots.txt blocks AI crawlers
This one is less common but costly when it happens. Some websites have robots.txt configurations that were set up to manage Google crawl budget or to block specific scrapers, and those configurations inadvertently block AI crawlers as well.
AI engines from OpenAI (GPTBot), Google (Googlebot), Anthropic (ClaudeBot), and Perplexity (PerplexityBot) all have their own crawler user agents. A blanket disallow on non-Googlebot crawlers is common on sites built before these AI crawlers existed. If your robots.txt blocks them, your site will not appear in AI answers regardless of how good your content and schema are.
Checking your robots.txt takes about five minutes. Go to yoursite.com/robots.txt and look for any Disallow rules that might apply to AI crawlers. If you see a wildcard Disallow that does not explicitly allow the major AI user agents, that is worth fixing before investing in any other AEO work.
The site is all about the company, not the homeowner
Many roofing sites are built to show what the company does and how long it has been doing it. That is useful information, but it answers the question the company wants to answer, not the question the homeowner is asking.
AI engines are trying to help homeowners make decisions. They favor content that directly serves that goal. A page about your company's 25-year history is not a decision-support resource for someone trying to figure out whether to repair or replace their roof. A page that answers "how do I know if I need a repair or a full replacement" is exactly that, and it is also a citation target.
Reorienting your site content from company-first to homeowner-first does not require a rebuild. It requires a set of answer pages added alongside your existing structure, each addressing one question a homeowner in your market might ask at a specific stage of their decision process.
NAP inconsistencies across the web
NAP stands for Name, Address, Phone: the three pieces of business identity data that appear consistently or inconsistently across your website, Google Business Profile, Yelp, Angi, and dozens of other directories. AI engines aggregate signals from multiple sources when evaluating how trustworthy a business is. A business whose name appears as "Houston Star Roofing LLC" on its website, "Houston Star Roofing" on Google, and "H.S. Roofing" on Yelp has a fragmented identity that reduces the confidence AI has in citing it.
Fixing NAP inconsistencies means auditing every major directory where your business appears and standardizing the name, address, and phone number format across all of them. This is part of the Authority tier of AEO work. It is not glamorous, but it matters for AI citation accuracy and for preventing the AI from citing an outdated phone number to a homeowner who then calls a disconnected line.
Find out which of these gaps your site has
Our free AI Visibility Report checks your answer page coverage, schema markup, robots.txt configuration, and citation rate across the major AI engines. You see exactly where the gaps are and what fixing them looks like.
Get my free AI Visibility ReportFor the full picture on what makes a site citable, read what AEO is for roofing contractors. For the schema markup detail, see schema markup for roofing websites. For what content to build first, read what homeowners ask AI about roofing.