WP Manifestindependent plugin directory
manifest / seo / inklura-seo

Inklura SEO

Inklura SEO — titles, meta, Open Graph, XML sitemap & schema for WordPress. Multisite + self-updating.

by webdesign29 · github.com/webdesign29/inklura-seo · website

0stars
2release downloads
0forks

Install

The author publishes release zips, so WP-CLI can install straight from GitHub:

wp plugin install https://github.com/webdesign29/inklura-seo/releases/download/v0.2.0/inklura-seo.zip

Readme

Inklura SEO

Lightweight, dependency-free SEO for WordPress — titles, social cards, a sitemap and structured data, without the bloat.

inklura-seo is a small WordPress plugin (usable as a normal plugin or a must-use plugin) that handles the SEO essentials and gets out of the way. No upsells, no telemetry, no megabytes of dependencies — just the <head> tags, the sitemap and the schema that search engines and social networks want.

Multisite-safe: every site in a network keeps its own settings, with optional network-wide defaults.

Features

Module What it does
Titles & meta Controls the document <title> via a configurable format (%title% %sep% %sitename%, with %tagline% and %page%), plus meta description, rel=canonical, and a noindex robots directive. Falls back to the site name/tagline and the excerpt/content. %page% adds a "Page N" suffix on paginated views.
Open Graph / Twitter og:title/description/type/url/image with og:image:width/height, a twitter:card set, and an optional twitter:site handle. The OG image follows a fallback chain: per-post override → featured image → site default.
XML sitemap Serves /inklura-sitemap.xml. Above a configurable URL cap it splits into a real sitemap index of paginated sub-sitemaps. Covers posts/pages/CPTs, taxonomy archives (categories, tags, custom) and author archives, with accurate <lastmod> and <image:image> for featured images. Advertised in robots.txt.
JSON-LD schema WebSite + an Organization or Person entity on the home page (configurable name + logo); Article on singular posts; BreadcrumbList wherever a multi-level trail exists.
Breadcrumbs A BreadcrumbList graph node plus an optional visible trail — [inklura_breadcrumbs] shortcode and a \Inklura\SEO\inklura_seo_breadcrumbs() template tag.
Indexing controls One-click noindex for search results, paginated (page 2+) views, author archives and date archives.
Per-post meta box An Inklura SEO box on the editor: SEO title, meta description, social-image (OG) override and a noindex checkbox — saved to postmeta with a nonce + capability check.
Per-term SEO SEO title + meta description on the Add/Edit screens of every public taxonomy — saved to term meta with a nonce + capability check.
Settings A Settings → Inklura SEO page (Settings API): separator, title format, default OG image, Twitter handle, home entity, breadcrumbs, sitemap tuning, indexing rules, and a toggle per module.
Multisite Per-blog settings + a Network → Inklura SEO defaults page (get_site_option). Per-blog values win; unset keys inherit the network default.
Auto-update Self-hosted updates for normal-plugin installs — "update available" + one-click update from a manifest, like a wordpress.org plugin.

Install

As a normal plugin

Put the repository in wp-content/plugins/inklura-seo/ and activate Inklura SEO. Activation registers the sitemap rewrite rule and flushes rewrite rules so /inklura-sitemap.xml resolves immediately.

As a must-use plugin

Copy the package into wp-content/mu-plugins/inklura-seo/ and load inklura-seo.php from a loader. The auto-updater is disabled for must-use installs (update by redeploying the package).

Configure

Open Settings → Inklura SEO in wp-admin:

  • Title separator — the glyph between title parts.
  • Title format — tokens %title%, %sitename%, %tagline%, %sep%, %page%. %page% becomes "Page N" on paginated views (and is dropped on page 1); if you omit it, the suffix is appended automatically.
  • Social — default OG image (fallback share image) and a Twitter / X @site handle (a handle or a profile URL — both work).
  • Home page entity (schema) — emit an Organization or Person node on the home page, with a name (defaults to the site name) and a logo / image URL.
  • Breadcrumbs — enable the trail + structured data, and set the home label.
  • Sitemap — URLs per sitemap (the split threshold for the index), and whether to include taxonomy archives, author archives and featured images.
  • Indexing (robots)noindex search results, paginated pages, author archives and date archives.
  • Modules — toggle Titles, Open Graph, Sitemap and Schema independently.

Per post, the Inklura SEO meta box overrides the title/description, sets a social-image (OG) override and lets you mark the entry noindex. Per term, the same box on the Add/Edit term screen sets an SEO title + description.

On multisite, Network → Inklura SEO sets defaults that every site inherits until it overrides them.

Breadcrumbs

Drop the shortcode into content or a block:

[inklura_breadcrumbs separator="›"]

…or call the template tag from a theme template:

<?php \Inklura\SEO\inklura_seo_breadcrumbs( array( 'separator' => '›' ) ); ?>

The matching BreadcrumbList JSON-LD is emitted automatically by the schema module wherever the trail has more than one level.

Constants

define( 'INKLURA_SEO_ENABLE', false );                 // master kill switch
define( 'INKLURA_SEO_UPDATE_URL', 'https://…/update' ); // override update manifest

Hooks

// Adjust the content sitemap entries (array of { loc, lastmod, images? }).
add_filter( 'inklura/seo/sitemap_entries', function ( $entries ) { return $entries; } );

// Adjust the sitemap-index spec list (array of { loc, lastmod }).
add_filter( 'inklura/seo/sitemap_index', function ( $specs ) { return $specs; } );

// Override the update manifest URL.
add_filter( 'inklura/inklura-seo/update_manifest_url', function ( $url ) { return $url; } );

// Run code after the plugin has booted.
add_action( 'inklura/seo/booted', function ( $plugin ) {} );

Testing

for t in tests/unit/*.php; do php "$t"; done   # WP-free unit tests

CI lints on PHP 7.4/8.1/8.3 and runs the unit tests.

Sponsors

inklura-seo is built and maintained with the support of:

  • webdesign29 — web agency (Brest, France).
  • Inklura — WordPress-compatible CMS & hosting.

Interested in sponsoring? Use the Sponsor button or open an issue.

License

GPL-2.0-or-later — see LICENSE.

Read the full README on GitHub →

Releases

TagPublishedAssetDownloads
v0.2.0 Jun 13, 2026 inklura-seo.zip 1
v0.1.0 Jun 13, 2026 inklura-seo.zip 1