GMC SEO API — Documentation (WordPress)
GMC SEO API is a free automatic SEO layer for WordPress. Once activated it generates the technical SEO tags every page needs — templated titles, meta descriptions, canonical URLs, robots directives, Open Graph and Twitter Card tags, a JSON-LD schema graph, automatic image alt text and hreflang — without any template editing. On top of that it exposes a key-protected API that lets an external system read and write SEO values for any URL, so centralised SEO tooling can push titles and descriptions to the site without logging into wp-admin. It works both as a full standalone SEO engine and, on sites that already run Yoast SEO or Rank Math, as a pure override channel: when either of those plugins is active, GMC SEO API defers to it and stops emitting its own tags so nothing is duplicated.
Requirements: WordPress 6.0 or newer, PHP 8.1 or newer. The plugin ships in English, Italian and Spanish and respects your site's multilingual setup.
Installation
- Download the plugin
.zipfrom your account. Do not unzip it. - In your WordPress dashboard go to Plugins → Add New Plugin → Upload Plugin.
- Choose the
.zipfile, click Install Now, then click Activate. - After activation the plugin's settings screen appears in the admin menu.
Configuration
Open the plugin's settings screen in the admin menu. Two things matter on a fresh install:
- Automatic tag output. Out of the box the plugin generates titles, meta descriptions, canonicals, robots directives, Open Graph / Twitter Card tags, the JSON-LD schema graph, image alt auto-fill and hreflang for every page. No per-page work is required — tags are produced automatically as content is published.
- API key. The per-URL override API is protected by a key you configure on the settings screen. Set this key before using the API; any external console or script that calls the endpoint must present it. Keep the key private — treat it like a password.
If Yoast SEO or Rank Math is installed and active, no extra configuration is needed for coexistence: the plugin detects them and automatically stands down from tag output, while the override API remains available.
Using the plugin
Automatic SEO layer
Used on its own, the plugin gives the site a complete technical SEO layer. Publish content normally; the plugin fills in templated titles, meta descriptions, canonical URLs, robots directives, social preview tags, structured data, image alt attributes and hreflang for multilingual pages. There is nothing to trigger manually.
Per-URL override API
The override API lets you read and write SEO values for a specific URL from outside WordPress — for example from an external SEO console. Instead of logging into each site's admin, the external system pushes titles, descriptions and other SEO values to the target URL through the key-protected endpoint. The API stays active in every mode, including when Yoast or Rank Math handles the tag output.
Running alongside Yoast or Rank Math
If either plugin is active, GMC SEO API defers to it so tags are never emitted twice. In this mode the product serves purely as the programmatic override channel — you keep your existing SEO stack and gain remote per-URL control. You do not need to remove or reconfigure the other plugin.
Verifying it works
- Open an article on the frontend and view the page source.
- Confirm the title, canonical and Open Graph tags appear exactly once in the
<head>. - Push a per-URL override through the API (or the plugin's screen) and reload the page to confirm the new values are served.
Updates & licence
GMC SEO API is free, so no Download Key is required — updates arrive automatically. The plugin checks the GMC / FuerteventuraTV update server on its own (roughly every 12 hours) and new versions show up under Plugins and Dashboard → Updates like any other plugin; update with one click. You can also re-download the latest build from your account at any time.
The software is released under the GNU GPL. The licence covers the gmc-seo-api WordPress plugin only; the Joomla SEO package (GMC SEO) is a separate product for Joomla sites.
Support
For help, message us on WhatsApp at +34 633 168 995 or reply to the email you received with the plugin. Please include the product name and version (e.g. GMC SEO API 1.5.5), your WordPress and PHP versions, and a public URL or a screenshot of the issue — with any API keys masked. We answer in English, Italian and Spanish.
Everything included
53 real capabilities, grouped by area — the full technical-SEO layer for Joomla and WordPress, nothing held back.
Automatic on-page SEO
- Document title templating — build every page title from a %title% %sep% %sitename% pattern with a configurable separator, so titles stay consistent site-wide without editing templates.
- Auto meta description — fills a missing meta description from the article excerpt/content with word-safe truncation, so pages never ship blank descriptions.
- Self-referential canonical — injects a canonical URL where a page has none, and skips pages that already declare one (and non-SEF index.php URLs), preventing duplicate-content signals.
- Robots meta control — set index/follow directives per URL from a validated token allowlist (noindex, nofollow, etc.), respecting existing CMS visibility.
- Duplicate-tag guards — every emitter checks for an existing tag before writing, so nothing is output twice.
Tag-page SEO (Joomla)
- Unique tag titles & descriptions — gives every com_tags tag page a distinct title and meta description (via a {tag} template variable) instead of near-identical boilerplate, honoring your page-title/sitename setting.
- Description template fallback — a default description pattern fills tag pages that have no custom text.
- Noindex empty tags — optionally sets noindex on tag pages with zero items, keeping thin pages out of the index.
Social sharing (Open Graph & Twitter)
- Automatic Open Graph tags — emits og:title, og:description, og:image and og:type so links preview correctly on Facebook, LinkedIn and messaging apps (opt-in).
- Twitter Card tags — outputs summary_large_image cards for rich Twitter/X previews (opt-in).
- Per-URL social overrides — set a custom og:title, og:description and og:image for any specific URL.
- Default share image — a site-wide fallback image is used for og:image/twitter:image when a page has no featured or inline image.
Structured data (JSON-LD schema)
- Site identity graph — emits a WebSite / Organization-or-Person / WebPage (+ BreadcrumbList) JSON-LD graph so search engines understand your site's identity.
- Article / BlogPosting schema — adds BlogPosting structured data to content articles with publisher, logo and sameAs, improving rich-result eligibility.
- Organization / Person choice — declare the site as an Organization or a Person, with name, logo URL and social profile (sameAs) links.
- Schema consolidation — de-duplicates competing Organization/WebSite identity blocks (from templates or other extensions) into one clean graph.
- Home-page schema fix — strips a spurious front-page Article node that some setups emit, keeping the homepage schema correct.
- Safe output — JSON-LD is emitted with JSON_HEX_TAG hardening and backreference-safe insertion.
Image alt-text engine
- Auto-fill missing alt text — injects alt into <img> tags that lack it (content, thumbnails, widgets and Gutenberg image blocks on WP), improving accessibility and image SEO.
- Central alt-text map — store an alt value per image source once and have it applied everywhere that image appears (matched by normalized source + hash).
- Filename fallback — optionally derives readable alt text from the image file name when no stored alt exists.
- Keyword fallback — optionally derives alt from page keywords (Joomla).
- Skip-existing toggle — leave images that already have alt text untouched.
- Bulk alt editor — inline admin screen to edit many alt values at once (save-all / add / delete) with an "only empty alt" filter.
- Lazy-load aware — handles both src and data-src (works with YOOtheme/lazyload) and uses word-boundary matching so data-alt/data-src are never mis-parsed.
Multilingual / hreflang
- Static hreflang map — declare rel=alternate hreflang clusters per path (path | lang=URL | x-default=URL), including cross-domain URLs, with # comments.
- Respects existing associations — skips languages already declared by Joomla language associations (or Polylang/WPML/Yoast on WP) to avoid conflicting hreflang tags.
Per-URL overrides & bulk editing
- Per-URL SEO overrides — override title, meta description, robots, canonical and social tags for any exact URL, from an admin form.
- Override list management — browse, edit, publish/unpublish and delete stored overrides.
- CSV export — download all overrides as a UTF-8 (Excel-ready) CSV for backup or bulk editing.
- CSV import (upsert) — re-import the CSV to create/update overrides in bulk, matched by URL, with a created/updated/skipped report.
SEO audit & control panel
- Dashboard — at-a-glance status: plugin active, override count, tag count and empty-tag warnings, plus the JSON API panel.
- SEO audit view — counts published articles missing a meta description and image rows with empty alt, with one-click jumps to fix each item.
- Site-health tiles — published-article and override totals surfaced as summary cards.
- One-click generate API key — create/rotate the console key from the dashboard (CSRF-protected, cryptographically random).
Search-engine verification
- Verification meta — paste the content tokens for Google Search Console, Bing Webmaster and Yandex Webmaster to emit the verification <meta> tags without editing the template (empty = nothing emitted).
Central console API (developer / integrations)
- Key-protected JSON API — read and write per-URL overrides from outside the CMS, so an external console can manage SEO across many sites with one auth scheme.
- Header-only auth — the key travels only in the X-Gmcseo-Key header (compared with hash_equals); it is never accepted as a query parameter, and an empty/disabled key returns 403/404.
- Override endpoints — list, get, save (PATCH-style upsert: only sent fields change, clear-by-empty) and delete.
- Image-alt endpoints — alt_list, alt_get, alt_save, alt_delete to manage alt text via the API (Joomla; WP exposes a REST /gmcseo/v1/alt route).
- Paginated, validated envelope — { ok, count, limit, offset, items } with a total match count, limit capped 1..1000, per-field max lengths, robots allowlist and http(s)-only canonical/og URL validation.
Compatibility & coexistence
- Yoast / Rank Math defer (WP) — when Yoast or Rank Math is active, the engine automatically steps aside on title/meta/OG/schema to avoid duplicate tags, while alt-fill and the static hreflang map keep running.
- Per-feature toggles — every emitter (title, meta, canonical, robots, OG, Twitter, schema, alt, hreflang) can be switched on/off independently.
- Override precedence — a per-URL override always wins over the automatic engine output.
- Lightweight — a targeted technical-SEO layer rather than a heavyweight all-in-one suite; runs on Joomla 5.x/6.x and WordPress 5.6+ (PHP 8.1+).
Trust & licensing
- GPLv2 licensed — full GPLv2 LICENSE.txt shipped in the package and plugin; JED-compliant.
- Self-hosted, no external service — all SEO output and the console API run on your own site; no data is sent to a third-party SEO cloud.
- Included updates — one-click updates via the built-in update server (Joomla) / Update URI (WP); WordPress auto-update can be toggled.
- License key by email — paid tiers unlock with a key delivered by email; the free version updates without a key.
- Clean uninstall — optional "remove all data on uninstall" (Joomla) drops the plugin's tables/options; the WP twin cleans up across every site of a multisite network.
- Localised UI — English, Italian and Spanish admin translations shipped on both platforms.
Joomla & WordPress
- Joomla (pkg_gmcseo) — control-panel component (com_gmcseo) with Dashboard / Overrides / Images / Audit views, engine plugin (System - GMC SEO), full ACL + CSRF on every admin action, Download Key (dlid) in the manifest, and the JSON-LD/tag/hreflang engine. Tag-page SEO and keyword-based alt fallback are Joomla-specific.
- WordPress (gmc-seo-api) — standalone "Yoast-equivalent" engine with a Settings screen, per-feature checkboxes, site-identity fields, overrides list (read + delete), CSV import/export, an alt-text REST route, and automatic defer to Yoast/Rank Math. hreflang auto-detects from Polylang/WPML. WP-specific alt hooks cover post thumbnails, block content and rendered blocks.


