When used alongside Lang Forge (part of the Forge Suite), SEO Forge meta fields and templates work per-language.
How It Works
Lang Forge stores translations as separate posts linked via the _langforge_group_id meta. Each translated post has its own independent set of SEO Forge meta:
_seoforge_meta_title— set per-language_seoforge_meta_description— set per-language_seoforge_focus_keyword— set per-language- Schema, robots, and all other meta are per-post
Setting Meta for Each Language
php
// Original English post
$en_id = 42;
update_post_meta( $en_id, '_seoforge_meta_title', 'WordPress SEO Guide | MyBlog' );
update_post_meta( $en_id, '_seoforge_focus_keyword', 'wordpress seo' );
// Spanish translation (separate post linked via Lang Forge)
$es_id = 108;
update_post_meta( $es_id, '_seoforge_meta_title', 'Guia de SEO para WordPress | MyBlog' );
update_post_meta( $es_id, '_seoforge_focus_keyword', 'seo wordpress' );
// Analyze each language version independently
SEOFORGE_Analyzer::instance()->analyze( $en_id );
SEOFORGE_Analyzer::instance()->analyze( $es_id );Hreflang Tags
Lang Forge outputs hreflang tags automatically. SEO Forge does not duplicate this — the two plugins complement each other without conflict.
Multilingual Sitemaps
Each language version appears as a separate URL in the sitemap. Since Lang Forge creates separate posts per language, each is included with its own entry.
—