coderedcorp / coderedcorp/wagtail-seo
`seo_struct_org_base_dict` uses `seo_canonical_url` for `Organization` which may not be the correct URL
- 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
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