vip-roofing-brisbane · V3 handoff

14 files · 14-file handoff schema · source: clients/vip-roofing-brisbane/v2/handoff/
README.md · 1.5KB
# Handoff Package · VIP Roofing Brisbane

> Generated by `pl:build-handoff` · 2026-05-16T12:01:16.477Z
> Entity: `place_chij6wsd-kzbkwsryzke1ejotjs` · Phase: `ready-to-build`

## 商家概览

- **名字**: VIP Roofing Brisbane
- **行业**: roofer
- **城市**: Brisbane (QLD)
- **网站**: https://www.viproofingbrisbane.com.au/
- **电话**: (07) 3062 7779
- **ABN**: _(待 ABR_GUID 注册后补)_
- **域名年龄**: 11 年 (wayback_first_snapshot)
- **第一次上线**: 2015-03-01
- **Google**: 5★ · 26 reviews

## Handoff 14 文件结构

- **core-facts.json** · 硬数据 · 27 字段 · LOCKED
- **design/brand-tokens.json** · brand color/font tokens
- **design/design-style.md** · visual style 描述
- **content/services.json** · 5 服务条目
- **content/about.md** · 公司故事 (niche typical + 硬数据综合)
- **content/faq.json** · 6 问 (niche typical)
- **structure/page-map.json** · 14 页 · 5 服务 + 4 area 长尾
- **structure/seo-strategy.md** · long-tail target list
- **audit/findings.json** · 19 issue
- **audit/issue-fix-matrix.json** · issue → page+section 映射
- **boundaries.md** · LOCKED 字段清单
- **final-prompt.md** · build prompt aggregator
- **README.md** (本文)

## 待 Phase B 升级 (LLM 调用 · Cascade A)

- Logo skill 真调 (现在是 brand-tokens niche default · 没真 logo)
- about-narrative LLM 综合 (现在是模板综合 · 没用 review 语气 / 原网内容)
- services 描述 LLM 抽 (从现网 markdown / GBP types)
- FAQ LLM 生成 (现在是 niche typical · 没 customize)
- Photos AI 分析 + selection
- Reviews 真聚合 + AI fallback
- Page-map LLM 决策 (现在 area pages 是 city+方位 hardcode · 没 sitemap analysis)

