Most of the sites hold a bunch of short-lived content like Events, Job Posting. While reaching the intended audience for short-lived content is challenging, removing the expired content from Search Engine is also vital for user engagement. This can be solved by bridging Google Indexing Mechanism with Sitecore Publish Mechanism using Google Indexing API, which empowers businesses to gain maximum value by reaching the right users at the right time.
IMPORTANT: Google Indexing API allows automating of Google Indexing only for short-lived pages like job postings or live events currently.
STEPS TO CONFIGURE INDEXING API
Search for ‘Indexing API’ and Enable the same for the project
Navigate to Credentials Tab, and create credentials for the project
Navigate to Credentials Tab, and select ‘Manage Service Accounts’
Select ‘CREATE SERVICE ACCOUNT’ button to create a new Service Account which will be used for sending indexing requests to Google,
Select ‘Actions’ -> ‘Manage Keys’ to create new JSON API Key.
Store the downloaded JSON file safely, it is required to send Indexing requests to Google
Navigate to Google Search Console and then to the respective property. Select ‘Settings’ -> ‘ADD USER’ and add the Service Account(created earlier).
Select ‘Actions’ button of any existing Owner Account and select ‘Manage Property Owners’ to add Service Account as Owner to the Google Search Console property(only verified owner accounts can initiate indexing requests to Google)
STEPS TO INTEGRATE INDEXING API
This integration requires Google.Apis.Indexing.v3 Nuget Package, which needs to be added to the project(Depending on the Sitecore Version, you may also want to update the ‘oldVersion’ attribute of ‘bindingRedirect’ configured for ‘Newtonsoft.Json’ in web.config to 0.0.0.0-184.108.40.206 as Google API looks for Newtonsoft.Json 220.127.116.11)
Pages that were created/updated during Publish or Workflow Approval operations shall be captured by adding a custom processor within Publish pipeline and sent to Google as below,
An Event Handler for item:deleting event shall be added to capture the deleted page links and shall be sent to Google as below,
Copy the JSON file downloaded during the setup process to the website root folder and update the file name in GetGoogleIndexingAPIClientService method of IndexingAPIHelper class accordingly
The configuration is now complete! Indexing Requests for added/updated/deleted content will be sent to Google upon publishing. Ensure that the respective pages follow Google Structured Data Standards (JobPosting, BroadcastEvent).
Indexing API requests can be monitored from Indexing API Metrics Tab
Source Code is available in Github. Please do share your feedback below.