✨ New Plugin Alert ✨ SleekRank is now available with €50 launch discount
✨ New Plugin Alert ✨ SleekRank is now available with €50 launch discount
✨ New Plugin Alert ✨ SleekRank is now available with €50 launch discount
✨ New Plugin Alert ✨ SleekRank is now available with €50 launch discount
✨ New Plugin Alert ✨ SleekRank is now available with €50 launch discount
✨ New Plugin Alert ✨ SleekRank is now available with €50 launch discount
✨ New Plugin Alert ✨ SleekRank is now available with €50 launch discount
✨ New Plugin Alert ✨ SleekRank is now available with €50 launch discount
✨ New Plugin Alert ✨ SleekRank is now available with €50 launch discount
✨ New Plugin Alert ✨ SleekRank is now available with €50 launch discount

SleekRank for moth species pages

Maintain a sheet of around 3k moth species pulled from BAMONA or Moth Photographers Group. SleekRank publishes one indexable page per species at /moth-id/{slug}/ with wingspan, host plants, range, flight season, and OG card from the row.

€50 off for the first 100 lifetime licenses!

SleekRank for Moth species pages

Moth ID lives in the long tail of host plants and seasons

A gardener catches a moth on the porch light and wants to know what it eats. A lepidopterist tracking range expansion wants to know where the species has been recorded. A naturalist photographing a giant silkmoth wants the wingspan and the caterpillar host. All three queries hit the same kind of page: one focused species page with the right fields filled in. Around 3,000 North American species cover most of the search demand.

SleekRank reads the species sheet as the schema. Columns for slug, common_name, scientific_name, family, wingspan_mm, host_plants, flight_months, range_states, and image_url feed the base page at /moth-id/{slug}/. List mappings render host plants and range as scannable lists. A meta mapping wires the OG image from the same row.

The cluster blocks at the bottom of every page work the same way. Family column groups Saturniidae with Saturniidae, host_plants column groups moths that share a host plant. Both are list mappings against the same sheet, returning six related species per page deterministically.

Workflow

From moth row to species ID page

1

Build the base ID page

Design one WordPress page with hero photo, common and scientific name, wingspan callout, host plants list, flight phenology, range list, caterpillar photo, family link, and related species cluster. Every species inherits this layout.
2

Compile the species sheet

Pull taxonomy and records from BAMONA, Moth Photographers Group, and iNaturalist. Normalize into columns for slug, common and scientific name, family, wingspan, host plants, flight months, range, and image URLs. Around 3,000 rows for North America.
3

Wire mappings to the template

Tag mappings for title and H1, selector mappings for wingspan and flight months, list mappings for host plants and range, meta mapping for og:image. Schema mapping wraps biology fields into a JSON-LD block.
4

Cluster by family and host plant

Family columns drive taxonomy clusters; host plant arrays drive ecology clusters. Both are list mappings against the same sheet, returning six related species per page deterministically by md5 hash so internal links stay stable.

Data in, pages out

One row per moth species, one ID page

Columns for wingspan, host plants, flight months, and range. List mappings render host plants and range; meta mappings wire schema and OG.
Data source: BAMONA / Moth Photographers Group / JSON
slug common_name family wingspan_mm flight_months
luna-moth Luna moth Saturniidae 115 Apr-Aug
cecropia-moth Cecropia moth Saturniidae 150 May-Jul
polyphemus-moth Polyphemus moth Saturniidae 140 May-Aug
io-moth Io moth Saturniidae 75 May-Sep
rosy-maple-moth Rosy maple moth Saturniidae 45 May-Aug
URL pattern: /moth-id/{slug}/
Generated pages
  • /moth-id/luna-moth/
  • /moth-id/cecropia-moth/
  • /moth-id/polyphemus-moth/
  • /moth-id/io-moth/
  • /moth-id/rosy-maple-moth/

Comparison

Hand-written moth guides vs SleekRank

Per-species WordPress posts

  • Each species manually written, with host plants buried in paragraphs
  • Flight season and range listed inconsistently across posts
  • Family clusters built by hand and rarely complete
  • Photo credits drift between posts as contributors change
  • OG card and schema set per post, broken on most
  • Practical ceiling around 100 species

SleekRank

  • One row per species fills /moth-id/{slug}/ automatically
  • List mappings render host plants and range as scannable lists
  • Flight months column drives a phenology callout
  • Family clusters serve the lepidopterist, host plant clusters serve the gardener
  • Meta mapping wires og:image and Article schema fields
  • Around 3k species become around 3k indexable URLs from one template

Features

What SleekRank gives you for Moth species pages

Host plant lists per species

Host plants stored as a JSON array column. The list mapping renders one li per plant under a Host Plants heading. Gardeners reading the page see the plants the caterpillar eats; a parallel list maps the moth to its host plants for cross-linking.

Flight phenology callouts

