When I worked on SEO for large telecom and support portals (including projects in the Vodafone ecosystem), one of the biggest headaches was entity fragmentation. Different sub-teams would publish help guides, news updates, and technical documentation under plain-text author strings, or worse, generic "Admin" accounts.
When Google rolled out its updated ProfilePage structured data guidelines, the message from Search Central became unmistakable: search engines want to connect every piece of content to a verifiable human entity (Person) backed by bidirectional sameAs links.
Here is how we implemented server-side ProfilePage and NewsArticle entity resolution on our Polish portal Puls Polski 24 (pulspolski24.pl) without bloating WordPress with five different schema plugins.
1. The Common WordPress Trap: Missing page.php Fallbacks and Client-Side-Only Injection
On many custom WordPress themes built for speed, developers only include front-page.php, single.php, and index.php. If you create dedicated author pages (like /autor-marek-kowalczyk/ or /autor-piotr-zielinski/) as WordPress Pages (post_type = 'page'), WordPress template hierarchy looks for page.php -> singular.php -> index.php. If index.php mirrors your homepage, your author URLs will accidentally render the homepage layout!
A clean 6-line template_include filter solves this permanently while keeping a single lightweight template:
add_filter('template_include', function($template) {
if (is_page()) {
$single = locate_template('single.php');
if ($single) return $single;
}
return $template;
}, 99);
2. Server-Side Output Buffering (ob_start) vs. JavaScript DOM Patching
Many SEO audit crawlers (and lighter AI retrieval bots) parse the raw server HTML response without executing deferred footer JavaScript. If your author byline, <time datetime="..."> tags, or sameAs links are injected via client-side JS, crawlers see a mismatch between your JSON-LD and your visible HTML.
By wrapping our transformations in template_redirect with ob_start(), we ensure that every single article on Puls Polski 24 ships with:
- Microformat
vcardand Schema.orgPersonattributes directly in.art-author-mini, - Exact ISO-8601
datePublishedanddateModifiedtimestamps, - Full
ProfilePageJSON-LD on each editor's profile page linking viasameAsto our verified LinkedIn profiles.
| Schema Property | Target Page Type | Purpose in Google Knowledge Graph |
|---|---|---|
@type: ProfilePage |
/autor-.../ pages |
Declares the page as a canonical creator profile |
mainEntity: Person |
Nested inside ProfilePage
|
Binds name, jobTitle, image, and worksFor
|
sameAs array |
Both ProfilePage & NewsArticle
|
Connects the author to LinkedIn, Dev.to, GitHub |
speakable |
NewsArticle |
Highlights .art-h1 and .aeo-direct-answer for voice/AI |
3. Combining Archival Documentary Storytelling With Technical SEO
In my section on Puls Polski 24 - Tajemnice Historii & Wideo 9:16, we pair short vertical documentary videos with 800-word archival investigations - such as our piece on Marian Rejewski and the Polish cryptologists who broke Enigma and Professor Jan Czochralski's crystal growth method. Embedding a structured chronological table and links to state archives like IPN.gov.pl turns a 60-second social video topic into an evergreen search asset.
- Author Profile: Sergi Garcia on Puls Polski 24
- Connect on LinkedIn: Sergi Garcia on LinkedIn
Top comments (0)