1. Home
  2. /
  3. SEO
  4. /
  5. SEO Audits
  6. /
  7. Indexing with Google

Indexing with Google

1. Procedure Title

Name of the Process: Indexing with Google

2. Purpose

Brief Description: To establish process for indexing in Google with the use of Web Search Indexing API

3. Scope

Involved Areas:

  • SEO
  • Webdev

4. Responsibilities

Roles and Responsibilities:

  1. SEO Team

    1. Create service accounts

    2. Provide Search Console access

    3. Generate JSON Key

    4. Update indexing script

    5. Create event (Youtube)

    6. Add Schema

    7. Add backlinks

  2. Web Dev Team

    1. Add script in HTML Head section

    2. Add an orphan page into client’s website

5. Definitions and Key Terms

Glossary:

  1. A Service Account in Google Cloud is a special account used by applications or virtual machines to authenticate and access Google Cloud services, with specific permissions assigned to it.

  2. JSON (JavaScript Object Notation) is a lightweight, human-readable data format used for data interchange between a server and a web application.

  3. A Schema defines the structure of a database or data format, specifying how data is organized and the relationships between different data entities.

  4. Indexing in Google refers to the process by which Googlebot (Google’s web crawler) analyzes and stores information about web pages to include them in Google’s search index. Here’s how it works:

    1. Crawling: Googlebot visits web pages and follows links to discover new pages and updated content.

    2. Processing: The content of these pages is analyzed. Googlebot reads the text, identifies keywords, and assesses the overall structure of the page.

    3. Indexing: Relevant information from these pages, such as keywords and metadata, is stored in Google’s search index. This index is a massive database that enables quick retrieval of information during search queries.

    4. Ranking: When a user performs a search, Google’s algorithms rank the indexed pages based on relevance and other factors to provide the most useful results.

  5. API Access refers to the ability to interact with a software application or web service via its API, involving authentication and authorization to perform actions and retrieve data.

6. Procedure Details

6.1. Preparation and Prerequisites

  1. Must have verified Search Console ownership

  2. Must have list of backlinks

  3. Must have phone-verified Youtube Channel

6.2 Timeline for Task Completion

Estimated time overview:

  • Page creation – less than an hour
  • Creation of service accounts and generation of JSON key – 15 minutes

Frequency: Once only

Review Schedule: Depending upon the changes in interface of tools or API

6.3. Step-by-Step Procedure

  1. Creation of Google Cloud Project

    1. Go to https://console.cloud.google.com/

    2. Click on APIs & Services then the drop down list

 

  1. Click on New Project

 

  1. Add your project name. Ensure the project is under the authoritysolutions.com domain. Then click Create.

 

  1. Enabling API Access

    1. In the menu list on the left, select APIs & Services then Library.

 

  1. In the search field, enter “Indexing API”

 

  1. Select Web Search Indexing API

 

  1. Click Enable

 

 

 

  1. To confirm if enabled, in the same menu list, select APIs & Services then Enabled APIs and services

 

  1. Click Web Search Indexing API

  1. DISABLE API should appear.

 

  1. Creation of Service Account

    1. In the menu list on the left, select IAM & Admin, then Service Accounts

 

  1. Click CREATE SERVICE ACCOUNT

 

  1. Add your service account name, then click CREATE AND CONTINUE

Note: Service account ID is automatically generated, however, you can also update it.

 

  1. In the Roles drop down list, select Owner, then click Continue then Done

 

  1. Providing Search Console Access

    1. Go to https://search.google.com/search-console and choose the domain property you’re indexing backlinks for.

 

  1. Go to Settings from the menu on the left

 

  1. Go to Users and Permissions

 

  1. Click Add User

 

  1. Copy the service account email and paste it into Search Console

 

  1. Choose Owner as permission, then click Add

 

  1. Generation of JSON Key

    1. In the service account you created, select KEYS.

    2. In the drop down list, select ADD KEY then Create new key

 

 

  1. Choose JSON as the key type then click Create

  1. The JSON file will automatically be downloaded to your device. Click Close

 

  1. Creating live video in YouTube Channel

    1. Go to your live video channel of choice that’s phone-verified

    2. Click the Video icon then Go Live

  1. Click Webcam on the left menu then fill in the following information:

    1. Title

    2. Description

    3. Broadcast Type – Webcam

    4. Category

    5. Audience – No, it’s not made for kids

  1. Customization

  1. Visibility – Public

  2. Schedule – Date should be future (2 years from now)

  1. Click Done

 

  1. Go to your channel by clicking the logo on the right then Your Channel

 

  1. Go to Live tab then click on your scheduled live video

 

  1. Copy and keep the actual full broadcast link (no UTMs, etc)

 

 

  1. Adding Video Schema in HTML Head Section

 

<script type=”application/ld+json”>