Flight months stored as a string column (Apr-Aug, May-Jul). A selector mapping renders the phenology under a When You See It heading, and a sibling list mapping pulls other species flying in the same months for cross-reference.

Family and host-plant clusters

Family columns cluster Saturniids with Saturniids, host plant columns cluster oak-feeders with oak-feeders. Both are list mappings against the same sheet, returning six related species per page deterministically.

Use cases

Who runs moth ID libraries on SleekRank

Native plant and garden sites

Cross-link host plants with the moths that depend on them. A native plant page lists the moths it supports, a moth page lists the plants its caterpillar eats. Both flow from one sheet with parallel arrays.

Lepidopterist societies

Build a regional moth library tied to local survey data. Range columns can carry survey-grade records; the same sheet that backs the survey database feeds the public-facing species pages.

Naturalist photography sites

Run a community-built moth library. Photo submissions tied to species names land in a moderation queue; approved photos and notes flow back into the sheet and onto the page on the next cache refresh.

The bigger picture

Why moth ID belongs in a data-driven library

Moth identification is a niche but devoted audience. Lepidopterists and citizen scientists post records year-round, and the search queries follow the seasons. In spring people search for cecropia and luna moth caterpillars; in summer they search for sphinx moths nectaring at evening flowers; in autumn they search for the tussock moths defoliating their trees.

A site with a structured page per species, with flight phenology and host plants surfaced clearly, ranks for those seasonal long-tail queries because the page exactly matches the question. Building that corpus by hand is impossible at 3,000 species. Building it from a curated sheet is realistic, and the curation work concentrates on the data layer where it should: which species belong in the regional library, which host plants are confirmed, which photographs are licensed.

The other reason this corpus benefits from data-driven generation is the bidirectional linking between moths and host plants. A native plant site that lists its plants can list, on each plant page, the moths whose caterpillars eat it. The moth pages reciprocate.

Both lists flow from the same sheet with parallel arrays, and the link graph stays consistent because it is generated, not hand-maintained.

Questions

Common questions about SleekRank for Moth species pages

Filter the BAMONA or Moth Photographers Group dataset to the region of interest using state or county codes. Drop species without confirmed records in that region. The sheet for the regional library may be 500 to 1,500 rows instead of 3,000, but the template stays the same.

 

A size_class column with values like macro or micro drives a conditional mapping. Micromoths often share a simpler template with less emphasis on wingspan and more on diagnostic genitalia traits. The same base page can render both layouts with conditional blocks keyed off size_class.

 

Host plants as a JSON array column with no length limit beyond the cell character cap. The list mapping renders all of them on the page. For especially polyphagous species, a host_plants_summary column can render a short summary block above the full list.

 

Yes. Hero photo lives in image_url; caterpillar photo lives in caterpillar_image_url. A selector mapping renders the caterpillar photo in a separate block below the adult, with its own caption. Same row, two images, two blocks.

 

When a phylogenetic revision changes family assignments, the family column for affected rows gets updated. The next cache refresh propagates the new family to every page, including the family cluster blocks on related species pages. No editor touches individual posts.

 

Yes. Add a record_url column per species pointing at iNaturalist or BAMONA. The page renders a Report a Sighting button via a selector mapping, pre-filled with the species. Visitors who saw a moth can submit a record without leaving the species page.

 

An image_credit column per row carries the photographer name and a credit link. The selector mapping renders the credit under the photo. Pages with public-domain photos credit the source database; pages with community photos credit the photographer with attribution link.

 

Yes. The same JSON file that feeds SleekRank can feed a Vite-built checklist app where users tick off species they've seen, filtered by family or region. The app and the static corpus share one data source, and the user's checklist links to the same species pages.

 

Pricing

More than 1000+
happy customers

Explore our flexible licensing options tailored to your needs. Upgrade your license anytime to access more features, or opt for a lifetime license for ongoing value, including lifetime updates and lifetime support. Our hassle-free upgrade process ensures that our platform can grow with you, starting from whichever plan you choose.

Starter

€99

EUR

per year

Get started

further 30% launch-discount applied during checkout for existing customers.

  • 3 websites
  • 1 year of updates
  • 1 year of support

Pro

€179

EUR

per year

Get started

further 30% launch-discount applied during checkout for existing customers.

  • Unlimited websites
  • 1 year of updates
  • 1 year of support

Lifetime ♾️

Launch Offer

€299

€249

EUR

once

Get started

further 30% launch-discount applied during checkout for existing customers.

  • Unlimited websites
  • Lifetime updates
  • Lifetime support

...or get the Bundle Deal
and save €250 🎁

The Bundle (unlimited sites)

Pay once, own it forever

Elevate your WordPress site with our exclusive plugin bundle that includes all of our premium plugins in one package. Enjoy lifetime updates and lifetime support. Save significantly compared to buying plugins individually.

What’s included

  • SleekAI

  • SleekByte

  • SleekMotion

  • SleekPixel

  • SleekRank

  • SleekView