SEO Features
Pubvana includes a comprehensive SEO layer that handles meta tags, social sharing metadata, structured data, and multi-language signals — all automatically, with per-post overrides.
TL;DR
Pubvana auto-generates meta tags, OpenGraph tags, JSON-LD structured data, sitemaps, and hreflang tags. Per-post and per-page meta_title and meta_description fields override the site-level defaults. Configure global SEO settings at Admin → Settings → SEO.
Details
SeoService runs on every public page request and builds a metadata array that is injected into the theme layout's <head> section.
Title Tag
The <title> tag follows the format Page Title | Site Name. For single posts the post's meta_title field is used when set; otherwise the post title is used. For the home page the site tagline replaces the page title component.
Meta Description
The meta description tag is populated from:
- The post or page's
meta_descriptionfield (if set). - The post's
excerptfield (ifmeta_descriptionis empty). - The site-level default description from Admin → Settings → SEO as a final fallback.
OpenGraph Tags
Every page gets a full set of OpenGraph tags for accurate social sharing previews on Facebook, LinkedIn, and other OG-aware platforms:
og:title— frommeta_titleor entity titleog:description— frommeta_descriptionor excerptog:image— featured image URL, or auto-generated OG imageog:url— canonical URL of the current pageog:type—articlefor posts,websitefor all other pagesog:site_name— your site name from General Settings
Twitter Card Tags
twitter:card— alwayssummary_large_imagetwitter:title,twitter:description,twitter:image— mirrors the OG values
JSON-LD Structured Data
For single post pages, Pubvana outputs an Article JSON-LD block:
{
"@context": "https://schema.org",
"@type": "Article",
"headline": "Post Title",
"author": { "@type": "Person", "name": "Author Name", "url": "..." },
"datePublished": "2025-01-15T10:00:00+00:00",
"dateModified": "2025-01-20T14:30:00+00:00",
"image": "https://yourdomain.com/uploads/featured.jpg",
"description": "Post excerpt or meta description"
}
A BreadcrumbList JSON-LD block is generated on all pages to power Google's breadcrumb display in search results.
Hreflang Tags
When multiple languages are active, SeoService outputs <link rel="alternate" hreflang="..." href="..."> tags linking every locale variant of the current page. This tells Google which URL to serve to users in each language/region.
OG Image Auto-Generation
When a post has no featured image, OgImageService uses PHP's GD library to generate a branded PNG (1200×630 px) with the post title overlaid on the site's brand colour. The generated image is cached per slug and invalidated when the post title changes.