# OG Image and Internal Linking Status

**Last Updated:** 2026-03-04

Status of OG image generation and internal linking for the Firmennamen Generator tool.

## OG Image Generation

### Configuration Status: ✅ COMPLETE

**Specs File (`v2/scripts/og-images/og-image-specs.json`):**
- ✅ Entry added: `"firmennamen-generator": {"headline": "Firmennamen Generator", "visual": "tools"}`

**Gemini Script (`v2/scripts/og-images/generate-og-image-gemini.py`):**
- ✅ Visual description added: `"firmennamen-generator": "company name generator: lightbulb, building, name tag, sparkles, creative branding"`
- ✅ Page-specific override logic added to use custom visual description
- ✅ F-string entry added for dynamic prompt generation

**Registry (`v2/config/og-image-registry.php`):**
- ✅ Entry added: `'firmennamen-generator' => $base_url . '/v2/img/og/firmennamen-generator.webp'`

**Page Configuration (`v2/pages/tools_firmennamen_generator.php`):**
- ✅ Already configured: Uses `get_og_image_for_page('tools', 'firmennamen-generator')`

### Generation Status: ✅ COMPLETE

**Generated Using Standard Workflow:**
- ✅ Playwright + Gemini Visuals (standard method for all custom tool OG images)
- ✅ Command: `python3 v2/scripts/og-images/generate-og-images.py --type=firmennamen-generator --gemini-visuals`
- ✅ Output: `v2/img/og/firmennamen-generator.webp` (1200×630px, 27.4 KB)

**Validation:**
- ✅ Dimensions: 1200×630px (correct)
- ✅ Format: WebP
- ✅ File size: 27.4 KB (optimized, under 300KB limit)
- ✅ Left panel color: RGB(76, 142, 243) - matches Ordio blue (#4D8EF3)
- ✅ Validation script: `OK firmennamen-generator.webp 1200x630 27.4KB`

**Workflow Details:**
1. **HTML Template (Playwright):** Renders left 65% panel with Ordio blue background, white logo, and headline
2. **Gemini Visual:** Generates right-panel illustration (420×630px) - isometric 3D with lightbulb, building, name tag, sparkles
3. **Composite:** Gemini visual composited onto white right panel
4. **Output:** WebP format, optimized

This matches the standard workflow used for all other custom tool OG images (elterngeld-rechner, arbeitszeitrechner, etc.).

## Internal Linking to Blog Posts

### Audit Results Analysis

**False Positives Identified:**

The audit script (`audit-blog-tool-links.php`) flagged several posts, but these are **false positives**:

1. **`absentismus`** - Mentions "Employer Branding leidet"
   - ❌ False positive: "Branding" refers to HR/recruitment branding, not company name generation
   - Context: Table about consequences of absenteeism

2. **`betriebsrat`** - Mentions "Betriebsrat gründen" and "Gründung eines Betriebsrats"
   - ❌ False positive: "Gründung" refers to founding a works council, not founding a company
   - Context: Article about works council formation

3. **`employer-branding`** - Mentions "branding" throughout
   - ❌ False positive: Entire article is about HR/recruitment branding, not company naming
   - Context: Article about employer branding strategies

**Reason:** The audit script matches keywords too broadly without context analysis. "Branding" in "Employer Branding" and "Gründung" in "Betriebsrat gründen" are semantically different from company name generation.

### Actual Linking Opportunities

**Posts That Actually Discuss Company Naming:**

1. **`initiativbewerbung`** - Mentions "Wunschunternehmen"
   - ⚠️ Weak match: Mentions "Wunschunternehmen" (dream company) but not specifically about naming
   - Context: Article about unsolicited job applications
   - **Decision:** Not a strong candidate for firmennamen-generator link

**Posts That Should Link (Future Content):**

When creating or improving blog posts about:
- Company formation (Existenzgründung, Unternehmensgründung)
- Startup topics
- Branding (company branding, not employer branding)
- Trademark registration (Markenanmeldung)
- Company naming strategies

These posts should include contextual links to `/tools/firmennamen-generator`.

### Current Linking Status

**Tool-to-Blog Links:** ✅ COMPLETE
- Tool page includes internal links to relevant blog posts
- Links are contextual and natural

**Blog-to-Tool Links:** ⏳ ONGOING
- No strong candidates identified in existing content
- Links will be added as new posts are created/improved
- Audit script needs refinement to reduce false positives

### Recommendations

1. **Refine Audit Script:**
   - Add context analysis to distinguish:
     - "Branding" (HR) vs "Branding" (company naming)
     - "Gründung" (works council) vs "Gründung" (company formation)
   - Use semantic similarity thresholds
   - Filter by topic relevance

2. **Manual Review Process:**
   - When creating/improving posts about startups, company formation, or branding
   - Manually add link to firmennamen-generator tool
   - Use natural anchor text: "kostenloser Firmennamen Generator"

3. **Future Content Opportunities:**
   - Create blog post about "Unternehmensgründung" or "Existenzgründung"
   - Create blog post about "Markenanmeldung" or "Markenrecht"
   - These would naturally link to the tool

## Summary

| Task | Status | Notes |
|------|--------|-------|
| OG Image Specs | ✅ Complete | Entry added to og-image-specs.json |
| OG Image Script | ✅ Complete | Visual description added to generate-og-image-gemini.py |
| OG Image Generation | ⏳ Pending | Requires Playwright + requests installation |
| Blog Audit | ⚠️ False Positives | Script needs refinement for context analysis |
| Blog-to-Tool Links | ⏳ Ongoing | No strong candidates; links added as content created |
| Tool-to-Blog Links | ✅ Complete | Tool page includes contextual internal links |

## Next Steps

1. **OG Image:** Install dependencies and generate image when ready
2. **Internal Linking:** Continue adding links as relevant blog content is created/improved
3. **Audit Refinement:** Improve audit script to reduce false positives (future enhancement)
