Skip to content

SEO and Meta Tags

Dr. Necrotix (NIKO) edited this page Aug 22, 2026 · 1 revision

The Portfolio CMS uses global SEO defaults plus per-content overrides for Blog posts and Projects.

SEO Title and Description

When the SEO fields are still untouched:

  • Blog SEO Title follows the Blog Title.
  • Blog SEO Description follows the Excerpt.
  • Project SEO Title follows the Project Title.
  • Project SEO Description follows the Short description.

Once an SEO field is edited manually, that field becomes independent and remains freely editable.

SEO health indicator

The Admin editor reports Good, Medium or Poor using a practical editorial heuristic.

It checks for useful signals such as:

  • a descriptive SEO title;
  • reasonable title length;
  • a meaningful description;
  • reasonable description length;
  • a readable slug;
  • a featured/share image.

This is an editorial helper, not a Google ranking score. Search engines can rewrite titles and snippets based on the query and page content.

Meta descriptions

Google does not define a strict character limit for <meta name="description">. Snippets are rendered according to available display width and may be generated from page content.

Use the CMS length guidance as a writing aid, not as a guaranteed SERP rule.

Open Graph

Open Graph metadata is commonly consumed by Facebook, LinkedIn, Discord and many other social/chat preview clients.

Typical markup:

<meta property="og:title" content="Page title">
<meta property="og:description" content="Page summary">
<meta property="og:image" content="https://example.com/share.jpg">
<meta property="og:url" content="https://example.com/page">

The Homepage Admin can define a default social image and an Open Graph-specific image override.

X / Twitter Cards

Typical X metadata:

<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:title" content="Page title">
<meta name="twitter:description" content="Page summary">
<meta name="twitter:image" content="https://example.com/share-x.jpg">

The Homepage Admin can define a dedicated X/Twitter image override.

Social image fallback logic

The intended fallback chain is:

Open Graph image -> Default social image -> Global SEO image
X/Twitter image -> Default social image -> Global SEO image

This avoids forcing editors to maintain separate copies of the same image for every social platform.

Custom meta tag syntax

Homepage Admin accepts structured custom tags instead of raw HTML.

Name-based tags

name:application-name=Necrotix Lab
name:theme-color=#0a0a0f
name:author=Dr Necrotix

Equivalent output:

<meta name="application-name" content="Necrotix Lab">

Property-based tags

property:profile:username=drnecrotix

Equivalent output:

<meta property="profile:username" content="drnecrotix">

Rules

  • One tag per line.
  • Use name:key=value or property:key=value.
  • Do not paste raw <meta> HTML.
  • Avoid duplicating metadata already generated by the application.
  • Unsupported metadata may simply be ignored by search engines or social clients.
  • Never put passwords, API keys, tokens or private data in metadata.

Canonical URLs

Blog and Project detail pages should emit canonical URLs derived from the public site URL and content slug.

Make sure NEXT_PUBLIC_SITE_URL is the final production HTTPS URL. A wrong value can create incorrect canonical and social-share URLs.

Robots and indexing

Global SEO can provide robots/index/follow directives. Use noindex deliberately for content that should not appear in search results.

Do not use robots metadata as an access-control mechanism. Private content must still be protected by authentication/authorization.

Preview workflow

Blog and Project editors include an unsaved Preview so authors can inspect layout/content before the final database write.

Preview does not publish the page and does not guarantee how Google or social platforms will render the final snippet/card. Use the SEO preview as an editorial approximation.

References

Google Search documentation:

Clone this wiki locally