coderedcorp / coderedcorp/wagtail-seo

`seo_struct_org_base_dict` uses `seo_canonical_url` for `Organization` which may not be the correct URL

Open
#83 1 comment 0 reactions 0 assignees View on GitHub
Dominant language
Python
Stars
93
Forks
30
PR merge metrics
No merged PRs in 30d

Description

I'm investigating a report that's come through from our SEO team.

On [this page](https://pulse.internetsociety.org/en/blog/2026/06/anchors-aweigh-networks-down-tracking-the-impact-of-cable-cuts-on-internet-resilience/), `struct_data` and `struct_org_data` are outputting the wrong URL for an Organization @type. They're outputting the canonical URL of the page, not our homepage:

```json
{
"@context": "http://schema.org",
"@type": "Organization",
"url": "https://pulse.internetsociety.org/en/blog/2026/06/anchors-aweigh-networks-down-tracking-the-impact-of-cable-cuts-on-internet-resilience/",
}
```

The [base dictionary](https://github.com/coderedcorp/wagtail-seo/blob/66d5461d0fd68c2238a278c4af652ce27e85df51/wagtailseo/models.py#L579) is using `seo_canonical_url`, which will most likely be overwritten on a per page basis.

```python
# Base info.
sd_dict: dict = {
"@context": "http://schema.org",
"@type": "Organization",
"url": self.seo_canonical_url,
"name": self.seo_struct_org_name,
}
```

I'm happy to put together a PR for this. I'm thinking that an explicit "Organization URL" field on the SEO settings might be the cleanest way to go?

Contributor guide

Open the contributing guide

Research direction

Start with `wagtailseo/models.py` around the base dictionary at line 579 and trace how `seo_canonical_url` and `seo_struct_org_data` are populated. The issue suggests an Organization URL setting as one option, but does not settle the intended behavior; confirm the expected URL with the reporter before changing the model. Done when Organization structured data uses the intended organization URL rather than a page-specific canonical URL.

Written by the indexing model from the issue text.

Assessment

Tech stack
django, python
Domain
backend
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
48/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.