Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update Course View Listings with Schema.org Structured Data possibly using the az_seo Module #3906

Open
trackleft opened this issue Nov 21, 2024 · 0 comments · Fixed by #3909

Comments

@trackleft
Copy link
Member

Motivation

The az_courses view currently displays course lists but does not provide structured data for search engines to interpret the information. Adding schema.org structured data to the course view listings will enhance search engine optimization (SEO) and improve visibility in search results. The relevant schema types are:

  • Course: Used for individual courses.
  • ItemList: Used to describe a list of courses.

By implementing this, we can provide detailed metadata for each course while maintaining a structured hierarchy for course lists.


Proposed Resolution

Describe the Solution You’d Like

  • Enhance the az_courses view with schema.org ItemList metadata to describe the list of courses.
  • Each course entry in the view should include the Course schema type, providing details such as:
    • Course name.
    • Description (truncated to 240–500 characters if necessary).
    • URL.
    • Provider details (e.g., College or Department).
    • Course offerings, modes, schedules, and instances.

Example JSON-LD Output

The following illustrates the JSON-LD structure for the view:

{
	"@context": "https://schema.org/",
	"@type": "ItemList",
	"itemListElement": [{
		"@type": "ListItem",
		"position": 1,
		"item": {
			"@type": "Course",
			"name": "{{Name of course}}",
			"description": "{{Description of course. char 240 - 500}}",
			"url": "{{URL}}",
			"provider": {
				"@type": "CollegeOrUniversity",
				"name": "University of Arizona {{Department/College}}",
				"url": "{{Department/College url}}",
				"address": {
					"@type": "PostalAddress",
					"streetAddress": "{{Street Address}}",
					"addressLocality": "{{City}}",
					"addressRegion": "{{2 letter state abbreviation}}",
					"postalCode": "{{5 digits}}",
					"addressCountry": "{{Country abbreviation}}"
				},
				"parentOrganization": {
					"@type": "EducationalOrganization",
					"name": "University of Arizona",
					"url": "https://www.arizona.edu/",
					"address": {
						"@type": "PostalAddress",
						"streetAddress": "1401 E University Blvd",
						"addressLocality": "Tucson",
						"addressRegion": "AZ",
						"postalCode": "85721",
						"addressCountry": "US"
					}
				}
			},
			"offers": [{
				"@type": "Offer",
				"category": "{{Paid/Free/Partially Free/Subscription}}",
				"priceCurrency": "USD"
			}],
			"hasCourseInstance": [{
				"@type": "CourseInstance",
				"courseMode": "{{Online/Onsite/Blended/Synchronous/Asynchronous/Full-Time/Part-Time}}",
				"location": "{{On Campus/Online}}",
				"courseSchedule": {
					"@type": "Schedule",
					"repeatCount": {{Integer - total times the class meets}},
					"repeatFrequency": "{{Daily/Weekly/Monthly}}",
					"startDate": "{{YYYY-MM-DD}}",
					"endDate": "{{YYYY-MM-DD}}"
				}
			}]
		}
	} {{,{},{},... Repeat as many times as needed}} ]
}

Additional Context

Is your feature request related to a problem? Please describe.

Course listings lack structured data, making it harder for search engines to parse and present them effectively in search results. Adding schema.org metadata to the view listings will improve their SEO performance and user discoverability.

Roles and Permissions Considerations

Anonymous User
No impact: Schema metatags and structured data are not user-editable and only impact metadata.
Authenticated User
No impact.
Content Editor
Gains the ability to preview and verify structured data output for course listings.
Content Administrator
Gains the ability to configure and manage schema.org settings for the az_courses view using the az_seo module.
Administrator
Gains full control over enabling/disabling schema.org metadata for course listings.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants