Plugin screenshot thumbnail 1/3
Plugin screenshot thumbnail 2/3
Plugin screenshot thumbnail 3/3

Beacon is the SEO, GEO, and redirect plugin built for the AI search era. While traditional SEO plugins focus on what Google crawls, Beacon also manages what AI models read - giving your content visibility in both classic and generative search from a single Control Panel.

Everything editors need lives in the CP. No project-config YAML required.


Classic SEO - the full stack

Per-entry meta with live preview. Add the Beacon SEO field to any entry type to give editors a live multi-platform preview (Google, Google Mobile, Facebook, LinkedIn, X/Twitter, Slack, Pinterest) as they type. Title and description meters show character budgets in the field; preview panels add pixel-accurate truncation feedback per platform. Robots directives, canonical URL, and Open Graph image are all on the same screen.

Schema.org JSON-LD. Map any entry type to Article, Product, Recipe, HowTo, FAQPage, Review - or any of 900+ schema.org types when the full catalogue is enabled in config. A visual mapping UI lets you bind schema properties to Craft field values via a property picker (drag-and-drop is for reordering schema bundles, not property mapping). Beacon merges all active bundles into a single optimised <script type="application/ld+json"> block.

Sitemap. Auto-generated sitemap.xml with per-section on/off toggles, priority, and changefreq. Chunks automatically when the URL count crosses a configurable limit. News sitemap, image sitemap, and video sitemap included. Commerce product URLs supported via an opt-in integration.

Social meta. Full og:* and twitter:* tag coverage including og:locale:alternate for multisite, article:published_time, article:modified_time, twitter:creator, and article:author. OG images run through a configurable Craft transform (set via config/beacon.php).

robots.txt, humans.txt, ads.txt. Per-site, CP-managed. AI crawler rules from the AI Crawlers screen are automatically appended to robots.txt.

hreflang alternates, breadcrumbs, pagination, ETag/304 caching, CDN cache-tag headers, X-Robots-Tag response headers - all included. Pagination is opt-in via craft.beacon.setPagination() in templates.


GEO - Generative Engine Optimization

AI models (ChatGPT, Perplexity, Gemini, Claude) don't crawl your site the way Google does. They ingest structured text. Beacon gives you control over exactly what they read and how authoritative it looks.

llms.txt and llms-full.txt. Configure per-site summaries, trust blocks (policy URL, license URL, contact email, preferred attribution), and the section content you want AI models to index - all from the CP. Served at both /llms.txt and /.well-known/llms.txt. Disable with one toggle for a 404.

Per-URL Markdown export. Every public entry is exportable as clean Markdown at /<uri>.md or /geo/export?id=<id>, with Accept header negotiation (Accept: text/markdown). Beacon strips navigation chrome and applies configurable front matter (title, description, author, canonical, license, etc.). Warm the cache via CLI/queue (craft beacon/markdown/generate); entry save invalidates cached Markdown for that entry.

GEO content score. A 0–100 composite score per entry across six research-backed pillars: fact density, claim-based headings, chunkability, outbound citation density (including authority-domain weighting), entity completeness, and freshness banding. Scores appear as a chip in the entry editor sidebar and aggregate in a Dashboard widget. The drill-down screen shows per-pillar breakdowns with actionable notes.

E-E-A-T author system. Author elements with job title, bio, headshot, expertise list, credentials, sameAs links, and org affiliations. Authors emit full schema.org/Person JSON-LD with a stable @id that deduplicates across pages. Enable public author profile pages at a configurable URL prefix. Author data feeds the GEO-provenance citations node automatically.

AI crawler controls. A CP-managed list of AI bots (GPTBot, ClaudeBot, PerplexityBot, Google-Extended, and more) with per-bot Allow/Disallow rules that merge into robots.txt. A bot activity log records every AI crawler hit with path, timestamp, and site - visible in a Dashboard widget.


Redirects - industrial-strength

Full redirect management. 301, 302, 307, 308, regex, and glob rules with per-rule query-string modes (ignore, preserve, or match). Sort order controls evaluation priority. Propagation scope (site-specific or all-sites) on each rule. Redirect matcher benchmarks at sub-millisecond for pure pattern matching, verified by PHPBench in CI.

404 log with suggestion engine. Every unmatched URL is logged with hit count and last seen (referrer and first-seen are stored; exposed via GraphQL). A Jaccard + string-similarity engine proposes the most likely redirect target - click to pre-fill the new rule form.

Auto-redirect on slug change. When an entry URI changes, Beacon automatically creates a 301 redirect from the old URL. This is always on for entries (no per-entry toggle).

