# How to replace the Article schema with NewsArticle in {{ghost\_head}} (using PikaPods + Headline theme)?

**URL:** <https://forum.ghost.org/t/how-to-replace-the-article-schema-with-newsarticle-in-ghost-head-using-pikapods-headline-theme/58305>\
**Category:** Developer help\
**Created:** [June 24, 2025, 5:34pm UTC](https://forum.ghost.org/t/how-to-replace-the-article-schema-with-newsarticle-in-ghost-head-using-pikapods-headline-theme/58305 "2025-06-24T17:34:57Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![Muniz](https://sea1.discourse-cdn.com/flex015/user_avatar/forum.ghost.org/muniz/32/34204_2.png) [@Muniz](https://forum.ghost.org/u/Muniz)\
**Post date:** [June 24, 2025, 5:34pm UTC](https://forum.ghost.org/t/how-to-replace-the-article-schema-with-newsarticle-in-ghost-head-using-pikapods-headline-theme/58305/1 "2025-06-24T17:34:57Z")

</div>

Hi everyone,

I’m customizing the **Headline theme** and I want to **replace the default JSON-LD schema `@type: "Article"` injected via `{{ghost_head}}` with `@type: "NewsArticle"`**.

I’ve already created a `newsarticleschema.hbs` file with the correct `NewsArticle` markup, and it works when inserted manually. However, when I include `{{ghost_head}}` in the `<head>`, it automatically adds the default `Article` schema, resulting in **two conflicting schemas (`Article` and `NewsArticle`) on each post**.

If I remove `{{ghost_head}}`, I lose important functionality such as:

- Google AdSense
- Social share buttons with embedded CSS
- Code injection set in the Admin panel (header section)

### Environment:

- Ghost version: latest
- Hosting: **PikaPods**
- Theme: **Headline**

### Question:

Is there a **native or recommended** way to override or replace the `Article` schema with `NewsArticle` in Ghost **without removing `{{ghost_head}}`**?

If not, is there any flag, helper, or clean workaround to handle this properly at the theme level?

Thanks in advance.

---

<div class="post-metadata">

**Author:** ![Cathy\_Sarisky](https://sea1.discourse-cdn.com/flex015/user_avatar/forum.ghost.org/cathy_sarisky/32/25750_2.png) [@Cathy\_Sarisky](https://forum.ghost.org/u/Cathy_Sarisky)\
**Post date:** [June 24, 2025, 6:45pm UTC](https://forum.ghost.org/t/how-to-replace-the-article-schema-with-newsarticle-in-ghost-head-using-pikapods-headline-theme/58305/2 "2025-06-24T18:45:39Z")

</div>

Yes! I did something about this last year:

> **[Making {{ghost\_head}} better](https://www.spectralwebservices.com/blog/adding-new-features-to-ghost-head/)**
>
> Know how I'm always griping about ghost\_head being a monolith? I did something about it!

You will need to edit the theme. So what you’re going to do is find where default.hbs currently calls {{ghost\_head}}. Wrap that in some logic.

So perhaps, if you want to write custom schema only for posts or pages that have the tag #use-alt-schema:  
(caution, made up on the spot, could have an error)

```auto
{{#is "post, page"}}
{{#post}}
  {{#has tag="#use-alt-schema"}}
      {{> newsarticleschema }} {{!-- assumes this file is in partials --}}
      {{ghost_head exclude="schema"}}
  {{else}}
      {{ghost_head}}
  {{/has}}
{{/post}}
{{else}}
   {{ghost_head}}
{{/is}}

```

You’ll need to make sure you’re writing out a full set of schema for the pages that you’re excluding it from ghost\_head. Be sure to include author, organization, etc.