{

  “@context”: “https://schema.org”,

  “@type”: “VideoObject”,

  “name”: “Title of video“,

  “caption”: “add caption to vid here“,

  “description”: “add your description here.“,

  “thumbnailUrl”: “http://url here.com“,

  “uploadDate”: “2021-09-05T05:00:00+06:00”,

  “duration”: “PT22M18S”,

  “contentUrl”: “http://whereisit“,

  “embedUrl”: “http://www.whereisit“,

  “interactionCount”: “1234 this is view count”

}

</script>

 

  1. Update this schema code with the following information:

    1. Name: Title of the Video (Use Name of the Client)

    2. Caption: Simple caption of the video

    3. Description: Simple description of the video

    4. Thumbnail URL

      1. Go to Live tab, then right click Inspect on your scheduled video

      2. Search for https://i.ytimg.com/ in the search box

  1. Copy the URL inside the “ “

 

  1. Paste it in the thumbnailURL property in the schema code

  2. Paste the full broadcast link in the contentURL and embedURL properties

 

Updated schema code:

<script type=”application/ld+json”>

{

  “@context”: “https://schema.org”,

  “@type”: “VideoObject”,

  “name”: “Bailey Connor Catering“,

  “caption”: “Bailey Connor Catering Sitemap“,

  “description”: “This is a Bailey Connor Catering’s Sitemap.“,

  “thumbnailUrl”: “https://i.ytimg.com/vi/XWq2slDbTkk/hqdefault.jpg“,

  “uploadDate”: “2021-09-05T05:00:00+06:00”,

  “duration”: “PT22M18S”,

  “contentUrl”: “https://www.youtube.com/watch?v=XWq2slDbTkk“,

  “embedUrl”: “https://www.youtube.com/watch?v=XWq2slDbTkk“,

  “interactionCount”: “1234 this is view count”

}

</script>

 

  1. Copy and paste the video schema code into your website’s HTML head section

  2. Reach out to dev for implementation

 

  1. Creating Orphan Page and Adding Backlinks

    1. Reach out to dev for implementation

    2. Add the backlinks to the orphan page

    3. Do’s and don’ts

      1. Slug should be sitemap-html

      2. Title should be Sitemap | Website Name

      3. Links should be clickable

 

  1. Adding Indexing Script

    1. Go to https://colab.google/

    2. Click New Notebook

    3. Paste this script in the notebook you created

 

from oauth2client.service_account import ServiceAccountCredentials

import httplib2

import json

import time

SCOPES = [ “https://www.googleapis.com/auth/indexing” ]

ENDPOINT = “https://indexing.googleapis.com/v3/urlNotifications:publish”

 

 

JSON_KEY_FILE = “indexing-api-.json

 

credentials = ServiceAccountCredentials.from_json_keyfile_name(JSON_KEY_FILE, scopes=SCOPES)

http = credentials.authorize(httplib2.Http())

 

dodo=[‘https://chrispalmermarketing.com/‘]

 

for url in dodo:

    content = {}

    content[‘url’] = url

    content[‘type’] = “URL_UPDATED”

    json_ctn = json.dumps(content)

 

    response, content = http.request(ENDPOINT, method=”POST”, body=json_ctn)

    result = json.loads(content.decode())

 

    # For debug purpose only

    if(“error” in result):

        print(“Error({} – {}): {}”.format(result[“error”][“code”], result[“error”][“status”], result[“error”][“message”]))

    else:

        print(“urlNotificationMetadata.url: {}”.format(result[“urlNotificationMetadata”][“url”]))

        print(“urlNotificationMetadata.latestUpdate.url: {}”.format(result[“urlNotificationMetadata”][“latestUpdate”][“url”]))

        print(“urlNotificationMetadata.latestUpdate.type: {}”.format(result[“urlNotificationMetadata”][“latestUpdate”][“type”]))

        print(“urlNotificationMetadata.latestUpdate.notifyTime: {}”.format(result[“urlNotificationMetadata”][“latestUpdate”][“notifyTime”]))

    time.sleep(1)

 

  1. Upload the JSON key that was automatically downloaded to your local computer

 

  1. Right click on the JSON file, then select Copy path

  1. Paste the path URL in the JSON_KEY_FILE property of the script code

  2. Paste the URL of the created orphan page in the dodo property

  3. Click Run

The submission is successful if the latest update type is URL_UPDATED

 

  1. Resubmit sitemap in Google Search Console

 

6.4. Tools and Resources

  • cloud.google.com
  • Google Search Console
  • YouTube Channel
  • colab.research.google.com
  • Client’s website credentials

8. Exception and Problem Handling

Any problems encountered during the implementation of SOP, reach out to Loidie

9. Documentation and Record Keeping

  • All JSON keys should be uploaded to the drive available for reuse.

10. Procedure Review and Update

  • Anytime necessary for interface updates
Still stuck? Contact

How can we help?