diff --git a/_includes/header.html b/_includes/header.html
index 5951ac5..827655a 100644
--- a/_includes/header.html
+++ b/_includes/header.html
@@ -1,8 +1,10 @@
{% capture og_url %}{{ site.url }}{{ page.url | remove: "index.html" | remove: ".html" }}{% endcapture %}
-{% capture og_image %}{%- if page.imageurl -%}{{ site.url }}/assets/img/{{page.imageurl}}{% else %}https://avatars2.githubusercontent.com/u/30845478?s=280&v=4{%- endif -%}{% endcapture %}
-{% capture page_title %}{%- if page.title -%}{{ page.title | smartify }}{%- unless page.landing == true %} · {{ site.title | smartify }}{%- endunless -%}{%- else -%}{{ site.title | smartify }} · {{ site.description | smartify }}{%- endif -%}{% endcapture %}
+{% capture og_image %}{%- if page.imageurl and page.imageurl != "" -%}{{ site.url }}/assets/img/{{page.imageurl}}{% else %}https://avatars2.githubusercontent.com/u/30845478?s=280&v=4{%- endif -%}{% endcapture %}
+{% comment %}Posts get a slug-derived page.title from Jekyll; their real title is in landing-title{% endcomment %}
+{% assign title_source = page.title %}{% if page.collection == "posts" and page.landing-title %}{% assign title_source = page.landing-title %}{% endif %}
+{% capture page_title %}{%- if title_source -%}{{ title_source | smartify }}{%- unless page.landing == true %} · {{ site.title | smartify }}{%- endunless -%}{%- else -%}{{ site.title | smartify }} · {{ site.description | smartify }}{%- endif -%}{% endcapture %}
{% capture page_description %}{{ page.description | default: site.description | smartify }}{% endcapture %}
diff --git a/_includes/structured-data.html b/_includes/structured-data.html
index 16c5322..8717746 100644
--- a/_includes/structured-data.html
+++ b/_includes/structured-data.html
@@ -116,7 +116,7 @@
"url": "{{ site.image }}"
}
},
- {%- if page.imageurl %}
+ {%- if page.imageurl and page.imageurl != "" %}
"image": "{{ site.url }}/assets/img/{{ page.imageurl }}",
{%- else %}
"image": "{{ site.image }}",
diff --git a/_posts/2023-02-22-login-password-authentication.md b/_posts/2023-02-22-login-password-authentication.md
index 86c241e..88263b1 100644
--- a/_posts/2023-02-22-login-password-authentication.md
+++ b/_posts/2023-02-22-login-password-authentication.md
@@ -4,7 +4,6 @@ landing-title: "Login and Password Authenticaion"
landing-title2: "Login and Password Authenticaion"
description: "Login and password authentication, implementation, tips and hints, advantages and disadvantages"
keywords: 'Login, password, authentication, basics'
-imageurl: ''
---
# Login and Password Authentication
diff --git a/forgerock-alternative.md b/forgerock-alternative.md
index 7951f30..8e3b356 100644
--- a/forgerock-alternative.md
+++ b/forgerock-alternative.md
@@ -1,6 +1,6 @@
---
layout: home
-title: "ForgeRock Alternative & Migration Path — Open Identity Platform"
+title: "ForgeRock Alternative & Migration Path"
description: "A free, open-source alternative to ForgeRock. Open Identity Platform continues the OpenAM, OpenDJ, OpenIDM, OpenIG and OpenICF line under the CDDL license — no license fees, no lock-in. Map your ForgeRock stack and plan a migration."
keywords: "ForgeRock alternative, ForgeRock open source alternative, ForgeRock migration, migrate from ForgeRock, ForgeRock to open source, ForgeRock AM alternative, ForgeRock DS alternative, ForgeRock IDM alternative, ForgeRock IG alternative, OpenAM ForgeRock, OpenDJ ForgeRock, ForgeRock end of life, ForgeRock replacement, IAM migration"
lastmod: 2026-07-17