GeoMapEngine for WordPress · v1.x
The plugin operator's manual.
Everything the connector plugin does and exactly how to drive it — from the two-click connect through publishing, autopilot fixes, and agency installs. Requires WordPress 6.0+, PHP 8.0+, and a GeoMapEngine account (free tier works).
1 · Install & Connect
Three minutes, zero tokens to copy in the normal flow.
Install
- 1. Download the zip from the plugin page, the
/integrationcard, or the top of/wordpressin your dashboard. - 2. WP admin → Plugins → Add New → Upload Plugin → choose the zip → Activate.
- 3. You'll find a new entry under Settings → GeoMapEngine.
Connect — the two-click handshake
- 1. Settings → GeoMapEngine → Connect to GeoMapEngine. A tab opens on geomapengine.com.
- 2. Pick the business this site belongs to → Connect. You're redirected back to wp-admin, already linked.
- 3. The site stores a restricted site token bound to that one business — your account key never leaves the platform, and the plugin can never see your other businesses.
Once connected the status dot goes green, the site appears on /wordpress with a Live badge, and every feature below activates. The site checks in on a heartbeat — no check-in for 24h flags it Stale on your dashboard.
Manual token (fallback)
If the handshake can't complete — e.g. you're installing on a site where you can't reach geomapengine.com in the same browser — open Advanced — manual token on the settings screen, paste a site token, hit Test connection to verify it resolves the right business, then Save token. Issue tokens from the connected-sites page in your dashboard.
2 · Blocks & Shortcodes
Every surface renders live from your dashboard data — change it on geomapengine.com, the site follows within the cache window (about an hour). All five work as Gutenberg blocks, Elementor widgets, and shortcodes.
| Block | Shortcode | What it renders |
|---|---|---|
| Rank Grid Map | [geomapengine_grid height="520"] |
Your live geo-grid heatmap, embedded. height sets pixels. |
| NAP Card | [geomapengine_nap fields="name,address,phone"] |
Name / address / phone straight from the business record — always in sync. fields picks which render. |
| Reviews | [geomapengine_reviews limit="6" min_rating="4"] |
Latest Google reviews with stars. Filter by count and minimum rating. |
| Free Rank Check | [geomapengine_rank_check heading="Check your ranking — free"] |
A lead-capture form that runs a real rank check. Every submission lands in your funnel attributed to this site — honeypot + rate limits built in. |
| Service Area Map | [geomapengine_service_area height="420" heading="Areas we serve"] |
Interactive Leaflet map — HQ pin, service radius ring, every targeted city from your campaigns. |
Gutenberg & Elementor
In the block editor search "GeoMapEngine" — every block carries sidebar controls for its options (height, limits, headings). With Elementor active the same five register as native widgets under General. Classic editor or page builders we don't know? Shortcodes work everywhere.
Schema — fed, not forced
The plugin emits LocalBusiness JSON-LD (name, address, phone, URL) plus aggregateRating from your live review aggregate — that's what powers the stars in search results. It also emits FAQPage schema on your front page from your location Q&A corpus. If Yoast or RankMath is detected, the plugin steps aside entirely — they own the head, we feed their fields instead.
3 · Publishing
Two channels ship content from the dashboard into WordPress — blog posts and geo landing pages.
Blog Publisher — /blog
- Compose manually or with the AI generator (word tiers priced in credits), attach a featured image, set categories/tags.
- Draft, Publish now, or Schedule — scheduled posts land on the shared calendar alongside GBP posts.
- Multi-site sends are never duplicates: every target site gets its own AI-localized variant — identical cross-domain copy is blocked by construction, not by a setting.
- SEO fields write into Yoast and RankMath meta keys — whichever you run renders them.
- "Also post to GBP" cross-posts the published post to Google Business Profile with a LEARN_MORE link back.
- Failed deliveries retry automatically once after an hour; the per-site delivery ledger shows status, permalink, and a manual retry.
Geo landing pages — campaign report → Push to WP
Every geo zone on a campaign report has a Push to WP button that ships it to the business's connected site as a WordPress page (not a post — it won't pollute the blog feed). If the zone has no copy yet, the engine writes it first — SEO title, meta, H1, localized body and FAQ cluster — and the FAQs are appended as a visible section. Pushed pages land as drafts so you can review before going live; a delivered page shows an "On WP" link instead of the button. The slug comes from the zone's routing slug — yoursite.com/round-rock-garage-conversion.
WP → GBP auto-post
Writing directly in WordPress? The post editor gets a GeoMapEngine sidebar box — tick "Post to Google Business Profile on publish" and the excerpt, permalink and featured image flow through the standard GBP pipeline on publish. Fires once per post.
4 · Autopilot & AI
Fixes that reach inside the site — always signed, always reversible.
Fix Inbox → on-site pushes
Page-audit findings for this site's URLs become actionable fixes in your dashboard Fix Inbox. Applying one pushes signed metadata straight into the page's Yoast or RankMath fields — title and meta description. No SEO plugin installed? An opt-in head-injection fallback (settings toggle) writes overrides the plugin renders into <head>. Every applied fix stores a backup of what it overwrote — Undo rolls it back from the same inbox.
AI alt text on upload
Every image you upload gets queued for AI-generated alt text — a background task writes _wp_attachment_image_alt a few seconds later, so uploads never slow down. Existing alt text is never overwritten. Toggle it in settings.
AI-visibility kit — llms.txt
With the toggle on, the site serves /llms.txt and /llms-full.txt — machine-readable summaries of your business (NAP, services, service areas, Q&A) built for AI crawlers like GPTBot and ClaudeBot. Generated live from your platform business data, cached hourly.
Rankings-aware link suggestions
The post editor gets a Link Suggestions sidebar box: pages the platform wants link-boosted — newly delivered posts, weak-zone landing pages, low-scoring audited URLs — each with a suggested anchor and a copy button. Inserting stays manual; nothing rewrites your content behind your back.
5 · Agency & Security
Client sites without client accounts — and a security model that can't leak sideways.
One site → one business, always
Each connected site binds to exactly one business through a per-site restricted token. Even with full wp-admin access, a client's site can only ever see its own business's NAP, reviews and pushes — never your other accounts. Platform-to-plugin pushes are HMAC-signed with that token plus timestamp + nonce replay protection.
Stealth mode & white-label
Stealth mode (settings toggle) removes the plugin from the Settings menu — the page stays reachable at options-general.php?page=geomapengine. On white-label plans, front-end blocks carry "Powered by {your agency}" in your accent color — GeoMapEngine branding never ships to the client's front end.
Manage & revoke — /wordpress
The connected-sites page lists every install: URL, bound business, plugin version, last heartbeat, Live/Stale state. Disconnect revokes instantly — the plugin flips to an amber "Connection lost" state with a reconnect button instead of failing silently.
6 · Settings Reference
Every toggle on Settings → GeoMapEngine, with its default.
| Setting | Default | What it controls |
|---|---|---|
| Inject the GeoMapEngine loader | DefaultOn | The rank-tracking script installs itself in the footer — no manual paste. |
| LocalBusiness schema | DefaultOn | NAP + aggregateRating + FAQPage markup. Auto-disabled when Yoast or RankMath is active. |
| Serve /llms.txt | DefaultOn | The AI-visibility files at /llms.txt and /llms-full.txt. |
| AI alt text on upload | DefaultOn | Background-generated alt text for new media. Never overwrites existing text. |
| Head-injection fallback | DefaultOff | Lets pushed fixes write meta into <head> when no SEO plugin exists. Ignored when Yoast/RankMath is installed. |
| Stealth mode | DefaultOff | Hides the plugin's menu entry — agency installs. |
Site link table & disconnect
The bottom card shows the site URL, bound business (with ID), plugin version and connection date — everything support will ask for. Disconnect removes the token immediately; widgets stop rendering but no data is deleted. Updates arrive through the normal WordPress update flow — Dashboard → Updates — served from geomapengine.com.
7 · Troubleshooting
Symptom → cause → fix, in the order we see them.
| Symptom | Fix |
|---|---|
| "Connection lost" amber banner | FixThe token was revoked on the platform (or rotated). Click the reconnect link in the banner — a new handshake restores everything. |
| Blocks render "not connected" | FixCheck the status dot on the settings page. Reconnect if amber; otherwise the platform may be unreachable from the host — cached content keeps rendering for the cache window. |
| Pushes fail / site unreachable | FixThe plugin's REST route (/wp-json/geomapengine/v1/post) must be reachable — security plugins, WAF rules or maintenance modes that block REST API break delivery. Whitelist it; failed deliveries retry once automatically. |
| Site shows "Stale" on dashboard | FixNo heartbeat in 24h — plugin deactivated, site down, or outbound requests blocked. Reactivate or reconnect. |
| Landing page arrived as a post, not a page | FixUpdate the plugin — post_type=page needs v1.0.1+. |
| Alt text not appearing | FixConfirm the toggle is on and WP-Cron runs (disabled-cron hosts need a real cron hitting wp-cron.php). Existing alt text is never overwritten — check the field isn't already set. |
| Service-area map is blank | FixNeeds Leaflet from unpkg.com + OpenStreetMap tiles — an aggressive ad-blocker or CSP can block them. Also confirm the business has HQ coordinates and at least one active zone. |
| No schema on the page | FixBy design when Yoast or RankMath is active — they own the head. The plugin feeds their fields instead; check there. |
| No update offered | FixWordPress checks periodically — Dashboard → Updates → "Check again" forces it. The manifest lives at geomapengine.com/api/v1/plugin/latest. |
8 · FAQ & Support
Does it slow my site down?
No. API calls are transient-cached (about an hour), maps and iframes lazy-load, and alt text runs on a background cron — page render cost is effectively zero.
Does it replace Yoast or RankMath?
Never. Pushed fixes write into their meta fields and our schema steps aside when they're active. They render; we feed.
Can I install it on a client's site without giving them a GeoMapEngine account?
Yes — that's the agency flow. You run the handshake from your account; their site binds to the business you pick. Stealth mode + white-label keep it invisible and branded.
Multisite?
Connect each site in the network individually — every install is its own row on /wordpress. Network-wide activation isn't supported yet.
Staging sites?
Connect the staging domain as its own site row — it just binds to the same business. Nothing is shared between the two installs except the data they both read.
How do I fully remove it?
Disconnect from the settings page (or revoke from /wordpress), then deactivate + delete. Options and delivery rows are cleaned on the platform side; WP-side options are removed on disconnect.
What can a stolen token do?
Very little — it can only read that one business's NAP, reviews and summaries, and accept pushes for that site. No account access, no other businesses. Revoke it from /wordpress and it's dead.
Still stuck? Open a ticket.
Logged-in users get the built-in ticket system at /support — subject, category, message; replies thread in place and ping your email. To get a fast answer include: site URL, bound business, plugin version (all three are on the plugin's Site link card), and what you expected vs. what happened.