SEO
This commit is contained in:
33
greenlns-landing/app/best-plant-identification-app/page.tsx
Normal file
33
greenlns-landing/app/best-plant-identification-app/page.tsx
Normal file
@@ -0,0 +1,33 @@
|
||||
import type { Metadata } from 'next'
|
||||
import { notFound } from 'next/navigation'
|
||||
import SeoCategoryPage from '@/components/SeoCategoryPage'
|
||||
import { getSeoPageBySlug } from '@/lib/seoPages'
|
||||
import { siteConfig } from '@/lib/site'
|
||||
|
||||
const profile = getSeoPageBySlug('best-plant-identification-app')
|
||||
|
||||
export const metadata: Metadata = !profile
|
||||
? {}
|
||||
: {
|
||||
title: profile.metaTitle,
|
||||
description: profile.metaDescription,
|
||||
alternates: { canonical: profile.canonical },
|
||||
openGraph: {
|
||||
title: profile.metaTitle,
|
||||
description: profile.metaDescription,
|
||||
url: `${siteConfig.domain}${profile.canonical}`,
|
||||
type: 'website',
|
||||
images: [{ url: '/og-image.png', width: 1200, height: 630, alt: profile.metaTitle }],
|
||||
},
|
||||
twitter: {
|
||||
card: 'summary_large_image',
|
||||
title: profile.metaTitle,
|
||||
description: profile.metaDescription,
|
||||
images: ['/og-image.png'],
|
||||
},
|
||||
}
|
||||
|
||||
export default function Page() {
|
||||
if (!profile) notFound()
|
||||
return <SeoCategoryPage profile={profile} />
|
||||
}
|
||||
33
greenlns-landing/app/houseplant-identifier/page.tsx
Normal file
33
greenlns-landing/app/houseplant-identifier/page.tsx
Normal file
@@ -0,0 +1,33 @@
|
||||
import type { Metadata } from 'next'
|
||||
import { notFound } from 'next/navigation'
|
||||
import SeoCategoryPage from '@/components/SeoCategoryPage'
|
||||
import { getSeoPageBySlug } from '@/lib/seoPages'
|
||||
import { siteConfig } from '@/lib/site'
|
||||
|
||||
const profile = getSeoPageBySlug('houseplant-identifier')
|
||||
|
||||
export const metadata: Metadata = !profile
|
||||
? {}
|
||||
: {
|
||||
title: profile.metaTitle,
|
||||
description: profile.metaDescription,
|
||||
alternates: { canonical: profile.canonical },
|
||||
openGraph: {
|
||||
title: profile.metaTitle,
|
||||
description: profile.metaDescription,
|
||||
url: `${siteConfig.domain}${profile.canonical}`,
|
||||
type: 'website',
|
||||
images: [{ url: '/og-image.png', width: 1200, height: 630, alt: profile.metaTitle }],
|
||||
},
|
||||
twitter: {
|
||||
card: 'summary_large_image',
|
||||
title: profile.metaTitle,
|
||||
description: profile.metaDescription,
|
||||
images: ['/og-image.png'],
|
||||
},
|
||||
}
|
||||
|
||||
export default function Page() {
|
||||
if (!profile) notFound()
|
||||
return <SeoCategoryPage profile={profile} />
|
||||
}
|
||||
33
greenlns-landing/app/pflanzen-erkennen-kostenlos/page.tsx
Normal file
33
greenlns-landing/app/pflanzen-erkennen-kostenlos/page.tsx
Normal file
@@ -0,0 +1,33 @@
|
||||
import type { Metadata } from 'next'
|
||||
import { notFound } from 'next/navigation'
|
||||
import SeoCategoryPage from '@/components/SeoCategoryPage'
|
||||
import { getSeoPageBySlug } from '@/lib/seoPages'
|
||||
import { siteConfig } from '@/lib/site'
|
||||
|
||||
const profile = getSeoPageBySlug('pflanzen-erkennen-kostenlos')
|
||||
|
||||
export const metadata: Metadata = !profile
|
||||
? {}
|
||||
: {
|
||||
title: profile.metaTitle,
|
||||
description: profile.metaDescription,
|
||||
alternates: { canonical: profile.canonical },
|
||||
openGraph: {
|
||||
title: profile.metaTitle,
|
||||
description: profile.metaDescription,
|
||||
url: `${siteConfig.domain}${profile.canonical}`,
|
||||
type: 'website',
|
||||
images: [{ url: '/og-image.png', width: 1200, height: 630, alt: profile.metaTitle }],
|
||||
},
|
||||
twitter: {
|
||||
card: 'summary_large_image',
|
||||
title: profile.metaTitle,
|
||||
description: profile.metaDescription,
|
||||
images: ['/og-image.png'],
|
||||
},
|
||||
}
|
||||
|
||||
export default function Page() {
|
||||
if (!profile) notFound()
|
||||
return <SeoCategoryPage profile={profile} />
|
||||
}
|
||||
33
greenlns-landing/app/plant-health-app/page.tsx
Normal file
33
greenlns-landing/app/plant-health-app/page.tsx
Normal file
@@ -0,0 +1,33 @@
|
||||
import type { Metadata } from 'next'
|
||||
import { notFound } from 'next/navigation'
|
||||
import SeoCategoryPage from '@/components/SeoCategoryPage'
|
||||
import { getSeoPageBySlug } from '@/lib/seoPages'
|
||||
import { siteConfig } from '@/lib/site'
|
||||
|
||||
const profile = getSeoPageBySlug('plant-health-app')
|
||||
|
||||
export const metadata: Metadata = !profile
|
||||
? {}
|
||||
: {
|
||||
title: profile.metaTitle,
|
||||
description: profile.metaDescription,
|
||||
alternates: { canonical: profile.canonical },
|
||||
openGraph: {
|
||||
title: profile.metaTitle,
|
||||
description: profile.metaDescription,
|
||||
url: `${siteConfig.domain}${profile.canonical}`,
|
||||
type: 'website',
|
||||
images: [{ url: '/og-image.png', width: 1200, height: 630, alt: profile.metaTitle }],
|
||||
},
|
||||
twitter: {
|
||||
card: 'summary_large_image',
|
||||
title: profile.metaTitle,
|
||||
description: profile.metaDescription,
|
||||
images: ['/og-image.png'],
|
||||
},
|
||||
}
|
||||
|
||||
export default function Page() {
|
||||
if (!profile) notFound()
|
||||
return <SeoCategoryPage profile={profile} />
|
||||
}
|
||||
33
greenlns-landing/app/plant-scanner/page.tsx
Normal file
33
greenlns-landing/app/plant-scanner/page.tsx
Normal file
@@ -0,0 +1,33 @@
|
||||
import type { Metadata } from 'next'
|
||||
import { notFound } from 'next/navigation'
|
||||
import SeoCategoryPage from '@/components/SeoCategoryPage'
|
||||
import { getSeoPageBySlug } from '@/lib/seoPages'
|
||||
import { siteConfig } from '@/lib/site'
|
||||
|
||||
const profile = getSeoPageBySlug('plant-scanner')
|
||||
|
||||
export const metadata: Metadata = !profile
|
||||
? {}
|
||||
: {
|
||||
title: profile.metaTitle,
|
||||
description: profile.metaDescription,
|
||||
alternates: { canonical: profile.canonical },
|
||||
openGraph: {
|
||||
title: profile.metaTitle,
|
||||
description: profile.metaDescription,
|
||||
url: `${siteConfig.domain}${profile.canonical}`,
|
||||
type: 'website',
|
||||
images: [{ url: '/og-image.png', width: 1200, height: 630, alt: profile.metaTitle }],
|
||||
},
|
||||
twitter: {
|
||||
card: 'summary_large_image',
|
||||
title: profile.metaTitle,
|
||||
description: profile.metaDescription,
|
||||
images: ['/og-image.png'],
|
||||
},
|
||||
}
|
||||
|
||||
export default function Page() {
|
||||
if (!profile) notFound()
|
||||
return <SeoCategoryPage profile={profile} />
|
||||
}
|
||||
@@ -88,6 +88,60 @@ export default function sitemap(): MetadataRoute.Sitemap {
|
||||
changeFrequency: 'monthly',
|
||||
priority: 0.8,
|
||||
},
|
||||
{
|
||||
url: `${baseUrl}/plant-scanner`,
|
||||
lastModified: new Date('2026-04-27'),
|
||||
changeFrequency: 'monthly',
|
||||
priority: 0.8,
|
||||
},
|
||||
{
|
||||
url: `${baseUrl}/houseplant-identifier`,
|
||||
lastModified: new Date('2026-04-27'),
|
||||
changeFrequency: 'monthly',
|
||||
priority: 0.75,
|
||||
},
|
||||
{
|
||||
url: `${baseUrl}/succulent-identifier`,
|
||||
lastModified: new Date('2026-04-27'),
|
||||
changeFrequency: 'monthly',
|
||||
priority: 0.75,
|
||||
},
|
||||
{
|
||||
url: `${baseUrl}/pflanzen-krankheiten-erkennen`,
|
||||
lastModified: new Date('2026-04-27'),
|
||||
changeFrequency: 'monthly',
|
||||
priority: 0.8,
|
||||
},
|
||||
{
|
||||
url: `${baseUrl}/pflanzen-pflege-app`,
|
||||
lastModified: new Date('2026-04-27'),
|
||||
changeFrequency: 'monthly',
|
||||
priority: 0.75,
|
||||
},
|
||||
{
|
||||
url: `${baseUrl}/zimmerpflanzen-bestimmen`,
|
||||
lastModified: new Date('2026-04-27'),
|
||||
changeFrequency: 'monthly',
|
||||
priority: 0.8,
|
||||
},
|
||||
{
|
||||
url: `${baseUrl}/best-plant-identification-app`,
|
||||
lastModified: new Date('2026-04-27'),
|
||||
changeFrequency: 'monthly',
|
||||
priority: 0.85,
|
||||
},
|
||||
{
|
||||
url: `${baseUrl}/plant-health-app`,
|
||||
lastModified: new Date('2026-04-27'),
|
||||
changeFrequency: 'monthly',
|
||||
priority: 0.8,
|
||||
},
|
||||
{
|
||||
url: `${baseUrl}/pflanzen-erkennen-kostenlos`,
|
||||
lastModified: new Date('2026-04-27'),
|
||||
changeFrequency: 'monthly',
|
||||
priority: 0.85,
|
||||
},
|
||||
{
|
||||
url: `${baseUrl}/imprint`,
|
||||
lastModified: new Date('2026-04-08'),
|
||||
|
||||
33
greenlns-landing/app/succulent-identifier/page.tsx
Normal file
33
greenlns-landing/app/succulent-identifier/page.tsx
Normal file
@@ -0,0 +1,33 @@
|
||||
import type { Metadata } from 'next'
|
||||
import { notFound } from 'next/navigation'
|
||||
import SeoCategoryPage from '@/components/SeoCategoryPage'
|
||||
import { getSeoPageBySlug } from '@/lib/seoPages'
|
||||
import { siteConfig } from '@/lib/site'
|
||||
|
||||
const profile = getSeoPageBySlug('succulent-identifier')
|
||||
|
||||
export const metadata: Metadata = !profile
|
||||
? {}
|
||||
: {
|
||||
title: profile.metaTitle,
|
||||
description: profile.metaDescription,
|
||||
alternates: { canonical: profile.canonical },
|
||||
openGraph: {
|
||||
title: profile.metaTitle,
|
||||
description: profile.metaDescription,
|
||||
url: `${siteConfig.domain}${profile.canonical}`,
|
||||
type: 'website',
|
||||
images: [{ url: '/og-image.png', width: 1200, height: 630, alt: profile.metaTitle }],
|
||||
},
|
||||
twitter: {
|
||||
card: 'summary_large_image',
|
||||
title: profile.metaTitle,
|
||||
description: profile.metaDescription,
|
||||
images: ['/og-image.png'],
|
||||
},
|
||||
}
|
||||
|
||||
export default function Page() {
|
||||
if (!profile) notFound()
|
||||
return <SeoCategoryPage profile={profile} />
|
||||
}
|
||||
@@ -14,43 +14,61 @@ export default function Footer() {
|
||||
[homeHref('#how'), homeHref('#faq'), '/support'],
|
||||
['/imprint', '/privacy', '/terms'],
|
||||
]
|
||||
|
||||
return (
|
||||
<footer className="footer" id="footer">
|
||||
<div className="container">
|
||||
<div className="footer-inner">
|
||||
<div>
|
||||
<Link href="/" className="nav-logo" style={{ fontSize: '1.5rem' }}>
|
||||
GREENLENS
|
||||
</Link>
|
||||
<p className="footer-brand-desc">{t.footer.brand}</p>
|
||||
</div>
|
||||
|
||||
{t.footer.cols.map((col, ci) => (
|
||||
<div className="footer-col" key={col.title}>
|
||||
|
||||
return (
|
||||
<footer className="footer" id="footer">
|
||||
<div className="container">
|
||||
<div className="footer-inner">
|
||||
<div>
|
||||
<Link href="/" className="nav-logo" style={{ fontSize: '1.5rem' }}>
|
||||
GREENLENS
|
||||
</Link>
|
||||
<p className="footer-brand-desc">{t.footer.brand}</p>
|
||||
</div>
|
||||
|
||||
{t.footer.cols.map((col, ci) => (
|
||||
<div className="footer-col" key={col.title}>
|
||||
<div className="footer-col-title">{col.title}</div>
|
||||
{col.links.map((label, li) => (
|
||||
<Link key={label} href={linkHrefs[ci]?.[li] ?? '/support'}>
|
||||
{label}
|
||||
</Link>
|
||||
))}
|
||||
{ci === 1 && (
|
||||
<>
|
||||
<Link href="/plant-identifier-app">Plant Identifier App</Link>
|
||||
<Link href="/plant-disease-identifier">Plant Disease Identifier</Link>
|
||||
<Link href="/plant-care-app">Plant Care App</Link>
|
||||
<Link href="/pflanzen-erkennen-app">Pflanzen erkennen</Link>
|
||||
<Link href="/vs/picturethis">GreenLens vs PictureThis</Link>
|
||||
<Link href="/vs/plantum">GreenLens vs Plantum</Link>
|
||||
<Link href="/vs/inaturalist">GreenLens vs iNaturalist</Link>
|
||||
</>
|
||||
)}
|
||||
</div>
|
||||
))}
|
||||
</div>
|
||||
|
||||
<div className="footer-brand-xl" aria-hidden="true">GREENLENS</div>
|
||||
|
||||
</div>
|
||||
))}
|
||||
|
||||
<div className="footer-col">
|
||||
<div className="footer-col-title">Identify & Care</div>
|
||||
<Link href="/best-plant-identification-app">Best Plant ID App</Link>
|
||||
<Link href="/plant-identifier-app">Plant Identifier App</Link>
|
||||
<Link href="/plant-scanner">Plant Scanner</Link>
|
||||
<Link href="/flower-scanner">Flower Scanner</Link>
|
||||
<Link href="/houseplant-identifier">Houseplant Identifier</Link>
|
||||
<Link href="/succulent-identifier">Succulent Identifier</Link>
|
||||
<Link href="/identify-plant-photo">Identify Plant by Photo</Link>
|
||||
<Link href="/plant-disease-identifier">Plant Disease Identifier</Link>
|
||||
<Link href="/plant-health-app">Plant Health App</Link>
|
||||
<Link href="/plant-care-app">Plant Care App</Link>
|
||||
<Link href="/vs/picturethis">vs PictureThis</Link>
|
||||
<Link href="/vs/plantum">vs Plantum</Link>
|
||||
<Link href="/vs/inaturalist">vs iNaturalist</Link>
|
||||
<Link href="/vs/google-lens">vs Google Lens</Link>
|
||||
</div>
|
||||
|
||||
<div className="footer-col">
|
||||
<div className="footer-col-title">Pflanzen & Erkennen</div>
|
||||
<Link href="/pflanzen-erkennen-kostenlos">Pflanzen erkennen kostenlos</Link>
|
||||
<Link href="/pflanzen-erkennen-app">Pflanzen erkennen App</Link>
|
||||
<Link href="/pflanzen-bestimmen">Pflanzen bestimmen</Link>
|
||||
<Link href="/blumen-scanner">Blumen Scanner</Link>
|
||||
<Link href="/zimmerpflanzen-bestimmen">Zimmerpflanzen bestimmen</Link>
|
||||
<Link href="/pflanzen-pflege-app">Pflanzen Pflege App</Link>
|
||||
<Link href="/pflanzen-krankheiten-erkennen">Pflanzenkrankheiten erkennen</Link>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div className="footer-brand-xl" aria-hidden="true">GREENLENS</div>
|
||||
|
||||
<div className="footer-bottom">
|
||||
<p>{t.footer.copy}</p>
|
||||
<Link href="/support" className="footer-contact">
|
||||
|
||||
@@ -1536,12 +1536,315 @@ const englishSeoPages2: Record<string, SeoPageProfile> = {
|
||||
},
|
||||
}
|
||||
|
||||
const highVolumeSeoPages: Record<string, SeoPageProfile> = {
|
||||
'best-plant-identification-app': {
|
||||
slug: 'best-plant-identification-app',
|
||||
metaTitle: 'Best Plant Identification App — Free & Accurate | GreenLens',
|
||||
metaDescription:
|
||||
'Looking for the best plant identification app? GreenLens identifies 450+ species for free and goes further: care plan, health check, and watering reminders after every scan.',
|
||||
canonical: '/best-plant-identification-app',
|
||||
h1: 'Best Plant Identification App',
|
||||
tagline: 'Free to identify. Keeps going after the name — care plan, health check, reminders.',
|
||||
directAnswer:
|
||||
'GreenLens is a free plant identification app for iOS and Android. Point your camera at any plant, get the species name instantly, and receive a complete care plan — no search redirect, no paywall for basic identification.',
|
||||
definitionBlock:
|
||||
'The best plant identification app does more than return a name. It tells you what to do next. GreenLens identifies 450+ plant species for free and automatically generates a care plan, watering reminders, and health diagnostic after every scan — making it the most actionable free plant ID app available.',
|
||||
lastUpdated: 'April 2026',
|
||||
includeAppSchema: true,
|
||||
featureTable: {
|
||||
title: 'How GreenLens compares to other plant identification apps',
|
||||
alternativeLabel: 'Typical plant ID apps',
|
||||
rows: [
|
||||
{
|
||||
feature: 'Free plant identification',
|
||||
greenlens: 'Free for basic identification. No paywall before you see the plant name.',
|
||||
alternative: 'Many apps show a paywall before revealing the full result.',
|
||||
},
|
||||
{
|
||||
feature: 'Care plan after scan',
|
||||
greenlens: 'Automatic care plan with watering, light, and fertilizing guidance after every free scan.',
|
||||
alternative: 'Identification ends at the name. Care guidance is a paid feature or absent.',
|
||||
},
|
||||
{
|
||||
feature: 'Health check and diagnosis',
|
||||
greenlens: 'Dedicated health scan for symptoms — yellow leaves, soft stems, spots — with a concrete next step.',
|
||||
alternative: 'Disease diagnosis is either absent or locked behind an expensive subscription.',
|
||||
},
|
||||
{
|
||||
feature: 'Accuracy',
|
||||
greenlens: 'Reliably identifies 450+ common houseplants, garden plants, and succulents.',
|
||||
alternative: 'Varies widely. Broad databases sometimes sacrifice accuracy for quantity.',
|
||||
},
|
||||
{
|
||||
feature: 'No redirect to search results',
|
||||
greenlens: 'Everything stays in the app — name, care plan, reminders, diagnosis.',
|
||||
alternative: 'Many apps return a name and then link out to generic web results.',
|
||||
},
|
||||
],
|
||||
},
|
||||
greenLensIf: [
|
||||
'You want a free plant ID app that tells you what to do after the scan, not just the name.',
|
||||
'You need a health check when your plant starts showing symptoms.',
|
||||
'You want to track multiple plants with individual care reminders in one place.',
|
||||
],
|
||||
notBestIf: [
|
||||
'You need the largest possible species database for rare botanical research — iNaturalist has a bigger expert community.',
|
||||
'You are managing a commercial nursery or large-scale growing operation.',
|
||||
],
|
||||
faqs: [
|
||||
{
|
||||
question: 'What is the best free plant identification app?',
|
||||
answer:
|
||||
'GreenLens offers free plant identification for 450+ species and goes further than most free apps: after identifying the plant, it generates a care plan, sets watering reminders, and provides a health check — all without a paywall for basic use. For rare or unusual species, iNaturalist has a larger community database.',
|
||||
},
|
||||
{
|
||||
question: 'How accurate is GreenLens for plant identification?',
|
||||
answer:
|
||||
'GreenLens accurately identifies the most common houseplants, garden plants, and succulents. For everyday plant owners, it is fast and reliable. A clear, well-lit photo of the plant\'s characteristic features — leaves, bloom, or growth form — produces the best results.',
|
||||
},
|
||||
{
|
||||
question: 'Is there a truly free plant identification app?',
|
||||
answer:
|
||||
'Yes. GreenLens includes free plant identification with no upfront paywall. Advanced features like unlimited AI health checks and unlimited scans are available through paid credits or a subscription, but basic identification and a starter care plan are always free.',
|
||||
},
|
||||
{
|
||||
question: 'What should a plant identification app do beyond just naming the plant?',
|
||||
answer:
|
||||
'A great plant ID app connects identification to action: a care plan, watering schedule, and health diagnostic. GreenLens does all three after every free scan — so the identification is the beginning of the workflow, not the end.',
|
||||
},
|
||||
{
|
||||
question: 'Can I use GreenLens to identify plants from photos in my gallery?',
|
||||
answer:
|
||||
'Yes. GreenLens works with photos from your gallery as well as live camera shots. Upload any clear image of a plant to get the species name and care plan instantly.',
|
||||
},
|
||||
],
|
||||
relatedLinks: [
|
||||
{
|
||||
href: '/plant-identifier-app',
|
||||
label: 'Plant Identifier App',
|
||||
description: 'The full GreenLens identification experience with care plan and diagnosis.',
|
||||
},
|
||||
{
|
||||
href: '/plant-health-app',
|
||||
label: 'Plant Health App',
|
||||
description: 'Diagnose symptoms and get a concrete next step when your plant looks wrong.',
|
||||
},
|
||||
{
|
||||
href: '/identify-plant-photo',
|
||||
label: 'Identify Plant by Photo',
|
||||
description: 'Upload any photo and get the species name and care plan instantly.',
|
||||
},
|
||||
],
|
||||
},
|
||||
|
||||
'plant-health-app': {
|
||||
slug: 'plant-health-app',
|
||||
metaTitle: 'Plant Health App — Diagnose Symptoms & Save Your Plant | GreenLens',
|
||||
metaDescription:
|
||||
'GreenLens is the plant health app that gives you a concrete next step — not a list of possibilities. Diagnose yellow leaves, root rot signs, and plant emergencies in seconds.',
|
||||
canonical: '/plant-health-app',
|
||||
h1: 'Plant Health App',
|
||||
tagline: 'Something looks wrong. Find out what — and what to do about it — in under a second.',
|
||||
directAnswer:
|
||||
'GreenLens is a plant health app for iOS and Android. When your plant shows symptoms — yellow leaves, soft stems, wilting, or spots — the health check scan identifies the most likely cause and gives you one clear next step. No endless list of possibilities.',
|
||||
definitionBlock:
|
||||
'A plant health app analyzes visible plant symptoms and recommends corrective action. GreenLens is built around a core insight: most plant owners make the problem worse by doing too much. The health check is designed to surface the single next safest action — stop watering, check the roots, adjust the light — rather than overwhelming with options.',
|
||||
lastUpdated: 'April 2026',
|
||||
includeAppSchema: true,
|
||||
featureTable: {
|
||||
title: 'What a real plant health app should do',
|
||||
alternativeLabel: 'Generic plant apps',
|
||||
rows: [
|
||||
{
|
||||
feature: 'Symptom diagnosis',
|
||||
greenlens: 'AI health scan analyzes the visible symptom pattern and returns the most likely cause with a priority ranking.',
|
||||
alternative: 'Returns a broad list of possible diseases without helping you decide which one applies.',
|
||||
},
|
||||
{
|
||||
feature: 'One clear next step',
|
||||
greenlens: 'Recommends one concrete action: stop watering, check soil moisture, isolate the plant, or move it to better light.',
|
||||
alternative: 'Generic advice like "improve drainage" or "reduce humidity" without actionable sequencing.',
|
||||
},
|
||||
{
|
||||
feature: 'Overcare prevention',
|
||||
greenlens: 'Specifically designed to stop the most common beginner mistake: adding more care to an already stressed plant.',
|
||||
alternative: 'Most apps give more tasks, which often makes the problem worse.',
|
||||
},
|
||||
{
|
||||
feature: 'Care history context',
|
||||
greenlens: 'Connects symptoms to recent care events — repotting, environment change, watering frequency — for a more accurate diagnosis.',
|
||||
alternative: 'Analyzes the photo in isolation without accounting for what changed recently.',
|
||||
},
|
||||
{
|
||||
feature: 'Plant identification link',
|
||||
greenlens: 'Identification and health check are connected — the care plan informs the diagnosis and vice versa.',
|
||||
alternative: 'ID and health features are separate with no shared context.',
|
||||
},
|
||||
],
|
||||
},
|
||||
greenLensIf: [
|
||||
'Your plant has visible symptoms and you need the safest next move right now.',
|
||||
'You want to avoid making a stressed plant worse by applying the wrong fix.',
|
||||
'You want identification, care planning, and health diagnosis in one app.',
|
||||
],
|
||||
notBestIf: [
|
||||
'You need a laboratory-verified pathology report for commercial or academic use.',
|
||||
'You are managing a large-scale agricultural operation — specialized agronomic tools are better suited.',
|
||||
],
|
||||
faqs: [
|
||||
{
|
||||
question: 'What is the best app for diagnosing plant problems?',
|
||||
answer:
|
||||
'GreenLens is built specifically for plant health triage. The health check scan identifies the most likely cause of visible symptoms — yellow leaves, soft stems, wilting, spots — and recommends one concrete next step. It connects symptoms to recent care history for a more accurate diagnosis than photo-only tools.',
|
||||
},
|
||||
{
|
||||
question: 'Why are my plant leaves turning yellow?',
|
||||
answer:
|
||||
'Yellow leaves are most commonly caused by overwatering, insufficient light, root damage, or nutrient deficiency. GreenLens health checks analyze the symptom pattern and ask about recent care changes to narrow down the most likely cause before recommending a next step.',
|
||||
},
|
||||
{
|
||||
question: 'Can GreenLens tell me if my plant has root rot?',
|
||||
answer:
|
||||
'GreenLens identifies the visible signs associated with root rot — soft lower stems, yellowing despite moist soil, wilting, and foul smell — and recommends the appropriate response. Since it cannot physically inspect the roots, the diagnosis is based on the visible symptom pattern.',
|
||||
},
|
||||
{
|
||||
question: 'My plant is dying — what should I do first?',
|
||||
answer:
|
||||
'Stop adding more care. The most common reason plants die quickly is because owners stack more watering, fertilizing, or repotting on top of an already stressed plant. Open GreenLens, run a health check, and follow the single next recommended action before doing anything else.',
|
||||
},
|
||||
{
|
||||
question: 'Is GreenLens accurate enough to replace a plant professional?',
|
||||
answer:
|
||||
'For common houseplant problems and stress patterns, GreenLens is reliable and fast. For rare diseases, serious infestations, or high-value commercial plants, consulting a professional horticulturalist remains the safer option.',
|
||||
},
|
||||
],
|
||||
relatedLinks: [
|
||||
{
|
||||
href: '/plant-disease-identifier',
|
||||
label: 'Plant Disease Identifier',
|
||||
description: 'Symptom-based diagnosis for specific plant diseases and stress patterns.',
|
||||
},
|
||||
{
|
||||
href: '/best-plant-identification-app',
|
||||
label: 'Best Plant Identification App',
|
||||
description: 'Identify the plant first — then run the health check.',
|
||||
},
|
||||
{
|
||||
href: '/plant-care-app',
|
||||
label: 'Plant Care App',
|
||||
description: 'Build the care routine that prevents health problems in the first place.',
|
||||
},
|
||||
],
|
||||
},
|
||||
|
||||
'pflanzen-erkennen-kostenlos': {
|
||||
slug: 'pflanzen-erkennen-kostenlos',
|
||||
metaTitle: 'Pflanzen erkennen kostenlos — App mit Pflegeplan | GreenLens',
|
||||
metaDescription:
|
||||
'GreenLens erkennt Pflanzen kostenlos per Foto und liefert direkt Artname, Pflegeplan und Gießerinnerungen — ohne Umweg und ohne Paywall bei der Erkennung.',
|
||||
canonical: '/pflanzen-erkennen-kostenlos',
|
||||
h1: 'Pflanzen erkennen kostenlos',
|
||||
tagline: 'Pflanze fotografieren — kostenlos erkennen, sofort Pflegeplan erhalten.',
|
||||
directAnswer:
|
||||
'GreenLens erkennt Pflanzen kostenlos per Foto. Kein Bezahlschritt vor dem Ergebnis: Artname, Pflanzenportrait und ein vollständiger Pflegeplan erscheinen direkt nach dem Scan — für über 450 Pflanzenarten.',
|
||||
definitionBlock:
|
||||
'Pflanzen kostenlos erkennen bedeutet, die Pflanzenart ohne Bezahlung per Foto zu bestimmen. GreenLens bietet kostenlose Pflanzenerkennung und geht weiter: Jeder kostenlose Scan erzeugt automatisch einen Pflegeplan mit Gieß- und Düngehinweisen. Erweiterte KI-Gesundheitschecks und unbegrenzte Scans sind als optionale Paid-Funktionen verfügbar.',
|
||||
lastUpdated: 'April 2026',
|
||||
includeAppSchema: true,
|
||||
featureTable: {
|
||||
title: 'Was bei GreenLens kostenlos ist — und was nicht',
|
||||
alternativeLabel: 'Andere Pflanzenerkenner',
|
||||
rows: [
|
||||
{
|
||||
feature: 'Pflanzenerkennung per Foto',
|
||||
greenlens: 'Kostenlos. Artname, Trivialname und Pflanzenportrait nach jedem Scan ohne Paywall.',
|
||||
alternative: 'Häufig wird das Ergebnis erst nach dem Kauf oder einer Abo-Anmeldung angezeigt.',
|
||||
},
|
||||
{
|
||||
feature: 'Pflegeplan nach dem Scan',
|
||||
greenlens: 'Kostenlos. Gieß-, Dünge- und Lichthinweise direkt nach der Erkennung.',
|
||||
alternative: 'Pflegeinformationen sind oft kostenpflichtig oder fehlen komplett.',
|
||||
},
|
||||
{
|
||||
feature: 'Gießerinnerungen',
|
||||
greenlens: 'Kostenlos in der Basisversion. Erinnerungen pro Pflanze einstellbar.',
|
||||
alternative: 'Erinnerungen häufig nur mit Abonnement verfügbar.',
|
||||
},
|
||||
{
|
||||
feature: 'KI-Gesundheitschecks',
|
||||
greenlens: 'Begrenzt kostenlos, danach über Credits oder Abonnement verfügbar.',
|
||||
alternative: 'Oft gar nicht vorhanden oder von Beginn an kostenpflichtig.',
|
||||
},
|
||||
{
|
||||
feature: 'Pflanzensammlung',
|
||||
greenlens: 'Kostenlos. Mehrere Pflanzen in persönlicher Sammlung speichern.',
|
||||
alternative: 'Sammlung oft auf wenige Pflanzen begrenzt oder kostenpflichtig.',
|
||||
},
|
||||
],
|
||||
},
|
||||
greenLensIf: [
|
||||
'Du willst Pflanzen kostenlos bestimmen und direkt Pflegeinformationen erhalten.',
|
||||
'Du suchst eine App, die das Ergebnis zeigt — ohne erst eine Kreditkarte einzugeben.',
|
||||
'Du möchtest mehrere Pflanzen kostenlos verwalten und Gießerinnerungen nutzen.',
|
||||
],
|
||||
notBestIf: [
|
||||
'Du brauchst unbegrenzte KI-Gesundheitschecks — das ist eine kostenpflichtige Funktion.',
|
||||
'Du suchst eine vollständig kostenlose App ohne jegliche Paid-Option — dann ist iNaturalist die Alternative.',
|
||||
],
|
||||
faqs: [
|
||||
{
|
||||
question: 'Kann ich Pflanzen wirklich kostenlos mit GreenLens erkennen?',
|
||||
answer:
|
||||
'Ja. GreenLens zeigt Artname, Pflanzenportrait und einen Starter-Pflegeplan kostenlos nach jedem Scan — ohne Paywall vor dem Ergebnis. Erweiterte Funktionen wie unbegrenzte KI-Gesundheitschecks sind optional kostenpflichtig.',
|
||||
},
|
||||
{
|
||||
question: 'Welche Pflanzen-Apps sind wirklich kostenlos?',
|
||||
answer:
|
||||
'GreenLens bietet kostenlose Pflanzenerkennung ohne Pflichtabonnement. iNaturalist ist ebenfalls vollständig kostenlos, bietet aber keine Pflegepläne oder Gießerinnerungen. PlantNet ist kostenlos für Erkennung, hat aber keinen integrierten Pflegebereich.',
|
||||
},
|
||||
{
|
||||
question: 'Wie viele Scans sind bei GreenLens kostenlos?',
|
||||
answer:
|
||||
'GreenLens bietet eine Auswahl kostenloser Erkennungs-Scans und Basis-Gesundheitschecks. Für unbegrenzte Nutzung sind Credits oder ein Abonnement verfügbar. Die genaue Anzahl kostenloser Scans ist in der App einsehbar.',
|
||||
},
|
||||
{
|
||||
question: 'Gibt es eine kostenlose App, die Pflanzen erkennt und Pflegehinweise gibt?',
|
||||
answer:
|
||||
'Ja — GreenLens. Pflanzenerkennung und ein automatischer Pflegeplan sind kostenlos verfügbar. Das unterscheidet GreenLens von reinen Erkennungs-Apps, die nur den Namen liefern, und von allgemeinen Such-Tools wie Google Lens, die keine Pflegefunktionen haben.',
|
||||
},
|
||||
{
|
||||
question: 'Ist GreenLens besser als kostenlose Alternativen wie PlantNet oder iNaturalist?',
|
||||
answer:
|
||||
'Das hängt vom Anwendungsfall ab. PlantNet und iNaturalist sind stark für reine Artbestimmung. GreenLens ist die bessere Wahl, wenn nach der Erkennung ein Pflegeplan, Gießerinnerungen und bei Bedarf eine Diagnose folgen sollen — alles in einer App.',
|
||||
},
|
||||
],
|
||||
relatedLinks: [
|
||||
{
|
||||
href: '/pflanzen-erkennen-app',
|
||||
label: 'Pflanzen erkennen App',
|
||||
description: 'Die vollständige Pflanzenerkennung mit Pflegeplan und Diagnose.',
|
||||
},
|
||||
{
|
||||
href: '/pflanzen-bestimmen',
|
||||
label: 'Pflanzen bestimmen',
|
||||
description: 'Pflanze per Foto bestimmen — schneller als mit Google.',
|
||||
},
|
||||
{
|
||||
href: '/blumen-scanner',
|
||||
label: 'Blumen Scanner',
|
||||
description: 'Blumen kostenlos scannen und sofort Pflegeplan erhalten.',
|
||||
},
|
||||
],
|
||||
},
|
||||
}
|
||||
|
||||
const allSeoPages = {
|
||||
...seoPageProfiles,
|
||||
...additionalSeoPages,
|
||||
...englishSeoPages,
|
||||
...germanSeoPages2,
|
||||
...englishSeoPages2,
|
||||
...highVolumeSeoPages,
|
||||
}
|
||||
|
||||
export function getSeoPageBySlug(slug: string): SeoPageProfile | undefined {
|
||||
|
||||
Reference in New Issue
Block a user