详见 [docs/v3/HANDOFF-STRUCTURE.md](../../../docs/v3/HANDOFF-STRUCTURE.md)
download raw
audit/findings.json · 6.4KB
{
  "audit_score": 27,
  "decision": "strong_redesign",
  "findings": [
    {
      "id": "above_fold_cta_within_5s",
      "severity": "critical",
      "weight": null,
      "what_observed": "no CTA keyword in first 1500 chars",
      "why_it_costs": "客户打开你的网站后,前 5 秒内(一屏之内)看不到任何明显的「联系我们 / 报价 / 立即拨打」按钮。",
      "fix_prescription": null,
      "fix_target": null,
      "verification": null,
      "source": "[审计 · detailed-audit]"
    },
    {
      "id": "phone_visible_above_fold",
      "severity": "critical",
      "weight": null,
      "what_observed": "phone hidden below fold or missing",
      "why_it_costs": "电话号码在第一屏看不到 — 客户必须滚动才能找到怎么联系你。",
      "fix_prescription": null,
      "fix_target": null,
      "verification": null,
      "source": "[审计 · detailed-audit]"
    },
    {
      "id": "click_to_call_link",
      "severity": "major",
      "weight": null,
      "what_observed": "no tel: link",
      "why_it_costs": "电话号码不是 click-to-call 链接(手机上点击不会自动拨号)。",
      "fix_prescription": null,
      "fix_target": null,
      "verification": null,
      "source": "[审计 · detailed-audit]"
    },
    {
      "id": "homepage_title_clear",
      "severity": "major",
      "weight": null,
      "what_observed": "title='' contains-name=false contains-niche=false",
      "why_it_costs": "你网站的浏览器标签 title 没把业务名字 + 服务关键词写清楚(比如该写「VIP Roofing Brisbane - roofer Brisbane」,但目前是泛泛一句)。",
      "fix_prescription": null,
      "fix_target": null,
      "verification": null,
      "source": "[审计 · detailed-audit]"
    },
    {
      "id": "service_copy_specific",
      "severity": "major",
      "weight": null,
      "what_observed": "0 service-related verbs detected",
      "why_it_costs": "网站文案里没有具体说清楚你做哪些服务(比如 metal roofing / tile restoration / gutter / skylight 等专项),只是泛泛说「我们做屋顶」。",
      "fix_prescription": null,
      "fix_target": null,
      "verification": null,
      "source": "[审计 · detailed-audit]"
    },
    {
      "id": "trust_signals_present",
      "severity": "major",
      "weight": null,
      "what_observed": "0 trust-keyword mentions",
      "why_it_costs": "网站上没有显眼地写出执照号 / ABN / 保险信息 / 从业年限 / 行业证书。",
      "fix_prescription": null,
      "fix_target": null,
      "verification": null,
      "source": "[审计 · detailed-audit]"
    },
    {
      "id": "h1_unique",
      "severity": "major",
      "weight": null,
      "what_observed": "0 <h1> tags",
      "why_it_costs": "页面要么没有 H1 标题(搜索引擎无法理解页面主旨),要么有多个 H1(搜索引擎不知道哪个是主题)。",
      "fix_prescription": null,
      "fix_target": null,
      "verification": null,
      "source": "[审计 · detailed-audit]"
    },
    {
      "id": "local_schema_markup",
      "severity": "major",
      "weight": null,
      "what_observed": "no LocalBusiness JSON-LD",
      "why_it_costs": "网站没有 LocalBusiness JSON-LD 结构化数据(让 Google / AI 知道你是本地企业、地址、电话、营业时间的标准格式)。",
      "fix_prescription": null,
      "fix_target": null,
      "verification": null,
      "source": "[审计 · detailed-audit]"
    },
    {
      "id": "has_hours",
      "severity": "minor",
      "weight": null,
      "what_observed": "no hours",
      "why_it_costs": "GBP 上没有完整的营业时间。",
      "fix_prescription": null,
      "fix_target": null,
      "verification": null,
      "source": "[审计 · detailed-audit]"
    },
    {
      "id": "image_count",
      "severity": "minor",
      "weight": null,
      "what_observed": "0 images",
      "why_it_costs": "GBP 上图片数量低于行业建议(一般 ≥ 10 张完工图 + 团队照 + 设备照)。",
      "fix_prescription": null,
      "fix_target": null,
      "verification": null,
      "source": "[审计 · detailed-audit]"
    },
    {
      "id": "has_business_description",
      "severity": "minor",
      "weight": null,
      "what_observed": "no description",
      "why_it_costs": null,
      "fix_prescription": null,
      "fix_target": null,
      "verification": null,
      "source": "[审计 · detailed-audit]"
    },
    {
      "id": "has_service_area",
      "severity": "minor",
      "weight": null,
      "what_observed": "no service area",
      "why_it_costs": null,
      "fix_prescription": null,
      "fix_target": null,
      "verification": null,
      "source": "[审计 · detailed-audit]"
    },
    {
      "id": "favicon_and_meta",
      "severity": "minor",
      "weight": null,
      "what_observed": "favicon: no, meta: no",
      "why_it_costs": "你的网站缺少 favicon(浏览器标签页上的小图标)或基本的 meta 标签。",
      "fix_prescription": null,
      "fix_target": null,
      "verification": null,
      "source": "[审计 · detailed-audit]"
    },
    {
      "id": "quote_or_booking_form",
      "severity": "minor",
      "weight": null,
      "what_observed": "no form",
      "why_it_costs": "你的网站没有 quote / booking 表单 — 客户只能打电话或发邮件。",
      "fix_prescription": null,
      "fix_target": null,
      "verification": null,
      "source": "[审计 · detailed-audit]"
    },
    {
      "id": "has_gallery",
      "severity": "minor",
      "weight": null,
      "what_observed": "no gallery",
      "why_it_costs": "没有项目作品集 / before-after 图库。",
      "fix_prescription": null,
      "fix_target": null,
      "verification": null,
      "source": "[审计 · detailed-audit]"
    },
    {
      "id": "has_testimonials",
      "severity": "minor",
      "weight": null,
      "what_observed": "no testimonials",
      "why_it_costs": "网站上没有客户评价 / 推荐 — 即使你 Google 上有 25 条 5★ 评价。",
      "fix_prescription": null,
      "fix_target": null,
      "verification": null,
      "source": "[审计 · detailed-audit]"
    },
    {
      "id": "evidence_of_recent_update",
      "severity": "minor",
      "weight": null,
      "what_observed": "no recent year (≤ 1 year ago)",
      "why_it_costs": null,
      "fix_prescription": null,
      "fix_target": null,
      "verification": null,
      "source": "[审计 · detailed-audit]"
    },
    {
      "id": "title_meta_present",
      "severity": "minor",
      "weight": null,
      "what_observed": "title=no meta=no",
      "why_it_costs": "页面缺少 SEO 用的 title 标签或 meta description。",
      "fix_prescription": null,
      "fix_target": null,
      "verification": null,
      "source": "[审计 · detailed-audit]"
    },
    {
      "id": "image_alt_present",
      "severity": "minor",
      "weight": null,
      "what_observed": "1 images, 0% with alt",
      "why_it_costs": "图片没有 alt 文字描述。",
      "fix_prescription": null,
      "fix_target": null,
      "verification": null,
      "source": "[审计 · detailed-audit]"
    }
  ],
  "_meta": {
    "generator": "pl:build-handoff MVP",
    "derived_from": "data/v2/fixtures/detailed-audit/place_chij6wsd-kzbkwsryzke1ejotjs.json",
    "total_findings": 19
  }
}
download raw
audit/issue-fix-matrix.json · 3.8KB
{
  "matrix": [
    {
      "issue_id": "above_fold_cta_within_5s",
      "resolved_in_pages": [
        "all"
      ],
      "resolved_in_sections": [
        "(待 LLM 推断)"
      ],
      "verification_check": null
    },
    {
      "issue_id": "phone_visible_above_fold",
      "resolved_in_pages": [
        "all"
      ],
      "resolved_in_sections": [
        "(待 LLM 推断)"
      ],
      "verification_check": null
    },
    {
      "issue_id": "click_to_call_link",
      "resolved_in_pages": [
        "all"
      ],
      "resolved_in_sections": [
        "(待 LLM 推断)"
      ],
      "verification_check": null
    },
    {
      "issue_id": "homepage_title_clear",
      "resolved_in_pages": [
        "all"
      ],
      "resolved_in_sections": [
        "(待 LLM 推断)"
      ],
      "verification_check": null
    },
    {
      "issue_id": "service_copy_specific",
      "resolved_in_pages": [
        "all"
      ],
      "resolved_in_sections": [
        "(待 LLM 推断)"
      ],
      "verification_check": null
    },
    {
      "issue_id": "trust_signals_present",
      "resolved_in_pages": [
        "all"
      ],
      "resolved_in_sections": [
        "(待 LLM 推断)"
      ],
      "verification_check": null
    },
    {
      "issue_id": "h1_unique",
      "resolved_in_pages": [
        "all"
      ],
      "resolved_in_sections": [
        "(待 LLM 推断)"
      ],
      "verification_check": null
    },
    {
      "issue_id": "local_schema_markup",
      "resolved_in_pages": [
        "all"
      ],
      "resolved_in_sections": [
        "(待 LLM 推断)"
      ],
      "verification_check": null
    },
    {
      "issue_id": "has_hours",
      "resolved_in_pages": [
        "all"
      ],
      "resolved_in_sections": [
        "(待 LLM 推断)"
      ],
      "verification_check": null
    },
    {
      "issue_id": "image_count",
      "resolved_in_pages": [
        "all"
      ],
      "resolved_in_sections": [
        "(待 LLM 推断)"
      ],
      "verification_check": null
    },
    {
      "issue_id": "has_business_description",
      "resolved_in_pages": [
        "all"
      ],
      "resolved_in_sections": [
        "(待 LLM 推断)"
      ],
      "verification_check": null
    },
    {
      "issue_id": "has_service_area",
      "resolved_in_pages": [
        "all"
      ],
      "resolved_in_sections": [
        "(待 LLM 推断)"
      ],
      "verification_check": null
    },
    {
      "issue_id": "favicon_and_meta",
      "resolved_in_pages": [
        "all"
      ],
      "resolved_in_sections": [
        "(待 LLM 推断)"
      ],
      "verification_check": null
    },
    {
      "issue_id": "quote_or_booking_form",
      "resolved_in_pages": [
        "all"
      ],
      "resolved_in_sections": [
        "(待 LLM 推断)"
      ],
      "verification_check": null
    },
    {
      "issue_id": "has_gallery",
      "resolved_in_pages": [
        "all"
      ],
      "resolved_in_sections": [
        "(待 LLM 推断)"
      ],
      "verification_check": null
    },
    {
      "issue_id": "has_testimonials",
      "resolved_in_pages": [
        "all"
      ],
      "resolved_in_sections": [
        "(待 LLM 推断)"
      ],
      "verification_check": null
    },
    {
      "issue_id": "evidence_of_recent_update",
      "resolved_in_pages": [
        "all"
      ],
      "resolved_in_sections": [
        "(待 LLM 推断)"
      ],
      "verification_check": null
    },
    {
      "issue_id": "title_meta_present",
      "resolved_in_pages": [
        "all"
      ],
      "resolved_in_sections": [
        "(待 LLM 推断)"
      ],
      "verification_check": null
    },
    {
      "issue_id": "image_alt_present",
      "resolved_in_pages": [
        "all"
      ],
      "resolved_in_sections": [
        "(待 LLM 推断)"
      ],
      "verification_check": null
    }
  ],
  "_meta": {
    "generator": "pl:build-handoff MVP · LLM 升级见 V3-HANDOFF-STRUCTURE Phase B"
  }
}
download raw
boundaries.md · 0.6KB
# OD 不能改的 (LOCKED · 严格)

