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

Meta-Issue: SEO #882

Open
dannylamb opened this issue Jul 24, 2018 · 9 comments
Open

Meta-Issue: SEO #882

dannylamb opened this issue Jul 24, 2018 · 9 comments
Labels
Subject: Drupal related specifically to Drupal, usually pointing somewhere on drupal.org Subject: Metadata related to metadata issues. Consider also using the search tag. Type: Meta-issue Identifies multiple related tickets for ease

Comments

@dannylamb
Copy link
Contributor

dannylamb commented Jul 24, 2018

This largely depends on having a 'default metadata profile' (the stuff of legends!), but we should be shipping with the metatag module and an assortment of its profile specific modules for things like AMP support, twitter/facebook embedding, etc...

https://www.drupal.org/project/metatag

We should also provide xml sitemap capabilities, as they have proven invaluable in 7.x development.

https://www.drupal.org/project/simple_sitemap

That sweet sweet SEO juice should be an out-of-the-box feature for CLAW.

@dannylamb dannylamb changed the title Ship with Metatag ecosystem Meta-Issue: SEO Sep 18, 2018
@bryjbrown
Copy link
Member

@dannylamb I've been playing around with these modules and feel like I've got a pretty good handle on them and how they could be used for Islandora 8. Both modules should work out of the box with custom content types.

How do we proceed with this? I could write up documentation for how to configure them. I could also try to export some example configurations for islandora_demo but that would require making these modules a dependency. How do we feel about that?

@bryjbrown
Copy link
Member

Google Scholar also prefers for IRs to have access to lists of all content published in a certain year, which we accomplished in 7.x by having a basic page with links to canned Solr searches. Not sure if this would be a good thing to do programmatically in 8.x or just mention it in documentation.

Another option would be to create some sort of islandora_seo module that requires simple_sitemap and metatag, and it could even included a setup checklist (using the Checklist API and Tour). We've talked about doing something similar with Scholar (not wanting to lose the name recognition of Scholar but also not wanting to build a mega-package) to make it more of an "IR Starter Kit" that points to other generic modules instead of a rabbit hole of related functionality.

@seth-shaw-unlv
Copy link
Contributor

I like @bryjbrown's suggestion of making this a separate islandora_seo module that can be pulled in or forked as necessary.

@dannylamb
Copy link
Contributor Author

👍 to decoupling from the metadata profile if possible. If you can throw up some default or demo config, I'd love to see it.

Also,

Google Scholar also prefers for IRs to have access to lists of all content published in a certain year, which we accomplished in 7.x by having a basic page with links to canned Solr searches. Not sure if this would be a good thing to do programmatically in 8.x or just mention it in documentation.

The answer you seek is views @bryjbrown

@seth-shaw-unlv
Copy link
Contributor

As it currently stands, Islandora 8 Demo uses the RDF mapping to embed RDFa into Repository Item and the Controlled Access Term pages which can be used by search engines (at least Google and Bing) without the need to metatag. However, the typed relations and @type override only apply to the JSON-LD serialization, which means our more granular relationships and types don't appear in the RDFa. (Because the RDF module didn't have any hooks to support this while the JSON-LD module did.)

I can see two possible ways of addressing this:

  1. adding the JSON-LD serialization into our pages so search engines can use it (Bing can use JSON-LD and Google prefers for JSON-LD), OR
  2. duplicating our JSON-LD-based property rewrites as custom metatag module extensions.

P.S. If we pursued pushing the JSON-LD into the HTML page, then we would need to remove the _format=jsonld from the identifier, as per #887, to avoid confusing the search engine as to what the JSON-LD is describing.

P.P.S. Most of the references to Bing suggest JSON-LD is only supported for Schema.org, not Dublin Core (although I can't find anything conclusive) and, as per #1074, we can't really mix Schema.org with Dublin Core without making Google grumpy. So perhaps we need metatag to get our Dublin Core into Bing while using JSON-LD for Google? That feels excessive...

@dannylamb
Copy link
Contributor Author

I cannot give enough 👍's for option 1. Scrub _format=jsonld from all the URLs AND make Google happy? YES PLEASE.

@kstapelfeldt kstapelfeldt added Subject: Drupal related specifically to Drupal, usually pointing somewhere on drupal.org Type: Meta-issue Identifies multiple related tickets for ease Subject: Metadata related to metadata issues. Consider also using the search tag. and removed drupal labels Sep 25, 2021
@hachacha
Copy link

Just checking on this one, has option 1 from @seth-shaw-unlv 's solution been added to the codebase ? This issue remains open but it seems like it may have been resolved here: #887

@seth-shaw-unlv
Copy link
Contributor

@hachacha. the URLs portion was addressed as you point out. However, I don't believe we add the JSON-LD to the page headers yet.

Further, while I initially thought we could use a src link <script type="application/ld+json" src="https://future.islandora.ca/node/9?_format=jsonld" /> all the examples I've found include the json ld embedded in the script tag like so:

<script type="application/ld+json">
{"@graph":[{"@id":"https://future.islandora.ca/node/9","@type":["http://pcdm.org/models#Object","http://purl.org/coar/resource_type/c_c513"],"http://schema.org/author":[{"@id":"https://future.islandora.ca/user/1"}],"http://purl.org/dc/terms/title":[{"@value":"Grey and White Tabby Kitten","@language":"en"}],"http://schema.org/dateCreated":[{"@value":"2019-06-04T14:46:17+00:00","@type":"http://www.w3.org/2001/XMLSchema#dateTime"}],"http://schema.org/dateModified":[{"@value":"2019-06-05T04:05:52+00:00","@type":"http://www.w3.org/2001/XMLSchema#dateTime"}],"http://purl.org/dc/terms/description":[{"@value":"A worried-looking kitten. ","@language":"en"}],"http://purl.org/dc/terms/created":[{"@value":"2019-04-19","@type":"http://www.w3.org/2001/XMLSchema#string"},{"@value":"2019-04-19","@type":"http://www.w3.org/2001/XMLSchema#date"}],"http://purl.org/dc/terms/extent":[{"@value":"1 item","@type":"http://www.w3.org/2001/XMLSchema#string"}],"http://pcdm.org/models#memberOf":[{"@id":"https://future.islandora.ca/node/7"}],"http://purl.org/dc/terms/type":[{"@id":"https://future.islandora.ca/taxonomy/term/5"}],"http://purl.org/dc/terms/subject":[{"@id":"https://future.islandora.ca/taxonomy/term/27"}],"http://schema.org/sameAs":[{"@id":"https://future.islandora.ca/node/9"}]},{"@id":"https://future.islandora.ca/user/1","@type":["http://schema.org/Person"]},{"@id":"https://future.islandora.ca/node/7","@type":["http://pcdm.org/models#Object"]},{"@id":"https://future.islandora.ca/taxonomy/term/5","@type":["http://schema.org/Thing"]},{"@id":"https://future.islandora.ca/taxonomy/term/27","@type":["http://schema.org/Thing"]}]}
</script>

I don't know how kindly Google will take to simply adding the link as initially suggested.

@alxp
Copy link
Contributor

alxp commented Jan 19, 2022

For the RDM project, we used schema.org Metatag module which converts metatags into JSON-LD i the header.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Subject: Drupal related specifically to Drupal, usually pointing somewhere on drupal.org Subject: Metadata related to metadata issues. Consider also using the search tag. Type: Meta-issue Identifies multiple related tickets for ease
Projects
Status: No status
Development

No branches or pull requests

6 participants