✨ 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 ghost story pages

Keep ghost stories in Google Sheets, CSV, or JSON with location, period, haunting type, witnesses, sources, and origin notes. SleekRank renders one indexable URL per story at /ghost-stories/{slug}/ from a shared base page.

€50 off for the first 100 lifetime licenses!

SleekRank for ghost story pages

Ghost stories fit a templated archive

Ghost stories carry the same metadata shape whether they come from a Victorian penny dreadful, a regional folklore collection, or a contemporary haunting report. Each entry has a location (often a named building), a time period, a type of haunting (residual, intelligent, poltergeist, crisis apparition), a list of reported witnesses, a set of recurring phenomena, and a source attribution. The values change per story, the fields stay constant.

SleekRank reads a ghost-story sheet and renders one URL per row at /ghost-stories/{slug}/ using a base WordPress page as the template. Tag mapping handles the title, selector mappings drop in location and period, list mappings render phenomena and witnesses, and the body sits in a content block. A second page group can render location-index pages (every haunting at a single building or city).

Adding a freshly documented haunting from a regional newspaper is one row in the sheet. The story renders inside the existing template, joins the location and period indexes automatically, and inherits the schema markup and Open Graph card.

Workflow

From haunting sheet to per-story page

1

Design the base story page

Build one WordPress page with title, location, period, haunting type, phenomena list, witnesses list, body, and sources section. This is the template every story inherits.
2

Structure the source

Columns for slug, title, location, period, haunting_type, source, body, plus arrays for phenomena, witnesses, and references. Add coordinates for map-driven indexes.
3

Map fields to template

Tag mapping for title, selector for location and period, list mappings for phenomena and witnesses, content mapping for the body, meta mapping for description and schema.
4

Cluster by location or type

Add location and haunting-type index page groups that read the same source. A list mapping pulls peers sharing a location into a 'Other hauntings here' block on every page.

Data in, pages out

From haunting sheet to per-story pages

One row per ghost story with location, period, haunting type, and an array of reported phenomena.
Data source: Google Sheets / CSV / JSON
slug location period haunting_type source
the-tower-of-london Tower of London, England 16th century onward Multiple apparitions Historical record
borley-rectory Borley, Essex 1863 to 1939 Poltergeist / apparition Harry Price investigation
the-amityville-house Amityville, New York 1974 to 1976 Reported poltergeist Lutz family account
the-bell-witch Adams, Tennessee 1817 to 1821 Intelligent haunting Bell family records
the-flying-dutchman Cape of Good Hope 17th century onward Ghost ship Maritime folklore
URL pattern: /ghost-stories/{slug}/
Generated pages
  • /ghost-stories/the-tower-of-london/
  • /ghost-stories/borley-rectory/
  • /ghost-stories/the-amityville-house/
  • /ghost-stories/the-bell-witch/
  • /ghost-stories/the-flying-dutchman/

Comparison

Manual haunting posts versus a single source sheet

Manual posts per story

  • Location detail drifts between street, city, and region across posts
  • Period labels conflict (era, century, year ranges) on related stories
  • Witness lists appear as prose on some pages and bullets on others
  • Source attribution is inconsistent and often missing
  • Cross-links between stories at the same location are absent

SleekRank

  • One URL per ghost story at /ghost-stories/{slug}/
  • Location and period in structured slots that drive index pages
  • Phenomena and witness edits in the sheet flow to every page
  • Sitemap entries per story, base template noindexed
  • Pair with SleekPixel for moody, location-aware Open Graph cards

Features

What SleekRank gives you for ghost story pages

Per haunting

Each ghost story lives at /ghost-stories/{slug}/, ready to rank for location queries, building-name searches, and period-driven long-tail terms.

Sheet-driven

Researchers update phenomena or witnesses in the sheet, every page refreshes on the next cache cycle. No editor session per added source.

Location clustering

A second page group at /ghost-stories/location/{slug}/ lists every reported haunting at a building, town, or country, drawn from the same source.

Use cases

Who builds ghost story pages with SleekRank

Haunted-history tour operators

A walking-tour company links each stop on a route to a per-story page with phenomena, witnesses, and sources, turning the tour archive into ranking pages.

Paranormal investigation sites

Investigation groups publish field reports as data, with each location producing a per-haunting page that updates as new evidence accumulates.

Travel and heritage publishers

Destination publishers ground city pages with reputed hauntings, pulling from a national ghost-story catalog to surface local lore on every place page.

The bigger picture

Why ghost stories suit programmatic generation

Haunting archives reward structure. A reader arriving at any ghost-story page expects the same shape every time: where, when, what kind of haunting, who reported it, what they reported. Search engines reward that structure too because well-organized pages surface for '{building} haunting' and '{city} ghost stories' queries.

The bottleneck on hand-built archives is never the writing of one report, it is the formatting drift across hundreds of stories when each lives in its own WordPress post. Programmatic generation removes that drift by design, so the template lives in one place and every entry inherits it. Investigators and historians focus on substance (accurate location, careful sourcing, clear period framing) and the platform handles structure.

The archive compounds in authority as new locations and reports get added to the source.

Questions

Common questions about SleekRank for ghost story pages

Use a status field: documented account, contested, folklore, fiction. The template renders the label clearly so readers know whether a story is a primary-source report, a contested account, or a literary creation.

 

Use a locations array instead of a single column. A list mapping renders all listed places, and location index pages list any story that includes that place in its array.

 

Yes. Add an investigations array per row, each entry with a date, investigator, method, and outcome. A list mapping renders the full investigation history on each story page.

 

Store coordinates and an address column. A selector mapping renders a static map, and a list mapping can populate a 'visit this location' block when public access is available.

 

Coverage and a clean location index help, but ranking depends on content depth, internal linking, and authority. SleekRank handles structure; good local research and clear sourcing still matter.

 

Yes. Investigators edit Google Sheets or Notion, no WordPress account needed. A status column gates which reports render publicly versus stay in review.

 

Add a sensitivity column and a publish_after date. The template hides stories until the publish date arrives, and a content notice renders above any story flagged as sensitive.

 

Add a media array per row, each item with type, URL, and caption. A selector mapping renders the gallery into the body section, with clear sourcing for every recording.

 

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