## 商家硬数据 (verbatim · 一字不改 · VIP Roofing Brisbane)

- **business_name**: `VIP Roofing Brisbane`
- **phone**: `(07) 3062 7779`
- **phone_tel_link**: `tel:0730627779`
- **address**: `39/71 Eagle St, Brisbane City QLD 4000, Australia`
- **abn**: `(待 ABR 补)` (?)
- **rating**: 5★ (26 reviews)
- **google_maps_url**: `https://maps.google.com/?cid=4273580595831149153`

## 不许做的

- 编造 license 号 / award / 价格 / 团队规模
- 改 Reference template 的 data-od-locked 区
- 删 data-od-sample 标记 (M5 客户要改占位)
- 用 "Welcome to" / "Your trusted" / "X years of excellence" 这种模板套话
- 修改商家名拼写 / 改电话格式 / 简化地址

详见 docs/v4/DATA-PRESERVATION-CONTRACT.md
download raw
content/about.md · 0.3KB
---
generator: "pl:build-handoff MVP"
last_updated: "2026-05-16T12:01:16.474Z"
sources:
  - "[GBP]"
  - "[Wayback]"
---
# About VIP Roofing Brisbane
VIP Roofing Brisbane 自 2015 在 Brisbane 经营 · 至今 11 年。
Google 评分: 5★ · 26 条评论。
## 备注
MVP 阶段 · 这段为 niche typical + 硬数据综合 · LLM 综合升级见 V3-HANDOFF-STRUCTURE Phase B (Cascade A 调用)。
download raw
content/faq.json · 1.2KB
{
  "faqs": [
    {
      "q": "How much does roof restoration cost in Brisbane?",
      "a": "Free quote · pricing depends on damage extent · we provide written estimates within 24 hours.",
      "source": "[niche typical · MVP]"
    },
    {
      "q": "Are you QBCC licensed?",
      "a": "Yes · we hold a current Queensland Building and Construction Commission license · public record at ABR.",
      "source": "[niche typical · MVP]"
    },
    {
      "q": "Do you offer free quotes?",
      "a": "Yes · no obligation site visit · written quote within 24 hours.",
      "source": "[niche typical · MVP]"
    },
    {
      "q": "How long does a roof replacement take?",
      "a": "Typically 2-5 days depending on roof size and weather · we keep you updated throughout.",
      "source": "[niche typical · MVP]"
    },
    {
      "q": "What's your warranty?",
      "a": "All workmanship guaranteed · Colorbond materials carry manufacturer warranties up to 36 years.",
      "source": "[niche typical · MVP]"
    },
    {
      "q": "Do you handle insurance claims?",
      "a": "Yes · we work directly with insurance companies for storm/hail damage claims.",
      "source": "[niche typical · MVP]"
    }
  ],
  "_meta": {
    "generator": "pl:build-handoff MVP"
  }
}
download raw
content/services.json · 1.3KB
{
  "services": [
    {
      "id": "roof-restoration",
      "name": "Roof Restoration",
      "desc": "全面屋顶翻新 · 高压清洁 + 修补 + 重涂 + 防水",
      "icon": "sparkles",
      "page_slug": "/roof-restoration",
      "source": [
        "[niche typical]"
      ]
    },
    {
      "id": "roof-repair",
      "name": "Roof Repair",
      "desc": "漏水修复 · 屋瓦更换 · 紧急维修",
      "icon": "wrench",
      "page_slug": "/roof-repair",
      "source": [
        "[niche typical]"
      ]
    },
    {
      "id": "gutter-replacement",
      "name": "Gutter Replacement",
      "desc": "排水沟更换 · Colorbond / Zincalume",
      "icon": "water",
      "page_slug": "/gutter-replacement",
      "source": [
        "[niche typical]"
      ]
    },
    {
      "id": "gutter-guard",
      "name": "Gutter Guard",
      "desc": "防堵排水沟方案 · 长期维护",
      "icon": "shield",
      "page_slug": "/gutter-guard",
      "source": [
        "[niche typical]"
      ]
    },
    {
      "id": "metal-roofing",
      "name": "Metal Roofing",
      "desc": "金属屋顶安装 · 商业 + 住宅",
      "icon": "rectangle",
      "page_slug": "/metal-roofing",
      "source": [
        "[niche typical]"
      ]
    }
  ],
  "_meta": {
    "generator": "pl:build-handoff (MVP · niche typical · LLM 升级待 V3-HANDOFF-STRUCTURE Phase B)",
    "derived_from": "niche typical · GBP categories fallback"
  }
}
download raw
core-facts.json · 1.3KB
{
  "business_name": "VIP Roofing Brisbane",
  "phone": "(07) 3062 7779",
  "phone_tel_link": "tel:0730627779",
  "email": null,
  "address": "39/71 Eagle St, Brisbane City QLD 4000, Australia",
  "city": "Brisbane",
  "state": "QLD",
  "niche": "roofer",
  "gbp_categories": [
    "establishment",
    "point_of_interest",
    "roofing_contractor"
  ],
  "rating": 5,
  "review_count": 26,
  "google_maps_url": "https://maps.google.com/?cid=4273580595831149153",
  "domain": "viproofingbrisbane.com.au",
  "website": "https://www.viproofingbrisbane.com.au/",
  "website_status": "has_website",
  "social_links": {},
  "hours": null,
  "abn": null,
  "abn_status": null,
  "abn_registered_at": null,
  "entity_type": null,
  "trading_names": [],
  "domain_registered_at": null,
  "domain_age_years": 11,
  "domain_age_source": "wayback_first_snapshot",
  "first_online": "2015-03-01",
  "wayback_first_snapshot_url": "http://web.archive.org/web/20150301021626/http://www.viproofingbrisbane.com.au/",
  "_meta": {
    "generated_at": "2026-05-16T12:01:16.473Z",
    "entity_key": "place_chij6wsd-kzbkwsryzke1ejotjs",
    "entity_phase": "ready-to-build",
    "sources": {
      "business_name": "[GBP]",
      "phone": "[GBP]",
      "address": "[GBP]",
      "abn": null,
      "domain_registered_at": null,
      "first_online": "[Wayback]"
    }
  }
}
download raw
design/brand-tokens.json · 0.3KB
{
  "primary": "#1a3d5c",
  "accent": "#d97706",
  "font_heading": "Inter",
  "font_body": "Inter",
  "dominant_palette": "navy + warm orange (industrial trades typical)",
  "_meta": {
    "generator": "pl:build-handoff MVP · niche typical · logo skill 待接"
  }
}
download raw
design/design-style.md · 0.2KB
# Design Style · VIP Roofing Brisbane