Chain and loop detection. The beacon/redirects/audit CLI command surfaces chains longer than one hop and self-referential loops before they reach visitors. The Dashboard redirect widget reports stale redirect counts (not chain/loop detail).

CSV import/export. Bulk-import redirects from a CSV. Validation errors are reported row-by-row. Export the full redirect table at any time.

Short links. Vanity slugs with configurable destination, expiry, click counter, and QR preview. Redirect rules take precedence over short links when slugs conflict.

IndexNow integration. Submit URLs to Bing, Yandex, and other IndexNow-compatible engines automatically on entry save, or manually via CLI. Per-site API key management with a submission history widget.


Technical highlights

  • Headless-ready. Native beacon field on Craft's EntryInterface. GraphQL: entry { beacon { schemaNodes, breadcrumbs, openGraph, twitter, geoScore } } plus root queries beaconRedirects, beaconRedirect404s, beaconShortLinks. geoScore resolves lazily when queried.
  • Performance-verified. PHPBench on redirect pattern matching runs in CI on every PR (RedirectMatcherBench). Broader budgets (sitemap, meta resolution) are documented in bench/baseline.json.
  • Multisite. Every text surface (llms.txt, robots.txt, sitemap, humans.txt, ads.txt, webmaster keys) is per-site. Authors and redirects support site-specific propagation.
  • Craft Commerce. Product URLs appear in the sitemap via an opt-in Commerce integration. Noindex gate respects the Beacon SEO field on product entry types.
  • No project-config drift. Runtime settings live in DB tables - no project-config YAML to commit or conflict. Advanced developer overrides remain available in config/beacon.php.
  • Extensible. Events for sitemap URL registration, meta tag mutation, schema graph modification, redirect type registration, and GEO score pillar registration. See the extensibility cookbook.

Requirements

  • PHP 8.2+
  • Craft CMS 5.0+

Audit notes

What was wrong or overstated in the original draft, and how the corrected copy above addresses it.

Must fix (factual errors)

Original claimIssueCorrection
Craft CMS 5.10+composer.json requires ^5.0Use 5.0+ or bump the composer constraint
Cosine-similarity suggestion engineUses Jaccard + similar_text() blendJaccard + string-similarity
Toggle off per-entry (auto-redirect)Always on when URI changesRemoved toggle claim
Chain/loop … Dashboard reportDashboard shows stale count only; chains/loops are CLISplit CLI vs dashboard
Drag-and-drop schema mappingDrag-and-drop reorders bundles; mapping uses modal + selectsClarified UI
Live preview on save (robots/humans/ads)No preview UI on crawler tabsRemoved
900+ schema.org types (unqualified)Default ~26 curated; 900+ needs fullSchemaCatalogue in configQualified
GEO pillar: authority domain matchNot a separate pillar; lives inside outbound citationsListed all six pillars correctly
301, 302 onlyAlso 307, 308Added status codes
PHPBench budgets enforced in CICI runs bench; does not fail against baseline.jsonSoftened wording
Queue pre-generation at deploySave clears cache; regen is CLI/queue-drivenClarified

Partially true (softened in copy)

Original claimNuance
Pixel-accurate metersChar budgets on fields; pixel truncation in preview panels
No YAML, no config filesCP/DB for editors; config/beacon.php for dev overrides
OG transform “configurable”Transform handle is in config/beacon.php, not CP
Sub-millisecond redirect lookupPure matcher only; full lookup includes DB
404 log first/last/referrer in CPCP shows hits + last seen; full fields in DB/GraphQL
geoScore as top-level GraphQL fieldNested under entry.beacon.geoScore
Pagination includedTemplate opt-in via craft.beacon.setPagination()

Verified accurate (no change needed)

  • SEO preview platforms (Google, Mobile, Facebook, LinkedIn, X/Twitter, Slack, Pinterest)
  • Sitemap features (chunking, news/image/video, Commerce opt-in)
  • Social meta tags listed (og:locale:alternate, article times, twitter:creator, article:author)
  • llms.txt / llms-full.txt routes including /.well-known/
  • Markdown export URLs and Accept negotiation
  • Author system + Person JSON-LD + public pages + GEO provenance
  • AI crawler controls + bot activity widget
  • Redirect query-string modes, sort order, propagation
  • CSV import/export, short links, redirect precedence over short links
  • IndexNow on save + CLI + widget
  • Multisite text surfaces, DB settings (no project config)
  • Extensibility events
  • PHP 8.2+

Standard

Plus $39/year after one year.

Installation Instructions

To install this plugin, copy the command above to your terminal.

Reviews

This plugin doesn't have any reviews.

Active Installs
0
Version
1.0.0
License
Craft
Compatibility
Craft 5
Last release
June 12, 2026