Modern Industrial · Trust-heavy · Editorial layout · Navy anchor with warm orange accent · Professional roofer aesthetic

_(niche typical · LLM 升级待 V3-HANDOFF-STRUCTURE Phase B)_
download raw
design/logo-mode.json · 0.1KB
{
  "mode": "placeholder",
  "note": "Logo skill 未接 · 用 reference template 内置 logo · 客户提交 logo 后 M5 替换",
  "skill_to_invoke": "existing-logo-brand"
}
download raw
final-prompt.md · 1.5KB
# Build Prompt · VIP Roofing Brisbane

You are adapting a reference website to a real customer. This is the build prompt aggregator
for Open Design (Codex retex). Read all referenced handoff files before generating.

## Target Customer

- **Business**: VIP Roofing Brisbane
- **Phone**: (07) 3062 7779
- **Address**: 39/71 Eagle St, Brisbane City QLD 4000, Australia
- **Niche**: roofer
- **City**: Brisbane, QLD
- **Website**: https://www.viproofingbrisbane.com.au/
- **Route**: REDESIGN

## Read these handoff files (in order)

1. `core-facts.json` — LOCKED data · use verbatim, do not paraphrase
2. `design/brand-tokens.json` + `design/design-style.md`
3. `content/services.json` — features to highlight
4. `content/about.md` — about narrative (may tighten copy · keep facts)
5. `content/faq.json` — 6 FAQs to embed
6. `structure/page-map.json` — build these N pages
7. `structure/seo-strategy.md` — long-tail target
8. `audit/findings.json` — 19 audit issues (REDESIGN only)
9. `audit/issue-fix-matrix.json` — which page solves which issue
10. `boundaries.md` — what you CANNOT do

## Build Requirements

- Every LOCKED field from `core-facts.json` must appear verbatim
- Each `audit/findings.json` issue must be addressed per `fix_prescription`
- Output must pass verification checks in `audit/issue-fix-matrix.json`
- Follow `boundaries.md` strictly

## Reference Template Family

Default: `classic-premium-roftix` (roofer/trades family · adaptable to other niches via LLM retex)

---

_Generated by pl:build-handoff · 2026-05-16T12:01:16.478Z_
download raw
structure/page-map.json · 2.0KB
{
  "pages": [
    {
      "slug": "/",
      "name": "Home",
      "type": "home",
      "purpose": "hero + 3 services + reviews + trust + map + CTA",
      "priority": 1
    },
    {
      "slug": "/roof-restoration",
      "name": "Roof Restoration",
      "type": "service",
      "priority": 2
    },
    {
      "slug": "/roof-repair",
      "name": "Roof Repair",
      "type": "service",
      "priority": 2
    },
    {
      "slug": "/gutter-replacement",
      "name": "Gutter Replacement",
      "type": "service",
      "priority": 2
    },
    {
      "slug": "/gutter-guard",
      "name": "Gutter Guard",
      "type": "service",
      "priority": 2
    },
    {
      "slug": "/metal-roofing",
      "name": "Metal Roofing",
      "type": "service",
      "priority": 2
    },
    {
      "slug": "/roofer-brisbane",
      "name": "roofer Brisbane",
      "type": "area",
      "primary": true,
      "priority": 3
    },
    {
      "slug": "/roofer-brisbane-cbd",
      "name": "roofer Brisbane CBD",
      "type": "area",
      "priority": 3
    },
    {
      "slug": "/roofer-brisbane-northside",
      "name": "roofer Brisbane Northside",
      "type": "area",
      "priority": 3
    },
    {
      "slug": "/roofer-brisbane-southside",
      "name": "roofer Brisbane Southside",
      "type": "area",
      "priority": 3
    },
    {
      "slug": "/about",
      "name": "About",
      "type": "about",
      "purpose": "company story + ABN + license · trust 集中",
      "priority": 2
    },
    {
      "slug": "/reviews",
      "name": "Reviews",
      "type": "reviews",
      "purpose": "26 reviews aggregator",
      "priority": 3
    },
    {
      "slug": "/contact",
      "name": "Contact",
      "type": "contact",
      "purpose": "form + tel + map",
      "priority": 1
    }
  ],
  "total_pages": 14,
  "service_pages": 5,
  "area_pages": 4,
  "_meta": {
    "generator": "pl:build-handoff MVP",
    "rationale": "Brisbane roofer · 标准结构: home + 5 services + 4 area 长尾 + about + reviews + contact"
  }
}
download raw
structure/seo-strategy.md · 0.6KB
---
generator: "pl:build-handoff MVP"
source: "niche typical · city + niche combo"
---

# SEO Strategy · VIP Roofing Brisbane

## Primary Keywords
- "roofer Brisbane"
- "best roofer Brisbane"
- "roofer near me Brisbane"

## Long-tail (Service × Area)
- "roof repair Brisbane CBD"
- "roof restoration Brisbane Northside"
- "gutter replacement Inner Brisbane"

## Schema (per page)
- LocalBusiness (whole-site · ABN + phone + address)
- Service (per service page)
- AggregateRating (26 reviews · 5★)
- FAQ (per page · FAQPage)

## 备注

MVP 阶段 long-tail target 为 niche typical · LLM 升级时综合 audit sitemap classify 真实长尾页 + 竞品分析。
download raw